What it Takes to be an Adept Android Apps Developer!
In recent years, the Android platform has turned out some cool developers, in India and across the world, who have the ability to think out-of the-box and create apps within no time. So, if you have the right skill sets and mindset, a career in Android app development can be exceptionally rewarding.
The increasing popularity of the Android platform has given an incredible boost to the app economy in India. The app market in India witnesses nearly 100 million downloads a month and this is expected to grow exponentially in the days to come. The rise in the app economy as well as the growing penetration of the Android ecosystem in India has led to the explosion in app development. This has opened up a sea of job opportunities for all those who wish to take the plunge in this terrain.
Highlighting the importance of Android apps developers in the Indian market, Sachin Naik, head, Product Development, Xolo, says, “Content consumption and data aggregation over smartphones is the new mantra. And Indian IT companies are building engineering capacity to support this endeavour. This provides a very big opportunity in terms of the number of job openings, especially at the entry level, for prospective Android apps developers. Globally, India is one among the top 10 countries in terms of app submissions to the Play store. There is a strong ecosystem of start-ups like Flipkart, Scandid, etc—companies that have adopted and are building mobile applications. This provides a good opportunity for senior app developers who are aspiring to take up challenging roles. Apart from these, there are opportunities with mobile chip set makers and OEMs like Qualcomm, NVidia, Intel and Samsung. Most of the above have a good engineering presence in India and are expanding rapidly.”
Why Android apps development?
We caught up with a few cool and geeky Android developers and asked them to share their experiences on how and why they chose this domain as a career option. Amrit Sanjeev is the organiser for Blrdroid (Bangalore Android user group) and the author of the news reader application Paperboy. Amrit, who currently works at Digital Insight as staff engineer, Mobile, was working at IBM as a technology architect when Android was released. “I thought that Android was an interesting OS to explore. There was some overlap with areas that I was working in at college, which involved the Linux kernel. And the open source nature of the OS made me gravitate towards exploring Android further. But I didn’t really start off as an Android apps developer. I was more interested in working on the OS,” he shares.
Vinod Kumar Desu, lead engineer at Samsung Research India, has over five years of experience in Android applications and framework development, debugging, problem analysis and porting on various Samsung Android-based handsets. He shares, “Initially, I started as a J2me mobile developer. My interest in new technologies on the mobile domain led me to explore the world of Android development and I am happy being here.”
Pooja Maheshwari, a technical architect at Impetus Technology, has been working in the software domain for more than 12 years, with wide exposure in the analysis, design
and development of enterprise mobility solutions, mobile device management solutions and Android-based custom device solutions for enterprises. She is currently involved in assessing the challenges and opportunities of embedded Android for enterprises in various verticals. She says, “I started working on Android app development ever since it made an entry into the smartphone market. Android’s market share and feature-richness makes it a versatile platform empowering the application developer to achieve complex application use cases for a rich user experience. Android’s business-friendly licence, mature application ecosystem, customisability and hassle-free supply chain commoditisation has led to a huge market of Android-powered smartphones, tablets and more. Clearly, Android is no more only a common man’s companion on a smartphone or tablet, but is also used in automobiles as in-vehicle infotainment systems (IVI), field force terminals, medical devices, retail kiosks, patient monitoring terminals, etc. Considering this, it is inevitable for any person (including me) working in the consumer or enterprise mobility domains to be familiar with Android app development.”
What hiring managers look for
At a time when the job trends in the Android market look upbeat, what are HR managers looking for in prospective candidates? Sachin Naik, who affirms that Xolo hires Android developers at the entry and senior levels, says, “The core strength for any developer needs to be programming. So candidates will be evaluated for knowledge of the Android SDK, their applications’ life cycle, object oriented programming and core Java. Though the Android application environment abstracts out the intricacies of the chip set, network and power management, the developers need to be aware of them. This ensures that the applications they create do not consume power or network bandwidth unnecessarily. It’s a plus if candidates have a basic level of understanding about the underlying system and hardware. Android application development also involves specialisation in 2D and 3D graphics design for gaming, and NDK-based development for hardware. Sometimes, we do hire for specific areas.”
Get the right skill sets
Industry pundits say it is important to acquire the right skill sets and attitude to secure a job in the Android app development market. So, what are the skills one must have to stay ahead of the curve? “From a coding perspective, the No 1 skill needed is an understanding of the OS and how apps run on it. This allows developers to write efficient code that uses less resources and works better with other apps in the ecosystem. Core Java and an understanding of Android development tools are essential to write better applications. Like any other mobile OS, memory is managed differently when compared to servers, which most people have an understanding of. It is important to accommodate that difference in the way you write code. Mobile developers have to work with the UX/UI of the application. For this, an Android app developer needs to be aware of the design guidelines, coding best practices and user interaction patterns,” says Amrit.
Challenges faced while developing a mobile app
When we asked the developers about the major challenges they stumble upon while developing an app, they came up with a long list. According to Pooja Maheshwari, some of the major challenges are:
Identifying target use cases: However good a memory and configuration a smartphone or tablet has, we must not forget that mobile applications are different from desktop applications in terms of screen size, memory, battery power and CPU cycles. The better these aspects are addressed by your app, the more it will be preferred by users. Hence, decide the use cases you want to extend to the mobile, keeping in view the following points: (a) Consider if the use case really makes a strong reason to
become part of the mobile app. (b) The information shown or taken from the user should optimally utilise the view-port without cluttering it. (c) The amount of information stored on the device should be purely from the perspective of offline mode usage. Any extra details should be downloaded from the server on a need basis and removed after use. Offline usage support: The application use cases should be evaluated from the perspective of all the key actors for the real scenarios. The scenarios highlighting off-network usage of the app should be analysed further and a plan for tackling those scenarios with identified restricted data access should be finalised. Development approach: Identify the target users of your application. If the application caters to the B2C segment, then the consumers would expect it to be supported on all popular mobile platforms. In such a case, app use cases should be analysed and, accordingly, the thin, hybrid or native application development approach should be selected. Taking care of negative scenarios: All negative scenarios should be analysed and taken care of in the app carefully. Identify the target Android versions: The Android minimum platform level should be targeted keeping in view the target Android versions for the app. The lower the platform level, the more devices the app would be able to cater to. Usually, a target Android version of >= 4.0 should provide you a decent coverage. Identify the target Android devices: The Android devices in the market today mostly fall under the category of MDPI, HDPI, XHDPI and XXHDPI. Also, the form factors available vary from 7.62 - 25.4 cm (3 -10 inches). In such a diverse portfolio, it becomes important to decide the specific range of form factors, the DPI and reference devices you would consider for your app. For a B2C segment app, you would want to target about five reference devices. Among those five, two smartphones should have MDPI and HDPI resolutions, respectively, and there should be a smartphone and two tablets with XHDPI and XXHDPI resolution, and form factors of 12.7, 17.7 and 25.4 cm (5, 7 and 10 inch). Design guidelines: The applications developed for Android must adhere to certain design guidelines as specified on the Google site. The application UI must adhere to these guidelines in order to be accepted in Google Play, and it is also generally recommended that developers ensure the app provides a uniform user experience on all Android devices. Whitelabelling enabled app: If the use cases targeted as part of the app deem to support white-labelling without the need for app upgrade on the respective app stores, then provision of dynamic configuration in the application and dynamic app behaviour (depending on the dynamic configuration elements pushed from the server) should be supported. Extensibility: App design and development should always be done from the point of view of the extensibility of the app. Sachin Naik adds, “Developing applications for higher performance with less memory and power consumption is still a challenge. The other challenge is related to Android fragmentation. With many Android versions and skins from OEMs, it is a challenge to write compatible applications.”
Show me the money!
And what does the lucrative Android development market offer in terms of remuneration? Industry experts say the remuneration depends on the skill sets of the developers. An entry level engineer gets anywhere between Rs 500,000 to Rs 800,000 per annum. For an expert in the field, it can be anywhere between Rs 20,00,000 to Rs 25,00,000 per annum.
Handy tips to stay ahead of the competition
At a time when there are innumerable Android app developers, what is the mantra to have that extra edge over others? Develop apps that solve a problem and do some research to understand what your users want, feels Amrit. “Use Android guidelines, best practices and design practices as much as possible. Another thing to keep in mind is that the user experience and UI are not aspects that one should try to deal with right at the end of the development process. Making apps look good and following standard design guidelines should be something that is worked at early in the project. This saves a lot of time re-factoring code just to fit the UI later in the project cycle,” he says.
The first extra edge is the thought and application itself. Creating an application based on a specific problem and target segment will help a lot, feels Naik. “As visibility in the crowded Android market is an issue, developers need to invest in getting the initial download numbers. There are many companies like Flurry, which help in getting the initial numbers. Once you have the critical mass, the application starts picking up traction. Developers also need to spend time in creating excellent product videos and constantly talk to users through social media. Once initial traction is in place, they must approach influential bloggers for reviews. Developers with a good understanding of design and user interaction patterns are in demand. Write apps and publish them in the Play store. That will give a clear perspective on what to improve on,” he says.