A MOBILE APPLICATION TO AID CONSUMERS IN ACCESSING COST EFFECTIVENESS IN THEIR AUTOMOBILE. A Thesis. Presented to the. Faculty of

Size: px
Start display at page:

Download "A MOBILE APPLICATION TO AID CONSUMERS IN ACCESSING COST EFFECTIVENESS IN THEIR AUTOMOBILE. A Thesis. Presented to the. Faculty of"

Transcription

1 A MOBILE APPLICATION TO AID CONSUMERS IN ACCESSING COST EFFECTIVENESS IN THEIR AUTOMOBILE A Thesis Presented to the Faculty of San Diego State University In Partial Fulfillment of the Requirements for the Degree Master of Science in Computer Science by Prashanth Govindaraj Spring 2012

2

3 iii Copyright 2012 by Prashanth Govindaraj All Rights Reserved

4 iv DEDICATION To my parents, professors and friends.

5 v If you haven't found it yet, keep looking. Don't settle. As with all matters of the heart, you'll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. - Steve Jobs.

6 vi ABSTRACT OF THE THESIS A Mobile Application To Aid Consumers In Accessing Cost Effectiveness In Their Automobile by Prashanth Govindaraj Master of Science in Computer Science San Diego State University, 2012 Is your car cost effective? Every penny saved is a penny earned. With rising gasoline prices consumers are looking to buy fuel-efficient vehicles. The challenge here is to really know how fuel-efficient your vehicle is and to measure its overall performance over long period of time. However, gasoline is not the only cost in owning a car. Direct cost and indirect cost also influence in owning a car. In the Post-PC era consumers need an intuitive, easy to use smartphone application to keep track of all kinds of expense in owning a vehicle. So this application is the answer to the question Is your car cost effective?

7 vii TABLE OF CONTENTS PAGE ABSTRACT... vi LIST OF TABLES... ix LIST OF FIGURES...x LIST OF ABBREVIATIONS... xi ACKNOWLEDGEMENTS... xii CHAPTER 1 INTRODUCTION Why Go Mobile and HCI Research Objective Thesis Organization MOBILE OPERATING SYSTEM History Of Mobile Operating System Common Software Platforms ios from Apple Inc Android from Google Inc Blackberry OS from RIM Symbian OS from Symbian Foundation Windows Phone from Microsoft webos from HP Tools And Techniques ios Layers ios Developer Tools Android Framework Android Developer Tools Mobile Phone Market Share ios Mobile Application Development Getting Closer...13

8 viii 3 IMPLEMENTATION Components Mileage Tracker Cost Tracker Stats Tracker Graph Data Storage Validation Techniques USABILITY METRICS Script I Script II Script III FUTURE ENHANCEMENTS...32 REFERENCES...33

9 ix LIST OF TABLES PAGE Table 2.1 Evolution of Smartphone Platforms...6 Table 2.2 Mobile Phone OS Market Share...12

10 x LIST OF FIGURES PAGE Figure 2.1 ios technology layers...7 Figure 2.2 Android layers...10 Figure 2.3 Digital assets required for ios development...14 Figure 3.1 High-level components...15 Figure 3.2 Mileage view displays responder chain...16 Figure 3.3 Mileage view entries responder chain...17 Figure 3.4 Mileage view data flow...18 Figure 3.5 Mileage view display...18 Figure 3.6 Mileage view delegate and data source methods Figure 3.7 Cost view data flow...20 Figure 3.8 Cost view delegate methods...21 Figure 3.9 Cost view display...21 Figure 3.10 Stats view data flow...22 Figure 3.11 Stats view display...22 Figure 3.12 Graph view data flow...23 Figure 3.13 Graph view display...23 Figure 4.1 Personal trip mileage tracker...28 Figure 4.2 Personal trip cost tracker...29 Figure 4.3 Personal expense cost tracker...30 Figure 4.4 Fender-Bender expense tracker...31

11 xi LIST OF ABBREVIATIONS 1. PC Personal Computer 2. HCI Human Computer Interface 3. GUI Graphical User Interface 4. UI User Interface 5. ios iphone Operating System 6. HP Hewlett-Packard 7. SDK Software Development Kit 8. AVD Android Virtual Device 9. DDMS Dalvik Debug Monitor Server 10. XML Extensible Markup Language 11. SQL Structured Query Language

12 xii ACKNOWLEDGEMENTS I take this opportunity to thank my professors Dr. Roger Whitney who taught me iphone application development, Dr. Joseph Lewis for his continuous support and encouragement towards my thesis work. Without the support of Dr. Whitney and Dr. Lewis this thesis work would not have been successful. Further, I would like to extend my thanks to other faculty members in my committee, Dr. Kris Stewart and Dr. I thank you all for being on my committee and believing me in my thesis idea and the ensuing efforts. This is an opportunity to thank my parents for showering unconditional love and care as always.

13 1 CHAPTER 1 INTRODUCTION 1.1 WHY GO MOBILE AND HCI We are in the Post-PC era modern day smartphones and tablets changed the face of consumers electronics market. In fact, the mobile phone industry has been revolutionized by the iphone. Earlier people used mobile phones primarily for voice calls and sending text messages. After the introduction of iphone a revolutionary smart phone changed the way people use mobile phones. The iphone revolutionized the smart phone industry by having a cleaner and simple to use interface, a portable media player and a vibrant camera. However there is one more thing that made the iphone stand out of the competition iphone application more commonly known as apps. iphone applications perform some common user tasks such as reading s, stock updates, playing games, listening to music, navigation and social networking to mention a few. The design of these groundbreaking apps led to the success of iphone. The escalation of mobile devices is nothing short of mindblowing. Consider for a moment that there are over 5 billion mobile subscriptions worldwide, with over 86% of the workforce in the United States already mobile. Over 75% of decisionmakers read their regularly on their mobile devices. In today s business climate, cell phones (and associated apps that can be loaded onto them) aren t merely convenient communications devices; they are must-have business tools that affect efficiency and productivity. As Steve Jobs mentioned Design is not how it looks. Design is how it works. This interaction between the user and the system is termed as Human Computer Interaction or HCI. It is a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them [1], [2]. HCI is a metric in measuring the usefulness of mobile phone application. It includes not just icons, buttons, amongst other UI elements on the device, keypads on a mobile device but also the color, size, shape and texture which act as entry point towards the exchange of information between the user and the system. The HCI

14 2 explores the intricacies of the human side and machine side. On the human side, it delves into the area of cognitive psychology and behavioral science and on the machine side; it deals with computer science, arts, and the likes. Human Computer Interface Design seeks to discover the most efficient way to design easy to use User Interfaces [3]. Research in this area is voluminous; a complete branch of computer science is devoted to this topic, with recommendations for the proper design of color, size, menus, icons, forms, as well as data display and entry screens. An excellent example is the web browser, which is a basic tool for a common computer user and is a result of interface design - the buttons and menus have been designed to make it easy for us to browse the web. The great difficulty many people have in using software is often due to a poor design of the Human Computer Interface. The issue is usability, and high usability stems from a good design. Attention to human-machine interaction is important, because poorly designed human-machine interfaces can lead to many unexpected problems. A poor UI can possibly lead to crucial problems for the users of the software and hence remarkably increase the probability of those users introducing to the system data that causes system failure. Mobile phones are devices with a small screen real estate. It is more important that the UI should be as clean as possible, still conveying all the most important details. This proves to be a most challenging part in the design of mobile phone application. This leads us to a design paradigm called User-Centered-Design. User-Centered-Design focuses on the user, not the system. A system is said to be user-centeredly-designed if the user can do what he or she wants to do the way he or she expects to be able to do it, without hindrance, hesitation, or questions [4]. 1.2 RESEARCH OBJECTIVE The motivation behind this project is to design an application that is easy and intuitive to use. Primarily means of commute for the people in the United States is by car, unlike most European Countries. I had a question, is you car cost effective? So I decided to build and native iphone application which helps answer my question. The iphone app tracks the costs involved in owning a car.

15 3 1.3 THESIS ORGANIZATION This thesis, as discussed above, deals with the creating an intuitive iphone application that helps the user to figure out the cost effectiveness of owning a car. It begins with introducing the concept and need for a mobile phone application in Chapter 1. We discuss briefly about the history of mobile phone application, tools and techniques and mobile platforms in Chapter 2. In Chapter 3 we talk about the design and implementation of the proposed application. Usability metrics and some screen shots are presented in Chapter 4. Few possible future enhancements are discussed in Chapter 5. The report concludes with the conclusion and references in Chapter 6 and 7, respectively.

