Today, Android, with a 80% market share, is the most mainstream mobile phone operating system. It runs on countless smartphones, tablets, and a variety of other devices. With this in mind, can we consider Android programming to be simple and easy?
A few years ago, Miley Cyrus was still singing country music, Justin Bieber also combs his famous "Bieber" hairstyle, Malcolm in AC/DC, while Android development is quite complicated. Android developers have a whole lot of problems with the simplest applications for Android system development.
Why? Well, dear reader, the problem is in a variety of places:
vulnerability layer out of the IDE: Have you ever tried to repair your car with a shovel? Or did you drive your grandfather's 40-year-old Yugo car to the sister? In the Android world, we have an official ide--eclipse for Android development, and it has a lot of questions to make you mad in 10 minutes. Eclipse ADT plug-ins are vulnerable, slow and unfriendly to more complex projects. We are very sick of this, praying that miracles can happen to improve all this.
system split : Gingerbread (2.3.7) occupies a considerable market share (at least 15–20%) in the Android system version. As you already know, Android is undergoing a complex refurbishment process through the 4.0 version (Ice Cream Sandwich). The system has new user interface elements, new device hardware APIs, new screen densities, and so on, which leads us to carefully optimize and write our app to make it work well for both Android and older Android versions. All of this has greatly impacted our development process and led to more bugs and crash, which extended development time.
Slow emulator : We need to test our app on different Android system versions and screen sizes, so we must buy at least 20 kinds of Android devices. Does it sound crazy? Well, we can use the emulator to solve it. But have you ever tried using the default Android emulator? It's painfully slow, and when your app is being deployed to your emulator, you're going to have to count the number of cars parked in front of your office to kill time.
user interface (UI): Android app bored dead. If you take a look at the IOS app, you'll see these apps are full of life and colourful. Everything is living, moving, moving from left to right, right to left ... And our application is dead, if we want to improve our user experience, old Gingerbread will quickly erase our hopes and aspirations.
But these are all 2013 things.
A New Beginning
The owners were changed last year, and the changes happened so quickly that you easily lost track of them and asked yourself, "When did this happen?" "More importantly, the whole Android ecosystem has improved a lot – we have new hardware (smart watches), new software (Gradle,android Studio), New systems (Android 5.0 Lollipop).
Everyone has contributed to this--google, equipment manufacturers, developers. Everyone has the same goal. Ask them the same question: "OK." Now we have a stable system, 1 billion of applications and 1 billion users-how can we further simplify and improve Android? How can we make the development process better? "This is where the open access and open source principles unfold their potential – everyone can make changes, produce improvements, and create new things."
It's hard to list all the changes, but I made a list of the most important changes (in my opinion):
1.ANDROID STUDIO
Our favorite Andorid developed IDE has finally become a stable version of 1.0. I'm not going to talk too much about why as is the best detail for the development process, because we already have two published blogs covering this topic. I would say that the Eclipse ADT plugin has not been officially approved and I strongly recommend that you migrate all your apps to Android Studio. Pay tribute to Google!
New Android Studio Logo
2.GRADLE
Gradle is an engineering automation tool that has replaced Apche Ant as the main building system for Android applications. It's very popular among Android developers. Because we can almost automate everything with it-from dividing our application into different styles, properly configuring signatures, and so on.
So he became a series of "management" tools that we used to define and maintain our engineering settings. Gradle is also the main reason for the large growth in test automation libraries and automated build servers. The Test automation library and the automated build server also bring the continuous integration (CI) development process to the Android system. But not everything is so optimistic--gradle has also been criticized for its speed of execution. Gradle is really slow on complex projects, but we hope that this problem will be solved in the next release and release.
3.LOLLIPOP
Google says Lollipop is the biggest boost to Android since human birth, and Google is right. Every part of Android has been modified and improved, but we have not yet seen how developers react to these changes. Although there are many problems with upgrading old devices to Lollipop, we expect that this will be resolved in the next release.
external--material DESIGN of 4.LOLLIPOP
There's a lot to write about this shiny new Android UI called Material Design. This is one of the most important innovations in Android in recent years, and it has completely changed the look and feel of our applications. My favorite Material Design is that it revolutionized the user experience principle – everything matters. Even small details cannot be ignored. We have to respond to each user's interactions, clicks, touches, and so on. Because, as Google says, these actions are meaningful. We have to use bold, embrace new vivid colors, use animations every step, big fonts, and simply say, we're going to give our app life. Material Design is also fully compatible with the Android ecosystem, adapting to a variety of screen sizes. This is why our applications are similar, but have different appearances on various platforms.
Material Design Animation
the intrinsic--art of 5.LOLLIPOP
Everyone is talking about design, UI, UI elements, animations, colors and so on, but we're developers, and we're interested in what's beneath the surface. And, WOW!!! The engine is really beautiful: ART, the new operating system. To record, ART is not something new-it is introduced as a minor operating system on the Kitkat. By introducing Lollipop, it completely replaces the Dalvik and becomes the main system. Because of many reasons ART is great, but I only mention two of these points:
First, it compiles using the AOT (ahead-of-time), which means that it compiles the intermediate language (Dalvik bytecode) into the system binary code. This leads us to apply shorter execution times, less CPU usage, and less battery consumption. On the other hand, the installation process is even longer.
Second, he provides multidex support. Dalvik Dex files have a major flaw-they can only contain 65,356 methods. We must organize our Android app so that the method does not exceed this limit. Although this number may seem large, you can easily exceed this limit if you count the Google Play service, which is required by almost every application, plus some external libraries. ART organizes your app in a way that breaks through bytecode and packs many Dex files into a single APK.
6.ANDROID Everywhere
Why stop here when we start developing applications for smart watches, TVs, and automobiles? If you sit in your room and drink a cup of hot coffee, take a two-minute look around you. In the next few years you may see at least five devices running Android-TV, laptops, tablets, cameras, bicycles, kitchen appliances, thermostats, cars and more. Android started as an experiment, proving that it could run on anything with a small microprocessor.
7. Improving the quality of smartphones
The smartphone is also the core device of the Android system. The overall quality of smartphones has been problematic for a long time. Older Android devices are uglier and slower than older iphones--ios usually feel smoother. This is especially true for cheap equipment produced by many Chinese manufacturers.
Fortunately, the quality and speed of Android smartphones has improved steadily, so today we have a plethora of new equipment for everyone's budget and needs. If you want to have a mobile phone, it has a high camera resolution, excellent design, powerful processor and power, this is not a problem-we all have.
My personal favorite brand is Motorola, its mobile phone-moto X, Moto G and Moto E all have beautiful lines, but also does have a very good price. At the same time, a team in Google is working on the development of modular handsets. Project Ara goal is to completely shake the Android world, if everything goes well, it may come to people.
Where does the Project Ara section go next?
away from Java
We've solved most of the problems with the IDE and the system version, and we can focus on other aspects of Android.
With all due respect, Java is the most important problem in the core of Android development. Sorry, Java Harmony, based on Java 7 or JAVA6, but it is not java. Don't let me go wrong-I believe that Java is a good programming language, but I also think it's time for us to break the routine. We need to start looking for another programming language to replace Java as the basic language for Android development.
Look at our most important competitor,-apple. They have introduced a new language called Swift, which combines the best features of several other languages, such as Python, Ruby, or C #. We have more time to develop the same app than the IOS developers, and that will make us slower.
That's why we need new things to join in. We already have some ideas about which language can replace Java. I think it's Groovy. Its syntax is very similar to Java (in fact, it's Java-based) and we have some work prototypes. Also, do not forget that it is the main language of Gradle-so why not use it for Android development? Or maybe Scala (which can quickly get new users), or Kotlin (Jake Wharton recently wrote a good introduction to Kotlin for Android)?
database management gets Better
I want to spend another problem-database management API. If you blaspheme Andoird again, take a look at our competitor-ios (the core data will be more precise)-you will see that they do have excellent methods and create database objects for GUI and CRUD methods, database change listeners. But if you look back at the default Android api--we are not far away from writing SQL commands that greatly affect our development process.
Debugging SQL Errors is not an easy task-it consumes time and we do not have a GUI to view database data. Although there are some good ORM libraries (such as Greendao, activeandroid, or sugarorm), they all have their own problems. I've never been completely satisfied with them-they're either very complex to use or they're missing something (like a database change listener). I noticed Realm for Android and Dbflow, and I hope they will solve all my problems and reduce the execution time.
Conclusion
Android has changed a lot in the last few years. It has evolved from a simple smartphone system to a powerful system that supports a variety of devices. Time will tell us what Android will become. Who knows which day we might even use it to program the fusion reactor, or to program The Terminator. PS. Apparently the Terminator is more interesting.
This is my spare time translation, a lot of mistakes, please also patience to point out, thank you!
Original link: https://www.infinum.co/the-capsized-eight/articles/the-past-present-and-future-of-android-development
The past, present and future of Android development