Skip to content

Releases: PerFermat/KMySync

KMySync 2.3

Choose a tag to compare

@PerFermat PerFermat released this 23 Oct 15:27

New

  • Bookings from push notifications. For banks without FinTS, such as a credit card: KMySync reads the notifications of the banking apps you select in the profile settings.
    • When you enter a booking by hand, the app finds the matching notification and asks whether it should process future notifications for this account.
    • From then on, new transactions appear as a list of suggestions when you refresh – edit, delete or book them with OK; possible duplicates are marked.
    • The payee is found just like with voice input – via alias, earlier bookings and the location at the moment the notification arrived. If the payee was last booked as a transfer, the list suggests a transfer.
    • The note contains the exact wording of the notification. The raw texts stay on the device only briefly and are never part of a backup.
  • KMyMoney database (SQLite). Besides the .kmy file, KMySync can now read and write a KMyMoney database in SQLite format, with a cross-check after every write.
  • Backups: the number of backups is adjustable, plus permanent monthly backups.
  • Receipt scanner: in the variant with Google services it uses the Play services document scanner (automatic cropping and perspective correction).

Even safer export

  • Self-check after every export: untouched parts must stay exactly as they were, character by character; new and changed transactions must be consistent; categories must sit in the right tree; the balance of each account must match the app's bookings.
  • Writing works the way KMyMoney itself does it – line by line, attributes in the file's order, amounts reduced. A line-by-line comparison shows what changed.
  • If the file is broken after an export, the app restores the previous version.
  • Export and import run in the background and wait instead of aborting when the connection drops briefly.

Changed

  • Bookings reconciled in KMyMoney are read-only in the app; they can still be copied as a template.
  • Net worth is recalculated right after syncing with the KMyMoney file.
  • The watch app is much smaller (12 MB → 2 MB).
  • The alias question only appears when you corrected the payee by hand.

Fixed

  • In some cases a category lost its side (income/expense).
  • The location of a booking was rewritten unnecessarily on save.
  • Line breaks in notes are written the way KMyMoney does it.

F-Droid

KMySync is now on F-Droid: https://f-droid.org/packages/de.spahr.ausgaben/

The F-Droid version is signed by F-Droid with its own key. That is why the F-Droid and GitHub versions cannot update each other. To switch, make a backup first, then uninstall and reinstall.

Downloads: app-full-release.apk (with Google services, includes the Wear OS bridge) ·
app-foss-release.apk (no Google services) · wear-release.apk (smartwatch)

Verifying this build

This app is free software (GPL-3.0-only) and built from source — the F-Droid recipe builds the
foss flavour straight from this tag. You can check that the file you downloaded is the file that
was published:

sha256sum app-full-release.apk app-foss-release.apk wear-release.apk
0eb96a08a5cbd0a76fa7d81e18aaefa483b2a7dbfb9a0ccaaea3db263c251513  app-full-release.apk
1094002a220dfb8ec1314ff149eb7edd2c0f6a4358e38a6d26ec410378582dae  app-foss-release.apk
c467a88250e62f3692719ec93dc4bbbf999534a12e6fbef75ab018ab54d9469a  wear-release.apk

All three are signed with the same key as every GitHub release since 1.0:

Signer certificate DN:         CN=Michael Spahr, OU=Privat, O=Ausgaben, L=, ST=, C=DE
Signer certificate SHA-256:    571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c

Check it yourself with apksigner verify --print-certs <apk> from the Android build tools.

The foss build contains no Google Play Services; verified on the finished APK:

unzip -p app-foss-release.apk 'classes*.dex' | strings | grep -c com/google/android/gms   # 0

KMySync 2.2

Choose a tag to compare

@PerFermat PerFermat released this 04 Oct 06:16

New

  • Third sync mode "Read .kmy, export CSV". Accounts, schedules and portfolio still come from the KMyMoney file, but writing happens via CSV only; the .kmy file stays untouched. Editing exported bookings, split bookings, advancing schedules and portfolio entry are available in .kmy mode – CSV cannot represent them.
  • Dividends entered in the app are now created as income instead of a transfer.