16 4 CHAPTER 2 MOBILE OPERATING SYSTEM In this chapter, we present a brief overview on the evolution of smartphone operating system, right from its primitive forms to the most advanced software present today. The later section talks about tools and techniques in iphone application development and in other smartphone platforms. Finally we conclude by introducing ios mobile application development. 2.1 HISTORY OF MOBILE OPERATING SYSTEM In early 2007 Apple announced the First Generation iphone and launched it in June 2007 running Apple s proprietary iphone Operating System or ios, focusing on user experience and relying on touch-based interaction. Eventually, in November 2007 Google made inroads into the mobile operating system by forming an Open Handset Alliance with various hardware, software and telecom operators. Google called its open-source operating system Android. Mobile Operating system is still in nascent stages and front-runners in this space include Apple s ios and Google s Android and they account for more than 17.3% of all mobile phones sold [5]. It is clear that people are moving towards smartphones from feature phones, whose market was dominated by Nokia s Symbian OS, most popular feature phone OS. In February 2011 Nokia announced partnership with Microsoft and started building devices that run on Microsoft s Windows Phone Operating System. Eventually this ended the development of Symbian OS. 2.2 COMMON SOFTWARE PLATFORMS The most common mobile software platforms can be categorized as open-source and closed source. Let s discuss each one of them in brief detail ios from Apple Inc ios, is a closed source, proprietary mobile phone operating system from Apple Inc, which is built on top of open source Darwin core OS. Apple Inc. s iphone, ipod Touch and

17 5 ipad is powered by ios. When the iphone was released in June 2007, Apple Inc did not support native third party app developer. However in July 2008, when ios 2.0 was released Apple Inc released a set of development tools for third party developers to write native applications Android from Google Inc Android is an open-source and free mobile operating system, derived from Linux and backed by Google. Until the release of Android 2.0, the earlier versions of Android where primarily used as a mobile phone operating system. Later version of Android powered up tablets as well. Android 3.0 was a tablet-oriented release and does not officially run on mobile phones. The current Android version is 4.0. Android releases are nicknamed after sweets or dessert items like Cupcake (1.5), Frozen Yogurt (2.2), Honeycomb (3.0), and Ice Cream Sandwich (4.0) Blackberry OS from RIM Blackberry OS is a closed-source mobile operating system focused on easy operation and was originally designed for business users. Recently, the operating system received a new face lit and offers full multimedia support and native application from third party developers Symbian OS from Symbian Foundation Symbian OS comes with open public license from the Symbian Foundation. Handset manufacturers like Nokia, Sony Ericsson and Samsung, to name a few, have used it. It was the most popular operating system on feature phones from Nokia. In this day and age it could not catch up with ios and Android so Nokia formed partnership with Microsoft Window Phone operating system to power up it devices Windows Phone from Microsoft Windows Phone is a closed source, proprietary mobile phone operating system from Microsoft Corporation. In February 2010, Microsoft unveiled its next generation mobile operating system with a completely over-hauled UI inspired by Microsoft s Metro Design. Until this writing Microsoft holds a small percentage of market share in mobile space.

18 webos from HP webos is a proprietary Linux-based mobile phone operating system from HP, which the company bought from Palm, which launched with Palm Pre. After the acquisition, HP used webos to power up two phones namely Veer and Pre 3, and a tablet called TouchPad. Apart from the common mobile operating system there were few other less common mobile operating systems namely MeeGo from non-profit organization The Linux Foundation, bada from Samsung Electronics, Maemo from Nokia, Brew from Qualcomm, Nucleus from Mentor Graphics and Windows Mobile from Microsoft. Table 2.1 shows the most common known Smartphone Operating Systems. Of these mobile platforms discuss above, the next section will describe tools and techniques in ios and Android platforms. Table 2.1. Evolution of Smartphones Platforms 1992 Simon (IBM) 1996 Nokia 9000 Nokia Communicator Series 2001 Blackberry (RIM), BREW (Qualcomm) 2002 Windows Mobile 2007 iphone 2008 Android 2009 Palm Pre, Bada, Maemo, Meego, Windows Mobile Windows Phone Mango 2.3 TOOLS AND TECHNIQUES During the days when Nokia s feature phones running the some flavor of the Symbian operating system ruled mobile phone industry, the participant of third party developers was very minimal. So in most cases a mobile phone was constrained by - no software update, no new apps. So whatever is in the phone when it was shipped will only most likely remain in it. The developer tools available back then was not easy to use for third party developers. However, some third party developer still wrote apps but it was limited to certain platform only. The cost of writing applications went up because you have to start all over again when you want to target different devices. Also, app distribution was a problem

19 7 because of lack of a proper distribution channel. When the ios 2.0 was released in 2008, was the answer most of the problem. Apple released an SDK for third party developers to write apps for ios along with Xcode, a powerful IDE and a smart debugger ios Layers The kernel in ios is based on a variant of the same basic Mach kernel that is found in Mac OS X. On top of this kernel are the layers of services that are used to implement applications on the platform. The high-level technology layers (see Figure 2.1 [6]) are: Cocoa Touch, Media, Core Services and Core OS. Figure 2.1. ios technology layers. Source: Apple Inc. About ios Development, n.d. Miscellaneous/Conceptual/iPhoneOSTechOverview/ IPhoneOSOverview/IPhoneOSOverview.html#// apple_ref/doc/uid/tp ch4-sw1, accessed November 15, The instrumental part in ios is the Core OS and Services layers respectively. Access to low-level data type, services like Bonjour, sockets and files, to name a few, are handled by Core OS and Core Services layers. These layers represent low-level functionality handling so the interfaces are predominantly written in C programming language that include technologies such as Core Foundation, CFNetwork, SQLite, and access to POSIX threads and UNIX sockets among others. The next layer, Media layer, takes care of multimedia functionality like 2D and 3D drawing, audio and video. It also has OpenGL ES, Quartz, and Core Audio built-in. An advanced Objective-C based animation engine called Core

20 8 Animation is also present in the media layer. The Foundation framework provides objectoriented support for collections, file management, network operations, and more. The UIKit framework provides the visual infrastructure for your application, including classes for windows, views, controls, and the controllers that manage those objects. Other frameworks in this layer support hardware on the device like camera, gyroscope and accelerometers. Developers can make use of the higher-level frameworks to implement standard system behavior in their apps; however if custom behavior becomes most essential for some apps, and then it would be lower level, C based frameworks that should provide support ios Developer Tools Apple provides developers a SDK and a suite of developer tools for ios app development namely XCode an IDE that provides support for project management, code editing, building executable, source-level debugging, source-code repository management, performance tuning, and much more. Instruments a tool that gets data about your running application from simulator or device, and let you correlate the overall behavior of the application. Third party developers can make use of these tools and built truly amazing applications. Xcode incorporates a number of features to make developing ios applications easier, including the following: Project Management. Features like syntax coloring, code completion, and symbol indexing. An editor for creating UI. A document viewer. An inspector for displaying information about code symbols. LLVM and Clang support for C, C++, and Objective-C. GCC compilers supporting C, C++, Objective-C and other languages. Integrated source-level debugging using GDB. Support for DWARF and Stabs debugging information ios development device management. Instruments incorporates a number of features to make debugging ios applications easier, including the following: 1. Record and replay user actions and collecting data over multiple runs.

21 2. Behavior of one or more process. 3. Automated testing of the code. 4. Performance analysis of application. The developer tools namely XCode and Instruments make ios application development so simple and developers can simply not worry about the developer tools, rather simply focus on creating a much better user experience for their users Android Framework Android is open-source software created for mobile phones and other devices led by Google. A small, California-based firm called Android first developed it. In July 2005, Google purchased this start-up. Basically, it is modified version of Linux Kernel. Google worked and continued platform s development. In 5th, November, 2007 Distribution of Google was announced with the founding of the Open Handset Alliance - a group of hardware, software, and telecom companies devoted and collaborated to develop and release Android to the world. Android being open-source free software it was released under Apache 2.0 license. The core of the Android OS (see Figure 2.2 [7]) contains: Application layer, which constitutes a set of core applications such as home application, contacts, web browser and phone among others. Application Framework layer does the duty of a middleware layer between the application layer, libraries and Android runtime. Libraries provide a support to basic functionalities like drawing web browsing, sockets and database access to mention a few. Android Runtime has Android libraries that are directly used by Java interface and other is Dalvik Virtual Machine. It is work as mediates between Operating system and Applications. Linux Kernel is a low-level layer, which is the heart and soul of Android operating system. It provides services for security, memory management, and process and memory management and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack Android Developer Tools Google provided its third party developers a variety of tools that help you develop mobile application for the Android platform. Developer tools are mainly classified as SDK 9

