Extending a Web-Based Work Platform to the iOS Platform
Examensarbete för masterexamen
This thesis report presents the work carried out at Podio, a company developing an online work and collaboration platform. The purpose isto identify and research a number of issues with Podio's existing mobile application for the Apple iPhone. Based on these findings, common problems and challenges in mobile application development are presented and reasoning around possible solutions is given. The problem domain is approached from a technical, usability, and time-to-market perspective. This thesis aims to identify the considerations needed when adapting an existing web-based product to a mobile environment and the inherent constraints of such an environment. It also takes into consideration the limitations of mobile devices themselves in terms of physical dimensions and hardware resources. Two main priorities are identified as the most important challenges of developing a high quality mobile application. The first is the adaptation of the desktop user experience to that of a mobile application. The importance of realizing the strengths and weaknesses of each of them is considered essential to producing a high quality mobile experience. The second area is that of request management and local data caching. Because of the ever-changing environment of mobile devices with varying connection speed and availability, it is important to handle local data storage with a great deal of afterthought. In order to build a robust client application to the Podio API, one also needs to consider the ways in which the API changes and possibly breaks compatibility with existing client applications. Because of the many considerations when dealing with server requests and data caching, and to ease the development of new features, a standalone static library called PodioKit is developed. PodioKit provides a native Objective-C interface to access the Podio API in a convenient and extendable way. PodioKit utilizes the dynamic properties of the Objective-C programming language to automate the domain object mapping process from a simple mapping definition. The primary purpose of PodioKit is to decouple request management from data persistence and the application itself, and to reduce code duplication. Although within the Podio application PodioKit is used with the Cocoa Core Data framework for local storage, it does not require nor does it make any assumptions regarding the underlying storage technology used. The report concludes that multiple tradeo s are necessary when adapting an existing web-based service to a mobile context. They include determining the mobile feature set of the application given the physical and environmental limitation of mobile devices, as well as finding a balance between maintainability, testability and performance. It also identifies the task of managing network connectivity in combination with remote application data to be the most challenging area in mobile application development, one where the right approach depends heavily on the primary application use cases.
Data- och informationsvetenskap , Computer and Information Science