Safer export

  • Stops if KMyMoney has the file open (lock file).
  • Self-check before upload, and a check of the file encoding.
  • No duplicate bookings after a crash; the payee now also counts when an exported booking is looked up again.
  • No more overwriting rename when the file is swapped.

Fixed

  • Crash caused by broken placeholders in an imported language file.
  • Watch: the spoken payee stays up front, and speech input no longer jumps to the number pad for no reason.
  • The SMB diagnosis no longer shows the error text twice.

Privacy

  • The backup settings from 2.1.1 stay: your finance data is not part of auto-backup.
  • The store description now states that only the optional map picker loads tiles from OpenStreetMap.

Downloads: app-full-release.apk (with Google services, includes the Wear OS bridge) ·
app-foss-release.apk (no Google services, F-Droid) · wear-release.apk (smartwatch)

Verifying this build

This app is free software (GPL-3.0-only) and reproducible from source — the recipe used for
F-Droid builds the foss flavour straight from this tag. You can check that the file you downloaded
is the file that was published:

sha256sum app-full-release.apk app-foss-release.apk wear-release.apk
96c774c212fb3aadf0246b15c5db1976066d5ad19eb4d72c1f4fbce52327a34b  app-full-release.apk
2798743a0ab365c3e7a262dabecbefb05fb81d6b44521ce9e693184362fdd12b  app-foss-release.apk
ca3affd6248986e0457dd382cef401f9b5e254346f60fc547ebf5a0580236faa  wear-release.apk

All three are signed with the same key as every release since 1.0:

Signer certificate DN:         CN=Michael Spahr, OU=Privat, O=Ausgaben, L=, ST=, C=DE
Signer certificate SHA-256:    571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c

Check it yourself with apksigner verify --print-certs <apk> from the Android build tools.

The foss build contains no Google Play Services; verified on the finished APK:

unzip -p app-foss-release.apk 'classes*.dex' | strings | grep -c com/google/android/gms   # 0

KMySync 2.1.1

Choose a tag to compare

@PerFermat PerFermat released this 25 Sep 11:58

Please update if you export to a WebDAV server such as Nextcloud. This release fixes a bug that
could cost you your KMyMoney file.

Fixed

  • An export could delete the .kmy. The app first writes the new file in full under a temporary
    name and then puts it in place. A WebDAV server (Nextcloud included) does this by first deleting
    the existing file and then renaming. If the rename failed, the old file was already gone — and the
    app then also cleaned up the new one. Both were left only in the server's "Deleted files". The file
    is now swapped instead of overwritten: old file aside, new file into place, and only then is the
    old one deleted. If anything goes wrong, the old file is back where it was, and the next export
    writes the bookings again. SMB shares were not affected.

    If this happened to you, nothing is lost. Before every export the app saves a complete copy of
    your file in the Backup folder next to it, as <file>.bak-<date>-<time> — and it does so before
    it touches anything. Copy the newest backup back next to it and rename it to your file name (e.g.
    michael.kmy). That is exactly the state before the failed export. The bookings from that export
    are not marked as exported in the app, so the next export writes them.

  • "No payee" chosen on the watch still arrived on the phone with the nearest payee. The booking
    now stays without a payee.

Downloads: app-full-release.apk (with Google services, includes the Wear OS bridge) ·
app-foss-release.apk (no Google services, F-Droid) · wear-release.apk (smartwatch)

Verifying this build

This app is free software (GPL-3.0-only) and reproducible from source — the recipe used for
F-Droid builds the foss flavour straight from this tag. You can check that the file you downloaded
is the file that was published:

sha256sum app-full-release.apk app-foss-release.apk wear-release.apk
d24469476ee312f0c9f5e7de7e4ff16d93c99aea0104dbe63be14b1bc0c7e9dd  app-full-release.apk
d906bb2f57630d5b6d8945598c9366181f02e3d91532e9469fd52a98f55b86f1  app-foss-release.apk
f34335b83db3470fc7d0ec0e4cdf42773cf9b25ec93bf5e2732c5f00ef6a770b  wear-release.apk

All three are signed with the same key as every release since 1.0:

Signer certificate DN:         CN=Michael Spahr, OU=Privat, O=Ausgaben, L=, ST=, C=DE
Signer certificate SHA-256:    571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c

Check it yourself with apksigner verify --print-certs <apk> from the Android build tools.

The foss build contains no Google Play Services; verified on the finished APK:

unzip -p app-foss-release.apk 'classes*.dex' | strings | grep -c com/google/android/gms   # 0

KMySync 2.1

Choose a tag to compare

@PerFermat PerFermat released this 24 Sep 14:59

The payee is optional now, just as in KMyMoney. Leave the field empty and the list shows the
category in its place.

New

  • Live search in the booking list. Tap the account name to open a search field; the list
    narrows as you type. The X in the "Filter active" line clears in two steps: first the search,
    then the filter.
  • Pick a nearby payee on the watch. After the amount — typed or spoken — the watch shows amount
    and payee on one page, and you can cycle through nearby payees even without the phone in reach.
    The booking is made after ten seconds. With location turned off, the watch receives no payee list.
  • Scheduled securities transactions are recognised. When a securities booking (entered singly
    or from a PDF batch) matches a schedule, the checkbox is already ticked and the occurrence counts
    as done once you save.
  • Every profile has its own receipt folder. Two KMyMoney files in the same folder no longer get
    in each other's way. The folder name can be changed in the profile settings, and the receipts
    move along with it.
  • The receipt export holds out. It pauses while the app is in the background, asks before
    downloading from the server, counts along in the banner and can be cancelled with a tap. If it
    was interrupted, the app offers a second attempt the next time you open it.
  • "Import everything" is in the menu, the reports in a "Reports" submenu. A pencil in the
    booking view takes you straight to editing.

Improved

  • A long press on an account or on "All accounts" re-reads it without asking first — the KMyMoney
    file is what counts.
  • Dates follow the app language, in the widget too, and appear first and in full in both list and
    widget.
  • An empty booking list says why it is empty; the account message says what is missing.
  • The server connection's diagnostic report speaks the app's language.
  • The APKs are half their former size.
  • The watch carries the same icon as the app, and the tile shows a preview in the tile picker.
  • Only the 20 most recent backup copies are kept next to the KMyMoney file.

Fixed

  • The clean-up routine took receipts of securities bookings for orphans and deleted them. Orphaned
    receipts are now never deleted; they go to a "Papierkorb" (trash) folder on the server instead.
  • If moving a receipt failed after a booking date was shifted across the turn of the year, the
    receipt was lost. The move is now retried at the next sync.
  • A schedule that had been left pending for a while could be neither booked nor skipped, and older
    missed occurrences were missing from the list.
  • Receipts from HEIC photos came out sideways.
  • Backups failed on Android 8.
  • The SMB diagnostics wrongly reported "Read folder ✗".

Privacy

  • Android no longer backs up this app's data to the Google cloud. When switching devices, use
    "Create backup".
  • The server password is encrypted with a key from the Android Keystore; your existing password is
    carried over on update.

Downloads: app-full-release.apk (with Google services, includes the Wear OS bridge) ·
app-foss-release.apk (no Google services, F-Droid) · wear-release.apk (smartwatch)

Verifying this build

This app is free software (GPL-3.0-only) and reproducible from source — the recipe used for
F-Droid builds the foss flavour straight from this tag. You can check that the file you downloaded
is the file that was published:

sha256sum app-full-release.apk app-foss-release.apk wear-release.apk
820966dbca29c2190d7935e4b1f7b749d5f35ee2e10c5d960ec090f6f1190085  app-full-release.apk
3c1f6ca49bc0a5187677ccec7f1e6e150f24e258c37d4265fd04cd6974053212  app-foss-release.apk
ee3c9bfc82f787997ab07baa4e410ebcfbd20cf00ab06ac03722ce6f833d6375  wear-release.apk

All three are signed with the same key as every release since 1.0:

Signer certificate DN:         CN=Michael Spahr, OU=Privat, O=Ausgaben, L=, ST=, C=DE
Signer certificate SHA-256:    571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c

Check it yourself with apksigner verify --print-certs <apk> from the Android build tools.