22 10 Figure 2.2. Android layers. Source: Google Inc. What is Android? n.d. accessed November 15, tools and platform tools. If you are a platform developer like Motorola or Samsung then you use platform tools to customize the version of Android to support the latest Android platform. SDK tools help third party developer create apps targeting consumers, without having to worry about the Android platform. SDK Tools The SDK tools comprises of Android SDK and AVD Manager, the emulator, and the Dalvik Debug Monitor Server or DDMS. A brief description of frequently used SDK Tools is provided below. Android is a tool that helps you managing AVD s, install new SDK s and install update to existing SDK s.

23 DDMS is a debugger that helps you debug android applications. Emulator is a device-emulator tool that helps you design, debug and test out Android apps in an actual Android run-time environment. adb is a command line tool that helps you connect and browse files of your application and the Android File System. sqlite3 is a database which lets you access the SQLite data files created and used by Android applications. Google does not provide an IDE for Android. Since Android is open-sourced mobile operating system, Eclipse an IDE, supports android application development. Developers need to install a plugin for Eclipse to start Android development. There are other IDE s available for android development. Google recommends using Eclipse for android development MOBILE PHONE MARKET SHARE An independent technology analyst house, Canalys reports Globally, the market grew 73% year-on-year, with in excess of million units shipping in the second quarter of Of the 56 countries Canalys tracks around the world, Android led in 35 of them and achieved a global market share of 48%. Asia Pacific (APAC) remained the largest regional market, with 39.8 million units shipping there, compared with 35.0 million in Europe, the Middle East and Africa (EMEA), and 32.9 million in the Americas. [8]. It concludes by saying Android takes almost 50% share of worldwide smart phone market. Table 2.2 [9] shows data from an analyst firm Gartner, which estimates by the end of 2011, Android will move up to become the world most popular mobile operating system. 2.5 ios MOBILE APPLICATION DEVELOPMENT ios is a provided a platform for developing apps for third party developers. Tools and technologies are available for developers to create advanced applications that respond to touch events, built-in hardware like camera, gyroscope and accelerometer, high-quality graphics and other device features as well. The ios SDK includes Xcode tools, documentation and other resources for creating UI and build your application. The developer needs to have access to an Intel-based Macintosh computer with the current version of Mac OS X running in it.

24 12 Table 2.2. Mobile Phone OS Market Share Source: Gartner Inc. Gartner: Microsoft Windows Phone market share to surpass Apple s ios in 2015, n.d. accessed November 15, The development environment provided by Xcode helps developers to create applications, compile run and debug it. To run the applications Apple provides simulator, which replicates an actual ios environment. However if you want to test run your application on a development device then you need to signup for the apple developer program and get a code signing developer certificate. The process of obtaining access to developer certificate is explained shortly. A third party developer who is interested to test their application on the device should follow the procedure outlined in When this process is complete then you need to prepare your devices for development, Xcode creates or obtains the following digital assets: Certificate Request contains personal information used to generate developer certificate to code sign your applications. Developer Certificate serves to identify you as a ios application developer. The developer certificate information is stored in your key chain for Xcode to access it, if you need Xcode to build and launch application on your development device.

25 Provisioning Profile is used to associate one or more developer certificates and one or more devices with an ios application ID. A third party developer need to think about the above mentioned process only if need be to run and test the application on development devices. Until you reach a point to deploy your application to a development device and test it out you can simply make use of the ios simulator, which comes along with the developer tools. However, Apple recommends third party application developers to actually test their apps on a device before turning it in for application review and then distribution. Apple has a set of yardsticks that each application intended for distribution on the App Store must adhere to. Details of the app store review process can be found when you login in to the developer account that you might have created. Figure 2.3 [10] shows a pictorial representation of the digital assets required for ios development GETTING CLOSER Having talked about the evolution of smartphone operating system, and development tools and techniques the next chapter describes the implementation of an easy to use and intuitive ios application, which helps the users answer one question. Is the car you own cost effective?

26 Figure 2.3. Digital assets required for ios development. Source: Apple Inc. Configuring Development and Distribution Assets, n.d. ios_development_workflow/10-configuring_development_and_distribution_assets/ identities_and_devices.html#//apple_ref/doc/uid/tp ch4-sw2, accessed November 15,

27 15 CHAPTER 3 IMPLEMENTATION This chapter describes the software implementation by tracing the flow of sample data through the application from start to end. Several implementation features are described in detail. 3.1 COMPONENTS The following section gives an overview of the different components of the application. The application is divided into four main components Mileage Tracker, Cost Tracker, Stats Tracker, and Graphs make an easy to use highly interactive system making cost tracking very easy. High-level Component is shown in Figure 3.1. Figure 3.1. High-level components. The user can only interact with one view at a time. So essential the user can only do a single focused think at any given time. User Interfaces are rendered from the nib file, created via Interface Builder. Interface Builder is a tool in the ios SDK that is used to create UI s

28 16 with rich look and feel. ios platform does not support garbage collection meaning the developer should take of allocating and releasing memory objects Mileage Tracker The Mileage Tracker module contains a view for the user to input the data points and another view that calculates and displays the gas mileage information, sub-classed from UIViewController class and UITableViewController class respectively. UITableViewController contains set of delegate methods that needs to be implement if you sub-class of it. For the ease of understanding, delegate methods are kind of call back methods. So a delegate method is called for you by the ios runtime in the event of certain actions are performed. For example when a cell in a table view needs data then a specific delegate method is called and so on. Note that a delegate method is never explicitly called. Figure 3.2 shows the responder chain for Mileage Tracker component. Figure 3.2. Mileage view displays responder chain.

29 17 As mentioned earlier, the mileage tracker module has two views, MileageViewEntry, which help the user to input the data, and another view, MileageViewDisplay to display the data, after some calculation are performed. Figure 3.3 shows the responder chain for the view that displays mileage information. The responder chain for the MileageViewDisplay is shown below. Figure 3.3. Mileage view entries responder chain. Validation is an important aspect in an application, be it desktop, web or mobile app. The next section talks about the various UI elements used to build this project and the techniques used in validating them when required. Since validation is a common for a couple of modules in this application, Section 3.3 explains the validation techniques used in this application. After the data validation is complete then the next part is data storage. This application has a relatively small amount of data to be stored. ios provides different kinds of data storage techniques. Since we deal with small amount of data, like kilobytes of data, property list or more commonly known as plist is used. Section 3.2 explains in details about plists and the methodologies this application uses it. The interactions with the mileage entry view are pretty straightforward. Figure 3.4 shows the data flow diagram of Mileage View Module.

30 18 Figure 3.4. Mileage view data flow. User needs to fill in the required UI elements, and then tap on save button (see Figure 3.5). Now the validator events are triggered. If all values are found to appropriate data is saved to disk. Otherwise user is alerted to input missing values. Standard table view cell are not so useful in displaying the mileage data points, intuitively. Instead, a custom table view cell is being created and made use of to the best possible extent. The custom table view cell is defined in such a way that user spontaneously understands what each value contained in the cell convey in correlation with the each mileage data point. Color codes have been used to visualize the car s performance for that gasoline fill-up. Figure 3.5. Mileage view display.

