9 ms·
As an Android developer on apparently one of the N biggest apps there are, lots of hard truths but also lots of 'I like things this way so I don't think things
by blisse 6y ago
As an Android developer on apparently one of the N biggest apps there are, lots of hard truths but also lots of 'I like things this way so I don't think things any other way is fine'. It's problematic and in an ideal world we could do so much better, but as they mentioned, there's a lot of cruft and backwards compatibility. Have you tried writing a Win32 app?
---
AndroidManifest.xml vs code declared, the manifest in reality is very different. An "app name" isn't really something useful programmatically. Orientation can be handled programmatically, but you can declare app-wide support for what kind of orientation you support in the manifest.
One syntax is really a style preference. I don't mind using different tools for different tasks, and the manifest is very specific to a specification for the app store, not on-device.
Java vs C++, meh, I think the main idea is that Java is a better language for most people than C++. Especially whatever C++ version existed when Android first came out.
Low-power is kind of a bad argument and pre-mature optimization without real metrics. It's been pretty clear that the reason phones drain the battery is because of the screen, and background jobs hogging the CPU, not running the JVM. Maybe running some compiled binaries would be more performant, but laptop batteries kind of also suck.
Keyboards, yeah, a bit weird, but the idea is that you almost never need to interact with the keyboard, you interact with elements that the keyboard injects into, since people can swap and use custom keyboards and other ways to enter text like dictation or accessibility modes.
Very true that all of this is not newbie friendly though. Shockingly bad really. Especially the status bar APIs.
Save State and process death is also a hilarious one that's underdocumented and confusing to new (and experienced) developers alike.
- quelsolaar 6y agoIts not an argument of Java vs C++, its a platform trying to force their language of choice on to everyone, thinking existing code, experience, and workflows doesn't matter.
- pixelhorse 6y ago> Have you tried writing a Win32 app? Yes, and I still would prefer that over Android. There are some ugly parts, especially if you're not used to writing C, but it predates Android by decades and is extremely stable. > Java vs C++, meh, I think the main idea is that Java is a better language for most people than C++. That doesn't make Java it a good choice for a foundation. C++ wouldn't be a good choice either. The right choice is something like C. The 99% of programmers that never touch C still rely 100% on the 1% that do. > Low-power is kind of a bad argument and pre-mature optimization without real metrics. There's no such thing "pre-mature optimization" when rolling out a major software platform. You can't fix fundamental performance issues after-the-fact. The first Android devices were borderline unusable, because of too little RAM. Today, Android devices have twice as much RAM as iOS devices, and generally poorer battery life. Fast garbage collection requires twice as much RAM. RAM uses battery. All of that was entirely predictable.