sbrl/Pepperminty-Wiki-Client-Android

Opening the app while disconnected puts it into a crash loop.

virtadpt opened this issue ยท 6 comments

I'm running the latest version from the Play Store on Android 10. I have found that, when the phone is disconnected from the Net (in airplane mode), when I try to open a non-cached page the application immediately crashes. Subsequent to that, every time I try to re-open the Pepperminty Wiki client it continues to crash until I force-kill it, re-enable data, and open the app again. I've been able to replicate this bug on a Samsung Tab A tablet running Android 9 and with the same version of the Pepperminty Wiki client.

sbrl commented

Oh my! That's nasty. I think I can guess as to why that's happening too. As the title of this repo says this app is currently a work-in-progress, so it's to be expected that such crashes occur. Thanks for reporting though!

Looks like after updating to Android Studio 4 I've now got a large number of build errors for this project, so it's going to be a while before I can even begin to look for the cause of this crash and fix it :-/

sbrl commented

Unfortunately, said build errors are actually quite serious:

e: /absolute/path/to/Pepperminty-Wiki-Android/app/src/main/java/com/sbrl/peppermint/display/PageListAdapter.kt: (36, 2): 'getView' overrides nothing

This error is in the page list, which means that the way you implement a list of pages has completely changed. I hope not, but I might have to end up starting all over again with this app :-(

sbrl commented

Perhaps as a workaround you could use the Pepperminty Wiki web interface while online, and use the export feature to export a PDF for when offline perhaps?

Sorry that isn't ideal, but unfortunately it's looking likely that it's going to take me quite some time to fix this one ๐Ÿ˜•

sbrl commented

Hrm. Thinking about this, I have some questions I need to answer.

Is Android Studio + Kotlin even the right tool for the job here? I feel like every time I come to work on this app a bit, I first have to spend a few hours dealing with upgrades to Android Studio and the Android sdk libraries before I can get ot the actual development itself. As a casual developer for Android, simply 'keeping up' with the ecosystem takes almost longer than any development work on the app itself.

I also find a lot of the Android APIs way too overcomplicated. Want a simple list of items? That's an extra child class and a large amount of boilerplate code.

To this end, I think I need to sit on this one for a bit and make a decision. Perhaps I'll do some research into alternative ecosystems I could use to develop an app instead.

I'm already using it in a mobile browser to update stuff, though I do still have the app installed for read-only access to some stuff cached locally.

As for whether or not Kotlin is the right tool for the job, I don't know. I know a few folks I could ask about it. The Android API being an overcomplicated nightmare is what kept me in systems engineering, truth be told. :)

sbrl commented

Ah, I see.

I've done a module at University on Android development, but simply keeping up with the Android ecosystem feels like lots of work.

I'd be interested to know, yeah! My goal is to know that I'm using the best development stack. I've seen Xamarin, but unfortunately development is supported on Linux.

I suspect that I'll just need to put in the hours lol :P

One thing that really bothers me is that the official Android docs recommend that you keep your class structure as flat as possible, but after doing that in this app I'm seriously regretting it, and having to now completely refactor it.....