31 19 The UITableViewController is sub classed to intuitively display the mileage data points from the user. As mentioned before UITableViewController class has some delegate methods that should be implemented. They get called when some user action is performed. Figure 3.6 shows the delegate methods used in Mileage Tracker. UITableViewController - (void)tableview:(uitableview *)tableview moverowatindexpath: (NSIndexPath *)fromindexpath toindexpath:(nsindexpath *)toindexpath - (BOOL)tableView:(UITableView *)tableview canmoverowatindexpath: (NSIndexPath *)indexpath - (NSInteger)numberOfSectionsInTableView: (UITableView *)tableview - (NSInteger)tableView:(UITableView *)tableview numberofrowsinsection: (NSInteger)section - (UITableViewCell *)tableview: (UITableView *)tableview cellforrowatindexpath:(nsindexpath *)indexpath - (void)tableview:(uitableview *)tableview didselectrowatindexpath: (NSIndexPath *)indexpath - (CGFloat)tableView:(UITableView *)tableview heightforrowatindexpath: (NSIndexPath *)indexpath - (BOOL)tableView:(UITableView *)tableview caneditrowatindexpath: (NSIndexPath *)indexpath - (void)tableview:(uitableview *)tableview commiteditingstyle: (UITableViewCellEditingStyle)editingSty le forrowatindexpath:(nsindexpath *)indexpath Figure 3.6. Mileage view delegate and data source methods.

32 Cost Tracker Apart from tracking and showing the car s gasoline mileage, Cost Tracker keeps track of all other types of costs involved in owning a car. In Chapter 4, the scripts demonstrate the usefulness of cost tracker. A plethora of expense are related when drive your car from Point A to Point. For example, if you drive from San Diego to Universal Studio s in Los Angeles, apart from the gasoline cost, you might incur other kind of expense like parking, toll bridge etc. On the other hand, there might be some cost of maintenance associated with the car like Car Wash, Oil change etc. So this module helps the user to keep track of all kinds of cost. The costs have been intelligently categorized as: One-Time Cost, Daily Cost, Weekly Cost, Bi-Monthly Cost, Monthly Cost, Quarterly Cost, Half-Yearly Cost and Yearly Cost. Apart from the UITextField UI element, Cost Entry View has one other UI element UIPickerView. UIPickerView is powerful UI element it reduces the overhead of validation by pre-populating the values in it and it provides better user experience. However other UI elements in Cost View Entry should be validated. A high-level data flow diagram is shown in Figure 3.7. Figure 3.7. Cost view data flow. When the user taps on save the validations take place. If any field has incorrect or missing values then user is alerted and asked to fill in the missing value. Otherwise data is written to disk as a plist file. Since this view, similar to mileage entry has relatively less data to be written to the disk, plist light-weight data storage mechanism is adopted to reduce the overhead as much as possible. The next view is a sub-class of UITableViewController, which calculates, groups the costs and displays in an intuitive manner. The delegate methods used

33 21 in the class include most of it used in Mileage View. The Delegate methods used in Cost View is shown in Figure 3.8. UITableViewController - (UIView *) tableview:(uitableview *)tableview viewforheaderinsection: (NSInteger)section Figure 3.8. Cost view delegate methods. The delegate method shown above has a special usage in cost view module. Typically, the header for each section of data can contain some custom text in it. However, in this case we need to display some text with some alignment and so the standard text could not be used. A custom holder should be designed and the alignment parameter should be set as well. Also the color of the header is changed to custom color. A graphical representation of Cost View is shown in Figure 3.9. Figure 3.9. Cost view display Stats Tracker Stats Tracker is an important module, which uses the data gathered from mileage tracker and cost tracker and uses it to provide a plethora of useful statistics. Data is sliced and analyzed here to provide clear-cut information of all kinds of costs involved in owning and

34 22 maintaining a car. The data flow sequence of Stats View is shown in Figure 3.10, which is pretty straightforward. Figure Stats view data flow. Data is read from the disk and then passed on to the computation engine. Statistical formulas are applied and the results are being displayed in a Table View. The computation engine provides with various metrics for mileage data point values and cost data point values. Suppose if there are not many data points available for calculation then N/A is displayed for that metric. Otherwise the computed value is displayed as shown in Figure Figure Stats view display Graph ios does not have a graphing library built-in ios SDK. So building a graphics library is time consuming process and by itself will be a thesis. So I decided to use a third party

35 23 graphical library, which is JavaScript, based called Highcharts. Highcharts is a charting library written in pure JavaScript, offering an easy way of adding interactive charts to your applications. Highcharts currently supports a variety of charts like line, spline, area, areaspline, column, bar, pie and scatter chart types. For the purposes of this project, I chose the line graph over other graphical representation methods because line graph helps visualize data better than most other graphs. As far as the license information goes they say [11] it is free for non-commercial use. The implementation of graph is fairly straightforward. Figure 3.12 shows a high-level data flow diagram for Graph View Module. Figure Graph view data flow. In ios application we need to add a UIWebView to display the highly interactive charts on ios device. Note that only landscape view is supported for graph just to make better use of the real-estate space of the device. The webpage is hosted on a publically accessing webserver, so it can be accessed from UIWebView without the need of any authentication. A graphical representation of Graph View is shown in Figure Figure Graph view display.

36 DATA STORAGE Data Storage on mobile devices is also a challenging task. Let s start with the available storage mechanism and then finally provide justifications for the storage mechanism used in this application. ios offers a number of options for persisting data namely: a. Property list or plist. b. Archiving. c. Core Data. d. SQLite. Property List documents is an archived tree of objects. The Property List contains a root element, which is either an NSDictionary or an NSArray. Inside the root element is the archived data. The classes that can be archived into a Property List are: NSString, NSNumber, NSData, NSDate, NSArray and NSDictionary. Providing any other objects to be archived, as a property list will not write the file. Typically data is stored in human readable XML format. A binary format is also available which a bit faster than XML. Archiving provides a way to encode objects into an architecture-independent format that can be stored in a file. When you archive a set of objects, the class information and instance variables for each object are written to the archive. Core Data gives developers not to worry about the underlying data store. It could be an SQLite, plist or anything else. The developers need to just think about what objects then need to save and how to get back the objects, if need be. The advantage of this implementation is it provides good level of abstraction and the underlying data store can be changed seamlessly, if need be. SQLite is a C-based library. ios devices are shipped with SQLite installed, so no additional setup is required. C library provide functions to read, write from and to a database. The hard part is that you need to know SQL to use SQLite. However this will be one storage mechanism is the data is growing at a reasonable pace. We need a lightweight data storage mechanism for two reasons namely the app contains a few kilobytes of data for every data point, and so retrieving should be as fast as possible for smooth user experience. So plist has been chosen for data storage based on the constraints foreseen in the application.

37 3.3 VALIDATION TECHNIQUES Validations have been performed in best ways possible thereby trying to keep the disruption level as low as possible. We need to validate different kind of UI elements, so we start off with the most common UI elements in the application namely UITextField. UITextField Validators: As the saying goes "Prevention is better than cure", just giving the appropriate type of soft keyboard for input can restrict the user. Suppose, if the text field just takes number values, then the keyboard that shows up when the user tap in the text field should be numeric keyboard. Likewise, provide the appropriate soft keyboard based on what you need the user to input. UITextField Delegate: If a generic type of keyboard is provided then, make use of text field delegate method to get to know which key the user taps. The logic goes in here to determine the key the user tapped should be invalidated or not. UIKeyboardType: The soft keyboard slides up when the user taps in the field. However, it does not slide down automatically when the "DONE" button is tapped. We need to take care of it in our code, when the "DONE" button is tapped. UITableView: Data is presented to the user in a single-column list of multiple rows. Every single row contains as many cells the data is available for. If more data is available for a specific cell, typically a new screen slides in when the user taps on the cell. The availability of more data is being represented to the user by providing a detailed disclosure button at the right of the cell. UITableViewCell: Typically the standard cell has different style to it. The Default style has some title and an optional image in it. The Subtitle style has an additional subtitle label field just under the title field. The subtitle is differentiated from title by font size and color. The StyleValue1 displays two labels in a cell, one is left aligned and other is right aligned. The StyleValue2 also has two labels in a cell with a slightly different arrangement. The first label is right aligned in smaller font, which is preceded by left-aligned label with a slightly larger font and different color. In the both the above-mentioned styles the labels are in the same line. In addition to the standard cells, the developer also has the option of creating a customized cell with the need based font size, color and alignment. Nevertheless, the height of the cell should uniform for the Table, be in standard height or custom height, which is a good per the human interface guideline. UIPickerView: This is special kind of widget which lets the user pick some prepopulated values, which is appropriate to the current context, rather than to type. UIActionSheet: Usually an action sheet is used to display a set of choices, which pertains to user actions in the current context. However, the behavior can be customized. Instead of having button and giving users the choices, we can replace the button with other UI elements as well. 25

