View stunning SlideShares in full-screen with the new iOS app!Introducing SlideShare for AndroidExplore all your favorite topics in the SlideShare appGet the SlideShare app to Save for Later — even offline
View stunning SlideShares in full-screen with the new Android app!View stunning SlideShares in full-screen with the new iOS app!
iPhone Application• &• MVC• Views (design & life cycle)• Navigation based & Tab Bar based application• very important TableView•• Web service
UIApplication• Every application must have exactly one instance of UIApplication (or a subclass of UIApplication). When an application is launched, the UIApplicationMain function is called; among its other tasks, this function create a singleton UIApplication object.• The application object is typically assigned a delegate, an object that the application informs of signiﬁcant runtime events—for example, application launch, low-memory warnings, and application termination—giving it an opportunity to respond appropriately.
UIApplicationMain• delegateClassName • Specify nil if you load the delegate object from your application’s main nib ﬁle.• from Info.plist get main nib ﬁle• from main nib ﬁle get the application’s delegate
UINavigationController• manages the currently displayed screens using the navigation stack• at the bottom of this stack is the root view controller• at the top of the stack is the view controller currently being displayed• method: • pushViewController:animated: • popViewControllerAnimated:
UITabBarController• implements a specialized view controller that manages a radio-style selection interface• When the user selects a speciﬁc tab, the tab bar controller displays the root view of the corresponding view controller, replacing any previous views• init with an array (has many view controllers)
TableView• display a list of data • Single column, multiple rows • Vertical scrolling• Powerful and ubiquitous in iPhone applications
Display data in Table View• • Table views display a list of data, so use an array • [myTableView setList:myListOfStuff]; • • All data is loaded upfront • All data stays in memory• • Another object provides data to the table view • Not all at once • Just as it’s needed for display • Like a delegate, but purely data-oriented
Property Lists• Convenient way to store a small amount of data • Arrays, dictionaries, strings, numbers, dates, raw data • Human-readable XML or binary format• NSUserDefaults class uses property lists under the hood• When Not to Use Property Lists • More than a few hundred KB of data • Custom object types • Multiple writers (e.g. not ACID)
SQLite• Complete SQL database in an ordinary ﬁle• Simple, compact, fast, reliable• No server• Great for embedded devices • Included on the iPhone platform• When Not to Use SQLite • Multi-gigabyte databases • High concurrency (multiple writers) • Client-server applications
SQLite Obj-C Wrapper• http://code.google.com/p/ﬂycode/source/browse/ trunk/fmdb• A query maybe like this: • [dbconn executeQuery:@"select * from call"]
Using Web Service• Two Common ways:• XML • libxml2 • Tree-based: easy to parse, entire tree in memory • Event-driven: less memory, more complex to manage state • NSXMLParser • Event-driven API: simpler but less powerful than libxml2• JSON • Open source json-framework wrapper for Objective-C • http://code.google.com/p/json-framework/