IOS ARCHITECTURE
Manjula Jonnalagadda
manjonn@transcendalpi.com
@transcendentpi
Great User Experience begins with Great Engineering!
FEATURES OF A GOOD CODE
• Efficient
• Great on battery
• Smooth experience
• Easy to maintain
IOS ARCHITECTURE
IOS ARCHITECTURE
• CocoaTouch
• Key frameworks for building apps
• Provide basic infrastructure and support for key technologies
• Media Services
• Support for graphics, audio, video
• Core Services
• Fundamental system services for the app
• Core Foundation and Foundation frameworks
• Support Features such as location, iCloud, Social Media and Networking
• Core OS
• Low-level features on which most other frameworks built upon
• Use them for security and communication with hardware
EFFICIENT
• Never hog the main thread. Execute computations on another thread.
• Release resources when you don't need them.
• Use right size images.
• Reuse as much as possible.
• Use location services, bluetooth & radio sparingly.
• Use the highest available API that fits your needs.
• Make objects immutable when possible.
CODE ORGANIZATION
• It is easy to create spaghetti code.
• If same code repeats, it belongs to a different class
• Keep models clean.
• Use inheritance to create common components.
• KeepView Controllers from getting out of hand.
• Use childViewControllers when UI gets too complex
• Use services for common tasks
• Use categories whenView controllers get too long
• Give descriptive names to methods and classes
• Define clear responsibilities for your classes

iOS App Architecture

  • 1.
  • 2.
    Great User Experiencebegins with Great Engineering!
  • 3.
    FEATURES OF AGOOD CODE • Efficient • Great on battery • Smooth experience • Easy to maintain
  • 4.
  • 5.
    IOS ARCHITECTURE • CocoaTouch •Key frameworks for building apps • Provide basic infrastructure and support for key technologies • Media Services • Support for graphics, audio, video • Core Services • Fundamental system services for the app • Core Foundation and Foundation frameworks • Support Features such as location, iCloud, Social Media and Networking • Core OS • Low-level features on which most other frameworks built upon • Use them for security and communication with hardware
  • 6.
    EFFICIENT • Never hogthe main thread. Execute computations on another thread. • Release resources when you don't need them. • Use right size images. • Reuse as much as possible. • Use location services, bluetooth & radio sparingly. • Use the highest available API that fits your needs. • Make objects immutable when possible.
  • 7.
    CODE ORGANIZATION • Itis easy to create spaghetti code. • If same code repeats, it belongs to a different class • Keep models clean. • Use inheritance to create common components. • KeepView Controllers from getting out of hand. • Use childViewControllers when UI gets too complex • Use services for common tasks • Use categories whenView controllers get too long • Give descriptive names to methods and classes • Define clear responsibilities for your classes