38 26 - (BOOL)textView:(UITextView *)textview shouldchangetextinrange:(nsrange)range replacementtext:(nsstring *)text { if ([text isequaltostring:@"\n"]) { [textview resignfirstresponder]; return FALSE; } return TRUE; } - (BOOL)textField:(UITextField *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:(nsstring *)string { if ([string isequaltostring:@"\n"]) { [textfield resignfirstresponder]; return NO; } NSNumberFormatter *numberformatter = [[NSNumberFormatter alloc] init]; [numberformatter setnumberstyle:nsnumberformatterdecimalstyle]; NSNumber *candidatenumber; NSString *candidatestring = [textfield.text stringbyreplacingcharactersinrange:range withstring:string]; range = NSMakeRange(0, [candidatestring length]); [numberformatter getobjectvalue:&candidatenumber forstring:candidatestring range:&range error:nil]; if (([candidatestring length] > 0) && (candidatenumber == nil range.length < [candidatestring length])) { } return NO; } else { return YES; }

39 27 CHAPTER 4 USABILITY METRICS The primary goal of behind usability is how well the application design is generalized. The users psychology and physiological needs should be well reflected when the user uses the application. This application is designed with the following this in mind: Intuitive and easy to use. Easy to adapt to the app and less time to do any particular task. Giving a good feeling for the user to use the app. Apple has given us a framework which in itself makes sure that things are easy to use and provides a certain guidelines for application design called ios Human Interface Guideline [12]. Developers are advised to follow the human interface guideline to improve user experience. The most common things to keep in mind are Affordance, Mapping, Visibility and Feedback [13]. If all of these usability elements strike the right balance then the application will be a breeze for users. From a user s standpoint, various scripts have been created and the remainder of this chapter will discuss each of them in detail. Note that, no real users have been used for this experiment. 4.1 SCRIPT I Alex commutes from Sunnyvale in South Bay to San Francisco downtown five days a week. So he normally drives about 41 miles one-way to work. He owns a Japanese car, which is good on gad mileage. So whenever he stops for gasoline, he quickly takes his phone, opens the app, and feeds in the date, odometer reading, cost of fuel per gallon and total gasoline. Optionally, as shown in Figure 4.1, he can put in a quick note about the gasoline fill-up, if need be. During a long weekend he plans a trip with him friend Tom. He decided to go Yosemite National Park. He thought it would be a good idea to make use of the tracker application to record his expense for his Yosemite trip. Lucky for him the app tracks costs as well.

40 28 Figure 4.1. Personal trip mileage tracker. So Alex, can make use of the cost tracker to record his one-time Yosemite expense (see Figure 4.2). He later discovers that the cost tracker is so very useful that it allows him to categorize the expense, as he likes. For instance, parking can be any kind of expense based on the nature of occurrence. This feature really helps him keep track of his expense in an intuitive and easy way. Couple of quarters down the line he finds the stats provided by the application is so useful in determining the cost to own his car. 4.2 SCRIPT II Lisa, another user of the tracker application finds the stats very useful. Once a week she leaves work early and she volunteers a couple of hours for a non-profit organization. On her way back home her car hit a pothole, which eventually led to a flat tire. To her surprise she found that one tire was badly damaged and she ended up consulting with a mechanic. The guy recommended to change all four tires because they had very little treads left in them.

41 29 Figure 4.2. Personal trip cost tracker. So this expense is not a normal tire change expense, because it happened on her way back home from volunteer work. So she uses the cost tracker application to keep track of it hoping to get a tax-break on this one-off expense (see Figure 4.3). 4.3 SCRIPT III Tim, when driving to work was a bit unfortunate to have a collision. Luckily it was not a major collision, it was just a fender-bender. So he exchanges insurance information with the other person involved in the collision. Due to this incident he was couple of hours late to work resulting in loss of pay. Eventually this resulted in a loss of pay for Tim and he decided to use the app to keep track of this expense and hopefully get a tax break on it.

42 30 Figure 4.3. Personal expense cost tracker. He records this in the cost tracker and decided to make use of it later to get a taxbreak on his loss-of-pay wage (see Figure 4.4). The scripts in this chapter gives us a fairly clear perspective about the application and it seems to be fairly useful in the abovementioned scenarios and further thought process and enhancements to the application will only make it better.

43 Figure 4.4. Fender-Bender expense tracker. 31

44 32 CHAPTER 5 FUTURE ENHANCEMENTS The application has a good scope for future enhancement. Locale of the user can be determined and then the units can be changed to match the locale. Support for different kind of graphs can be added. Another enhancement would be the development of the similar application for the Android OS. The architecture design and the views layout would be the same for the Android application. The developer has to develop a similar interface with the existing or enhanced design for the Android OS. Subsequently this app can be a made to run cross-platform on ios, Android, Blackberry and Windows Mobile devices by following the cross-platform frameworks like Sencha Touch or Titanium Appcelerator.

45 33 REFERENCES [1] Clayton Lewis and John Rieman. Task-centered user interface design: A practical introduction. Digital Shareware Document, University of Colorado, Boulder, CO, [2] Shu-mei, Qin-chuan Zhan and He-min Du. Research on the human-computer interaction of e-learning. Proceedings of the IEEE International Conference on Artificial Intelligence and Education (ICAIE), Hangzhou, China, [3] Alan J. Dix, Janet E. Finlay, Gregory D. Abowd and Russell Beale. Human-computer interaction. Pearson Prentice Hall, Saddle River, NJ, [4] J. Rubin and D. Chisnell. Handbook of usability testing. Wiley Publishers, Indianapolis, IN, [5] Foresman, Chris. Mobile market up, smartphones up, Android and iphone way up, n.d. accessed November 15, [6] Apple Inc. About ios Development, n.d. oneostechoverview/iphoneosoverview/iphoneosoverview.html#//apple_ref/doc/ uid/tp ch4-sw1, accessed November 15, [7] Google Inc. What is Android? n.d. accessed November 15, [8] Canalys. Android takes almost 50% share of worldwide smart phone market, n.d. accessed November 25, [9] Gartner Inc. Gartner: Microsoft Windows Phone market share to surpass Apple s ios in 2015, n.d. accessed November 15, [10] Apple Inc. Configuring Development and Distribution Assets, n.d. pment_workflow/10- Configuring_Development_and_Distribution_Assets/identities_and_devices.html#//a pple_ref/doc/uid/tp ch4-sw2, accessed November 15, [11] Highsoft Solutions AS, Licensed for free under Creative Commons Attribution- NonCommercial 3.0 License, n.d. accessed November 25, [12] Apple Inc. Human Interface Guidelines, n.d. developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehi g/introduction/introduction.html, accessed November 25, 2011.

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 1: Mobile Applications Development Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Content Key concepts

More information

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013 Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone

More information

Introduction to Android

Introduction to Android Introduction to Android Poll How many have an Android phone? How many have downloaded & installed the Android SDK? How many have developed an Android application? How many have deployed an Android application

More information

Android v ios Mobile Operating Systems

Android v ios Mobile Operating Systems v ios Mobile Operating Systems is an open source operating system widely used on smartphones and tablets. has been available under a free and open source software license from October 21, 2008 and until

More information

01. Introduction of Android

01. Introduction of Android 01. Introduction of Android Goal Understand the concepts and features of the Android Install the complete Android development environment Find out the one-click install Android development environment

More information

Mobile Phones Operating Systems

Mobile Phones Operating Systems Mobile Phones Operating Systems José Costa Software for Embedded Systems Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2015-05-28 José Costa (DEI/IST) Mobile Phones Operating

More information

Social Media & Mobile Handheld Devices: The Platforms, Operating Systems, devices& Applications. The wireless last mile & User Interface choices

Social Media & Mobile Handheld Devices: The Platforms, Operating Systems, devices& Applications. The wireless last mile & User Interface choices The wireless last mile & User Interface choices Manoj Pant CEO, Shankh Inc, Mumbai ( Social transformation via technology innovation ) manoj.pant@shankhinc.com Mob : +91 9820018300 Social Media & Mobile

More information

A Modular Approach to Teaching Mobile APPS Development

A Modular Approach to Teaching Mobile APPS Development 2014 Hawaii University International Conferences Science, Technology, Engineering, Math & Education June 16, 17, & 18 2014 Ala Moana Hotel, Honolulu, Hawaii A Modular Approach to Teaching Mobile APPS Development

More information

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date> Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) Outline Smartphones Developing Mobile Applications Android ios BlackBerry Windows Mobile References Cell phones

