Blog/Software Development

Things to Take Into Consideration When Developing Android Apps in 2018

Android logo

It’s 2018 and here are some things you should consider when developing Android apps. On 17 May 2017, Google announced that it was adopting Kotlin as a high-level programming language for Android development and the usage of it has grown rapidly. The Kotlin plug-in, developed by JetBrains, the same company which created IntelliJ, is now bundled with Android Studio 3.0 and up. So is Kotlin the way to go in 2018? First let’s look what’s expected to be trending this year.

The past year was great for the app economy and 2018 is set to be even better. Mobile apps are more mainstream than ever, and businesses from all industries are diving into this market to boost existing revenue by meeting customer demands. Because development trends change a lot, it is not surprising that new, cutting-edge techniques and tools will emerge. So let’s look at the top trends to focus this year.

Augmented and Virtual reality

AR and VR mobile apps have revolutionized the gaming and entertainment industry. VR devices like Samsung Gear VR, Google Cardboard, and Oculus Rift are gaining popularity. Games like Pokemon Go and Ingress are good examples of AR games that prove that AR technology has a great potential to influence consumers in engaging and meaningful manner and is a powerful way to bring the physical and digital worlds together. The market for Augmented Reality will primarily be driven by industries such as retail, healthcare, engineering and real estate. Virtual Reality technologies will be more focused on games and events sphere.

On August 29 Google announced ARCore Developer preview – a fast, performant Android-scale SDK that enables high-quality augmented reality across millions of qualified mobile devices. In December 15 an update was released bringing new features to the platform. ARCore works with Java/OpenGL, Unity and Unreal engines and utilizes phone’s camera and motion sensors to place objects in the real world.

This is still a new concept but with great promise and potential to become the next great thing so don’t hesitate to jump the train and engage in this exciting new journey making Android ecosystem better. To learn more about AR and VR visit this site and begin developing Android apps using this technology right now.

Android Things (IoT)

In 2016 Google announced Android Things developer preview, a custom Android based OS for Internet of Things with a subset of Android API. The Internet of Things is the network of physical objects, devices, vehicles, buildings, etc connected to software, sensors, and network connectivity that enables these objects to collect and exchange data, contributing to our big data world. In other words, the Internet of Things is about the transformation of any physical object into a digital data product. Once you attach a sensor to it, a physical object starts functioning a lot like any other digital product, it gives data about its usage, location and state. It can be tracked, controlled, personalized and upgraded remotely.

As of late 2017 Android Things has gained more popularity and the last released version 6.1 in December brings a lot of improvements to the product. Although it supports only a few hardware devices like Intel Edison, NXP Pico and Raspberry Pi 3 it is the first IoT solution that uses Java as development language, while other operating systems or IoT boards are based on C/C++. Moreover, developers can reuse Google cloud platform components like Firebase in the development process.

The development process is the same as for an Android app. Developers can reuse the Android knowledge and experience. In this way, the transition is smooth. Of course, Android Things is still a developer preview so many things could change but the beginning is very promising. To start developing your first smart device like a fridge, dishwasher or just a simple controller to turn the lights on/off in your house – visit this site.

On-demand Apps

On-demand applications such as Wolt, Uber and Taxify are now very popular. They make our lives easier and more convenient, and we can use them from anywhere. Such applications give users instant access to services with just one tap and companies have more control over their product and customer demand. Generally, to create an app like Uber or Taxify, you need to develop 3 different apps. One app for your passengers, one for the driver, and one for the admin who will manage these 2 apps. Some of the most crucial aspects for on-demand apps are to perform one task and do it very well, require the least input from the user to perform that one task and a simple and yet effective UI.

Programming language statistics

Now that we know what applications will be trending in 2018, let’s see what programming language should we choose and what language is most preferred by majority of Android programmers these days. Android users are at the beginning of their own transition. With Java use peaking, Kotlin is on the path to winning the Android platform as Kotlin developer count is growing by day.

Programming language statistics
Source: Realm Report Q4 2017

Since Google I/O 2017, Kotlin’s rate of growth has jumped dramatically all over the globe. Now it has stepped onto a new plane of growth. No one wants to be left behind. Kotlin is not the only new language that has taken the mobile development world by storm – when it comes to iOS app development, many believe that Swift is the way to go, mainly because it is simple to use and offers a lot of good features. Swift might be considered the crown jewel of iOS development but things are not that clear in the Android world yet.

Kotlin vs Java – should you switch?

Kotlin is an open source language based on Java Virtual Machine and can also be compiled to JavaScript source code. Basically, Kotlin made software developers enter a New Era in Android App Development. What is also good about it is that it can co-exist with its elder sibling Java on the same project. In fact, once software developers compile their project using both the languages, it will be difficult for anyone to say which section is done using Kotlin and which one using Java. Kotlin allows software developers to use its features and ease of operation without switching to a new project or changing the code for the present project.

Kotlin will be very familiar to anyone who has used the Java programming language. At a first glance, you will see comforting elements like curly braces, classes, packages, functions and methods. But as you go deeper, you will discover that although Kotlin is based on familiar concepts, it’s more modern, elegant and with more minimalistic syntax.

For example, we can compare a typical User class example from the Java programming language with Kotlins version of the same thing.

public class User {
   private String name;
   private String email;
   public User(String name, String email) {
       this.name = name;
       this.email = email;
   }
   public String getName() {
       return name;
   }
   public void setName(String name) {
       this.name = name;
   }
   public String getEmail() {
       return email;
   }
   public void setEmail(String email) {
       this.email = email;
   }
   @Override
   public boolean equals(Object o) {
       if (this == o) return true;
       if (o == null || getClass() != o.getClass()) return false;
       User user = (User) o;
       if (name != null ? !name.equals(user.name) : user.name != null) return false;
       return email != null ? email.equals(user.email) : user.email == null;
   }
   @Override
   public int hashCode() {
       int result = name != null ? name.hashCode() : 0;
       result = 31 * result + (email != null ? email.hashCode() : 0);
       return result;
   }
   @Override
   public String toString() {
       return "{"
               + "\"name\":\"" + name + "\""
               + ", \"email\":\"" + email + "\""
               + "}";
   }
}

In Kotlin, you don’t have to type any of that. This single line is equivalent to the entire class above.

data class User(var name: String, var email: String)

We in TestDevLab use Kotlin to speed up our development and we are happy to see that more developers are turning over to the Kotlins side.

To sum up, here are the benefits of Kotlin over Java:

  • Minimalistic and simple syntax which means less code lines and boilerplate methods.
  • Easy to learn and works directly with Java code meaning that both languages can co-exist in the same application.
  • A new and growing language with a large community of developers helping each other and the language itself to evolve.

To try Kotlin in your app, follow these steps:

  • Download Android Studio 3.0
  • Open one of your existing “.java” files
  • Invoke “Code > Convert Java File to Kotlin File”

The IDE will then ask to add Kotlin dependencies into your project and convert the code to functionally equivalent Kotlin code. You can also find a lot more information on how to start using Kotlin here.

So it’s clear – Java on Android is dying and Android developers without Kotlin skills are at risk of being seen as unqualified very soon. Now it’s up to you to choose what type of application you would like to develop based on what will be trending this year.

QA engineer having a video call with 5-start rating graphic displayed above

Deliver a product made to impress

Build a product that stands out by implementing best software QA practices.

Get started today