Past present and the future of android apps

[COLOR="#008000"]PAST PRESENT AND THE FUTURE OF ANDROID APPS[/COLOR]

Android is the dominant mobile operating system today. With more than 80 percent market share, it’s running on innumerable models of smart phones and tablets, as well as many other devices. Judging by this, one would think that programming for Android is simple and easy. Or is it? Some years ago, Android development was quite complex. Android developers had a lot of problems with developing even the simplest possible applications for Android OS. Initially developed by Android, Inc., which Google backed financially and later bought in 2005, Android was unveiled in 2007 along with the founding of the Open Handset Alliance—a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices.

A New Start
Everything changed last year, and changes were happening so quick that you could easily lose track of them and ask yourself, “When did this happen?” What is even more important is the fact that the whole Android ecosystem underwent many improvements, we got new hardware (smart watches), new software (Gradle, Android Studio), new OS (Android 5.0 Lollipop).

For me, the most important things are:

a. Gradle

Gradle is a project automation tool which has replaced Apache Ant, as a primary build system for Android applications. It has gained huge reputation among Android developers because we can pretty much automate everything with it from dividing our apps into different flavors, signing with correct configuration, incrementing our build numbers, defining external dependencies and much more.
Because of that, it has become a sort of an “administration” tool, with which we define and maintain our project settings. Gradle is also one of the main reasons for the increasing number of test automation libraries and automate build servers, which have brought the continuous integration (CI) development process to Android OS. But not everything is so rosy - Gradle is also heavily criticized for its speed of execution. It can be really slow on complex projects, but we hope that this problem will be fixed in the upcoming versions and releases.

b. Lollipop

Google said that Lollipop was the biggest improvement of Android OS since the beginning of mankind, and they were right. Every part of Android has undergone some modifications and improvements, but we are yet to see how users will react to the changes. We had a lot of problems with upgrading older devices to Lollipop, but we hope that this will be fixed in the upcoming versions.

c. Android Studio

Our favorite IDE for Android development finally became stable with the version 1.0. I won’t go into too much detail about why AS is great for the development process because we have already covered this topic in two of our blog posts (first and second). I’ll just say that the Eclipse ADT plug in is officially deprecated and I strongly advise you to migrate all your apps to Android Studio.

d. Lollipop On The Outside

A lot has been written about bright new Android UI, called Material Design. It’s one of the most important innovations on Android OS in the last few years, which has completely changed the look and feel of our applications. What I like the most about Material Design is the complete change of UX principles - everything is important. There is no such thing as tiny details which can be ignored. We have to respond to every user interaction, click, touch, etc. Because, as Google says, motion provides meaning. We have to be bold, embrace new vivid colors, use animations at every step, large fonts - simply said - we add life to our applications. Also, Material Design is completely adjusted to the Android ecosystem and it adapts to different screen sizes. That’s why our apps have a similar but not the same look on different platforms.

e. Lollipop on the inside

Everybody’s talking about design, UI components, animations, colors… But we are developers and we’re interested in what is under the hood. And, oh boy, the engine is pure beauty: a brand new runtime system, called ART. Just for the record, ART is not a new thing. It was introduced as a secondary runtime system on Kitkat. With the introduction of Lollipop, it became the primary system that has completely replaced Dalvik. ART is great because of several things some mentioned below:

• It uses AOT (ahead-of-time) compilation, which means that it compiles the intermediate language (Dalvik bytecode) into a system-dependent binary. This results in shorter execution time of our apps, less CPU usage and less battery drain. On the other hand, the installation process is quite longer.

• It provides multidex support out of the box. Dalvik dex files had one major flaw - they could contain only 65,356 methods. We had to organize our Android applications in a way that the method count doesn’t exceed this limitation. Although this number may seem quite big, if you take into account Google Play services (which are needed in almost every application) and a few external libraries, you could easily exceed this limit. ART organizes your application in a way that it breaks byte-code in multiple dex files which are packaged together in one single APK.

2. Increased Quality of Smart Phones

Smart phones are still core devices for Android OS. For a long time, we had problems with their overall quality. Older Android devices were much uglier and slower than older iPhones - iOS always felt more fluid. This was especially true for cheaper devices produced by a multitude of Chinese manufacturers.

3. Getting better at DB management

I would also like to point out one more problems - database management API. Take a look at our competitors - iOS (Core Data, to be more precise) - you’ll see that they have really nice methods and GUI for creating database objects, CRUD methods, database change listeners. But if you look at the default Android API - we still haven’t gotten far from writing SQL commands which greatly affects our development process. Debugging SQL errors is not so easy - it’s time consuming, and we have no GUI for looking at our database data. Although there are some good ORM libraries (like GreenDAO, Active Android or SugarORM), they all have their own problems. I have never been completely satisfied with them - they have been either complex to use or something has been missing. My mind is set on Realm for Android and DBFlow, which I’m hoping will solve all of my problems and will also have shorter execution times.

4. Conclusion

A lot has changed in the past few years for Android. It has evolved from a simple OS for smart phones and is now powering many other devices. Time will tell what will become of it.

Interesting article! Thanks you for sharing!