4 ms·
Android seems about the same to me as desktop Windows/Mac development in all of those regards. * Married to the vendor's IDE: You technically can build without
by dfabulich 2y ago
Android seems about the same to me as desktop Windows/Mac development in all of those regards.
* Married to the vendor's IDE: You technically can build without Android Studio, Visual Studio, or Xcode, and it's educational to learn how to build apps without the IDE, so you can debug tricky compilation issues, but for day-to-day development, you've pretty much just got to use the vendor's IDE. `gcc hello.c` will not get you a running Windows Forms app, a running AppKit app, or a running Android APK. (`javac Hello.java` won't even get you an `.exe` file!)
* Complex proprietary tool chains: The vendors' build tool chains do a lot of tricky work, including link-time optimization, obfuscation/minification, and app signing/notarization. You technically can ship an app without LTO and without a signature/notarization, but good luck getting ordinary users to install it.
* Crufty legacy APIs: Windows and Android have a lot of those. Mac has marginally fewer of them, but that's because Apple is more willing to break backwards compatibility, which is its own kind of hassle. It requires a lot of domain expertise not to accidentally use a bad legacy API on desktop, and Android.
* Spotty documentation: All the vendors have spotty documentation. Some parts have excellent documentation, some parts are nearly undocumented, and some parts have outdated/misleading documentation. All of the platforms are popular enough that third parties have written a lot of great blog posts, videos, books, classes, etc. (As a professional software developer, your company should offer an education budget so you can pay for good educational materials.)