GnuCash-Pocket/gnucash-android

RFC: product vision & long-term plan

hades opened this issue · 11 comments

I would like to solicit opinions of Gnucash users and the maintainers of this repository, on what the Android (+maybe iOS in the future) app should be, and any thoughts on a roadmap.

I've read #8, and I've seen a number of great ideas for technical improvements, however not so many thoughts on the product itself.

The main question to me is: what is this app for? I can see three options:

a. The app provides a way to enter transactions "on the go", then sync them with Gnucash desktop.
b. The app is a "mirror" for the Gnucash desktop, providing access to the books you already have, and offering a subset of features of Gnucash desktop.
c. This is a fully functional accounting app, with an option to sync with desktop accounting software, such as Gnucash.

Personally, I'm using Gnucash a lot, and I'm very interested in what Gnucash Android can become. I would like to help with tech maintenance work, and also to build new features; however, I think at this point agreeing on a road map would be necessary before embarking on big projects.

Looking forward to your comments!

I think a MVP (i.e. option a) could be achieved just by adding this feature #132.

However I'd like to see GnuCash Pocket continually move towards feature parity with the desktop version. Being written in a modern language with support for fresher UI like Material Design I can see this app replacing the desktop app for many people who prefer it's UX.

If the app becomes a it will be enough for me (I prefer to use computer instead of phone's little screen). If this is achieved we can still aim higher, b or c, and fallback to a if anything goes wrong.

So, do I understand you correctly, that right now all your use-cases are covered by option "a", but you would not mind exploring the possibility of having an app that implements an option "b" or "c", even though right now you don't really have any use for it?

Partially yes. I wouldn't say I "don't really have any use of it". If the app could sync and save to the same file GnuCash uses it would be much easier - all TXs entered on the go would be immediately saved, which is more convenient than exporting from mobile and importing to PC :)

Gotcha. The way I see it, this is an improved version of option "a" still, i.e. this would still be an app to enter transactions, it's just that the sync experience is improved.

Which, incidentally, is why I started this research in the first place: I want to have an "append only" companion app that can automatically append transactions to Gnucash without manual labour :)

There is also a discussion thread on KMyMoney forums, where a smartphone companion app is being discussed: https://discuss.kde.org/t/remote-access-or-mobile-phone-app-for-kmymoney/6436

@hades You can use Python to insert transactions directly (Simon said on GnuCash IRC https://code.gnucash.org/logs/2024/06/20.html). Maybe this is a point to start research, too? When I have time I'll ask what Simon uses in particular.

@Kaligula0 Thanks! I'm currently building a prototype direct sync solution where a modified Gnucash Pocket talks to a Python app that reads/writes directly from/to a Gnucash database. Once I have it working decently I'll update this issue for anyone who's interested.

hello @hades, as @Kaligula0 already stated, the main goal is to provide a mobile companion for entering transactions on the goal (a).
see also codinguser#913 (comment)

Clarify the Scope

According to Google Play reviews, most people use the app to enter transactions on the go and then import them to the desktop program.
Therefore the product has to be completely compatible and integratable with GnuCash.
One could also use it for simple standalone accounting, but there are better alternatives for that.
Also it is not an Android port or mobile version of GnuCash. There are noway near as many features in the app.
That might change some day, but strongly depends on what the users want.

and also #8 (comment)

@djbrown the easiest way to enter transactions on the go is via storing Gnucash data on a database server: mysql/mariadb or postgress. I created a feature request for this: #173 - Currently I use mariadb with gnucash desktop and enter on the go with gnucash-web

Would gnucash pocket speaking to an API built on top of piecash2 be a good solution? It could be FastAPI or Flask based. Maybe the app should cache the database and work offline and then up sync new transactions to the database when online.

@Kaligula0 Thanks! I'm currently building a prototype direct sync solution where a modified Gnucash Pocket talks to a Python app that reads/writes directly from/to a Gnucash database. Once I have it working decently I'll update this issue for anyone who's interested.

@hades I am interested. Please share.