Mobile Application Architecture Considerations

May 4
16:27

2013

Jennifer Lewis

Jennifer Lewis

  • Share this article on Facebook
  • Share this article on Twitter
  • Share this article on Linkedin

Developing mobile applications is a tricky job. On one side, you need to satisfy the high user expectations, while on the other you have to deal with the limitations related to the devices.

mediaimage
Developing mobile applications is a tricky job. On one side,Mobile Application Architecture Considerations Articles you need to satisfy the high user expectations, while on the other you have to deal with the limitations related to the devices. There are some fundamental considerations, which, if made carefully, can make a developer’s life somewhat simpler.

1. User experience is the key – The most important factor in the success or failure of a mobile app is the response from its target audience. Mobile apps are like any other product; if you want people to use them, they need to be good. Good apps are engaging, designed for performance, and are customized to deliver the functionality your users need, on-the-go and in a simple-to-use manner.

2. Choose the right platform(s) – Once you have done the analysis of the user requirements, you need to choose the right platform. The choice of the platform is based on 2 factors – which platform is technically good for the app, and what do the intended users use the most. If you can, try and use cross-platform development like HTML5.

3. Build for performance – Focus on the performance as much as the UI. Ensure thorough testing is done for each module, and each iteration. Also, test for the impact of the app on the target device. Your application won’t be the only thing running on the device.

4. Iterative development - Use an iterative development methodology that includes rapid iterations of design, prototyping, development and continuous testing

5. Know your target device – Consider the types of devices that will be supported and its constraints. Design decisions are highly influenced by target device’s screen size, resolution, orientations, memory, CPU performance characteristics, Operating Systems capabilities & limitations etc. When choosing which device types to support, consider screen size, resolution (DPI), CPU performance characteristics, memory and storage space, and development tool environment availability. In addition, factor in user requirements and organizational constraints. You may require specific hardware such as GPS or a camera and this may impact not only your application type, but also your device choice

6. Don’t forget the integrations – If the application needs to talk to any backend systems, please ensure that the appropriate implements are in place. What data will be transferred, how will it move, and when. Security of the data is another consideration. Ensure that the device – server communication is secured and server accepts request only from authentic source (device). Encryption of the data that is stored and that is sent over the network ensures secure processing. Having data backed up in the server, in case the device is stolen, lost or destroyed is also advised

7. Optimize content – Manage content intelligently; reduce size and reformat if required (e.g. resize and crop large bitmaps). Design applications such that majority of the processes run from the server. Maximize the use of “Push” strategy for updates that are behind the scenes, delivering data before the user needs it.

8. Create layers - Depending on the application type, multiple layers may be located on the device itself. Use the concept of layers to maximize separation of concerns, and to improve reuse and maintainability for your mobile application. However, aim to achieve the smallest footprint on the device by simplifying your design compared to a desktop or Web application.

9. Authentication - Designing an effective authentication and authorization strategy is important for the security and reliability of your application. Weak authentication can leave your application vulnerable to unauthorized use.