Development Tools
Android Studio: Google officially abandons the popularization of Eclipse and Android Studio. Although AS is not new, the update speed of Android Studio software is amazingly fast, and a large number of new features have been released. For example, it supports many annotation code prompt annotations, Live code templates, supports automatic generation of Parcelable implementations, etc. As a developer, continue to pay attention to this update list Recent Changes, which will definitely make your coding life better.
Programming language
otlin: As Swift in the Android field, it will definitely make you feel like a breath of fresh air. Abandoning the heavy Java syntax, Kotlin incorporates many ideas from modern programming languages. As a developer, accepting new languages and understanding the development trends of new languages will be more conducive to broadening your thinking and deepening your understanding of the language. In Android development, using Kotlin will not cost you anything, why not give it a try? Android development using Kotlin.
React Native: Cross-platform has always been a programmer’s dream, and there are many cross-platform solutions for mobile applications. Because of Facebook’s participation and promotion, this solution has a halo. The first app developed with React Native has been launched on Google Play. The Facebook ad management tool has been launched. I heard that the Android SDK will be coming soon, React Native.
Sky: Similar to React Native, it uses the Web development language to develop mobile platforms. Although this is just an attempt, it was launched by Google itself. Especially after losing the lawsuit on the use of Java language, this may have some problems. As for, domokit/sky_sdk.
Development Mode
Dagger 2: Dependency injection is not a new technology, but using it on Android is indeed a new attempt. Android Apps are increasingly being built as serious large-scale projects, and many technologies used in large-scale server development have been applied to mobile development. Android development is divided into modules and uses Dagger to loosely couple modules. What's particularly noteworthy is that Dagger 2 is now taken over by Google itself.
MVP: Because Android does not strictly distinguish between business and interface, once the project becomes complex, it is easy for the code to fall into chaos. Nowadays, the Android development community is increasingly discussing the MVP model, and feels that MVP is very suitable for Android APP development.
RxAndroid: Functional Reactive Programming is not new. RxAndroid brings RxJava to the Android environment. Many times, you can think of writing Android programs as the processing and flow of data. If you change your thinking about programming, problems that once seemed very difficult can be solved elegantly in an instant.
MVVM: This is because DataBinding has been officially supported, bringing MVVM directly to Android. Data binding is already very common in Windows WPF and the Web. It is very efficient in development efficiency, allowing you to only care about your data and business. This is undoubtedly a very significant impact on Android development.
Plug-inization: For large-scale Android projects, many apps have begun to use plug-ins to build relatively independent functions in modules.
Hybrid: Develop apps completely using HTML 5, which is not mature yet. However, the compromise solution is very suitable in many cases. A typical example is WeChat. Most of the information display is done through H5. At the same time, through the Hybird method, the Web and Native are connected, providing the web page with the ability to access local resources.
UI Design
Material Design: It has become popular all over the country. There are too many discussions in this area, and various support libraries are available, especially Google’s official support library Android Design Support Library.
Sketch 3: This is a design tool specially designed for designing mobile UI. As a developer, you don’t need to know the complicated use of PS, you can also do very professional design: https://designcode.io/sketch
In this way, I feel that there are still many things that have not been mentioned. Technology is developing very fast, and we may not be able to keep up with every detail, but we will find that these new technologies are connected in many places. For developers, it is very rare to be able to maintain curiosity and interest in new technologies. Participating in new technologies is technical accomplishment, and leading the development of new technologies is a master.