Training on iOS app development - Samesh Swongamikha & Neetin Sharma

15
iOS App Development Presented By: Samesh Swongamikha Neetin Sharma &

description

Mr. Samesh Swongamikha and Mr. Neetin Sharma gave

Transcript of Training on iOS app development - Samesh Swongamikha & Neetin Sharma

Page 1: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

iOS App Development

Presented By:

Samesh Swongamikha Neetin Sharma&

Page 2: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

Design Patterns

• Loosely based on mvc• Massive view controller

Page 3: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

MVVM Pattern

• Model – View –ViewModel

Page 4: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

The communication pattern

• Direct• Notification• Delegates• The Reactive way

Page 5: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

Database

• Anything that floats• CoreData• Light weight• NSObjectContext• Class Interface

Page 6: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

Database optimization

• Normalization• No images• Extensions

Page 7: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

Schema-less DB

• Why go schema-less ?• Parse

Page 8: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

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?

Page 9: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

Networking continued

• Do we need our own server?• use BAAS, for e.g. Parse

Page 10: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

Networking continued

• API for server request• NSURLConnection• NSURLSession (iOS 7 on wards)• AFNetworking (third party)• Alamofire (written in swift)

Page 11: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

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.

Page 12: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

Memory Management

• Retain/Release• ARC• Be careful (Outlets/ Popovers/ Timers)

Page 13: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

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.

Page 14: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

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 ()

Page 15: Training on iOS app development - Samesh Swongamikha & Neetin Sharma

Thank You