More information

Workshop on Android and Applications Development

Workshop on Android and Applications Development Workshop on Android and Applications Development Duration: 2 Days (8 hrs/day) Introduction: With over one billion devices activated, Android is an exciting space to make apps to help you communicate, organize,

More information

Android in opposition to iphone

Android in opposition to iphone Android in opposition to iphone Kavita Sharma Ph.D Student Singhania University, Rajasthan Abstract-- The paper is an analysis and comparison of the android mobile OS with the iphone which have ruled the

More information

International Journal of Research in Advent Technology Available Online at: http://www.ijrat.org

International Journal of Research in Advent Technology Available Online at: http://www.ijrat.org PERSONALISED APPLICATION DEVELOPMENT FOR ANDROID MOBILE PHONES N. Leo Bright Tennisson Department of Computer Applications Valliammai Engineering College tennisson@rediffmail.com ABSTARCT: This paper gives

More information

ipad, a revolutionary device - Apple

ipad, a revolutionary device - Apple Flash vs HTML5 ipad, a revolutionary device Apple Lightweight and portable Sufficient battery life Completely Wireless Convenient multitouch interface Huge number of apps (some of them are useful) No Flash

More information

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system. Chapter 1 Introduction to ios Development Objectives: Touch on the history of ios and the devices that support this operating system. Understand the different types of Apple Developer accounts. Introduce

More information

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application DATABASES AND INFORMATION SYSTEMS H.-M. Haav, A. Kalja and T. Robal (Eds.) Proc. of the 11th International Baltic Conference, Baltic DB&IS 2014 TUT Press, 2014 215 Issues of Hybrid Mobile Application Development

More information

How To Develop An App For Ios (Windows)

How To Develop An App For Ios (Windows) Mobile Application Development Lecture 14 ios SDK 2013/2014 Parma Università degli Studi di Parma Lecture Summary ios operating system ios SDK Tools of the trade ModelViewController MVC interaction patterns

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup Emmanuel Agu What is Android? Android is world s leading mobile operating system Google: Owns Android, maintains it, extends

More information

SYST35300 Hybrid Mobile Application Development

SYST35300 Hybrid Mobile Application Development SYST35300 Hybrid Mobile Application Development Native, Web and Hybrid applications Hybrid Applications: Frameworks Native, Web and Hybrid Applications Mobile application development is the process by

More information

Lecture 1 Introduction to Android

Lecture 1 Introduction to Android These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy

More information

Cell Phone Operating Systems

Cell Phone Operating Systems Cell Phone Operating Systems The first smartphone was the IBM Simon and was designed in 1992. The phone themselves have changed. The most important changes are in the Operating System (OS) Operating Systems

More information

Android Programming and Security

Android Programming and Security Android Programming and Security Dependable and Secure Systems Andrea Saracino andrea.saracino@iet.unipi.it Outlook (1) The Android Open Source Project Philosophy Players Outlook (2) Part I: Android System

More information

CS378 -Mobile Computing. Android Overview and Android Development Environment

CS378 -Mobile Computing. Android Overview and Android Development Environment CS378 -Mobile Computing Android Overview and Android Development Environment What is Android? A software stack for mobile devices that includes An operating system Middleware Key Applications Uses Linux

More information

Mobile App Development

Mobile App Development Mobile App Development Spring 2013 Agenda Practical information Introduction to mobile development Introduction to Android development 1 About us Jacob Avlund, course manager Kasper Østerbye, teacher Charlotte

More information

Android Architecture. Alexandra Harrison & Jake Saxton

Android Architecture. Alexandra Harrison & Jake Saxton Android Architecture Alexandra Harrison & Jake Saxton Overview History of Android Architecture Five Layers Linux Kernel Android Runtime Libraries Application Framework Applications Summary History 2003

More information

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS Embedded Systems White Paper GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS September 2009 ABSTRACT Android is an open source platform built by Google that includes an operating system,

More information

All About Android WHAT IS ANDROID?

All About Android WHAT IS ANDROID? All About Android WHAT IS ANDROID? Android specifically refers to a mobile operating system (based on Linux) that is developed by Google. It is open-source software, meaning that anyone can download the

More information

Choosing a Mobile Application Development Approach

Choosing a Mobile Application Development Approach ASEAN Journal of Management & Innovation Vol. 1 No. 1, 69 74 by Stamford International University DOI: 10.14456/ajmi..4 ajmi.stamford.edu Choosing a Mobile Application Development Approach Phyo Min Tun

More information

Developer's Cookbook. Building Applications with. The Android. the Android SDK. A Addison-Wesley. James Steele Nelson To

Developer's Cookbook. Building Applications with. The Android. the Android SDK. A Addison-Wesley. James Steele Nelson To The Android Developer's Cookbook Building Applications with the Android SDK James Steele Nelson To A Addison-Wesley Upper Saddle River, NJ Boston «Indianapolis San Francisco New York Toronto Montreal London

More information

Creating and Using Databases for Android Applications

Creating and Using Databases for Android Applications Creating and Using Databases for Android Applications Sunguk Lee * 1 Research Institute of Industrial Science and Technology Pohang, Korea sunguk@rist.re.kr *Correspondent Author: Sunguk Lee* (sunguk@rist.re.kr)

More information

Native ipad Apps? Why should I care?

Native ipad Apps? Why should I care? June 2012 Native ipad Apps? Why should I care? What makes the ipad (and its sibling the iphone) so special? Why do users seem to love working on the device? The overwhelming reaction to both of these questions

More information

Android 5.0: Lollipop OS

Android 5.0: Lollipop OS IJISET - International Journal of Innovative Science, Engineering & Technology, Vol. 2 Issue 6, June 2015. www.ijiset.com Android 5.0: Lollipop OS ISSN 2348 7968 Meenakshi M.Tech Student, Department of

More information

Issues in Android on Mobile Platform and Their Resolution

Issues in Android on Mobile Platform and Their Resolution Issues in Android on Mobile Platform and Their Resolution 1 Monika A. Ganpate, 2 Dipika R. Shinde 1, 2 Institute of Management and Computer Studies, Thane (West), India, University of Mumbai, India Abstract:

More information

Smartphone market share

Smartphone market share Smartphone market share Gartner predicts that Apple s ios will remain the second biggest platform worldwide through 2014 despite its share deceasing slightly after 2011. Android will become the most popular

More information

INTRODUCTION TO IOS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 13 02/22/2011

INTRODUCTION TO IOS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 13 02/22/2011 INTRODUCTION TO IOS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 13 02/22/2011 1 Goals of the Lecture Present an introduction to ios Program Coverage of the language will be INCOMPLETE We

More information

ios Application Development &

ios Application Development & Introduction of ios Application Development & Swift Programming Language Presented by Chii Chang chang@ut.ee Outlines Basic understanding about ios App Development Development environment: Xcode IDE Foundations

More information

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone - 2012

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone - 2012 Android Development Lecture 1 Android SDK & Development Environment Università Degli Studi di Parma Lecture Summary - 2 The Android Platform Android Environment Setup SDK Eclipse & ADT SDK Manager Android

More information

MA-WA1920: Enterprise iphone and ipad Programming

MA-WA1920: Enterprise iphone and ipad Programming MA-WA1920: Enterprise iphone and ipad Programming Description This 5 day iphone training course teaches application development for the ios platform. It covers iphone, ipad and ipod Touch devices. This

More information

A Review of Different Comparative Studies on Mobile Operating System

A Review of Different Comparative Studies on Mobile Operating System Research Journal of Applied Sciences, Engineering and Technology 7(12): 2578-2582, 2014 ISSN: 2040-7459; e-issn: 2040-7467 Maxwell Scientific Organization, 2014 Submitted: August 30, 2013 Accepted: September

More information

Introduction to Android

Introduction to Android Introduction to Android Ref: Wei-Meng Lee, BEGINNING ANDROID 4 APPLICATION DEVELOPMENT, Ch1, John Wiley & Sons, 2012 1. What is Android Android is a mobile operating system that is based on a modified

More information

Discovering Computers

Discovering Computers Discovering Computers Technology in a World of Computers, Mobile Devices, and the Internet Chapter 9 Operating Systems Objectives Overview Define an operating system Describe the start-up process and shutdown

More information

separate the content technology display or delivery technology

