Designing and Developing Bulletproof Android Applications
In this chapter,we cover tips and techniques from our years in the trenches of mobile software design and development.We also warn you—the designers, developers, and managers of mobile applications—of the various and sundry pitfalls you should do your best to avoid. Reading this chapter all at one time when you’re new to mobile development might be a bit overwhelming. Instead, consider reading specific sections when planning the parts of the overall process.All our advice might not be appropriate for your particular project, and processes can always be improved. Hopefully this information about how mobile development projects succeed (or fail) gives you some insight into how you might improve the chances of success for your own projects.
Best Practices in Designing Bulletproof Mobile Applications
The “rules” of mobile application design are straightforward and apply across all platforms. These rules were crafted to remind us that our applications play a secondary role on the device. Often Android devices are, at the end of the day, phones first.These rules also make it clear that we do operate, to some extent, because of the infrastructure managed by the carriers and device manufacturers.These rules are echoed throughout the Android Software Development Kit (SDK) License Agreement and those of third-party application marketplace terms and conditions. These “rules” are as follows: n Don’t interfere with device phone and messaging services. n Don’t break or otherwise tamper with or exploit the device hardware, firmware, software, or OEM components.Now perhaps these rules sound like no-brainers, but even the most well-intentioned developer can accidentally fall into some of these categories if they aren’t careful and don’t test the application thoroughly before distribution.This is especially true for applications that leverage networking support and low-level hardware APIs on the device, and those that store private user data such as names, locations, and contact information.
Meeting Mobile Users’ Demands
Mobile users also have their own set of demands for applications they install on their devices.Applications are expected to Be responsive, stable, and secure Have straightforward, intuitive user interfaces that are easy to get up and running Get the job done with minimal frustration to the user Be available 24 hours a day, 7 days a week (remote servers or services always on, always available) Include a Help and/or About Screen for feedback and support contact information Designing User Interfaces for Mobile Devices Designing effective user interfaces for mobile devices, especially applications that run on a number of different devices, is something of a black art.We’ve all seen bad mobile application user interfaces. A frustrating user experience can turn a user off your brand forever, and a good experience can win a user’s loyalty for the long term. It can also give your application an edge over the competition, even if your functionality is similar.A great user interface can win over users even when the functionality is behind the competition. Here
are some tips for designing great mobile user interfaces: Fill screens sparingly; too much information on one screen overwhelms the user. Be consistent with user interface workflows, menu types, and buttons. Consider the device norms with this consistency, as well. Make Touch Mode “hit areas” large enough and spaced appropriately. Streamline common use cases with clear, consistent, and straightforward interfaces. Use big, readable fonts and large icons. Integrate tightly with other applications on the system using standardized controls, such as the quick Contact badge, content providers, and search adapters. Keep localization in mind when designing text-heavy user interfaces. Some languages are lengthier than others. Reduce keys or clicks needed as much as possible.
Mobile device hardware has come a long way in the past few years, but developers must still work with limited resources. Users do not usually have the luxury of upgrading the RAM and other hardware in Android devices such as phones.Android users can, however, take advantage of removable storage devices such as SD cards to provide some “extra” space for application and media storage. Spending some time upfront to design a stable and responsive application is important for the success of the project.