nicktylah/gnucash-mobile

Request: Android binary or Play Store integration?

Opened this issue ยท 17 comments

I would love to use the Application on Android as it does exactly what I need.

However the App ist not available inside the play store, or is it and I am blind?
If not, would it be possible for you to add an .apk of the Application to the Releases you generate for manual installation?

I am not very experienced in using build tools for mobile platforms, which is why I have not tried to build it myself yet.

Thanks in advance for your feedback

Thanks for your comment! I could definitely upload the application to the play store, but before I do that I'd recommend you check out this Android app.

Full disclosure, I used to use an Android phone and this app did most everything I needed. Then I switched to iOS and had to confront the lack of an equivalent app, which led to the creation of GnuCash Mobile here.

Let me know if that ends up working for you.

Thanks for your answer.

I used the mentioned Application in the past, but for ones I really don't like its overloaded UI, and it is kinda bothersome to create new Transactions in it. And for the second, and most problematic reason, since I updated to Android 12 the Application won't run anymore.

The GnuCash Mobile App was last updated on 2018-06-15, so an Update is rather unlikely.
So I had hoped to solve both of my Issues by using your App ^^

Fair enough! I'll see what I can do for Android.

Hello @nicktylah thanks for starting this project! I'd love to help here! I am looking for a build guide/contributer guidelines. I'd love to make this more accessible for Android users.. please let us know what we can do to help!

Sweet! I'll put together a contributing guidelines doc soon. For now, since I'll need to be the one managing the Play Store listing, etc. I've gone ahead and published an Android version of GnuCash Mobile on the Play Store. It's in the process of rolling out, but keep your eyes peeled for it. Hope that helps!

Just an update, I think it's still under review by Google Play. Not sure what their turnaround time usually is.

Hey, just saw the App made it to the PlayStore ^^

Thanks for the Android Release ๐Ÿ‘
When you come around to setup a little contribution Guideline I would love to help on the Android side as well :)

I came around to test it a bit and here are my findings.

Findings

Not Launching Correctly

Launching the App reports "App not installed" and it won't launch. (Screenshot 1)
Going into App-Info and pressing Open, will however start the Application. Not sure why that is. (Screenshot 2)

Importing Accounts worked without a hitch ๐Ÿ‘

Faulty Account view

Looking at the Accounts just displays a big grey box. Maybe UI incompatibility between iOS and Android?
(Screenshot 3)

Selecting Favorit Accounts and creating a Transaction worked as well ๐Ÿ‘

Export not working

When storing the new Transactions it defaults to path /On My iPhone/GnuCashMobile/. (Screenshot 4)
I could not locate that folder nor could I find the Apllications folder.
Maybe a error because the install is corrupted?

Instead of a default export path a selectable Path would be greatly appriciated.

Deleation

It is really easy to deleat Transaction or even the Account structure by once clicking on the respective entries in the sidebar.
In my opinion it is a bit too easy, I could Imagine that I pressed it by accident and remove my last transactions.

An Are you sure? Dialog would be nice.

Screenshots

Screenshot 1

Screenshot_20220205-104209

Screenshot 2

Screenshot_20220205-104226

Screenshot 3

Screenshot_20220205-010032

Screenshot 4

Screenshot_20220205-005710

Thanks for the report! I'll do my best to reproduce the bugs, but sadly I'm limited to an Android emulator for development. That said, there are some obvious iOS-specific things that should be generalized that I can tackle.

Hey @Julez404 & @nicktylah

I just checked it too!

Not Launching Correctly

Launching the App reports "App not installed" and it won't launch. (Screenshot 1) Going into App-Info and pressing Open, will however start the Application. Not sure why that is. (Screenshot 2)

I can confirm this issue, Opening the app from App-Info worked for me!

Importing Accounts worked without a hitch

I couldn't import here :(
Does your app accept .gnucash format or expect a csv?
I just read the README, directly reading the .gnucash file could be a a nice feature!

I am not sure if you've thought of this, but I keep my accounts synced with syncthing, it simply keeps the file synced across devices. If the app simply reads and writes to a gnucash file on disk it would make it compatible to any setup the user might chose to have. Other apps especially the old gnucash mobile app does not do this and stores an instance of the app in a db.

Not sure if there are technical hurdles here, but I think it could be possible.

