| 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. |