2010 and 2011 saw tremendous growth in the demand for mobile devices and applications. So what is it for 2012?
Business Applications
Enterprises and its employees are increasingly becoming dependent on their mobile devices to save time and multitask. With mobility penetrating all departments of an organization, app development for business’ is going to expand further and grow in 2012. Wise choice of the platform and specific business app is going to drive the growth for application developers.
Cloud and Mobility
Cloud computing can make a significant difference for mobile users as their devices offer continually improving functionality. The partnership between very powerful mobile devices and even-more-powerful cloud platforms creates the sort of opportunity that stretches the mind for application developers, and introduces new opportunities for applications that didn’t even occur to people in the desktop PC world.
Mobile Payment Apps
Payment preferences of the consumers are shifting from just online to mobile payments. Mobile Wallet services are likely to replace credit/debit cards and net banking. Organizations other than financial institutions will also invest in custom made payment applications.
Location Based Apps
The traction to develop location based applications is on the raise with all the mobile devices being able to support GPS. This is beneficial for mobile advertisers, mobile markets to offer targeted, location based content for its consumers.
In-app processing: Ensure that most of the content processing happens within the application or before sending it to the server. Optimize/compress content as much as possible to save bandwidth cost. This will help in reducing the bandwidth cost and the time to communicate with the internet.
Server-side processing: In case the content has to be processed in the server only (without happening in the application), optimize the number of times the application has to communicate with the server. This can be done if multiple data requests can be combined into a single request with multiple sub-requests. If the same can be done for returned data, then the time saving is going to be double.
Data Exchange Methods: For server/app data exchange, JSON and SOAP are suggested technologies. These technologies are effective when it can be formatted in the device and when a live data feed is required. Delimited text can also be used for returning results from a server to an app. Splitting delimited text can be quicker and easier than parsing JSON or SOAP if the data is simple.
Content Caching: Caching content on servers has been standard practice for reducing bandwidth for a long time. Apply caching techniques to app development for better performance and efficiency. This will reduce pinging servers constantly unless a live data feed is required.
Media Optimization: If media is an absolute essential in the application, then encode it to the best possible settings based on the actual content. If your content is static and manageable in size, consider including it within the app rather than via an in-app download or streaming.
The unique challenges in testing mobile applications arise from the diversity of the device environment, hardware and networking considerations, and Rapid Application Development (RAD) methodologies. Following are some of the unique challenges when testing mobile applications.
Ubuntu Linux by Canonical will also join the bandwagon of mobile application platform along with iOS, Android and Windows. Canoical founder Mark Shuttleworth says that Ubuntu based applications will have multiple personalities – different for desktops & tablets. He also states that Ubuntu would provide more advantages & disadvantages over the established choices of iOS, Android & Windows. He feels that the major competition would be the upcoming release of the Windows 8 OS which is more tablet friendly than any other platform. He adds that they are not into hardware acquisition or offering their own smartphone and hence will remain neutral to hardware manufacturers.
Shuttleworth puts forth that a developer can write an application for Ubuntu and have it run, with only minimal modification, on smartphones, tablets and desktop computers.
Only time can tell if Ubuntu Linux will be able to run the race at the expected pace to keep up with its competition!
Mobile application design and development is a tricky balancing act. High levels of application performance and usability must be achieved while working with many device-related constraints. The following are some of the important application architecture and design considerations:
Use an iterative development methodology that includes rapid iterations of design, prototyping, development and continuous testing
Architecture & UI Design: Design a layered architecture appropriate for mobile devices that improves reuse and maintainability. 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 the mobile application. Mobile devices require a simpler architecture, UI, and other specific design decisions in order to work within the constraints imposed by the device hardware. Keep these constraints in mind and design specifically for the device instead of trying to reuse the architecture or UI from a desktop or Web application.
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.
Store data on the device selectively and archive less frequently accessed data on the server. When working with the native part of the app, consider macro elements and static processing. The idea is to minimize the memory use, in terms of space and allocation frequency. Consuming all the memory is one issue, consuming less memory but continuously creating objects and destroying them is also bad.
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.
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