I honestly miss these times - it sparked so much creativity when one needed to achieve something in such a limited environment.
As someone from the c64/apple][/atari generation... it was constantly amazing to see how much people could push a single device. Lots of creativity, as you say. But... we seemed to hit a wall with the whole j2me-era of "just get creative to work around things!" mindset. Because, IIRC, there were dozens of different devices that all didn't work the same way - you'd have to get really creative to get things to work in 128k, but then do it again and again and again for each target device.
There were millions of C64 units in people's hand in, say, 1986. And similar for Apple ][ units. You could be assured of a decent audience/sales/users if you ported to that platform, even if there was a lot of 'creativity' to deal with. The j2me device world always seemed a lot more fragmented to me (but maybe it wasn't?). But just saying "this runs on a java device" was different from distribution - allowing 'regular' people to get something in to a centralized store/distribution point seemed another big win for the iPhone world.
EDIT: fwiw, this made me spend a few minutes in youtube looking at old c64 and apple and Atari demos. what people ended up doing with those devices - years after they were mainstream - is still crazy to me.
The craziest ever, to me, is the following in 256... bytes. Bytes (including the music ofc, which is the whole point).
Memories by Hellmood https://youtu.be/Imquk_3oFf4
Oh it sure was! There were device specific workarounds and hacks all over the codebase.
Anyway, even including those cases it is still very far from J2ME days.
- Camera is hit and miss, even after the renewed API
- Apps randomly killed on the background
- Intents that don't launch as expected
- NDK debugging that cannot attach to the server running on the device
- Unstable GPGPU drivers
- Keyboard handling
- Perfectly working code that needs to be rewritten just because
Yeah so much better than J2ME.
> - Perfectly working code that needs to be rewritten just because
This issue is much more frequently on iOS than Android, since iOS deprecates features much faster and there is no compatibility layer between versions.
Aren't they rewriting this thing in Rust?
> - Camera is hit and miss, even after the renewed API
Give it time. CameraX is already vastly better than what we had before.
> - Apps randomly killed on the background
Up to OEMs.
> - Intents that don't launch as expected
?
> - NDK debugging that cannot attach to the server running on the device
Welp.
> - Keyboard handling
Fixed.
> - Perfectly working code that needs to be rewritten just because
?
- It does not matter if the blame is on Google or OEMs, it is still fragmented
One needs to support the home team after all.
Well, my point in the end is that even with all the issues that you pointed (some are true, some we didn't hit because we don't use those features), we still see more issues on iOS even when they're a smaller portion of our user base.
Heck, even if we got the most problematic Android phones for us (Asus budget phones comes to my mind), it is still has less issues than iOS.
https://pamartinezandres.com/running-android-tests-on-cloud-...
There's a lot of tuning needed to avoid desense issues when your device supports 3+ wireless protocols - that's why your PC motherboard comes with an external antenna for Bluetooth and your iPhone doesn't.
The problem with cross-platform development in a nutshell. Still to this day writing an Android/iOS app using PCL code is a headache
We actually worked with the BREW platform, so we only had 50 phones instead of the 300 java ones. Lol, too funny
Each phone had different implementation quirks, such as variable audio delay when playing a file, audio/image formats that were faster/slower, odd button events (some used press, some used ondown, some had no ondown, etc). A lot of our work was learning all of these quirks and implementing them into the automated porting platform.
Then the iPhone came out and started to build momentum.
I still have my old flip phone, the one with the least quirks, with some of our games on it.
1: https://en.wikipedia.org/wiki/Javaground