I've made some Android apps at the time of 4.x, and the Java APIs looked actually quite messy to me. I've been recently planning to start once again working on Android app development, and it looks like most things have changed: Flutter and other new UI libs by Google, Fragments finally on the way to being discontinued, but I can't find a beginner friendly, up to date guide for Android development that doesn't rely on deprecated/outdated libraries. I'm trying to build a simple client app for a web service with common features and not much more (list, search, comments, RSS reader...), and I'd like such simple app to have an equally simple (and possibly future-proof) codebase. Is Google's new Flutter worth using or still immature?<p>Thanks HN!
There are lots of online resources for learning Android - Pluralsight, Udemy, Treehouse and going through the Android dev basics site<p><a href="https://developer.android.com/training/basics/firstapp/" rel="nofollow">https://developer.android.com/training/basics/firstapp/</a><p>Not sure what you mean by "clean". APIs and Frameworks are always evolving. You have to keep up to date and understand the main problem sets that are part of the platform (loading Bitmaps efficiently, activity lifecycle, etc.). And no Fragments are not being discontinued. You are probably referring to the guidelines to use the support Fragment library instead of the older Fragment classes.<p>I build mobile apps for a living and if you want long term stability and performance, my advice would be to go native with Java/Kotlin. If you ever want to build for iOS it's not that hard to pick up Swift/XCode - the platforms become more and more similar as they evolve.<p>There are plenty of people using RN and maybe Flutter too but all the mobile devs I know who work for clients and / or ship their own apps use Java / Swift.<p>Feel free to comment if you have more questions.<p>Enjoy!
I think learning Android in 2018 is very exciting now as Google officially supports Kotlin and introduction of new set of libraries such as Android Jetpack.
<a href="https://developer.android.com/jetpack/" rel="nofollow">https://developer.android.com/jetpack/</a>
By following newly introduced jetpack, you could avoid most of the deprecated libraries.<p>And going through the google architecture blueprints repo and sample <a href="https://github.com/googlesamples/android-architecture" rel="nofollow">https://github.com/googlesamples/android-architecture</a>
will help you understand how you should approach to your new apps development and help you get started in a right way.
Used to do Android dev - if you're referring to CLEAN as in the specific architecture I believe it's way overkill for mobile apps unless you're doing something truly complex.<p>Most apps simply present content from an API and you can simply use an MVP/MVC architecture.<p>Imo the only libraries you'd need are for http (retrofit), possibly image loading (glide), and caching (disk lru cache).<p>You can also ask on Reddit.com/r/androiddev - lots of great people there.<p>Fwiw, I've mostly moved to flutter for mobile but it is definitely not feature complete.