EXPENSE TRACKER MOBILE APPLICATION. A Thesis. Presented to the. Faculty of. San Diego State University. In Partial Fulfillment
|
|
|
- Ethan Allison
- 10 years ago
- Views:
Transcription
1 EXPENSE TRACKER MOBILE APPLICATION 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 Angad Manchanda Fall 2012
2
3 iii Copyright 2012 by Angad Manchanda All Rights Reserved
4 iv DEDICATION I would like to dedicate this thesis to my dearest parents and my brother who believed and kept full faith in me and provided me the zeal that was required for the accomplishment of the thesis project.
5 v ABSTRACT OF THE THESIS Expense Tracker Mobile Application by Angad Manchanda Master of Science in Computer Science San Diego State University, 2012 Modern life offers a plethora of options of services and goods for consumers. As a result, people s expenses have gone up dramatically, e.g., compared to a decade ago, and the cost of living has been increasing day by day. Thus it becomes essential to keep a check on expenses in order to live a good life with a proper budget set up. The iphone device, designed and marketed by Apple Inc., is one of the top-selling smartphones in the USA, and with the launch of the new iphone5 on September 21, 2012, whose sales have already surpassed the previous iphone handsets (iphone 4S, iphone4) sales, it is apparent that people have been using smartphones as an organizational tool. XpensTrak, the Expense Tracker Mobile Application was developed for iphone users to keep track of their expenses and determine whether they are spending as per their set budget. Potential users need to input the required data such as the expense amount, merchant, category, and date when the expense was made. Optional data such as sub-category and extra notes about the expense can be entered as well. The application allows users to track their expenses daily, weekly, monthly, and yearly in terms of summary, bar graphs, and pie-charts. This mobile application is a full detailed expense tracker tool that will not only help users keep a check on their expenses, but also cut down the unrequired expenses, and thus will help provide a responsible lifestyle. An analysis comparing existing expense tracking software with the one being introduced is provided.
6 vi TABLE OF CONTENTS PAGE ABSTRACT...v LIST OF FIGURES... viii LIST OF ABBREVIATIONS...x ACKNOWLEDGEMENTS... xi CHAPTER 1 INTRODUCTION Need for an Expense Tracker Application on an iphone (Smartphone) iphone Operating System Technologies Core Application Objects Application States Application Launch Cycle IMPLEMENTATION OF THE MOBILE APPLICATION Design and Development Tab Bar View Core Data Framework Expense/Income View Block Action Sheet Calendar View Expense/Income Detail View Category/Sub-Category View Date Picker View Payment Source View Dashboard View Reports View Settings View RESULTS Expense/Income Demo...40
7 vii 3.2 Dashboard Demo Reports Demo Summary Bar Graphs Pie-Charts COMPARISON WITH OTHER MOBILE PLATFORMS CONCLUSION Current Limitations Future Work...53 REFERENCES...55 APPENDIX COMPARISON OF MINT V/S XPENSTRAK...57
8 viii LIST OF FIGURES PAGE Figure 1.1. Share of worldwide 2012 Q2 smartphone sales by OS, according to IDC Figure 1.2. Layers of ios Figure 1.3. Key objects in ios app Figure 1.4. State changes in ios app....8 Figure 1.5. The app launch cycle....9 Figure 2.1. XpenseTrak ios app on Xcode IDE Figure 2.2. Tab bar controllers Figure 2.3. Core data model Figure 2.4. Block action sheet Figure 2.5. PMCalendar view Figure 2.6. Expense detail view Figure 2.7. Photo button action Figure 2.8. Income detail view Figure 2.9. Category view Figure Sub category view Figure Block alert view Figure Date picker view Figure Payment source view Figure Dashboard view Figure Reports view Figure Root plist view Figure Settings view Figure 3.1. Expense/income demo with expense summary Figure 3.2. Expense/income demo with cashflow Figure 3.3. Dashboard demo Figure 3.4. Dashboard demo Figure 3.5. Summary demo
9 ix Figure 3.6. Summary demo Figure 3.7. Bar graph expense demo Figure 3.8. Bar graph income demo Figure 3.9. Pie chart expense demo Figure Pie chart income demo Figure A.1. Mint iphone app launch screen Figure A.2. Mint iphone app details....59
10 x LIST OF ABBREVIATIONS ios iphone Operating System IDE Integrated Development Environment SDK Software Development Kit Nib Next Interface Builder UI User Interface PDF Portable Document Format OS Operating System HTML HyperText MarkUp Language CSS Cascading Style Sheets SSL Secure Socket Layer WP7 Windows Phone 7 plist Property List PC Personal Computer
11 xi ACKNOWLEDGEMENTS I thank all the committee members for reading and evaluating my work. I gladly take the opportunity to thank my thesis advisor, Prof. J. Carmelo Interlando, for the guidance, support, encouragement, and the motivation behind the success of my thesis. It would have been hard to accomplish this without his help. I thank Dr. Joseph Lewis for providing me with invaluable suggestions and guidance on how to implement the functionality regarding the flow of the application and documentation of the thesis. I thank Dr. Kris Stewart for her observations and invaluable comments.
12 1 CHAPTER 1 INTRODUCTION With the launch and increase in sales of smartphones over the last few years, people are using mobile applications to get their work done, which makes their lives easier. Mobile applications comprise various different categories such as Entertainment, Sports, Lifestyle, Education, Games, Food and Drink, Health and Fitness, Finance, etc. This Expense Tracker application falls in the Finance Category and serves the important purpose of managing finances which is a very important part of one s life. The software product went through the design, development, and the testing phase as a part of the Software Development Lifecycle. The application s interface is designed using custom art elements, the functionality is implemented using ios SDK, and the phase of testing the product was accomplished successfully. The application is not much user intensive but just comprises of having them enter the expense amount, date, category, merchant and other optional attributes (taking picture of the receipts, entering notes about the expense, adding subcategories to the categories). With this entered information, the user is able to see the expense details daily, weekly, monthly, and yearly in figures, graphs, PDF format, and can print them as well if a printer is detected or scanned nearby. All these topics have been explained in detail in their respective chapters. The aim of this thesis is to provide a solution for iphone users on how to manage finances in any circumstance by keeping track of their expenses everyday. Ultimately, this contributes to societal well-being. 1.1 NEED FOR AN EXPENSE TRACKER APPLICATION ON AN IPHONE (SMARTPHONE) A smartphone is built on a mobile operating system with advanced technology and computing capabilities. It all started with Symbian in 2000, which was the first modern mobile OS on a smartphone followed by Blackberry in 2002, Apple iphone in 2007, Android
13 2 in 2008 etc. Global smartphone sales increased 47.3 % to 149 million units in the fourth quarter of 2011, according to market research firm Gartner [1]. According to the smartphone recent sales stats globally, IDC says that over 153 million smartphones sold worldwide in Q [2]. Smartphone shipments based on Mobile OS as per Q by IDC in Figure 1.1 [2]. Figure 1.1. Share of worldwide 2012 Q2 smartphone sales by OS, according to IDC. Source: M. BROWNLOW. Smartphone statistics and market share. -Marketing- Reports, accessed October 2012, October The above pictorial representation shows that a lot of people are using Apple s iphone device which works on ios. With the launch of the new iphone5 recently whose sales hit 5 million units in first weekend [3] clearly indicates that many people are using it now and thus arises a need for an application that serves to manage their lifestyle by managing their finances accordingly. The sole reason behind the need for this application is that when you start finding out where you are spending your money, it becomes easy to figure out how you can save money by cutting back or even eliminating spending in some areas. You can concentrate on saving even a little bit on your biggest expense categories, compared to
14 3 cutting back a lot on smaller expenses. As this tracking expense becomes a habit, you can get a good picture of how much money you need to maintain your lifestyle. Budget Setting and expense tracking both alter consumer choice. Mental Budgeting leads people to overconsume some goods and underconsume others. Because budgets are set before consumption opportunities arise, they sometimes overestimate or underestimate the money required for a particular amount. On the other hand, expense tracking shows that some expenses are more likely to produce over-or-underconsumption. As people track their expenses, expenses that are relatively easy to categorize those that are more typical examples of their categories will be the most subject to the rigors of budgeting [4, 5]. A number of students at SDSU were asked how much they spend per month on their needs and requirements, and nobody was able to provide an exact answer. Thus, they do not know where their money is going. They liked the idea of such an expense tracking tool where with just a few inputs everyday, you can make yourself organized and make your life a bit easier in the long run. There is a web application and an iphone app such as Mint [6], which handles finances, but users need to input the bank information or the credit card information that they will use to make expenses so that Mint can function. Although the system is SSL encrypted, entering the credit card information is somewhat that any user will hesitate to do at first. If an user possesses many credit and debit cards from which s/he can make expenses, then s/he has to enter them all in Mint in order for it to function and manage the finances. There is no provision to manage cash track activity in Mint. In XpensTrak, I made it pretty clear for the user to choose his payment source either by cash, credit card, debit card, check or a gift card. Please refer to the Appendix for the comparison between Mint and XpensTrak. 1.2 IPHONE OPERATING SYSTEM TECHNOLOGIES Apple s iphone, ipod Touches and ipad devices run on ios which is the operating system. The ios SDK comprises of the interfaces, tools and components required to develop and deploy native applications. Web applications are created by the use of HTML, CSS and javascript code. The development environment to build the ios applications is Xcode where we can create, test, debug our apps. The apps are written in Objective C Programming language. We can run the apps on ios Simulator or on an attached ios Device. For that, we
15 4 need to get an Apple Developer account if we want to test the app on a real device. Everything works in terms of packages called Frameworks in ios. Basically, a framework is a directory containing the libraries and the necessary resources like images, header files that we need to import into the project. The higher-level frameworks should be preferred over lower-level frameworks as they provide much more functionality and features like sockets and threading with a good reduction in the length of the code. The implementation of ios technologies presented as set of layers as shown in Figure 1.2 [7]. Figure 1.2. Layers of ios. Source: APPLE, ios technology overview. Apple, neostechoverview/introduction/introduction.html, accessed October 2012, n.d. The Cocoa Touch layer contains the most important frameworks required to develop an application. With the launch of ios6 this fall 2012, features such as Auto Layout, UI State Preservation have been added. Auto layout allows the user to define set of rules to lay out the elements in user interface design. It s a very intuitive approach than Springs and struts used in earlier ios versions ad it provides more flexibility and better layering between view objects. Another feature called StoryBoards was added in ios 5 which shows the application flow in one interface file itself rather than making different user interface files for each view.
16 5 The frameworks used in Cocoa Touch layer comprises of Address Book, Event Kit UI, Game Kit, MapKit, iad, Twitter, UIKit frameworks. UIKit framework is a key framework used by ios to implement all the core basic features in an app such as Application Management, User Interface Management, Graphics, Multitasking and a lot more related to device specific features too. The Media layer is very important in order to incorporate graphics, audio and video technologies in an ios application. The Media layer comprises of Assets Library, AVFoundation, Core Audio, Core Graphics, Core Text, Core Video, Media Player, QuartzCore and many other frameworks. The Core Services Layer provides the high level features such as icloud Storage which allows the application to write the data to a central location in a cloud and access them from a computer or any ios device. The biggest advantage is even if the user loses the device, the information on that device is never lost if it s on icloud. Another features includes SQLite, XML Support, Automatic Reference counting that eliminates the need for manual memory management and Block supports. It consists of Ad Support, CFNetwork, Core Data, Accounts, Address Book, Core Foundation, Core Media, Foundation, Mobile Core Service and other frameworks. The Core OS Layer comprises of the low level features mostly implemented in C and provide support for Threading, Networking, File System access, memory allocations and math computations. These are basically used by other frameworks or technologies they are built upon. 1.3 CORE APPLICATION OBJECTS The UIKit Framework provides the components and functionality from the time the app starts and till it exits. The core application objects used in ios [8] are: 1. UIApplication object : This object manages the application event loop, receives events from the system and works in sync with the code in app delegate object. 2. App Delegate object : This object is responsible for app launch time and manage transitions to and from the background. 3. Documents and data model objects : Data model objects store specific information to the app and document objects which is a subclass of UIDocument performs the same function of storing info but is flexible and convenient to group bunch of data that belongs to a single file.
17 4. View Controller objects : This object is responsible for presenting the application on the screen and manages the views and subviews within it. 5. UIWindow object: Every app has one window which is responsible for showing the views in it. This object serves to host views. 6. View, Control and layer objects: These objects primarily represent the visuals on the application. The controls are objects such as buttons, switches, labels, text fields etc. and views are objects that s shows the content on the screen in a rectangular area. Core Animation layers are data objects that provide more custom drawings and content on the screen. The key objects in an ios Application are shown in Figure Figure 1.3. Key objects in ios app. Source: APPLE, Key objects of an ios app. Apple, rogrammingguide/apparchitecture/apparchitecture.html#//apple_ref/doc/uid/tp CH3-SW2, accessed October 2012, n.d.
18 1.4 APPLICATION STATES An ios application can be running in the background or foreground and it becomes very important to know when there is a transition in the state. The behavior of an app changes when it is in background state as the operating system puts limitations to what the app can perform in order to improve the battery life of the phone as well as manage it properly with the foreground app. The system uses notifications while making the transitions like when changing the state from background to foreground or foreground to background. While in the suspended state, no notifications are sent by the operating system. An ios application is usually in one of the following states: 1. Not Running: The application has not been launched in this state or being terminated by the system while running. 2. Inactive: The application is not receiving any events but still running in foreground. 3. Active: The application is running in foreground and receiving events as well. 4. Background: The application in this state is in background and still working as in the code is executing behind the scenes and the app is not killed. This state usually comes when the application is on it s way to being suspended or when the application needs some extra execution time. 5. Suspended: The application in this state is in background but not executing any code meaning the application still remains in memory but it s not working in terms of executing the code. The operating system does not notify the app when it moves it to thes suspended state. Figure 1.4 [9] shows the various state changes in an ios application APPLICATION LAUNCH CYCLE Figure 1.5 [9] shows the flow when the application is launched in the foreground. When the user taps the app icon, it calls the main method which in turn calls the UIApplicationMain( ) method. The main UI file is loaded and the application is first initialized by the app delegate applicationwillfinishlaunchingwithoptions:method and applicationdidfinishlaunchingwithoptions: method at final initialization. When the application is running and active, applicationdidbecomeactive: method is called from the app delegate. A series of events are executed which are handled by the code itself. When the
19 Figure 1.4. State changes in ios app. Source: APPLE, App states and multitasking. Apple, #documentation/iphone/conceptual/iphoneosprogrammingguide/ ManagingYourApplicationsFlow/ManagingYourApplicationsFlow. html#//apple_ref/doc/uid/tp ch4-sw1, accessed October 2012, n.d. 8
20 Figure 1.5. The app launch cycle. Source: APPLE, App states and multitasking. Apple, Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/Mana gingyourapplicationsflow.html#//apple_ref/doc/uid/tp ch4-sw1, accessed October 2012, n.d. 9
21 10 app quits foreground, applicatondidresignactive: method is called and when app enters the background, applicationdidenterbackground: method is called. When alert-based interruptions occur such as an incoming phone call while the app is running, then the app moves to inactive state for that moment calling the applicationwillresignactive: method and moves back to the active or the background state when the user dismisses the alert calling the applicationdidbecomeactive: method.
22 11 CHAPTER 2 IMPLEMENTATION OF THE MOBILE APPLICATION 2.1 DESIGN AND DEVELOPMENT Prior to building any application from scratch, it is important to plan the design flow of the application. The user interface design is pretty essential to know how the application is intended to work. Planning an application definitely involves some specific strategies. Many strategic questions come to the mind while designing and planning an application like there might be apps in the app store similar to your idea, what the need of such an application in the market is, what features make your app unique, what will make the people use your app and not the ones designed by others, how much time the application will take to develop, what user requirements either small or big should be considered, what category should the app fall into, etc. After planning the application, next comes the sketching or wire-framing it. Wireframing is simply designing the flow of the application, describing how the navigation of the views will work. OmniGraffle [10] is a very flexible tool for wire-framing an application. If the app is designed involving a team, it becomes very essential to use such kind of tool to help design the app and distribute the idea among the team. After the proper flow of the app, next comes the development phase. Apple provides a number of tools to help developers build applications for ios and Mac. Xcode is an IDE that is available from the Mac App Store and the developers can sign in and download it to start building applications. Xcode comes with the Simulators on which we can run and test the app, Interface builders to build the interfaces visually inside the app, command line tools required to develop, cocoa frameworks and various testing tools such as Instruments to detect allocations and memory leaks in the application. The programming language used to write the application in Xcode is Objective-C which is a superset of C.
23 12 IDE. Xcode 4.5 is used to develop this mobile application. Figure 2.1 shows the Xcode Figure 2.1. XpenseTrak ios app on Xcode IDE. 2.2 TAB BAR VIEW When the application is first launched, the applicationdidfinishlaunching: method is called which resides in the AppDelegate class. The AppDelegate class consists of the methods that are responsible for the launching, active, inactive, suspended, termination states of an application. I designed a Tab Bar programmatically inside the app delegate which holds mainly the four Tab Bar items in this case (Dashboard, Money, Reports, Settings). Each Tab Bar Item has it s image to represent the items. The Tab Bar Controller acts as the Root View Controller and the tab bar items are presented with their respective navigation controllers [11]. The Tab Bar Controller has it s own delegate methods which recognizes which tab bar item is pressed and then it behaves accordingly. For example, Tab Bar Item 1 is touched, the tab bar controller delegate method will be called and will perform the required responsibilities. Figure 2.2 [12] shows the anatomy of a UITabBarController.
24 13 Figure 2.2. Tab bar controllers. Source: APPLE, Tab bar controllers. Apple, wcontrollercatalog/chapters/tabbarcontrollers.html, accessed October 2012, n.d. 2.3 CORE DATA FRAMEWORK Core Data framework provides an object graph management of the data model including persistence of the data [13]. Although Core Data is not a relational database, it uses SQLite as one of it s persistent stores. It provides the management of saving objects to and retrieving them from the storage. There is an object, known as managed object context which provides the functionality to Core Data framework. There is the Persistent Store Coordinator that acts as intermediary between the managed object contexts and the external data stores [14]. We create a schema in Core data with application entities, it s properties and relationships. The schema is represented by a managed object model, instance of NSManagedObjectModel. The managed object model comprises of various entities and attributes and relationship among the different entities. Each entity has a name and is represented in the
25 14 code by an NSManagedObject subclass. Entity inheritance is a concept that is used in this application design. The entities that have common attributes in them can subclass from a parent entity. To retrieve the data using managed object context, a fetch request is created. It s basically selecting what data the user wants. A Predicate can be specified that the object should match some particular condition and an array of sort descriptors in which the objects should appear whether ascending or descending. In this application design, various entities have been modeled and are related to each other through one to many or one to one relationships. The entities can have a to-many relationship or one-one relationship where each entity has a unique relationship name to the other entity. Figure 2.3 shows the core data model used in the application. Figure 2.3. Core data model. As Figure 2.3 shows, there are 5 entities designed named Money, Expense, Income, Category and SubCategory. Money is the parent entity with the attributes such as amount, category, date, notes, payment source method, photo, subcategory, total amount and the merchant. The reason the other two entities Income and Expense inherit from the parent
26 entity Money is that they are suppose to have the same attributes in them, so the common attributes are listed in Money entity. Then there is an entity called category with attributes such as categoryname, ischecked (to determine which is the selected category), selectedsubcategory (sub category selected for the particular category). Category has a tomany relationship with Expense and Income entities as there can be many expenses or incomes for a particular category. Then the category has to-many relationship with entity SubCategory as a category can have many sub-categories. The results that are returned from the Core Data fetch request are managed by a fetched result controller that provide the data for the tableview used in the views. An instance of NSFetchedResultsController is created which acts as an instance variable of a table view controller. - (NSFetchedResultsController *)fetchedresultscontroller { if(_fetchedresultscontroller!= nil) { return _fetchedresultscontroller; } AppDelegate * applicationdelegate = (AppDelegate *) [[UIApplication sharedapplication] delegate]; NSManagedObjectContext * context = [applicationdelegate managedobjectcontext]; NSFetchRequest * request = [[NSFetchRequest alloc]init]; [request setentity:[nsentitydescription entityforname:@"money" inmanagedobjectcontext:context]]; NSSortDescriptor *sortdescriptor1 = [[NSSortDescriptor alloc] initwithkey:@"date" ascending:yes]; NSArray * descriptors = [NSArray arraywithobjects:sortdescriptor1, nil]; [request setsortdescriptors: descriptors]; [request setresulttype: NSManagedObjectResultType]; [request setincludessubentities:yes]; [sortdescriptor1 release]; self.fetchedresultscontroller = [[NSFetchedResultsController alloc] initwithfetchrequest:request managedobjectcontext:context sectionnamekeypath:nil 15
27 16 self.fetchedresultscontroller.delegate = self; cachename:nil]; [request release]; NSError *anyerror = nil; if(![_fetchedresultscontroller performfetch:&anyerror]) { NSLog(@"error fetching:%@", anyerror); } return _fetchedresultscontroller; } When a fetched result controller is initialized, we provide four parameters: 1. Fetch request that contains at least one sort descriptor for the resulting order of the objects. 2. Managed object context which the fetched results controller uses to execute the fetch request. 3. Section name key path that is optional which would order the results by section. Making it nil would just make one section and the results would show in that section itself. 4. Cache name used, which is optional. Making it nil would prevent caching. To execute the fetch request, performfetch: method is called on the controller. The class that uses the fetched results controller implements the NSFetchedResultsController delegate. The controller basically notifies the delegate when the objects changes locations or when there is a modification of the sections. The setincludessubentities will produce the results for both the entities Expense and Income as the request is made on the parent entity Money. The NSFetchedResultsController delegate methods are: - (void)controllerwillchangecontent:(nsfetchedresultscontroller *)controller - (void)controller:(nsfetchedresultscontroller *)controller didchangesection:(id <NSFetchedResultsSectionInfo>)sectionInfo atindex:(nsuinteger)sectionindex forchangetype:(nsfetchedresultschangetype)type - (void)controller:(nsfetchedresultscontroller *)controller didchangeobject:(id)anobject atindexpath:(nsindexpath *)indexpath forchangetype:(nsfetchedresultschangetype)type newindexpath:(nsindexpath *)newindexpath
28 17 - (void)controllerdidchangecontent:(nsfetchedresultscontroller *)controller 2.4 EXPENSE/INCOME VIEW The expense/income view will contain the list of expenses/incomes made for a particular date. The user can either enter an expense or an income depending on what he chooses from the Block Action Sheet which is explained below Block Action Sheet After the Tab Bar is set up, the views for the Expenses and Incomes are set up. The Money tab bar item is pressed and it sets up a custom BLOCK ACTION SHEET [15] that allows the user to either enter the expenses or income or press cancel and make the alert go away. ios SDK provides a built-in UIActionSheet component which is an action sheet view with buttons that performs the required actions. In this case, custom block action sheet is used because it has certain animation effects, the buttons are designed very well and gives the user interface a better look than the built in Alert View. Also, Blocks is a feature of Objective C 2.0 which allows us to write blocks of code and pass them along as objects. The custom Block Alert view uses Blocks in it s implementation and thus makes it very flexible, organized and readable in terms of the code. In case of the ios built in action sheet, the code to initialize action sheet is written somewhere and it s button press actions occur somewhere else in the code, making it quite unreadable whereas the block action sheet is instantiated in the code and it s button press action occurs in the same block, making it organized and readable. Figure 2.4 shows the block action sheet view when the money tab bar item is pressed. - (BOOL)tabBarController:(UITabBarController *)tabbarcontroller shouldselectviewcontroller:(uiviewcontroller *)viewcontroller { if([viewcontroller.title isequaltostring:@"money"]) { BlockActionSheet* sheet = [[[BlockActionSheet alloc] initwithtitle:nslocalizedstring(@"enter Expense or Income", nil)] autorelease]; [sheet setdestructivebuttonwithtitle:nslocalizedstring(@"expense", nil) block:^{ moneydetailcontroller = [[MoneyDetailViewController alloc]initwithnibname:@"moneydetailviewcontroller" bundle:nil];
29 18 Figure 2.4. Block action sheet. moneydetailcontroller.expense = _expenseobject; moneydetailcontroller.pushedbtnvalue = 1; UINavigationController *navcontrol = [[UINavigationController alloc] initwithrootviewcontroller:moneydetailcontroller]; [self presentmodalviewcontroller:navcontrol animated:yes]; [moneydetailcontroller release]; [navcontrol release];
30 19 }]; [sheet nil) block:^{ moneydetailcontroller = [[MoneyDetailViewController alloc]initwithnibname:@"moneydetailviewcontroller" bundle:nil]; moneydetailcontroller.income = _incomeobject; moneydetailcontroller.pushedbtnvalue = 2; UINavigationController *navcontrol = [[UINavigationController alloc] initwithrootviewcontroller:moneydetailcontroller]; [self presentmodalviewcontroller:navcontrol animated:yes]; [moneydetailcontroller release]; [navcontrol release]; }]; [sheet setcancelbuttonwithtitle:nslocalizedstring(@"cancel", nil) block: ^{}]; [sheet showinview:[self view]]; } } return YES; The block action sheet is allocated and initialized with a title in the tab bar controller delegate method. When the Money tab item is pressed on the tab bar controller, it pops up the action sheet in the view. The buttons (Expense and Income) are set up and their corresponding actions take place in their respective block itself pushing to the new view which will allow user to enter expenses or income in detail Calendar View To track down the expenses /income made, it s very important to know what day the expense was made. For that, an existing custom UI Component called PMCalendar [16] is used. These components are built upon the various built in ios frameworks such as Core Graphics, Core Text frameworks. It does not require any third party framework but all these custom components are available open source so that that they can be included in the project and then can be customized enough to make it work accordingly in the application. The calendar shows the current date being selected and will update the date automatically
31 20 everyday and the user can basically select whatever date and see the expenses made that day keeping it very flexible and organized. On the calendar button pressed shown in Figure 2.5, the calendar view pops up and the user can see or select the dates on which the expenses were made. All the interface components (buttons, text fields, labels) are build in the Interface Builder provided by Xcode, they are referenced by IBOutlets and their corresponding actions are reperesented by IBActions. Figure 2.5. PMCalendar view.
32 21 - (IBAction)showCalendar:(id)sender { self.pmcc = [[PMCalendarController alloc] initwiththemename:@"default"]; pmcc.delegate = self; pmcc.mondayfirstdayofweek = NO; } [pmcc presentcalendarfromview:_showcalendarbtn.superview permittedarrowdirections:pmcalendararrowdirectiondown animated:yes]; [self calendarcontroller:pmcc didchangeperiod:pmcc.period]; [pmcc release]; A PMCalendar object is instantiated when the button is presented and the view is being presented and it s delegate method didchangeperiod: is called when the user selects the dates on the calendar view and it updates to that selected date and shows the expense record Expense/Income Detail View When the expense or the income button on the Block Action Sheet is pressed, it navigates to the next view called the MoneyDetailViewController which basically contains some fields that are supposed to be entered by the user in order to save their daily expenses or incomes. User can take the photo of the receipt (bills), enter the amount, merchant and category. Date will be automatically set to the current date and user has the option to fill subcategory, payment source and some notes about the expense/income. The view is presented in a table view style called UITableView in ios which presents the data in rows. When Category row is pressed, it takes the user to another view called CategoryView with some pre-filled entries in the database. Categories can be added, edited and deleted as well depending on the user needs and requirements. Sub-Category view is displayed when the user taps a category and can add a sub-category related to the category being tapped. The payment source Row presents another screen with a tableview displaying various sources such as Cash, Credit card, Debit Card, Gift Card and Check. Figure 2.6 shows the expense detail view.
33 22 Figure 2.6. Expense detail view. Expense detail view consists of the above fields when entered by the user. Figure 2.7 shows the block action sheet when the photo button is clicked by the user in order to take the picture of the receipt. The Take Photo button will open up the camera, Choose from photo library button will take the user to the iphone photo gallery and choosing any picture will save it to the photo placeholder. The cancel action will just hide the action sheet. The
34 23 Figure 2.7. Photo button action. UIImagePickerController class is responsible for taking pictures and for choosing saved images from the photo gallery and use them in the application. A source type is assigned to UIImagePickerController for different actions. For taking pictures from camera, source type of UIImagePickerControllerSourceTypeCamera is used and for choosing saved images from the gallery, UIImagePickerControllerSourceTypePhotoLibrary is used. The class that implements this controller also conforms to the UIImagePickerControllerDelegate protocol.
35 24 imagepicker=[[uiimagepickercontroller alloc] init]; imagepicker.sourcetype=uiimagepickercontrollersourcetypecamera; imagepicker.delegate=self; imagepicker.allowsediting=yes; [self.navigationcontroller presentmodalviewcontroller:imagepicker animated:yes]; [imagepicker release]; The delegate method used with UIImagePickerController is notified when a new image is taken or an image is choosen from the photo gallery. -(void)imagepickercontroller:(uiimagepickercontroller *)picker didfinishpickingmediawithinfo:(nsdictionary *)info { if(imagepicker.sourcetype == UIImagePickerControllerSourceTypeCamera) { [receiptbtn settitle:@"" forstate:uicontrolstatenormal]; _templateimgview.templateimage.image=[info objectforkey:@"uiimagepickercontrollereditedimage"]; UIImageWriteToSavedPhotosAlbum(_templateImgView.templateImage.image, nil); } else if(imagepicker.sourcetype == UIImagePickerControllerSourceTypePhotoLibrary) { [receiptbtn settitle:@"" forstate:uicontrolstatenormal]; _templateimgview.templateimage.image=[info objectforkey:@"uiimagepickercontrollereditedimage"]; } } [picker dismissmodalviewcontrolleranimated:yes]; Figure 2.8 shows the Income Detail view quite similar to the expense detail view. Income detail view consists of the same fields as the expense detail view and looks like above when filled by the user. When the save button is pressed, the income is saved for that date which is displayed in another view. ios includes a UITableView component in UIKit Framework which consists of showing the data in a tableview which can be vertically scrolled. The tableview styles can be plain or grouped and consists of zero or more number of sections and rows that are made of UITableViewCell objects. UITableView uses the tableview cells objects to draw the rows. The UITableView has an object that acts as the data source and an object that acts as a a
36 25 Figure 2.8. Income detail view. delegate. It can be application delegate or a custom UITableViewController object. It must correspond to the tableview data source and table view delegate protocols. The data source and delegate methods for UITableView are: - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableview - (NSInteger)tableView:(UITableView *)tableview numberofrowsinsection:(nsinteger)section
37 26 - (UITableViewCell *)tableview:(uitableview *)tblview cellforrowatindexpath:(nsindexpath *)indexpath - (void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath Category/Sub-Category View When the category row on the Expense/Income Detail view is pressed, it brings to another tableview with some pre-filled entries in the database. The user can press the edit button to delete the existing categories or add new categories to the existing list. The Subcategory view is displayed in a similar fashion when a particular category is being tapped. The user has the option to add a sub-category to the related category. If all the rows are entered, the user has the flexibility to see the results (expenses) in the reports tab based on Category, Sub-Category, vendor, payment source etc. Figure 2.9 shows the category view. When any of the views is being launched, viewdidload method in ios is being called which instantiates the loading of the view. There are methods like viewwillappear, viewdidappear with little differences and are called accordingly depending on the actions the view has to perform. These pre-filled entries are stored in Core Data database model. In order to persist the category/expense/income data, Core Data has been used as described above in Section (void)insertcategory:(nsstring *)category { AppDelegate * applicationdelegate = (AppDelegate *) [[UIApplication sharedapplication] delegate]; NSManagedObjectContext * context = [applicationdelegate managedobjectcontext]; _category = [NSEntityDescription insertnewobjectforentityforname:@"category" inmanagedobjectcontext:context]; _category.categoryname = category; } NSError * error = nil; [context save:&error]; - (void)importcoredatadefaultcategories { [self insertcategory:@"auto"]; [self insertcategory:@"income"]; [self insertcategory:@"entertainment"];
38 27 Figure 2.9. Category view. [self [self [self [self [self [self [self [self [self
39 28 } When the view is launched viewdidload: method is called and it checks in there if there are no fetched objects, it imports the above existing categories. - (void)viewdidload { if (![[self.fetchedresultscontroller fetchedobjects] count] > 0 ) { [self importcoredatadefaultcategories]; } else { } self.navigationitem.rightbarbuttonitem=self.editbuttonitem; } [super viewdidload]; When a new category is added to the list, it is saved by the following save: method. - (void)saveitem:(id)sender // adding a new category to the list. { if([[_addtxtfield text] length] == 0) { NSString* title = NSLocalizedString(@"Category Missing", nil); NSString* message = NSLocalizedString(@"Add a new Category", nil); } BlockAlertView* alert = [BlockAlertView alertwithtitle:title message:message]; [alert addbuttonwithtitle:nslocalizedstring(@"ok", nil) block:^{ }]; [alert show]; return; AppDelegate * applicationdelegate = (AppDelegate *) [[UIApplication sharedapplication] delegate]; NSManagedObjectContext * context = [applicationdelegate managedobjectcontext]; _addcategory = (Category*) [NSEntityDescription insertnewobjectforentityforname:@"category" inmanagedobjectcontext:context]; } _addcategory.categoryname = _addtxtfield.text; NSError * error = nil; [context save:&error]; [self.navigationcontrolle dismissmodalviewcontrolleranimated:yes];
40 The new objects are added by referencing to the entity Category and then it s saved to the managed object context and can be retrieved from it later on by a fetch request if needed. New entries are added by using insertnewobjectforentityforname: method on NSEntityDescription which is provided by NSManagedObjectModel class. Block Alert view is used in order to pop up an alert when the user tries to save a new category/subcategory without adding a name to it. ios provides UIAlertView component just like UIActionSheet described above, but Block Alert view is more flexible and got many advantages over the built in component in ios as mentioned in Figure 2.10 and 2.11 shows the view for adding sub-category and the block alert while trying to add a subcategory without a name. The sub-categories can be deleted or added by pressing the plus button on the left and that will pop up a view to add a new sub-category. The user can create and add as many categories/subcategories he wants to related to the expenses/incomes. The custom built Block Alert view is popped up when the user tries to save the new sub-category without a name for it Date Picker View When the date row on the Expense/Income Detail View (Figure 2.6 and 2.7) is tapped, it moves to a date picker view so that the user can select any date in the picker to see the expense/income made or probably add an expense/income for a particular date if he forgot to add it on that date itself (see Figure 2.12). (void)adddatepicker { _datepicker.datepickermode = UIDatePickerModeDate; [_datepicker addtarget:self action:@selector(datepickervaluechanged:) forcontrolevents:uicontroleventvaluechanged]; NSDate *presentdate=[nsdate date]; _datepicker.date = presentdate; [_datepicker setdate:presentdate animated:yes]; _datelbl.text = [NSString stringwithformat:@"%@",[dateformatter stringfromdate:presentdate]]; 29 NSDate *d =[_datepicker date];
41 30 Figure Sub category view. unsigned units = NSYearCalendarUnit NSMonthCalendarUnit NSDayCalendarUnit; NSCalendar *calendar = [[NSCalendar alloc] initwithcalendaridentifier:nsgregoriancalendar]; NSDateComponents *components = [calendar components:units fromdate:d]; NSInteger year = [components year]; NSInteger month = [components month]; NSInteger day=[components day];
42 31 Figure Block alert view. [calendar release]; datedayindex=day; datemonthindex=month; dateyearindex=year; }
43 32 Figure Date picker view. The current date is set up on the date picker. It s a UIDatePicker component available in ios built in interface. The UIDatePicker provides the date and date picker modes which is set up to show the month, date and year. When the date picker is rotated to change the date, datepickervaluechanged: method is called to set the date set up by the user.
44 Payment Source View Whenever the expense is made, it s pretty important to know the payment source method being used. Expenses/Incomes are being tracked by the payment source method so that the user can know by what source he is spending or making money. The source can be cash, credit card, debit card etc. Figure 2.13 shows the payment sources used in the application. 2.5 DASHBOARD VIEW The Dashboard View (see Figure 2.14) basically shows the summary of expenses/incomes based on Category, vendor and the payment source. The summary is shown weekly, monthly and yearly in a table view listing the category and total expense/income amount related to it so that the user can keep a detailed track where he s spending and where he needs to cut down the maximum in order to ensure a good living which is the sole purpose of this software tool. 2.6 REPORTS VIEW The Reports View (see Figure 2.15), as the name says shows the reports or the results from the feed of an user s inputs for an expense/income generated. The user has the flexibility to see the total expense/income amount made from a certain period of time. The time duration can be chosen by the user and the reports can be based on a variety of choices such as category, vendor, subcategory, payment source etc. 2.7 SETTINGS VIEW The application has a settings view which allow the users to choose whatever setting options they want to use in the application. The settings view has been implemented by using a third party open source library called InAppSettingsKit [17] for ios. This library is an open source solution that provides in-app settings inside an iphone application. A settings bundle is incorporated with a Root plist file that specify the UI elements with the NSUserDefault keys. The elements such as text fields, buttons, labels, toggle switches etc can be included in the plist with the key values that will be appear in the form of a tableview in settings application of iphone as well as in the in-app settings of the application.
45 34 Figure Payment source view. Figure 2.16 shows the Root plist file in the settings bundle which forms the elements in the settings view. The settings view sublasses IASKAppSettingsViewController which is a table view controller with the connection of the UI elements and the NSUserDefault keys. NSUserDefaults is a way to persist the data in ios. The value of the keys are preserved. Figure 2.17 shows the settings view in this application.
46 35 Figure Dashboard view. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableview { return [self.settingsreader numberofsections]; } - (NSInteger)tableView:(UITableView *)tableview numberofrowsinsection:(nsinteger)section { return [self.settingsreader numberofrowsforsection:section]; }
47 36 Figure Reports view. - (UITableViewCell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath { IASKSpecifier *specifier = [self.settingsreader specifierforindexpath:indexpath]; if ([specifier.type isequaltostring:kiaskcustomviewspecifier] && [self.delegate respondstoselector:@selector(tableview:cellforspecifier:)]) { UITableViewCell* cell = [self.delegate tableview:tableview cellforspecifier:specifier]; assert(nil!= cell && "delegate must return a UITableViewCell for custom cell types"); return cell;
48 37 Figure Root plist view. } UITableViewCell* cell = [tableview dequeuereusablecellwithidentifier:specifier.type]; if(nil == cell) { cell = [[self newcellforidentifier:specifier.type] autorelease]; } if ([specifier.type isequaltostring:kiaskpstoggleswitchspecifier]) { cell.textlabel.text = specifier.title; id currentvalue = [self.settingsstore objectforkey:specifier.key]; BOOL togglestate; if (currentvalue) { if ([currentvalue isequal:specifier.truevalue]) { togglestate = YES; } else if ([currentvalue isequal:specifier.falsevalue]) { togglestate = NO; } else { togglestate = [currentvalue boolvalue]; } } else { togglestate = specifier.defaultboolvalue; } IASKSwitch *toggle = (IASKSwitch*)cell.accessoryView; toggle.on = togglestate; toggle.key = specifier.key; } else if ([specifier.type isequaltostring:kiaskpsmultivaluespecifier]) { cell.textlabel.text = specifier.title; cell.detailtextlabel.text = [[specifier titleforcurrentvalue:[self.settingsstore objectforkey:specifier.key]!= nil? [self.settingsstore objectforkey:specifier.key] : specifier.defaultvalue] description]; }
49 38 Figure Settings view. The view consists of two sections. The save Receipt toggle switch allows the user to save the photo of the receipt to the photo gallery or not. Toggling cashflow switch to ON state will enable the user to see the cashflow information on the saved expense/income view otherwise it won t show up the cashflow summary. By default, these switches are turned ON. The Budget Set up is a multivalue specifier which enables the user to enter the budget information. It is a custom budget whose cycle can be set to every day, every week, every
50 39 two weeks, every 4 weeks, every month, every three months, every year. By default, the budget set up is set to OFF and the user can edit it to custom budget and enter the required budget based on the income or the user s needs and requirements. The budget set up in this application is very efficient in order to see how much is the user spending and if it would meet the budget set up or go a level down.
51 40 CHAPTER 3 RESULTS 3.1 EXPENSE/INCOME DEMO When the user feeds the inputs for an expense/income made, a table view is displayed showing the list of expenses/incomes for the particular day and date. Figure 3.1. shows the results for the Expense/Income table view where the red color row clearly displays an expense and a green row specifies an income. The topmost view shows the number of expenses made, the total expense amount and the daily average spending for that particular month. Figure 3.2 shows the income amount, expense amount and the cash flow along with the list of the expenses/income made. These visual displays are important as the potential user can see what he is spending on, how much he is spending, what he is earning and a cash flow to see the overall progress. All the mathematic calculations are done by the application itself and the user doesn t have to worry about anything. 3.2 DASHBOARD DEMO Sometimes, the user wants to know how much is he spending weekly, monthly or yearly and the dashboard provides the user with this flexible feature where he can see his expenses and expense amount based on Category, Vendor and payment source. With this feature, the user can definitely look over and cut down on the expenses based on some specific category or vendor. Figure 3.3 and 3.4 shows the dashboard results based on week, month or year along with categories, vendor or payment source. Again, the red color section headers shows expenses and green color section headers represent income made during that time. Figure 3.3 show the list of expenses, the expense amount and the total expense amount for the month and year as selected by the user based on the vendor and category respectively.
52 Figure 3.1. Expense/income demo with expense summary. 41
53 Figure 3.2. Expense/income demo with cashflow. 42
54 43 Figure 3.3. Dashboard demo 1. Figure 3.4. Dashboard demo 2.
55 44 Figure 3.4 show the list of expenses and incomes, the expense/income amount and the total expense/income amount for the week and month as selected by the user based on the category and payment source respectively. The advantage of such approach is the user can keep the expense track activity by cash, credit card or various other payment source methods. 3.3 REPORTS DEMO The reports section displays the results from the user feeds in three forms- Summary, Bar Graphs and Pie charts. The reports summarizes the total expenses/incomes made based on the user selection from a specific period of time to another period of time Summary The summary, Figure 3.5 shows the total cash flow progress based on the user selected dates and display choice (payment source and vendors). Figure 3.5. Summary demo 1.
56 45 Figure 3.6 shows the total cash flow progress based on the user selected dates and display choice (subcategories and categories). Figure 3.6. Summary demo Bar Graphs The total expense/income amount and it s summary is seen better if shown graphically. A visual representation is beneficial for the user to get the clear estimate where he needs to cut down his expenses. The user selects a time period and display choice in order to see the total expense amount graphically. When the user selects the bar graph button, a pop up gets displayed allowing the user to choose Expenses or Income in order to see the required results. Figure 3.7 shows the bar graphs for expenses made during a certain period of time selected by the user based on categories and payment source.
57 46 Figure 3.7. Bar graph expense demo. Each item is represented by it s own individual bar and with it s own specific amount. Figure 3.8 shows the bar graphs for income made during a certain period of time selected by the user based on subcategories and payment source Pie-Charts Another way of viewing data graphically is by the use of Pie charts that is a very powerful and efficient way to see the data in terms of percentage. Figure 3.9 shows Pie charts for expenses based on payment source and vendor. For the first part of Figure 3.9, the total expense amount is shown in red color and the specific percentage values represent how much is being spend by cash, check or credit card. For the second part of Figure 3.9, the percentage values represent how much is spent on which vendor during that particular period of time.
58 47 Figure 3.8. Bar graph income demo. Figure 3.10 shows Pie charts for incomes based on payment source and vendor. For the first part of Figure 3.10, the total income amount is shown in green color and the specific percentage values represent how much is credited by the vendors such as itunes etc. For the second part of Figure 3.10, the percentage values represent the payment source by which the amount is credited during that particular period of time.
59 Figure 3.9. Pie chart expense demo. 48
60 Figure Pie chart income demo. 49
61 50 CHAPTER 4 COMPARISON WITH OTHER MOBILE PLATFORMS The most common mobile operating systems currently used are ios, Android, Blackberry OS, Symbian OS and Windows Mobile. Each operating system has it s own unique features and performance areas [18, 19] as discussed in this section. In terms of User Interface Design, Android s UI is not as smooth or fluid as ios or WP7 because it runs on bytecode whereas ios runs on native code. All the UI rendering on the ios is done on the UI Thread in real time priority whereas android follows PC rendering on the main thread with normal priority. ios interface design is very intuitive and has got great shiny look with bright colored icons and menus. Apple really focuses on the fine user experience while using the iphone device. Android has a pull down menu with color schemes whereas blackberry has a swipe up application menu mechanism on the bottom of the screen. In terms of development environment, every operating system has an IDE, a simulator and some debugging tools. Blackberry and Android requires the use of Java, android developed on Eclipse IDE whereas ios is done on a Mac with Objective C as the programming language and Xcode as the IDE. WP7 is done using C# language. Objective C++ can be used as well in Xcode in order to develop the applications. Applications that are submitted to Apple takes almost two weeks to be approved and then they become available on the store whereas on Google play, it s just a matter of couple of hours. In terms of development ease, many devices such as nexus, Samsung, Motorola work on Android OS which have different screen sizes, so the developer has to tweak around and find ways at the run time of the app so that the application user interface looks good on all the different devices that are different in sizes whereas with iphone having one fixed size, it makes easy for the developers to adjust the frames and sizes. But with the launch of iphone5, which is taller than the other iphone devices, developers have to work little more on it so that the graphics elements fix properly.
62 51 In terms of performance, Android supports NVIDIA Tegra 2 dual core processor, whereas Blackberry, Symbian and Apple supports dual core processor. However, the new iphone5 supports Apple A6 processor which is basically a 1.3 Ghz custom apple designed ARMv7 based dual core CPU whereas the previous devices were using Apple A5 processor. In terms of memory management, ios 5 provides ARC which means that Objective C takes care of the memory management itself and freeds the developer from the pain of manual memory management by retaining and releasing objects. Android and Blackberry use garbage collection to avoid the memory leaks. The memory leaks in ios can be detected by various tools such as NSZombies and Instruments provided with the Xcode IDE. The user cannot expand the memory of an iphone device whereas Android OS can have external memory cards. In terms of stability, ios is more stable and less error prone whereas Android is unstable and because of the multitasking nature, the processes can conflict with each other causing crashes. Every operating system has it's own advantages and disadvantages over the other varying with their hardware, software features, user interface designs, performance issues, memory issues etc.
63 52 CHAPTER 5 CONCLUSION We now present and discuss the limitations of the new product, issues faced, and the remedies to those limitations. While building this expense tracking software tool, the major focus was to make this tool less user intensive and more user productive. The first version of this application is only applicable to the USA. It could have been used in other countries if I would have used currency converters in the application, which I will improvise in the later version. Certain issues were faced while implementing this tool and various important things were kept in mind. For example, the user interface is designed simple yet creative so that the user doesn t face any difficulty in using the software tool and the expense data is persisted on the device even if the user deletes the application from the memory background. Core Data was chosen over SQLite to persist the data which is very beneficial even though the data would reside on the device locally. icloud functionality is missing. This would allow data to be saved to a Cloud and shared between various devices. The application lacks the feature of PDF by which the list of expenses and amount could have been displayed in one file in PDF format making it easily readable for the users. Despite of the mentioned flaws, the application would work as a charm for tracking expenses and provides the user, the flexibility to see the reports in any format (PDF, Bar Graphs, Pie-charts, summary etc.). Section 5.1 discusses the various limitations in the application and Section 5.2 discusses the future work in order to fix the current problems. 5.1 CURRENT LIMITATIONS The application is designed in such a simple and straight forward manner that the user faces no problems or difficulties in using this software tool to track the expenses. Still the application suffers from various limitations which doesn t create any obstacle in the current
64 53 version as such but these limitations need to be addressed in the next version of the application. The user can only enter the expense/income amount in USD Currency. So, this application would primarily be used in USA only and cannot be used all over the world because other currencies are not being addressed in this version. The expenses/income can only be tracked in US currency thereby. The application could have been more user friendly. For example if the user keeps track of the daily expenses and spends money at Starbucks everyday, he has to enter all the information (merchant, date, amount etc.) himself all over again. Searching functionality is missing in the current version of the application. Suppose the user wants to search and see the expenses made for a particular category say Food - Starbucks for the past 3 months, the user has to scroll through the calendar provided and see it. The reports in terms of graphs show a comparison of the expenses/incomes separately made on different categories/subcategories. But the graph report doesn t show or evaluate income made v/s expense. 5.2 FUTURE WORK All the limitations discussed in Chapter 5 should be addressed in the next version of the application so that it can be more enhanced and user friendly. Provision to add different currencies will be added so that this application is not just limited to USA but also can be used worldwide and the currency converters will be designed and added in order to convert the different currency rates. In order to make it more user friendly and less user intensive, when the user tries to add the same category or vendor to an expense/income record, a duplicate alert will be presented showing the same category/vendor which the user entered previously for some expense/income and then he can tap on it and the entries will be automatically filled for the current record. For example: the user spends US$ 10 at Starbucks (vendor) on drinks (category) on a particular date and the next day he spends some money at the same place on the same category, then when he tries to write that on the expense details view, a duplicate pop up will be presented showing Starbucks as the vendor and drinks as the category. The
65 54 user taps it and it automatically fills up the detail view making the application less user intensive. A new tab named Search will be implemented so that if the user searches for any vendor, category or subcategory by name, he can see the expenses made on that particular search in a table view list with the total number of transactions made and the total expense amount for that search. This would provide a lot more flexibility for the users to track the particular expenses on particular items. Also, the graph reports show the expenses and income graphs separately in the current version. In the future, a comparison between the income made and expense will be shown graphically providing the user more options to see what they are making and what they are spending accordingly. A PDF feature would be implemented so that the user can see the total expenses/incomes in a much simpler PDF format in one file.
66 55 REFERENCES [1] D. GRAZIANO, Gartner: Apple leads smartphone sales to new heights. BGR Media, accessed October 2012, February [2] M. BROWNLOW, Smartphone statistics and market share. -Marketing-Reports, accessed October 2012, October [3] THE WASHINGTON POST, iphone 5 sales above 5 million, Apple says, surpassing iphone 4S. The Washington Post, million-apple-says-surpassing-iphone-4s/2012/09/24/8b23322e e2-afffd6c7f20a83bf_story.html, accessed September 2012, September [4] C. HEATH AND J. B. SOLL, Mental budgeting and consumer decisions, J. Consumer Res., 23 (1996), pp [5] J. HASTINGS AND J. M. SHAPIRO, Mental accounting and consumer choice: Evidence from commodity price shocks. Unpublished report, [6] MINT, Homepage. Mint, accessed October 2012, n.d. [7] APPLE, ios technology overview. Apple, #documentation/miscellaneous/conceptual/iphoneostechoverview/introduction/int roduction.html, accessed October 2012, n.d. [8] APPLE, Key objects of an ios app. Apple, documentation/iphone/conceptual/iphoneosprogrammingguide/apparchitecture/a pparchitecture.html#//apple_ref/doc/uid/tp ch3-sw2, accessed October 2012, n.d. [9] APPLE, App states and multitasking. Apple, #documentation/iphone/conceptual/iphoneosprogrammingguide/managingyourap plicationsflow/managingyourapplicationsflow.html#//apple_ref/doc/uid/tp CH4-SW1, accessed October 2012, n.d. [10] THE OMNI GROUP, OmniGraffle for Mac. The Omni Group, accessed November 2012, n.d. [11] D. MARK, J. NUTTING AND J. LAMARCHE, Beginning iphone 4 Development: Exploring the ios SDK, Apress, New York, New York, [12] APPLE, Tab bar controllers. Apple, #documentation/windowsviews/conceptual/viewcontrollercatalog/chapters/tabba rcontrollers.html, accessed October 2012, n.d. [13] APPLE, Introduction to core data programming guide. Apple,
67 ProgrammingGuide.html#//apple_ref/doc/uid/TP SW1, accessed October 2012, n.d. [14] P. ALESSI, Professional iphone and ipad Database Application Programming, Wiley Publishing, Indianapolis, Indiana, [15] G. AMBROZIO, Block-based action sheet. Cocoanetics, /06/block-based-action-sheet/, accessed October 2012, n.d. [16] PAVEL, PMCalendar for ios. Cocoa Controls, platforms/ios/controls/pmcalendar, accessed October 2012, n.d. [17] L. VANDAL AND O. GENTZ, Homepage. InAppSettingsKit, accessed October 2012, n.d. [18] MOBILE INNOVATION, Smartphones operating systems war. The Mobile Innovation, accessed October 2012, n.d. [19] T. WOOLEY, A comparative study of the Android and iphone operating systems. University of Central Florida, COP5611Spring2010/Project/TravisWooley-Presentation.pdf, accessed October 2012, April
68 57 APPENDIX COMPARISON OF MINT V/S XPENSTRAK
69 58 Mint works by first creating an user account and then entering your bank and credit card information. Mint web application is a complete package that offers graphical representation like graphs and charts to see the expenses but the Mint iphone app doesn t show any visual representation. There is no way to track cash activity on Mint, although you can just enter any expense if it s payment source is cash. Also, there is no ability to see transactions from your checking account. Figure A.1 shows the first view when the Mint iphone app is launched. Figure A.1. Mint iphone app launch screen. XpensTrak provides the users, the flexibility to enter as well as track the cash activity from any certain period of time based on user selection and there is a provision to see the visual representation in terms of Summary, Bar Graphs and Pie charts as seen from Chapter 3. These few things become important for the user to manage and track the expenses carefully and thus maintain a proper lifestyle based on that.
70 Figure A.2 shows some screenshots from the Mint iphone application where I created an account and entered one bank information to compare my expense tracking tool with it. 59 Figure A.2. Mint iphone app details.
2. About iphone ios 5 Development Essentials. 5. Joining the Apple ios Developer Program
Table of Contents 1. Preface 2. About iphone ios 5 Development Essentials Example Source Code Feedback 3. The Anatomy of an iphone 4S ios 5 Display Wireless Connectivity Wired Connectivity Memory Cameras
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
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
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
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
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
View Controller Programming Guide for ios
View Controller Programming Guide for ios Contents About View Controllers 10 At a Glance 11 A View Controller Manages a Set of Views 11 You Manage Your Content Using Content View Controllers 11 Container
Developing Applications for ios
Developing Applications for ios Lecture 1: Mobile Applications Development Radu Ionescu [email protected] Faculty of Mathematics and Computer Science University of Bucharest Content Key concepts
iphone ios 6 Development Essentials
i iphone ios 6 Development Essentials ii iphone ios 6 Development Essentials First Edition ISBN-13: 978-1479211418 2012 Neil Smyth. All Rights Reserved. This book is provided for personal use only. Unauthorized
ios Application Development &
Introduction of ios Application Development & Swift Programming Language Presented by Chii Chang [email protected] Outlines Basic understanding about ios App Development Development environment: Xcode IDE Foundations
Learning ios Programming
SECOND EDITION Learning ios Programming Alasdair Allan Beijing Cambridge Farnham Koln Sebastopol O'REILLY Tokyo Table of Contents Preface ix 1. Why Go Native? 1 The Pros and Cons 1 Why Write Native Applications?
ios Development Tutorial Nikhil Yadav CSE 40816/60816: Pervasive Health 09/09/2011
ios Development Tutorial Nikhil Yadav CSE 40816/60816: Pervasive Health 09/09/2011 Healthcare iphone apps Various apps for the iphone available Diagnostic, Diet and Nutrition, Fitness, Emotional Well-being
Start Developing ios Apps Today
Start Developing ios Apps Today Contents Introduction 6 Setup 7 Get the Tools 8 Review a Few Objective-C Concepts 9 Objects Are Building Blocks for Apps 9 Classes Are Blueprints for Objects 9 Objects Communicate
Learn iphone and ipad game apps development using ios 6 SDK. Beginning. ios 6 Games. Development. Lucas Jordan. ClayWare Games tm
Learn iphone and ipad game apps development using ios 6 SDK Beginning ios 6 Games Development Lucas Jordan ClayWare Games tm This book was purchased by [email protected] For your convenience Apress
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
ios SDK Release Notes for ios 5.0 beta 3
ios SDK Release Notes for ios 5.0 beta 3 Important: This is a preliminary document for an API or technology in development. Although this document has been reviewed for technical accuracy, it is not final.
Mobile Application Development
Mobile Application Development Lecture 23 Sensors and Multimedia 2013/2014 Parma Università degli Studi di Parma Lecture Summary Core Motion Camera and Photo Library Working with Audio and Video: Media
Objective C and iphone App
Objective C and iphone App 6 Months Course Description: Understanding the Objective-C programming language is critical to becoming a successful iphone developer. This class is designed to teach you a solid
IOS App Development Training
IOS App Development Training IPhone app development is currently the hottest technology. Rightly said it is not everybody's cup of tea but professional trainers make the learning experience really interesting.
NSPersistentDocument Core Data Tutorial for Mac OS X v10.4. (Retired Document)
NSPersistentDocument Core Data Tutorial for Mac OS X v10.4. (Retired Document) Contents Introduction to NSPersistentDocument Core Data Tutorial for Mac OS X v10.4 8 Who Should Read This Document 8 Organization
Beginner level: Modules 1 to 18. Advanced level: Quick review of modules 1 to 18, then following to module 26. 1- A Simple ios Application
FROM 1st TO 4th OF FEBRUARY 2012 contents of the app s creation training track Beginner level: Modules 1 to 18. Advanced level: Quick review of modules 1 to 18, then following to module 26. 1- A Simple
Event Kit Programming Guide
Event Kit Programming Guide Contents Introduction 4 Who Should Read This Document? 4 Organization of This Document 4 See Also 4 Fetching Events 6 Initializing an Event Store 6 Fetching Events with a Predicate
How To Use Ios 5
Chapter 1 The Brand New Stuff In 2007, the late Steve Jobs took the stage at Macworld and proclaimed that software running on iphone was at least five years ahead of the competition. Since its initial
Introduction to iphone Development
Introduction to iphone Development Introduction to iphone Development Contents Task 1 2 3 4 Application Runtime Core Architecture and Life-cycles What s in a bundle? The resources in an app bundle Customizing
BASIC IPHONE PROGRAMMING Case: Dictionary Application
BASIC IPHONE PROGRAMMING Case: Dictionary Application Mikko Kaijalainen Information Technology Bachelor s Thesis May 2010 SAVONIA-AMMATTIKORKEAKOULU Koulutusohjelma Informaatioteknologia (eng.) Tekijä
Praktikum Entwicklung von Mediensystemen mit
Praktikum Entwicklung von Mediensystemen mit Wintersemester 2013/2014 Christian Weiß, Dr. Alexander De Luca Today Organization Introduction to ios programming Hello World Assignment 1 2 Organization 6
Application Programming on the Mac COSC346
Application Programming on the Mac COSC346 OS X Application An application is a complex system made of many subcomponents Graphical interface Event handling Multi-threading Data processing Storage 2 Cocoa
Embedded BI made easy
June, 2015 1 Embedded BI made easy DashXML makes it easy for developers to embed highly customized reports and analytics into applications. DashXML is a fast and flexible framework that exposes Yellowfin
ios Team Administration Guide (Legacy)
ios Team Administration Guide (Legacy) Contents About ios Development Team Administration 5 At a Glance 6 Team Admins Manage Team Membership and Assign Roles in the Member Center 6 Development Devices
App Programming Guide for ios
App Programming Guide for ios Contents About ios App Architecture 7 At a Glance 7 Apps Are Expected to Support Key Features 8 Apps Follow Well-Defined Execution Paths 8 Apps Must Run Efficiently in a Multitasking
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
Client Requirement. Master Data Management App. Case Study -
Idhasoft is a global world-class organization providing best-of-breed localized business and technology solutions, with continuous innovation and quality backed by best-in-class people Case Study - Master
Praktikum Entwicklung von Mediensystemen mit ios
Praktikum Entwicklung von Mediensystemen mit ios SS 2011 Michael Rohs [email protected] MHCI Lab, LMU München Timeline Date Topic/Activity 5.5.2011 Introduction and Overview of the ios Platform 12.5.2011
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,
geniusport mobility training experts
geniu po About Geniusport: GeniusPort is a Pioneer and India's No. 1 Training Center for Mobile Technologies like Apple ios, Google Android and Windows 8 Applications Development. A one stop destination
Backing up your digital image collection provides it with essential protection.
Backing up your digital image collection provides it with essential protection. In this chapter, you ll learn more about your options for creating a reliable backup of your entire digital image library.
GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios with TouchDown
GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios with TouchDown GO!Enterprise MDM for ios Devices, Version 3.x GO!Enterprise MDM for ios with TouchDown 1 Table of
Zipit Chat. Functional Specification / User Manual
Zipit Chat Functional Specification / User Manual 1 Table of Contents 1. Zipit Chat Overview... 4 How to download... 4 Supported version... 4 2. Functionalities... 4 Get Started... 4 Login... 7 Payment
ios Technology Overview
ios Technology Overview Contents About the ios Technologies 7 At a Glance 7 The ios Architecture is Layered 7 The ios Technologies Are Packaged as Frameworks 8 ios and OS X Share Many of the Same Frameworks
Pogo> User Guide. for iphone, ipad and ipod touch
Pogo> User Guide for iphone, ipad and ipod touch Introduction to Pogo> This document provides detailed information on how best to use the Pogo> application to benefit your business. The intention is to
Sophos Mobile Control Administrator guide. Product version: 3.6
Sophos Mobile Control Administrator guide Product version: 3.6 Document date: November 2013 Contents 1 About Sophos Mobile Control...4 2 About the Sophos Mobile Control web console...7 3 Key steps for
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
Xcode Application note
1 Xcode Application note - how to export file from an ios application Feifei Li ECE480 Design Team 10 2 Table of Contents Introduction... 3 Get Started... 3 Familiar with Xcode... 6 Create user interface...
ios App Programming Guide
ios App Programming Guide Contents About ios App Programming 8 At a Glance 8 Translate Your Initial Idea into an Implementation Plan 9 UIKit Provides the Core of Your App 9 Apps Must Behave Differently
Mobile Application Development ITP 342 (3 Units)
Mobile Application Development ITP 342 (3 Units) Fall 2013 Objective This course teaches how to develop applications for mobile devices such as iphones and ipads (ios). We will go through the process of
Wave 4.5. Wave ViewPoint Mobile 2.0. User Guide
Wave 4.5 Wave ViewPoint Mobile 2.0 User Guide 2014 by Vertical Communications, Inc. All rights reserved. Vertical Communications and the Vertical Communications logo and combinations thereof and Applications
Send email from your App Part 1
Send email from your App Part 1 This is a short and simple tutorial that will demonstrate how to develop an app that sends an email from within the app. Step 1: Create a Single View Application and name
ios Dev Fest Research Network Operations Center Thursday, February 7, 13
ios Dev Fest Research Network Operations Center Outline http://goo.gl/02blw Getting Started With App Development Setup Developer Environment Setup Certificates and Provisioning Deploying App To Device
TRIMS Cloud Computing
TRIMS Cloud Computing www.trims.com/cloud TRIMS Workstation iphone, ipad, Android TRIMS Cloud computing lets you access your TRIMS Grounds Management Software data from any iphone, ipad, Android Device
What does the First Mobile app do for me? What else can I do with the mobile banking app beyond the basics? Why should I use the mobile banking app?
What does the First Mobile app do for me? What else can I do with the mobile banking app beyond the basics? Why should I use the mobile banking app? How do I sign up to use mobile banking? What type of
iphone Objective-C Exercises
iphone Objective-C Exercises About These Exercises The only prerequisite for these exercises is an eagerness to learn. While it helps to have a background in object-oriented programming, that is not a
Mobile App Framework For any Website
Mobile App Framework For any Website Presenting the most advanced and affordable way to create a native mobile app for any website The project of developing a Mobile App is structured and the scope of
ios How to Back Up from icloud
ios How to Back Up from icloud How to back up from icloud icloud automatically backs up the most important data on your device using ios 5 or later. After you have enabled Backup on your iphone, ipad,
The story so far: Teaching Mobile App Development at PG level at Londonmet
The story so far: Teaching Mobile App Development at PG level at Londonmet Dr. Yanguo Jing Principal Lecturer in Computing University Teaching Fellow Faculty of Computing, London Metropolitan University
Sophos Mobile Control Administrator guide. Product version: 3
Sophos Mobile Control Administrator guide Product version: 3 Document date: January 2013 Contents 1 About Sophos Mobile Control...4 2 About the Sophos Mobile Control web console...7 3 Key steps for managing
App Distribution Guide
App Distribution Guide Contents About App Distribution 10 At a Glance 11 Enroll in an Apple Developer Program to Distribute Your App 11 Generate Certificates and Register Your Devices 11 Add Store Capabilities
Product Guide. 2013 Nintex. All rights reserved. Errors and omissions excepted.
Product Guide [email protected] www.nintex.com 2013 Nintex. All rights reserved. Errors and omissions excepted. Contents Contents... 2 Introduction... 4 1 Understanding system requirements... 5 1.1 Operating
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 [email protected] 2015 Parma Outline Introduction Installation and Configuration
Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions
Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions MicroStrategy Mobile SDK 1 Agenda MicroStrategy Mobile SDK Overview Requirements & Setup Custom App Delegate Custom
Using the Jive for ios App
Using the Jive for ios App TOC 2 Contents App Overview...3 System Requirements... 4 Release Notes...5 Which Version Am I Using?... 6 Connecting to Your Community... 11 Getting Started...12 Using Your Inbox...13
Star Micronics Cloud Services ios SDK User's Manual
Star Micronics Cloud Services ios SDK User's Manual General Outline This document provides information about the Star Micronics Cloud Services ios SDK, showing guidelines for our customers to build the
ios Dev Crib Sheet In the Shadow of C
ios Dev Crib Sheet As you dive into the deep end of the ios development pool, the first thing to remember is that the mother ship holds the authoritative documentation for this endeavor http://developer.apple.com/ios
/ 1. Online Banking User Guide SouthStateBank.com / (800) 277-2175
/ 1 Online Banking User Guide SouthStateBank.com / (800) 277-2175 Welcome Thank you for using South State s Online Banking. Whether you are a first time user or an existing user, this guide will walk you
Store & Share Quick Start
Store & Share Quick Start What is Store & Share? Store & Share is a service that allows you to upload all of your content (documents, music, video, executable files) into a centralized cloud storage. You
Sophos Mobile Control Startup guide. Product version: 3
Sophos Mobile Control Startup guide Product version: 3 Document date: January 2013 Contents 1 About this guide...3 2 What are the key steps?...5 3 Log in as a super administrator...6 4 Activate Sophos
Your First App Store Submission
Your First App Store Submission Contents About Your First App Store Submission 4 At a Glance 5 Enroll in the Program 5 Provision Devices 5 Create an App Record in itunes Connect 5 Submit the App 6 Solve
Cisco Jabber IM for iphone
Data Sheet Cisco Jabber IM for iphone Cisco Collaboration Solutions improve team and customer experiences to help organizations encourage innovation and improve decision making while building trust and
Site Configuration Mobile Entrée 4
Table of Contents Table of Contents... 1 SharePoint Content Installed by ME... 3 Mobile Entrée Base Feature... 3 Mobile PerformancePoint Application Feature... 3 Mobile Entrée My Sites Feature... 3 Site
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
Mechanics Bank Mobile Banking Mobile Finance Manager (MFM) Application Palm Treo Installation
Mechanics Bank Mobile Banking Mobile Finance Manager (MFM) Application Palm Treo Installation Thank you for your interest in Mechanics Bank Mobile Banking. This guide will help you get started with Mechanics
A) What Web Browser do I need? B) Why I cannot view the most updated content? C) What can we find on the school website? Index Page Layout:
A) What Web Browser do I need? - Window 7 / Window 8.1 => Internet Explorer Version 9 or above (Best in Version 11+) Download Link: http://windows.microsoft.com/zh-hk/internet-explorer/download-ie - Window
Vodafone Email Plus. User Guide for Windows Mobile
Vodafone Email Plus User Guide for Windows Mobile 1 Table of Contents 1 INTRODUCTION... 4 2 INSTALLING VODAFONE EMAIL PLUS... 4 2.1 SETUP BY USING THE VODAFONE EMAIL PLUS ICON...5 2.2 SETUP BY DOWNLOADING
Welcome to Mobile Roadie Pro. mobileroadie.com
Welcome to Mobile Roadie Pro mobileroadie.com Welcome The purpose of this manual is to aquaint you with the abilities you have as a Pro customer, and the additional enhancements you'll be able to make
Tutorial: ios OData Application Development with REST Services. Sybase Unwired Platform 2.2 SP04
Tutorial: ios OData Application Development with REST Services Sybase Unwired Platform 2.2 SP04 DOCUMENT ID: DC01976-01-0224-01 LAST REVISED: June 2013 Copyright 2013 by Sybase, Inc. All rights reserved.
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE
Introduction to Programming with Xojo
Introduction to Programming with Xojo IOS ADDENDUM BY BRAD RHINE Fall 2015 Edition Copyright 2013-2015 by Xojo, Inc. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike
Developing Cross-platform Mobile and Web Apps
1 Developing Cross-platform Mobile and Web Apps Xiang Mao 1 and Jiannong Xin * 2 1 Department of Electrical and Computer Engineering, University of Florida 2 Institute of Food and Agricultural Sciences
Setting up Channel-21 Secure RSS CEP on
Setting up Channel-21 Secure RSS CEP on Important Information About C21 CEP Podcasts itunes iphone / ipad Android Phone/Tablet Demo Videos Important Information about Channel-21 CEP Channel-21 Digital
WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER
WEB, HYBRID, NATIVE EXPLAINED June 2013 CRAIG ISAKSON MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER 701.235.5525 888.sundog fax: 701.235.8941 2000 44th St. S Floor 6 Fargo, ND 58103 www.sundoginteractive.com
geniusport mobility training experts
geniu po About Geniusport: GeniusPort is a Pioneer and India's No. 1 Training Center for Mobile Technologies like Apple ios, Google Android and Windows 8 Applications Development. A one stop destination
HomeBudget Expense Management Software For the Home Mac OS Version
HomeBudget Expense Management Software For the Home Mac OS Version User Guide Version 2.8.3 Table of Contents Overview... 3 HomeBudget Terminology... 6 Getting Started... 7 The Settings Screen... 8 The
GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown
GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown GO!Enterprise MDM for Android, Version 3.x GO!Enterprise MDM for Android with TouchDown 1 Table
GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios Devices
GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios Devices GO!Enterprise MDM for ios Devices, Version 3.x GO!Enterprise MDM for ios Devices 1 Table of Contents GO!Enterprise
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
SAP Business One mobile app for Android
User Guide SAP Business One mobile app 1.2.x for Android Document Version: 1.0 2016-03-25 Applicable Releases: SAP Business One 9.1 PL05 and later, SAP Business One 9.1 PL05, version for SAP HANA and later,
SA-Announce Cloud Services Mobile Notifier User Manual: ios and Android Version 1.0.0
SA-Announce Cloud Services Mobile Notifier User Manual: ios and Android Version 1.0.0 About Syn-Apps Syn-Apps L.L.C. was founded in 2001 as a consulting firm focused on developing software for IP telephony
Southwestern Baptist Theological Seminary TRAINING SERIES. This manual will help you get started with the new Blackboard apps for the ipad and iphone
Southwestern Baptist Theological Seminary TRAINING SERIES How to Use the Blackboard Mobile Learn Apps This manual will help you get started with the new Blackboard apps for the ipad and iphone WILLIAM
Sophos Mobile Control Startup guide. Product version: 3.5
Sophos Mobile Control Startup guide Product version: 3.5 Document date: July 2013 Contents 1 About this guide...3 2 What are the key steps?...5 3 Log in as a super administrator...6 4 Activate Sophos Mobile
Data storage and retrieval in ios
Data storage and retrieval in ios Sebastian Ernst, PhD! Department of Applied Computer Science AGH University of Science and Technology File structure of an ios app ios apps can store they data in files.
CinePlay 1.1.2. User Manual
CinePlay User Manual 1 CinePlay 1.1.2 User Manual CinePlay is a professional ios video player complete with timecode overlays, markers, masking, safe areas and much more. It is ideal for dailies, portfolios,