separate the content technology display or delivery technology Good Morning. In the mobile development space, discussions are often focused on whose winning the mobile technology wars how Android has the greater share of the mobile market or how Apple is has the greatest

More information

Practical Android Projects Lucas Jordan Pieter Greyling

Practical Android Projects Lucas Jordan Pieter Greyling Practical Android Projects Lucas Jordan Pieter Greyling Apress s w«^* ; i - -i.. ; Contents at a Glance Contents --v About the Authors x About the Technical Reviewer xi PAcknowiedgments xii Preface xiii

More information

ANDROID OPERATING SYSTEM

ANDROID OPERATING SYSTEM ANDROID OPERATING SYSTEM Himanshi Grover,Devesh Agrawal IT Department, Dronacharya College Of Engg Gurgaon,Haryana,India Abstract - Android has become need rather than luxury these days. The computing

More information

Figure 6.1. Windows Phone 7 s hub-based interface, made up of live tiles and information aggregation

Figure 6.1. Windows Phone 7 s hub-based interface, made up of live tiles and information aggregation 6 Mobile Operating Systems Figure 6.1. Windows Phone 7 s hub-based interface, made up of live tiles and information aggregation Every phone needs some type of operating system to run its services: making

More information

Student Attendance Through Mobile Devices

Student Attendance Through Mobile Devices Student Attendance Through Mobile Devices Anurag Rastogi Kirti Gupta Department of Computer Science and Engineering National Institute of Technology Rourkela Rourkela-769 008, Odisha, India Student Attendance

More information

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011 INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011 1 Goals of the Lecture Present an introduction to the Android Framework Coverage of the framework will be

More information

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7 Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7 Jeff Linwood 1st Chapter, Early Release Introduction... 3 Prerequisites... 3 Introduction to Mobile Apps...

More information

Literature Review: Starting Mobile Application Development for E-Sports Portal Hayoung Noh

Literature Review: Starting Mobile Application Development for E-Sports Portal Hayoung Noh Literature Review: Starting Mobile Application Development for E-Sports Portal Hayoung Noh Computer Science Honours Programme University of Cape Town 13 May 2014 Abstract Constant demand for mobile applications

More information

How To Use Titanium Studio

How To Use Titanium Studio Crossplatform Programming Lecture 3 Introduction to Titanium http://dsg.ce.unipr.it/ http://dsg.ce.unipr.it/?q=node/37 alessandro.grazioli81@gmail.com 2015 Parma Outline Introduction Installation and Configuration

More information

MOBILE APPS. QA Testing for mobile applications

MOBILE APPS. QA Testing for mobile applications MOBILE APPS QA Testing for mobile applications How familiar are you with Apple devices? This question can be asked for apple devices as well as Android devices - depending on the company your interviewing

More information

Mobile Development with Qt

Mobile Development with Qt Mobile Development with Qt Developing for Symbian and Maemo Daniel Molkentin Nokia, Qt Development Frameworks 1 Yours Truly Developer and Promoter for the KDE Project since 2000 Author of The Book of Qt

More information

Graduate presentation for CSCI 5448. By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

Graduate presentation for CSCI 5448. By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu ) Graduate presentation for CSCI 5448 By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu ) Content What is Android?? Versions and statistics Android Architecture Application Components Inter Application

More information

Cross-Platform Mobile Apps Solution

Cross-Platform Mobile Apps Solution Cross-Platform Mobile Apps Solution Prepared by Kevin Mullins CEO and Chief Developer Appracatappra, LLC. 709 Gale Street #8 Seabrook, TX 77586 kmullins@appracatappra.com http://appracatappra.com Table

More information

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

Mobile App Infrastructure for Cross-Platform Deployment (N11-38) Mobile App Infrastructure for Cross-Platform Deployment (N11-38) Contents Introduction... 2 Background... 2 Goals and objectives... 3 Technical approaches and frameworks... 4 Key outcomes... 5 Project

More information

Cross Platform Applications with IBM Worklight

Cross Platform Applications with IBM Worklight IJCSNS International Journal of Computer Science and Network Security, VOL.15 No.11, November 2015 101 Cross Platform Applications with IBM Worklight P.S.S.Vara Prasad and Mrs.S.Durga Devi Dept. of IT

More information

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Reminders. Lab opens from today. Many students want to use the extra I/O pins on Reminders Lab opens from today Wednesday 4:00-5:30pm, Friday 1:00-2:30pm Location: MK228 Each student checks out one sensor mote for your Lab 1 The TA will be there to help your lab work Many students

More information

Overview of CS 282 & Android

Overview of CS 282 & Android Overview of CS 282 & Android Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282

More information

Developing and deploying mobile apps

Developing and deploying mobile apps Developing and deploying mobile apps 1 Overview HTML5: write once, run anywhere for developing mobile applications 2 Native app alternative Android -- Java ios -- Objective-C Windows Mobile -- MS tools

More information

MEAP Edition Manning Early Access Program Hello! ios Development version 14

MEAP Edition Manning Early Access Program Hello! ios Development version 14 MEAP Edition Manning Early Access Program Hello! ios Development version 14 Copyright 2013 Manning Publications For more information on this and other Manning titles go to www.manning.com brief contents

More information

ITG Software Engineering

ITG Software Engineering Basic Android Development Course ID: Page 1 Last Updated 12/15/2014 Basic Android Development ITG Software Engineering Course Overview: This 5 day course gives students the fundamental basics of Android

More information

Take full advantage of IBM s IDEs for end- to- end mobile development

Take full advantage of IBM s IDEs for end- to- end mobile development Take full advantage of IBM s IDEs for end- to- end mobile development ABSTRACT Mobile development with Rational Application Developer 8.5, Rational Software Architect 8.5, Rational Developer for zenterprise

More information

JavaFX Session Agenda

JavaFX Session Agenda JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user

More information

The Mobile Device and Operating System Landscape

The Mobile Device and Operating System Landscape Chapter 2 The Mobile Device and Operating System Landscape 50 billion connected devices by 2020. Ericsson, 2010 Networked computers. Connected devices. Mobile devices. Machine-to-machine (M2M). On-the-Go

More information

OpenCV on Android Platforms

OpenCV on Android Platforms OpenCV on Android Platforms Marco Moltisanti Image Processing Lab http://iplab.dmi.unict.it moltisanti@dmi.unict.it http://www.dmi.unict.it/~moltisanti Outline Intro System setup Write and build an Android

More information

Mobile Game and App Development the Easy Way