The foss build contains no Google Play Services; verified on the finished APK:

unzip -p app-foss-release.apk 'classes*.dex' | strings | grep -c com/google/android/gms   # 0

KMySync 2.0

Choose a tag to compare

@PerFermat PerFermat released this 12 Sep 16:32

The app is now called KMySync. The name says what it does: your KMyMoney data, on your own
server, recorded while you are out. The application id stays de.spahr.ausgaben, so this installs as
an update over 1.12 — your data, profiles and settings are kept.

New

  • An export can no longer damage your .kmy file. The app now writes the file in full under a
    temporary name and only then has it put in place. A dead spot or a timeout in the middle of a
    transfer can no longer leave your file half-overwritten and unreadable.
  • "Test connection" checks the whole chain — for Nextcloud, WebDAV and SMB alike: address,
    reachability, redirects, login, reading the target folder, and finally the three permissions an
    export really needs there: write, rename and delete.
  • You can see what it is doing. While the check runs, a band below the button shows the step in
    progress on the right and how the last one turned out on the left, with a green check or a red
    cross. Checks take a few seconds, and when something really is wrong every step waits out its
    timeout — previously the screen simply sat still.
  • When something fails, you get a report with the raw status code and what it means. An HTTP 401,
    for instance, points out that two-factor authentication needs an app password here rather than the
    account password. The report can be copied for a bug report and contains neither the password nor
    the user name
    .
  • Learned portfolio rules can be shared and imported, so a second device does not have to learn
    your bank's statement layout again.

Improved

  • Securities documents are named by type and instrument instead of "no payee".
  • A portfolio movement now shows its note and its attached document.
  • The manual covers the connection check in full, in German and English.
  • Spanish store listing and screenshots; screenshots are now taken per language.

Fixed

  • An edited booking no longer loses its reconciliation when written back to KMyMoney.
  • Help texts below input fields stayed in the device language while the rest of the screen followed
    the app language — an English screen could show a German sentence.

Downloads: app-full-release.apk (with Google services, includes the Wear OS bridge) ·
app-foss-release.apk (no Google services, F-Droid) · wear-release.apk (smartwatch)

Verifying this build

This app is free software (GPL-3.0-only) and reproducible from source — the recipe used for
F-Droid builds the foss flavour straight from this tag. You can check that the file you downloaded
is the file that was published:

sha256sum app-full-release.apk app-foss-release.apk wear-release.apk
853f896eeba610a4b36949166174eb22872f47ce84d53d7994150c7de7485826  app-full-release.apk
c50bc403221526861bdac5a26c761d8e6585be79b140360d7dbaafcef652c293  app-foss-release.apk
43a77659cd51960340470d81e3c76f078111e830e8f990cafad7b94ad90e2561  wear-release.apk

All three are signed with the same key as every release since 1.0:

Signer certificate DN:         CN=Michael Spahr, OU=Privat, O=Ausgaben, L=, ST=, C=DE
Signer certificate SHA-256:    571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c

Check it yourself with apksigner verify --print-certs <apk> from the Android build tools.

The foss build contains no Google Play Services; verified on the finished APK:

unzip -p app-foss-release.apk 'classes*.dex' | strings | grep -c com/google/android/gms   # 0

Ausgaben 1.12

Choose a tag to compare

@PerFermat PerFermat released this 05 Sep 11:55

New

  • Securities bookings: buys, sells and dividends can be recorded and are written back into KMyMoney — with quantity, price, fees and taxes that may be split across several categories. The security has to exist in KMyMoney already.
  • Reading statements from the PDF: the app recognises the security, the date and the amounts, and while doing so it learns per bank and per portfolio where the values sit in the document. With the first statement it asks for the right label; every rule can be replaced, extended or skipped through the pencil icon, and a page of its own lists all learned rules for touching up. Several statements can be read in one batch, duplicates are marked in yellow, and the document ends up attached to the booking. Off by default, switched on in the settings. Whether it works for your bank right away I cannot promise, but every bank formats differently.
  • Several profiles with separate data, their own accent colour and backups by scope
  • Spanish as the third language
  • Calculator keypad with haptics and its own layout in landscape
  • Portfolio: profit and loss against the cost basis, plus separate filters for open and closed positions
  • Free-text search field in the booking filter
  • Deleting individual GPS coordinates from a booking

