Writing Better Mobile Apps: 4 Things to Consider
By Dumitru Lupanciuc
While working on multiple large-scale applications I’ve noticed that increasingly less attention is put towards the quality of mobile apps and the final user experience. New and emerging mobile markets forced many businesses to create their own apps to meet customer demands. A lot of top-down decisions being made for products on design, architecture, user flows or development tools often lead to unsuccessful results. These poor choices stem from their focus on using the least amount of cost and resources as possible, and lack of expertise in building a good quality product that actually works.
Even though mobile devices have improved a lot in terms of performance, in 2017 they are still considered low-end devices with limited resources (CPU, RAM, battery life etc.) compared to desktops, requiring a more diligent approach to optimize its performance.
Here are a few key points to consider while developing mobile apps which may improve the final product and user satisfaction:
1. Create mobile specific APIs.
Many companies try to reuse their existing web API for mobile projects which very often negatively impacts the final performance of the app. A web API response is often too large and contains unnecessary fields that mobile apps don’t need. You end up with an app that uses more memory space, bandwidth and processing power, which drains the battery much faster.
A mobile phone has a relatively small screen size and in many cases including high resolution images and videos used in web are not necessary. It leads to longer loading times and will appear laggy to your users.
2. Quality code matters
Pay attention to the quality of your code. Just because clients and users don’t see the behind-the-scenes code you develop, doesn’t mean you should overlook it. Very often the product owners may prioritize speed of development above everything else, but this only achieves short term success, and over time it’ll lead to bad user experiences. The app could get harder to maintain as you build on-top of existing code, making it more costly to maintain in the long-run. It can result in more crashes due to edge cases or unanticipated uses of an app. At TribalScale, we practice Extreme Programming and are constantly trying to ensure high quality code through pair programming, code reviews, unit tests and weekly QA sessions.
3. Create platform specific UI/UX experiences
Oftentimes I see certain companies with identical UI and UX for both their iOS and Android applications. These platforms have different experiences and require a specific approach, making them identical will confuse users since they are used to a certain OS flow. For example, Android phones have a back button while an iPhone doesn’t, which calls for different UI and UX flows. Always use the best practices and guidelines of a certain platform unless you have enough experience and knowledge to create something new.
4. Avoid mobile-friendly web apps
Always choose native development over mobile compatible web apps. The only exception is if the mobile app doesn’t have a lot of features or major functionality. Due to fast development and cross platform support, many companies chose mobile web as a solution for their mobile app. Little do they know, it can result in a poor app performance due to CP overload during web rendering and a non platform specific user experience.
The lesson here is to focus on the final product, not to take shortcuts and ensure you tailor your development efforts to the appropriate platform be it web, iOS or Android. Always put the user’s needs first, in the end they’re the reason you’re building the app.
Dumitru is an Agile Software Engineer at TribalScale with an extensive background in Android development, previously Lead Android Engineer for Video on Demand apps at Bell Media and Agile Engineer at Pivotal Labs.