Nine Principles to Accelerate Mobile Application Performance

Our client, a leading financial services organization, wanted to increase their wholesaler efficiency and effectiveness by streamlining everyday processes using the Pocket PC. Their primary goal was to provide real-time information to their wholesalers anywhere, anytime, thus enhancing productivity and customer satisfaction.

Architecture

The Infosys Mobility Team went through the client's business requirements and decided that the application would function best when designed to run in disconnected mode; that is, without continuous connection to the database. Users would access required information without persistent network connectivity. The platform chosen was .Net CF, with C# as the coding language.

Key Success Criteria

Requirements included:

  • Store a 15 MB database on the device.
  • Design 24 different screens, each pertaining to some functionality and/or user type.
  • Process and display data from 750 to 1000 records on-screen.
  • Achieve a response time of 2-3 seconds to render the screen with the desired information. This last requirement was written into the Service Level Agreement with the client.

Our Approach

A thorough study of our client's business requirements revealed that the application would be used by different user types. A particular user type would not be using all the screens available within the application.

In other words, the application could be made user-specific in order to improve performance. The performance issue had to be addressed in all the phases of the development life-cycle and not just in the implementation phase.

Based on our experience and successful delivery of the project, we've found nine guiding principles that accelerate mobile application performance.

The Nine Principles

1. Store user-specific data locally: During the Requirements Analysis phase, we determined the different specific end-users who would be using the application. They were categorized into different types based on business requirements. We then identified the exact subset of the backend server data pertaining to the user type, and stored only that data subset on their device. This gave us the following advantages.

  • Less memory needed for local device database storage.
  • Faster query execution.
  • Quick data synchronization.
  • Highly personalized data.