Improved

  • Watch: speech recognition follows the selected language, and "Speak now" only appears once the recogniser is ready
  • Voice bookings understand plural currency words and other currencies ("20 euros", "20 dollars")
  • The language template is pre-filled with the running language and counts the remaining gaps
  • CSV re-import shows the progress banner; categories from the import can be picked
  • Onboarding and "Change profile" are separate screens now

Fixed

  • Account name and button text were unreadable in dark mode
  • A running import touched the screen the user had already left

Downloads: app-full-release.apk (with Google services, includes the Wear OS bridge) · app-foss-release.apk (no Google services, F-Droid) · wear-release.apk (smartwatch)

Verifying this build

Ausgaben is open source and reproducible from source — this tag builds the APKs below with
./gradlew :app:assembleFullRelease :app:assembleFossRelease :wear:assembleRelease.

SHA-256:

f59fa622ac149bf7a564330031c1111700d5fdbb69ef9bbae161a264fea7439a  app-full-release.apk
08a622f43ea80900bc38a332d4f41805b0956e1c883f7f96b2ecfc2e7c81586c  app-foss-release.apk
894035540185d59ab10dea23daa15b002f9b9b6a408afe6f23c2614ca2daf652  wear-release.apk

All three are signed with the same key as previous releases:

CN=Michael Spahr, OU=Privat, O=Ausgaben, C=DE
SHA-256: 571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c

The foss build contains no Google Play Services code at all (0 references to
com/google/android/gms in its dex, against 1557 in the full build).

Ausgaben 1.11

Choose a tag to compare

@PerFermat PerFermat released this 22 Aug 08:07

Neu

  • Belege auch als PDF-Dokument anhängen
  • Belege eines Filters als ZIP-Datei ausgeben – mit sprechenden Dateinamen fürs Steuerbüro
  • Stichwörter aus KMyMoney: am Alias hinterlegt und je Empfänger vorgeschlagen
  • Wertpapier-Buchungen: Notiz, Stichwörter und Beleg lassen sich ändern
  • Depotbuchungen: Details per Tipp
  • Wear OS: Buchung auch ohne Handyverbindung aufnehmen; die Spracherkennung folgt der in den Einstellungen gewählten Sprache

Verbessert

  • Belege werden mit einer Statuszeile nachgeladen, das Handy bleibt bedienbar – eine Fehlermeldung kommt nur ohne Verbindung
  • Ist ein Beleg dauerhaft unauffindbar, lässt sich der verwaiste Verweis aus der Buchung entfernen
  • Schnellerfassung: der Standardort des Kontos wird genommen, wenn die Vorlage keinen Ort hat
  • Kalendersymbol an den vier Datums-Auswahlfeldern
  • Weitere Usability-Politur an bestehenden Funktionen

Behoben

  • Stichwörter fehlten nach „Konto hinzufügen" (Neuimport)
  • Splitbuchung: die automatisch vorbelegte Kategoriezeile trägt den Rest, die eingegebene Summe bleibt fest
  • „Daten zurücksetzen" stellt jetzt wirklich den Auslieferungszustand her (auch Einstellungen, Depot und Belege auf dem Handy)

Downloads: app-full-release.apk (mit Google-Diensten, inkl. Wear-Anbindung) · app-foss-release.apk (ohne Google-Dienste, F-Droid) · wear-release.apk (Smartwatch)

Ausgaben 1.10

Choose a tag to compare

@PerFermat PerFermat released this 16 Aug 07:22

Ausgaben 1.10 — mobile KMyMoney companion (phone + Wear OS).

This release is about the booking that fills itself in: where you are and how much you spend is often enough to name the payee and its category — and a correction to an exported booking finally reaches your .kmy file.

