Hacker News new | ask | show | jobs
by richardwhiuk 1950 days ago
I struggle to understand why there hasn't been a release for 1.5 years, especially with a ~full time dev.

I definitely struggle to udnerstand why IMAP IDLE is critical for a release.

Edit: Oh, probably a minSDK force - i.e. the cost of standing still in mobile development.

2 comments

> I definitely struggle to understand why IMAP IDLE is critical for a release.

The functionality is present in the latest stable version, but needs to be reimplemented in the new version. As a user I would be upset if the app was updated and that feature taken away, even if it was only temporary.

Which leads to the question about why it was removed...
Something to do with issues with newer Android no longer permitting the background connection to remain open for battery saving purposes, I think?
I am not using the beta version of K-9. I was able to make it work mostly correctly on Android 11 by setting it to "Not Optimized" in the battery power permissions. That will allow it to run in the background. It seems to be able to use IDLE and to also run its periodic polling that way. Otherwise I would open K-9 and it would be hours out of date.
What's a minsdk force? I know what minsdk is but the sentence doesn't compute for me

Edit: oh, randomly spotted this:

> A major factor was the API level requirement by Google Play. It required us to make changes to internals of the app in order to be able to publish updates via the Play Store.

I don't get the problem. Why not do a release? If google doesn't want the hard work and updates yet, fine, you can still tag a new release and people can use f-droid, download the apk, whatever right? (I'm using it via f-droid, thought most people would be doing that since it's an open source client with graphics from the 2009, the kind of thing you only use as foss fan).

In order to release a new version to the appstores, both Google and Apple require a certain minimum version for the app to be compiled against.

Historically, Apple gives you about a year before you have to compile against the latest SDK, and Google gave you a lot longer.

However, recently, both have become more aggressive about requiring new versions to be compiled against the latest SDKs.

Thus you can't do a "proper" release without moving up to the latest SDK.

Compiling against the latest SDK often breaks things, especially for an app which does a lot of things in the background.

This is part of the "cost of staying still" in mobile app development, which is both hard to predict, and can be very expensive.

Does this also mean older devices are forced into obsolescence? Since this is minsdk and not maxsdk it sounds like it, but there's still many apps that run on my 2018 device with Android 7 (and even 2012 device with 4.4) so that can't really be.
No it doesn't. It's about targetSdk, not minSdk.
Sorry, yes, I mean targetSdk not minSdk - though in practice they are linked.
No, they aren't linked. Maybe you are mixing it with compileSdk, that and targetSdk are usually linked but minSdk is almost always considerably behind.
Well anyway older devices are indeed forced into obsolescence, at least OS-wise.