DesigningMobileApplications Anand Naik Development Manager, Cross Country Infotech email@example.com
Slide 2AbstractThis document discusses the architecture of typical mobile applications. It also providesa comparison between Web and mobile applications. Designers and Architects canbenefit from the design guidelines presented in this document. The document does notdiscuss nontechnical issues, such as issues related to resources or developmentmethodologies, which are faced during the development of mobile applications.
Slide 3Introduction• The development of mobile applications is not new. The concept is at least a decade old. However, in the recent past, it has grown at an enormous speed.• The upsurge of smart phones and mobile operating systems are some of the factors that drive this growth. In addition, the developer community is encouraged to see direct access to customers through various channels such as AppStore, marketplace, and other channels.• The software industry has matured to a great extent, but the area of mobile application development still opens up loads of issues.• Herds of Web application developers are jumping into mobile application development with the baggage of their Web development experience.
Slide 5Mobile Application Architecture and Design Mobile User UI Components Event Handlers Presentation Business Layer Controller Native Business Service Business Controller Orchestration Adapters Layers Native Data Access Adapter Controller Local Services Native Data Access API Adapter Native OS Mobile Ecosystem Local Data Storage/Cache Services Deployed on Application Server
Slide 6Presentation Layer (Contd...)• The presentation layer primarily has two main components—the UI components and the event handlers.• The UI components are visible to the mobile user, for example, a text box.• The UI components generate events when acted upon by the user.• These events are caught by the event handlers for further processing. The design of the presentation layer is important for a rich user experience. Web Application Mobile Application Fixed layout orientation Portrait or landscape layouts Fixed set of resolutions/screen sizes Variety of resolutions and screen sizes No local caching Local caching Enough real estate available Limited amount of real estate Standard input methods New & cumbersome input methods Consistent network availability with enough bandwidth Inconsistent network availability with limited bandwidth SSL and encryption support Some old devices may have issues Continuous power supply Uses battery power
Slide 7Presentation LayerDesign Guidelines If your application needs to be portable across devices, it Consider designing for touch screen and stylus-enabled devices. should use platform-independent technologies such as Titanium and PhoneGap. Keep the rendering logic separate from the business logic. Design your application to fit the portrait and the landscape Validate the input and handle validation errors correctly. layout. Avoid using references to external resources such as images The real estate available on the mobile has a direct relation because it makes a network call and thereby consumes network with user experience. Design your applications to use this bandwidth. scarce resource. Decide the target resolutions and operating systems and fit the layout accordingly. Because complete URLs are not usually visible, it makes a phisher’s life easy. The application should attempt to use small Use consistent and simple navigation. Do not make it overly URLs that are completely visible. complex. On screen keyboard used for input reduces the real estate Use local caching as a mechanism to improve user available, limiting the visibility of the screen. UI design should experience. Do not cache sensitive data in unencrypted take care of this. format. Do not rely on the cached data to a great extent. Navigation varies depending on the device for example iPhone Use exceptions carefully. Differentiate between exceptions has only one physical button for navigation while in android, back and take appropriate actions. button and context menu makes it easier to navigate. The mobile keyboard is not as easy to operate as a desktop Avoid using heavy media files to conserve battery power. keyboard. Your UI design should allow users to enter minimum amount of data.
Slide 8Business Layer (Contd..)• The business layer contains the Business Layer Controller, Business Layer Orchestration, Native Controller, and the Service Adapter.• The Business Layer Controller provides an interface to the presentation layer to interact with the business logic.• The Business Layer Orchestration carries out various business operations, such as getting information from the mobile ecosystem through the Native Controller, getting local data through the Data Access Controller, and calling external service by using the Service Adapter.• The Native Controller manages calls to Native APIs that are used to get data from the mobile ecosystem. The Data Access Controller uses the data access adapter to connect to the data store. Web Application Mobile Application Leverages services of powerful application servers Limited services Fast processing Relatively slow processing Multiuser support No support for multiple users Built-in security mechanisms Not highly secure Enough working (RAM) memory Limited working (RAM) memory Matured optimization techniques Optimization techniques are not standardized
Slide 9Business LayerDesign Guidelines Avoid long running requests that stop user operations. Leverage the permission model that is used by the device Handle them gracefully. operating systems. Do not cache heavy data in the business layer. Use the least privilege model for system access. Provide additional validation instead of relying on the Use correct computing algorithms. If the application does one provided by the presentation layer. not handle critical data, approximations can be done. This will save extra processing that is required for data Optimize network requests by making fewer HTTP accuracy. requests and thereby reduce network usage. Avoid heavy loops as much as possible. Minimize polling operations, for example, schedulers running periodically. Achieve a balance between server and mobile side processing to avoid heavy processing on the mobile and Prioritize network requests so that more important still have minimum impact on the user experience. requests are made with inferior network connectivity. Leverage SSL (Secure Socket Layer) for better security. Combine multiple requests at the application level to reduce network usage as against when multiple requests are made. Use power manager APIs to check the battery status and then take processing decisions intelligently. It can also be used to check the battery status before executing heavy UI operations.
Slide 10Mobile Ecosystem and Local Services Layer (Contd..)• The local services layer provides services to the business layer.• The service includes calls to the mobile ecosystem and local data store. The data store needs to be used diligently.• Using the local data store has advantages over network round-trip because it has numerous benefits in terms of better user experience.• Native calls can be utilized to get more information from the operating system, which includes information such as the battery status.• The data synchronization agent periodically synchronizes the locally cached data to the server. Web Application Mobile Application Huge data storing capacity Data storage is limited Data is secure Data is relatively insecure No data loss Possibility of data loss Numerous data types are available Restricted data types are available Data isolation can be easily managed Requires more efforts for data isolation Data access is restricted Data access is open to any user of the mobile
Slide 11Mobile Ecosystem and Local Services LayerDesign Guidelines Store data locally and synchronize periodically with the Understand data formats and map them correctly to server to compensate for any loss of data from the those available on the local data storage. mobile. Consider batch operation while you synchronize data. Choose data formats correctly to avoid extra processing. Replicate local data to the server only if necessary. Other applications on a mobile can get easy access to files that are stored on the system. Take adequate care to Store sensitive data in encrypted format to avoid being secure this access and do not store any sensitive read my malicious software. information on the file system. Use local data for requirements such as storing user Follow general guidelines to avoid database data preferences as opposed to storing any sensitive data injection. such as passwords. The operating system may allow application to run in Tune the database to increase the performance. background or pause or even shutdown. These events need to be respected in advance.
Slide 12ConclusionThe concept of mobile applications is a new wave of technology. It’s just the beginning.There is still a long way to go. We must recognize that the IT industry has matured to agreat extent and that research in various areas of IT will definitely benefit thedevelopment of mobile applications.This document does not contain a complete list of all issues related to the developmentof mobile applications. It only provides important guidelines that are useful in designingbetter mobile applications.
Slide 13About Cross Country InfotechCross Country Infotech (CCI) Pvt. Ltd. is a part of the Cross Country Healthcare (NYSE:CCRN) group of companies. CCI specializes in providing a gamut of IT/ITES services and iswell equipped with technical expertise to provide smarter solutions to its customers.Some of our cutting-edge technology offerings include Mobile, Web and BI ApplicationDevelopment; ECM and Informix 4GL Solutions; and Technical Documentation, UIDesign and Testing services.