Highlights since 1.9

  • Nearby payees first. The six closest payees head the payee list with a bearing arrow, nearest first. Distance is measured from the booking's place — the current fix for a new booking, the stored GPS mark when editing, the hand-picked point after "Map". Without a mark there is no preamble: where you stand today says nothing about an old booking. Distances come from the coordinates in your bookings' notes and the learned places of the aliases; anything beyond 10 km drops out.
  • The amount tells payees apart. Where several payees share a place — petrol station and car wash, supermarket and baker — the location alone was a coin toss. Now the amount decides: each payee is compared against the rank band of its previous amounts (10th–90th percentile by default, so a single outlier cannot tear the band open). Fewer than five bookings means no judgement. The alias form got a two-handle "usual amounts" slider, labelled with the matching amounts.
  • The amount orders, it no longer sieves. Type an amount that fits nobody's band and you still get every candidate — ordered by how far off they are, measured as a ratio rather than in euros: 15 € is 1.5× above a 5–10 band but only 1.33× below a 20–100 one, so the large band wins. At 1 € the small one wins again. Everyone stays flickable.
  • Only the accounts you are looking at. When the app picks the payee itself, it now considers bookings and aliases of the displayed accounts. Booking in "Cash" no longer suggests a payee that only ever appeared on the current account.
  • Amount search can be switched off. New setting "take the amount into account in suggestions", off by default, right below the GPS switch. Off means the number pad shows the nearest name straight away and it stays put while you type. Pure voice input without a payee is unaffected — there is nothing to choose there.
  • The first category comes from the payee. With the payee settled, the first category row is prefilled from it — preferred aliases first, then this payee's bookings (newest first, split rows counted), then the remaining aliases, always of the selected booking type. Up to six further categories sit at the top of the picker under "For this payee".
  • And it follows when you change the payee. If the app guessed the payee wrong and you enter the right one, the category no longer keeps the wrong one's. An automatically set category follows the payee (and the booking type) until you touch the category rows — typing or picking a category, changing a part amount, removing a row. A saved booking, a scheduled booking and the read-only view are never touched.
  • Receipt photos on transfers. The receipt row used to be hidden for transfers, of all places, where there is a bank statement or transfer confirmation to attach. A transfer is two booking rows sharing one note, and the receipt hangs in that note — so both accounts show the same picture, and it can be added or changed from either side. Converting between booking and transfer takes the receipt along.
  • Booking status "edited". Changing an already exported booking only changed it inside the app; the export writes new transactions only, so the correction never reached the .kmy file. Such a booking is now marked edited (yellow in the list), and the next transfer replaces its transaction in place — same id, same position, counter untouched. The signature of the exported version is stored so the transaction is still found even if account, amount or date changed. If it cannot be found, nothing is inserted and the message says so — no duplicates.
  • Filter button "radius". Each tap steps on: off → 100 m → 500 m → 1 km → 10 km → off, keeping only bookings within that radius. Bookings without coordinates of their own fall back to the learned places of their payee's alias. Your position is frozen when applied, so the list does not wander as you walk.
  • Default place for a preset account and for transfers. Picking an account in the list and tapping "new booking" gave you the account but not its default place. Fixed, along with all four ways that preset an account. Transfers now prefill too: the from-place follows the from-account, the to-place the to-account.
  • The back-to-top button takes a second at most, not many: fixed duration (300 ms per screen height, capped at one second) instead of fixed speed, and long lists jump invisibly to row 30 first.
  • Manual editor. tools/handbuch-editor.py edits both language versions as one tree of blocks, so German and English can no longer drift apart. Plus a readable toolbar subtitle on the green bar, a deliberate page break, and image width belonging to the block rather than the single image.

Downloads

  • app-full-release.apk — phone app with Wear OS bridge (Google Play Services). Use this if you also install the watch app.
  • app-foss-release.apk — phone app without Google Play Services (same as the F-Droid build).
  • wear-release.apk — Wear OS watch app (requires Google Play Services; pair with the full phone build).

Trust / verification

The app is open source and reproducible from this tagged source. Verify your download with SHA-256:

27d5f1e9140b7ade21e4bafaa12e5ad9a9929d9ec95e9d740cad7336ee8c9048  app-full-release.apk
4919057e0414141f867a58882807497cf077a1e67a39a4a7967580141b02b750  app-foss-release.apk
ad20535133d99bf1542230543b9977552fb951ad35b10e5ae4feecf7ae11838a  wear-release.apk