Thanks for the report! I'll do my best to reproduce the bugs, but sadly I'm limited to an Android emulator for development. > That said, there are some obvious iOS-specific things that should be generalized that I can tackle.

A quick build guide to help you test would be nice! I tried building the app with flutter but faced some issues.

An update on testing the apk built directly from android studio..
The app does not show the error "app not installed" when sideloading the app or through testing through adb and works just fine.
Specifically build/app/outputs/flutter-apk/app.apk @nicktylah

This could mean something wrong with the apk you packaged? Or something wrong when publishing on playstore?

Hey there, I came around to tinker a bit for myself.

@aakashhemadri
I can confirm, sideloading the app (/build/app/outputs/flutter-apk/app-release.apk) does not show the mentioned startup error where it was only possible to start via AppInfo.

@nicktylah @aakashhemadri
The missing account tree, seen in Screenshot 3, seems to be a format exception.
I guess it is related to the number formatting as my locals are from Germany, so EUR instead of USD. Additionaly our numbers are formatted like 1.234,59 instead of 1,234.59. This is a guess at the moment, I am still looking into it.

@nicktylah
In addition, I would add a share button to the Export Page, so exports to other applications are possible.
This would allow to directly export it to e.g. a NAS application so the remaining import to gnucash can be automated.

I would like to contribute these changes so the Android App becomes (more) usable.
I hope you come around to give a bit of feedback, if these changes are welcome.

Thanks for the reports everybody! This is the first app I've published to the Play store, so I'm not sure what's going on with the "app not installed" issue. Nothing seems to be amiss in the Google Play developer console as far as I can tell. Sadly I don't have an Android device right now to test the production version from the play store, but I have access to a Chromebook I might be able to test things with.

Faulty Account view

Looking at the Accounts just displays a big grey box. Maybe UI incompatibility between iOS and Android?
(Screenshot 3)

@Julez404 Do you think you could provide the .csv you're using, or a simplified example? I'm unable to replicate that on my end. I'm using the Android emulator, but my example account CSV displays just fine (probably because it doesn't throw any formatting exceptions as you say).

In addition, I would add a share button to the Export Page, so exports to other applications are possible.
This would allow to directly export it to e.g. a NAS application so the remaining import to gnucash can be automated.

I'd happily review any pull requests if you'd like to add features like that!

My installation of Android studio has been unable to run a virtual device for a while, but I'm working on fixing the export issues on Android.

Faulty Account View

@nicktylah TBH I would prefer not to do, but I don't think that changes anything as far as debugging goes.
I just tested my Account Tree inside the emulator and it's working fine. It only starts to fall apart on my Pixel Device itself. The emulator was set to english by default, changing the system language to Deutsch/DeutschIand inside the emulator reproduced the UI error. So the primary device language seems to change to locals settings.

The mentioned FormatException is thrown in File list_of_accounts.dart:48

Exception has occurred.
FormatException (FormatException: Invalid Number: 0.0)

Using a USD Account export provides the same error, so working on devices with english system language, but not on a german language devive.
Just to make sure here is the USD test account tree with which I am able to reproduce the error inside the emulator:
gnucash_usd_export.csv

Share Integration

Thanks for the feedback, I will open a PR in the near future ^^

Ah if it's as simple as changing the default language to replicate then I should be able to work on it.

Well, the app you originally linked to at Play does not really fit what a privacy minded person would use for personal things (I see Crashlytics, Fabric, Firebase etc). As your app here comes without those proprietary trackers (and even without any network request at all, yay!), would you consider attaching an APK to your releases as well โ€“ for those outside the walled garden?

Just updated the 1.0.8 release to include the apk ๐Ÿ‘

OK, then let's get this online: should show up here at around 19:00 UTC tomorrow (with the next sync โ€“ sorry, work kept me busy so I didn't make it in time for today's sync). If you like what you see there, be welcome to use a badge to link there e.g. from the Readme.

If you plan for a listing on F-Droid.org itself, you'll need Fastlane Structures established in your repo here โ€“ which I can also recommend you in general. That way you can maintain all metadata (descriptions, screenshots etc) yourself and are in full control of how your app is being presented. My updater will fetch that along with the APKs at each release, F-Droid will do the same โ€“ and you could even use the Fastlane binaries to deploy your app to Play Store if you want to. I can provide you a "starter package" from what you find with my repo, just let me know if you want to have it and I make a PR.

Enjoy!