iOS App Development 
Presented By: 
Samesh Swongamikha & Neetin Sharma
Design Patterns 
• Loosely based on mvc 
• Massive view controller
MVVM Pattern 
• Model – View –ViewModel
The communication pattern 
• Direct 
• Notification 
• Delegates 
• The Reactive way
Database 
• Anything that floats 
• CoreData 
• Light weight 
• NSObjectContext 
• Class Interface
Database optimization 
• Normalization 
• No images 
• Extensions
Schema-less DB 
• Why go schema-less ? 
• Parse
Networking 
• Why do we need web server’s data in iOS? 
• What kind of data we can get from server? 
• JSON or XML or something else? 
• What kind of server API we need? 
• RESTful API , any other?
Networking continued 
• Do we need our own server? 
• use BAAS, for e.g. Parse
Networking continued 
• API for server request 
• NSURLConnection 
• NSURLSession (iOS 7 on wards) 
• AFNetworking (third party) 
• Alamofire (written in swift)
Networking continued 
• Use asynchronous server request (do not block main thread). 
• Use background thread for downloads and uploads. 
• Don’t store large size image in disk/database but curl when needed in the background using 
background thread. 
• Do not initiate heavy downloads on mobile data, check if device is using wifi.
Memory Management 
• Retain/Release 
• ARC 
• Be careful (Outlets/ Popovers/ Timers)
Swift 
• What is swift? 
• What is new in swift? 
• It is designed for type safety 
• Tuples 
• Generics 
• Memory is managed automatically. 
• Functional programming pattern. e.g. Filters. 
• Functions are first class objects.
Useful tools/ links 
• Cocoapods (http://cocoapods.org/) 
• Ray Wenderlich Tutorials (http://www.raywenderlich.com/) 
• Cocoa Controls ( https://www.cocoacontrols.com/) 
• Realm : a mobile database (http://realm.io/) 
• Reactive Cocoa (https://github.com/ReactiveCocoa/ReactiveCocoa) 
• AFNetwoking (https://github.com/AFNetworking/AFNetworking) 
• Masonry ()
Thank You

Training on iOS app development - Samesh Swongamikha & Neetin Sharma

  • 1.
    iOS App Development Presented By: Samesh Swongamikha & Neetin Sharma
  • 2.
    Design Patterns •Loosely based on mvc • Massive view controller
  • 3.
    MVVM Pattern •Model – View –ViewModel
  • 4.
    The communication pattern • Direct • Notification • Delegates • The Reactive way
  • 5.
    Database • Anythingthat floats • CoreData • Light weight • NSObjectContext • Class Interface
  • 6.
    Database optimization •Normalization • No images • Extensions
  • 7.
    Schema-less DB •Why go schema-less ? • Parse
  • 8.
    Networking • Whydo we need web server’s data in iOS? • What kind of data we can get from server? • JSON or XML or something else? • What kind of server API we need? • RESTful API , any other?
  • 9.
    Networking continued •Do we need our own server? • use BAAS, for e.g. Parse
  • 10.
    Networking continued •API for server request • NSURLConnection • NSURLSession (iOS 7 on wards) • AFNetworking (third party) • Alamofire (written in swift)
  • 11.
    Networking continued •Use asynchronous server request (do not block main thread). • Use background thread for downloads and uploads. • Don’t store large size image in disk/database but curl when needed in the background using background thread. • Do not initiate heavy downloads on mobile data, check if device is using wifi.
  • 12.
    Memory Management •Retain/Release • ARC • Be careful (Outlets/ Popovers/ Timers)
  • 13.
    Swift • Whatis swift? • What is new in swift? • It is designed for type safety • Tuples • Generics • Memory is managed automatically. • Functional programming pattern. e.g. Filters. • Functions are first class objects.
  • 14.
    Useful tools/ links • Cocoapods (http://cocoapods.org/) • Ray Wenderlich Tutorials (http://www.raywenderlich.com/) • Cocoa Controls ( https://www.cocoacontrols.com/) • Realm : a mobile database (http://realm.io/) • Reactive Cocoa (https://github.com/ReactiveCocoa/ReactiveCocoa) • AFNetwoking (https://github.com/AFNetworking/AFNetworking) • Masonry ()
  • 15.