Signing certificate: CN=Michael Spahr (SHA-256 571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c) — unchanged since 1.5.

🤖 Generated with Claude Code

Ausgaben 1.9

Choose a tag to compare

@PerFermat PerFermat released this 09 Aug 16:03

Ausgaben 1.9 — mobile KMyMoney companion (phone + Wear OS).

This release is about finding your account fast: a second, freely chosen level of order next to the account kind, and input fields that are display, list and search box in one.

Highlights since 1.8

  • Account groups. A second level of order beside the account kind, freely chosen — say "Joint", "Savings" or "Everyday". An account may sit in as many groups as you like, and the selected group acts app-wide as a lens on the booking list, the balance bar and the portfolios. Groups are assigned by account id, not by name, so renaming an account keeps them.
  • Groups straight from your .kmy. The INSTITUTIONS block becomes bank groups, and accounts KMyMoney marks as preferred become the group "Favourites". Both mirror the file: they cannot be edited and are rebuilt on every import. The favourites' name follows the interface language — it is recognised by a stored key, not by its name, so switching language does not lose it.
  • Free account order. A new full-screen view sorts and manages accounts: drag to reorder within an account kind, or drag a whole account kind and its accounts fold in while the list shifts so the row stays under your finger. Closed accounts are visible there only, in grey. Existing accounts all start at position 0, so nothing moves until you move it.
  • Portfolios are accounts now. A depot gets a carrier row in the account table (KMyMoney type 7) and is therefore sortable, groupable and filterable like any other account. Securities, prices and valuation are untouched; carrier rows stay out of the booking and transfer pickers, because a depot's value follows from prices and cannot take a booking.
  • Account search. The magnifier on the emblem turns the heading into an input; the result survives closing the keyboard and stands until you clear the search or pick an account.
  • One kind of field for payee, account, category and place. All 32 pickers are now display, list and search box in one, equally tall and equally labelled. Entering a field clears it — the previous entry stays on faintly — and opens the full list; typing narrows it live and matches anywhere in the name ("kasse" finds "Sparkasse"). Leaving without a choice brings the old value back. A new payee may be typed; account, category and place have to come from the list.
  • The most likely account first. Every account field lists your favourites first, then the accounts of the currently selected group, then all the rest — your own order kept within each block, each account only once, and each block with its own icon instead of dividers, so the list stays calm while you search.
  • A Done key, and the keyboard closes. Picking an item from the list or pressing Done closes the keyboard without leaving the field. If typing leaves exactly one match, Done takes it — "visa u" is enough for "Visa Urlaub".
  • Pop-ups in the app's own design. Every dialog now carries a green header band with a white title like the app bar, a matching 2dp border, 16dp corners and a close cross on the right. The cross replaced the "Cancel" button everywhere it did nothing but close — all 36 of them. Confirming buttons are filled, destructive ones red. The button row no longer stacks into a scroll view, where buttons could quietly disappear.
  • Icons in the suggestion lists. Accounts show their account kind, payees a person, places a pin, categories the income/expense arrow in their own colour — the same one they carry in the pie chart, with sub-categories inheriting from their main category. No new data to maintain.
  • Places appear only where there are places. The rule existed but was applied in the wrong place, too early, or by the wrong measure: a preset account without places still showed the field, viewing a booking judged by the account instead of by the booking's own place, and the transfer dialog offered accounts that have none.
  • The app lock no longer asks after taking a receipt photo. Leaving into the camera, gallery, speech recognition or a file picker now suspends the lock for five minutes on return. The new code never unlocks — it only delays locking; cold start, a killed process and staying away longer still require authentication, measured on elapsed real time so a changed clock cannot stretch the grace period.

Downloads

  • app-full-release.apk — phone app with Wear OS bridge (Google Play Services). Use this if you also install the watch app.
  • app-foss-release.apk — phone app without Google Play Services (same as the F-Droid build).
  • wear-release.apk — Wear OS watch app (requires Google Play Services; pair with the full phone build).

