The popularity of Android has created a humongous demand for applications. As developers, it’s our responsibility to ensure that users don’t have a bad experience while using our apps.
Here are a few Android Best Practice Development tips that we follow to ensure that our consumers/ clients get the optimum experience from the products.
Listen to Your App Users
It’s a good idea to start thinking of your app’s quality as it relates back to your users and the most obvious way to listen to users is by reading and addressing comments on your app in Android Market. Although the comments aren’t always productive or constructive, some will provide valuable insight on aspects of your app that you may not have consciously considered before.
Responsiveness of UI
Nowadays it’s a major fact for every mobile developer. One way to improve UI performance is to minimize the complexity of your layouts.
For example, the screen sizes and resolutions of different devices varies and this becomes an important factor in determining how an application appears to the user. The development teams must know which customer category the company is targeting.
Improvising App Quality
A better app can go a very long way: a higher quality app will translate to higher user ratings, generally better rankings, more downloads, and higher retention (longer install periods). High-quality apps also have a much higher likelihood of getting some unanticipated positive publicity such as being featured in Android Market or social media buzz.
Quality matters a lot. It’s not only about MVP, MVVM, MVC, MVI, Redux or whatever your preferred way is. Some most popular code analysis tools are Lint, PMD, Checkstyle and Findbugs etc.
- Lint: The lint tool checks your Android project source files for potential bugs and optimization improvements for correctness, security, performance, usability, accessibility, and internationalization.
- PMD: PMD is another open-source code analysis tool that analyzes your source code. It finds common flaws like unused variables, empty catch blocks, unnecessary object creation and so on.
- Checkstyle: It is an open-source tool that is actively maintained by the community. This means you can create your own custom checks or modify existing ones to suit your needs.
- Findbugs: Static code analysis tool that analyses Java bytecode and detects a wide range of problems.
No doubt testers are as important as the developers because they play a major role in achieving the level of quality developers want to see in their mobile apps.
This is the most important part of application development. I recommend running unit tests on the JVM because it’s much faster than running them on the Android device itself or an emulator.
The performance of the Android SDK emulator, particularly the x86 variant, has improved markedly in recent years and is now adequate for most day-to-day development scenarios. However, you should not discount the value of ensuring your application behaves correctly on real devices. Of course, testing on all possible devices is not practical, so rather focus your efforts on devices with a large market share and those most relevant to your app.
Some best android emulators are,
- Android Studio’s Emulator: Android Studio is the Google-approved development IDE for Android. It comes with a bunch of tools to help developers make apps and games specifically for Android. As it turns out, there is also a built-in emulator that you can use to test out your app or game.
- AMIDuOS: This is a relatively newer Android emulator for PC. AMIDuOS runs very well for multiple purposes. Most of its features are for productivity rather than gaming. That makes it a good option for office use, homework, and similar tasks
- Andy: It provides seamless sync between desktop and mobile devices. Connects Win/Mac with Android apps for launching, push notifications and storage. Andy breaks down the barrier between desktop and mobile computing while keeping a user up to date with the latest Android OS feature upgrades.
- Blustacks 3: Bluestacks is the most mainstream of all Android emulators. There are several reasons for that. For starters, it's compatible with Windows and Mac. It was one of the first ones to work reasonably well.
Proguard is normally used on Android projects to shrink and obfuscate the packaged code. Whether you are using ProGuard or not depends on your project configuration. Usually, you would configure Gradle to use ProGuard when building a release APK.
Understand Memory Limitations
Mobile devices don’t have the high memory limitations that desktops have. In mobile programming, you must learn to code with smaller memory limitations in mind. If you carelessly use memory on an Android device, you run the risk of your app crashing due to “out of memory” errors.
Security and Privacy
It is very important that your application should be secure and not only the application, but also the user data and the application data should also be secured. Always read through the permissions to make sure they make sense and correspond to what the app actually does. Always used the secured network and try to avoid using public WIFI.
Adding text as String resources is always useful in the long run especially when support for new languages need to be added.
Always Use Launcher Icons in mipmap
When building separate apks for different densities, drawable folders for other densities get stripped. This will make the icons appear blurry in devices that use launcher icons of higher density.
Since mipmap folders do not get stripped, it’s always best to use them for including the launcher icons.
Proper use of Activity Life Cycle
The Activity instances in your app transition through different stages of their lifecycle. The Activity class provides a number of callbacks that allow the activity to know that a state has changed: that the system is creating, stopping, or resuming an activity, or destroying the process in which the activity resides.
Proper way to use Drawable folder
Always use shapes and selectors instead of images as much as possible. It will reduce APK size.
Database Android provides full support for SQLite database. Android does not provide JDBC API for working with the database. JDBC is a resource heavy system and is not suitable for a mobile phone or similar devices with limited power and resources. That's why Android chose a lightweight method. Android also provides wrappers around SQLite database and its APIs.
For more information about Android App Development, please drop an email to email@example.com
What Oditek offers
Refer our Skills page:
We had a tough deadline to launch our .Net based application that processes a lot of data, and got very frustrated with our development agency we hired. Fortunately we got Oditek, and they took over seamlessly the product development, launched the app & continued feature development. Just awesome!
They were very attentive to our needs as clients and went out of the way to make sure our projects were taken care of. They were always able to get projects done in the specifications we requested. They are passionate about getting things done; I would definitely recommend them to lead any IT projects.
OdiTek has been very impressive in delivering a C++ based network security product migration from Linux to Windows. Honestly, we didn’t expect the speed and competencies to get the migration project delivered absolutely on time as the existing product was complex. Technically team is very experienced.
I worked with OdiTek on few high profile banking application projects. They did a fantastic job with web applications & manual testing on the VAS apps for two leading banks of UK that included rigorous UAT phases. I recommend them for any application development where security matters.
OdiTek is our extended team who works on our key software projects. They are dependable, good in collaboration and technically very much to the level what we expect a global team should be. They had transformed our web applications, CRM and added mobility to existing business platforms here.
It's been more than 4 years now that we are working with OdiTek on our cloud based web product development. It's been amazing working together, they are very competent on designing scalable, high performance apps. Their technical support is outstanding to say the least, even at odd hours.
I am a fan of Team OdiTek since 2014 and have worked on many product development projects together. Specially worth mentioning their deliveries on VAS Banking web application development & manual testing services for Smarta, UK. They are highly skilled & a professional team to work with.
OdiTek has been working on our Integrated Web-scale Mobile Platform i.e. Optimal Health since 2014. They are very professional and takes care of the requirements meticulously. They are technically very sound and sincere in ensuring quality & performance. Wonderful working with them!
You can trust the team, with minimum supervision you get the work done. They are honest, professional & committed to schedule & quality. I had been successfully running 3 business applications designed, developed and maintained by Oditek developers. It’s been a pleasure working with them.
OdiTek has been working in custom software development, including services for test automation. Many of them have worked with me in 2009-10 when I was R&D Manager in NetHawk India. They have great enthusiasm & a passion to excel in bringing customer success. Their work has been very impressive.
It's amazing to see these guys are turning their experience into a global delivery excellence at OdiTek. I am sure their past large scale product development experience will be handy to product companies. I would always recommend Oditek for software development, especially performance-driven solutions.