Mobile Game and App Development the Easy Way Mobile Game and App Development the Easy Way Developed and maintained by Pocketeers Limited (http://www.pocketeers.co.uk). For support please visit http://www.appeasymobile.com This document is protected

More information

Lee Barnes, CTO Utopia Solutions. Utopia Solutions

Lee Barnes, CTO Utopia Solutions. Utopia Solutions Mobile Technology Testing Are You Ready? Lee Barnes, CTO Utopia Solutions Agenda 1. Mobile Testing Challenges 2. Mobile Testing Practices 3. Mobile Test Automation 4. Summary and Q & A Mobile Testing Challenges

More information

Android Mobile App Building Tutorial

Android Mobile App Building Tutorial Android Mobile App Building Tutorial Seidenberg-CSIS, Pace University This mobile app building tutorial is for high school and college students to participate in Mobile App Development Contest Workshop.

More information

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development Android Development Lecture AD 0 Android SDK & Development Environment 2013/2014 Parma Università degli Studi di Parma Lecture Summary Android Module Overview The Android Platform Android Environment Setup

More information

ORACLE ADF MOBILE DATA SHEET

ORACLE ADF MOBILE DATA SHEET ORACLE ADF MOBILE DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Java technology enables cross-platform business logic Mobile optimized

More information

Article. One for All Apps in HTML5

Article. One for All Apps in HTML5 One for All Apps The boom of smartphones and tablets in the consumer sector creates new problems for developers of industrial Apps: They have to build Apps quickly that run on any type of smartphone and

More information

An Introduction to Android

An Introduction to Android An Introduction to Android Michalis Katsarakis M.Sc. Student katsarakis@csd.uoc.gr Tutorial: hy439 & hy539 16 October 2012 http://www.csd.uoc.gr/~hy439/ Outline Background What is Android Android as a

More information

To Study and Design a Cross-Platform Mobile Application for Student Information System using PhoneGap Framework

To Study and Design a Cross-Platform Mobile Application for Student Information System using PhoneGap Framework To Study and Design a Cross-Platform Mobile Application for Student Information System using PhoneGap Framework Avinash Shrivas 1, Anandkumar Pardeshi 2 1 Associate Professor, Vidyalankar Institute of

More information

Mobile App Design and Development

Mobile App Design and Development Mobile App Design and Development The course includes following topics: Apps Development 101 Introduction to mobile devices and administrative: Mobile devices vs. desktop devices ARM and intel architectures

More information

imaginea white paper

imaginea white paper white paper Building Mobile Android Applications Even though Android was created for handsets, there is a great opportunity for developing other innovative devices on the Android platform with significant

More information

VOL. 2, NO. 1, January 2012 ISSN 2225-7217 ARPN Journal of Science and Technology 2010-2012 ARPN Journals. All rights reserved

VOL. 2, NO. 1, January 2012 ISSN 2225-7217 ARPN Journal of Science and Technology 2010-2012 ARPN Journals. All rights reserved Mobile Application for News and Interactive Services L. Ashwin Kumar Department of Information Technology, JNTU, Hyderabad, India loka.ashwin@gmail.com ABSTRACT In this paper, we describe the design and

More information

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you?

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you? BogDan Vatra and Andy Gryc Qt on Android: Is it right for you? Coffee and Code sessions Free, three-hour, hands-on session that delves into the internals of Qt on Android. Learn how to: set up the Qt development

More information

DEVELOPING MOBILE APPLICATIONS USING ANDROID

DEVELOPING MOBILE APPLICATIONS USING ANDROID ISSN 2229-5518 2300 DEVELOPING MOBILE APPLICATIONS USING ANDROID M.VARUN KUMAR, S.THIRUMALINI, S.RAJESH KUMAR, N.VANISRI, PULIDINDI VENUGOPAL School of Information Technology &VITBS VIT University,Vellore-632014

More information

Comparative Study of Different Mobile Operating Systems

Comparative Study of Different Mobile Operating Systems International Journal of Advancements in Research & Technology, Volume 2, Issue3, March-2013 1 Comparative Study of Different Mobile Operating Systems T.N.Sharma, Mahender Kr. Beniwal, Arpita Sharma ABSTRACT:

More information

Bridging the Gap: from a Web App to a Mobile Device App

Bridging the Gap: from a Web App to a Mobile Device App Bridging the Gap: from a Web App to a Mobile Device App or, so how does this PhoneGap* stuff work? *Other names and brands may be claimed as the property of others. 1 Users Want Mobile Apps, Not Mobile

More information

The Third Screen: What Email Marketers Need to Know About Mobile Rendering

The Third Screen: What Email Marketers Need to Know About Mobile Rendering BlueHornet Whitepaper The Third Screen: What Email Marketers Need to Know About Mobile Rendering Part One: Your Marketing Message on the Third Screen Executive Summary The rapid rise in adoption of so-called

More information

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android Why Android? ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android Dr Dimitris C. Dracopoulos A truly open, free development platform based on Linux and open source A component-based

More information

Here to take you beyond Mobile Application development using Android Course details

Here to take you beyond Mobile Application development using Android Course details Here to take you beyond Mobile Application development using Android Course details Mobile Application Development using Android Objectives: To get you started with writing mobile application using Android

More information

Introduction to Android: Hello, Android! 26 Mar 2010 CMPT166 Dr. Sean Ho Trinity Western University

Introduction to Android: Hello, Android! 26 Mar 2010 CMPT166 Dr. Sean Ho Trinity Western University Introduction to Android: Hello, Android! 26 Mar 2010 CMPT166 Dr. Sean Ho Trinity Western University Android OS Open-source mobile OS (mostly Apache licence) Developed by Google + Open Handset Alliance

More information

Cross-Platform Development

Cross-Platform Development 2 Cross-Platform Development Cross-Platform Development The world of mobile applications has exploded over the past five years. Since 2007 the growth has been staggering with over 1 million apps available

More information

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE Solutions Introduction: Enterprises around the globe are mobilizing mission-critical services. Businesses get streamlined due

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development Mobile Development Trends Need an App... 3 4 Popular Devices in Latvia

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Who am I? Lo Chi Wing, Peter Lecture 1: Introduction to Android Development Email: Peter@Peter-Lo.com Facebook: http://www.facebook.com/peterlo111

More information

Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9

Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9 SECOND EDITION Programming Android kjj *J} Zigurd Mednieks, Laird Dornin, G. Blake Meike, and Masumi Nakamura O'REILLY Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Preface xiii Parti.

More information

ANDROID INTRODUCTION TO ANDROID

ANDROID INTRODUCTION TO ANDROID ANDROID JAVA FUNDAMENTALS FOR ANDROID Introduction History Java Virtual Machine(JVM) JDK(Java Development Kit) JRE(Java Runtime Environment) Classes & Packages Java Basics Data Types Variables, Keywords,

More information

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months Our program is a practical knowledge oriented program aimed at making innovative and attractive applications for mobile

More information

IT Research BYTE. Analysis. Packaged Solutions. MEAPs. Native SDK. Customization. Costs. Glossary (continued)

IT Research BYTE. Analysis. Packaged Solutions. MEAPs. Native SDK. Customization. Costs. Glossary (continued) Glossary (continued) Thick Client In general, a thick client is an application (client) in a client-server architecture which provides rich functionality independent from the server. A thick client may

More information

Mobile Learning Application Based On Hybrid Mobile Application Technology Running On Android Smartphone and Blackberry

Mobile Learning Application Based On Hybrid Mobile Application Technology Running On Android Smartphone and Blackberry Mobile Learning Application Based On Hybrid Mobile Application Technology Running On Android Smartphone and Blackberry Djoni Haryadi Setiabudi, Lady Joanne Tjahyana,Winsen Informatics Department Petra

More information

Smart Phones Application development using HTML5 and related technologies: A tradeoff between cost and quality

Smart Phones Application development using HTML5 and related technologies: A tradeoff between cost and quality www.ijcsi.org 455 Smart Phones Application development using HTML5 and related technologies: A tradeoff between cost and quality 1 Yousuf Hasan, 2 Mustafa Zaidi, 3 Najmi Haider, 4 W.U.Hasan and 5 I.Amin

More information

Process Automation Tools For Small Business

Process Automation Tools For Small Business December 3, 2013 Tom Bellinson Process Automation from Scratch Over the course of 2013 I have written about a number of canned off the shelf (COTS) products that can be used to automate processes with

More information

Android Development Tools for Eclipse

Android Development Tools for Eclipse Android Development Tools for Eclipse Sanjay Shah Khirulnizam Abd Rahman Chapter No. 1 "Installing Eclipse, ADT, and SDK" In this package, you will find: A Biography of the author of the book A preview

More information

Monitoring and control of users in open environments on the Android platform

Monitoring and control of users in open environments on the Android platform Monitoring and control of users in open environments on the Android platform DEGREE IN COMMUNICATIONS SYSTEMS ENGINEERING AUTHOR: TUTOR: Eric Bella Pulgarín Raúl Sánchez Reillo DIRECTOR: Aitor Mendaza

More information

Smartphone Application Development using HTML5-based Cross- Platform Framework

Smartphone Application Development using HTML5-based Cross- Platform Framework Smartphone Application Development using HTML5-based Cross- Platform Framework Si-Ho Cha 1 and Yeomun Yun 2,* 1 Dept. of Multimedia Science, Chungwoon University 113, Sukgol-ro, Nam-gu, Incheon, South

More information

060010702 Mobile Application Development 2014

060010702 Mobile Application Development 2014 Que 1: Short question answer. Unit 1: Introduction to Android and Development tools 1. What kind of tool is used to simulate Android application? 2. Can we use C++ language for Android application development?

More information

COMPARING APPLE S IOS WITH SAMSUNG S BADA MOBILE SOFTWARE DEVELOPMENT PLATFORMS

COMPARING APPLE S IOS WITH SAMSUNG S BADA MOBILE SOFTWARE DEVELOPMENT PLATFORMS Bachelor s Thesis Degree Programme in Information Technology Specialization: Internet Technology 2014 Razaq Adeleke Shonubi COMPARING APPLE S IOS WITH SAMSUNG S BADA MOBILE SOFTWARE DEVELOPMENT PLATFORMS

More information