Trust / verification

The app is open source and reproducible from this tagged source. Verify your download with SHA-256:

bb510d6a8f7f34da4913c6f3bea42684a2c994cb78b56d5e3555a45d8d77db54  app-full-release.apk
054ad9686072b6322d25ab88ce34f1eca24b70057afe943ac78f523563c58eb1  app-foss-release.apk
e5164a38acb108aab67f71c3a675ffc9bd3e861b66959950263f3fc1b8347bb6  wear-release.apk

Signing certificate: CN=Michael Spahr (SHA-256 571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c) — unchanged since 1.5.

🤖 Generated with Claude Code

Ausgaben 1.8

Choose a tag to compare

@PerFermat PerFermat released this 05 Aug 16:37

Ausgaben 1.8 — mobile KMyMoney companion (phone + Wear OS).

This release is about receipts: several pages per booking, editing them on the phone, and a viewer built into the app. Plus a proper full backup and a friendlier cash count.

Highlights since 1.7

  • Multi-page receipts. A booking now takes as many receipt photos as you like. The pages share one UUID (<uuid>_p1.jpg, <uuid>_p2.jpg, …) and the KMyMoney note still holds only BELEG: <uuid> — the app finds the pages by itself, so nothing in your .kmy file gets longer. Each page can be viewed, edited or removed on its own; removing one renumbers the rest.
  • Edit receipt photos. Right after the shot — or later from the receipt row — you can crop the image to a rectangle, straighten a skewed bill in trapezoid mode (drag the four corners onto the paper, the app rectifies the perspective) and adjust brightness/contrast. The untouched original is kept as …_original.jpg for good, and it is written only when you actually apply an edit.
  • Editing again asks first. Opening the editor on a photo you have already edited now asks whether to continue from the current version or start over from the original. Previously it silently reloaded the original, so a second pass to fix the brightness threw away your crop.
  • Receipt viewer inside the app. Swipe to page through a multi-page receipt, pinch and double-tap to zoom. This deliberately replaces the handover to an external photo app: those cache on the file URI, which never changes, and so kept showing the pre-edit version even though the edited image was on disk and on the server.
  • Receipts go to the server. Photos are uploaded to Belege/<year>/ next to the KMyMoney file (in CSV mode into the sync folder). The year follows the booking date, and moving that date across a new year takes the images along. Receipts of deleted bookings are cleaned up on the next app start.
  • Full backup as a ZIP. "Create backup" now writes data and settings (accounts, places, category colours, server access, widget, receipt mapping) instead of a bare ausgaben.db. The server password is only included if you ask for it, and the whole file can be encrypted with a backup password of your own (PBKDF2 210,000 rounds, AES-256-GCM, extension .abk). When restoring, the app asks what should come back: data only, settings only or both. Plain old .db backups are no longer accepted.
  • Cash count (Kassensturz) presets. Payee and category of the balancing booking are no longer hard-wired to "Unknown"/"Other" — you set them once and they stick. The place is optional now, so accounts without any places can be reconciled as a whole (that used to fail with an amount error).
  • "All accounts" reloads more. A long press — or pulling down in the booking list — now also refreshes portfolios and scheduled transactions, all in one read pass (kmy mode only).

Downloads

  • app-full-release.apk — phone app with Wear OS bridge (Google Play Services). Use this if you also install the watch app.
  • app-foss-release.apk — phone app without Google Play Services (same as the F-Droid build).
  • wear-release.apk — Wear OS watch app (requires Google Play Services; pair with the full phone build).

Trust / verification

The app is open source and reproducible from this tagged source. Verify your download with SHA-256:

839cc9fc614b30fbdd88c2898323f10f1232499c89698a94b932abdd61399a40  app-full-release.apk
a33e8dc9ded9706a6fabd04426bebf29779fcae3bafcbf6167eea5d484d35349  app-foss-release.apk
16f884f94b3f11c8b27525f5013bd390a2c0c6677e6f2e69f01b4fc70b3fbc71  wear-release.apk

Signing certificate: CN=Michael Spahr (SHA-256 571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c) — unchanged since 1.5.

🤖 Generated with Claude Code