Refreshing your app in
iOS 7
Michael Vitrano
@michaelvitrano
Going iOS 7+
● Impressive adoption rate: ~60% in less
than a week
● Older versions of apps are available on
iTunes
● Users expect their apps to be native to
the iOS 7 ecosystem
● Awesome new APIs
New APIs
● Text Kit
● UIKit Dynamics
● Multitasking
● Custom View Controller Transitions
Custom View Controller Transitions
● Pre iOS 7, you could have implemented
this functionality yourself
● Required hacks, manually managing
the process
● Using the new API, these types of
transitions require much less code and
effort
iOS 7 as an Engineering Refresh
● You’re going to be rethinking and
revamping almost every part of your
app’s experience
● Given this, an iOS 7 update is the
perfect opportunity to rethink your
app’s architecture and organization.
The Evolution of an App
A Modular Approach
Editor
App
A Modular Approach (cont.)
Editor
Photo Selection
and Sharing
Content Analytics
Thin View Controllers
● One of the biggest problems was
bloated View Controllers
● Four Techniques:
○ Using modern APIs
○ Splitting View Controllers into categories
○ Composition over Subclassing
○ Data aware views
Modern APIs
● Previously, we were supporting iOS 5
● UICollectionView
● AutoLayout
Categorizing View Controllers
● View controllers can have many
different roles at once
● Group different aspects of the
Controller’s functionality into
categories
● Reduces the number of lines per file,
improves organization and code clarity
AFPhotoSourceViewController
PhotoSourcePhotoEditor
StackTransitions CarouselView
Base Class
(View Initialization,
Interface actions)
Composition over Subclassing
● Organize frequently used design
patterns into template objects
● Allows for code reuse for slices of
common functionality in objects that
do not share an inheritance chain
Collection View Data Source
● AFCollectionViewDataSource
● Takes an array of data objects and
UICollectionViewCell subclass
implementing the
AFCollectionViewDataSourceView
protocol
● Multi-Section versions too!
Selection Controller
● Creates a Collection View, initializes
the Layout and the Data Source
● Provides a common interface for View
Controllers to receive selection events
● Everything is centered around data
objects
Data Aware Views
● Certain views are designed solely to
represent a piece of data, i.e. an Effect
pack
● These views should be able to
configure themselves to represent a
particular data object
● Removes the configuration from the
View Controller
Results
● Content View Controller Hierarchy
○ From 4 layers of subclasses to 2
○ Reduced the amount of code by more than
half
● Overall, reduced the code base by over
25%
● Improved compile times and developer
productivity

More Related Content

PPTX
iOS Development (Part 2)
PDF
Node in Production at Aviary
PDF
iOS Layout Overview
PPTX
Dive into Angular, part 1: Introduction
PPTX
Dive into Angular, part 2: Architecture
PPTX
Dive into Angular, part 5: Experience
PPTX
iOS app dev Training - Session1
PDF
Dependency Injection pattern in Angular
iOS Development (Part 2)
Node in Production at Aviary
iOS Layout Overview
Dive into Angular, part 1: Introduction
Dive into Angular, part 2: Architecture
Dive into Angular, part 5: Experience
iOS app dev Training - Session1
Dependency Injection pattern in Angular

What's hot (20)

PPTX
Modules in AngularJs
PDF
Intro to iOS Application Architecture
PPTX
Angular 9
PPTX
Ios development 2
PDF
Automated Testing on iOS
PDF
Mobile Programming - 8 Progress Bar, Draggable Music Knob, Timer
PPT
Day 4: Android: Getting Active through Activities
PPTX
Angular 4 Introduction Tutorial
PDF
PukaPuka Presentation
PDF
iOS storyboard
PPTX
Basic Intro to android(Will be updating later)
PPTX
Introduction to angular | Concepts and Environment setup
PPT
IOS- Designing with ui tool bar in ios
PDF
Introduction To Angular 4 - J2I
PPTX
Android MapView and MapActivity
PDF
MVP Community Camp 2014 - How to use enhanced features of Windows 8.1 Store ...
PDF
Fluttering
PDF
Training Session 2 - Day 2
PPTX
Objective c design pattens-architetcure
PDF
List Views
Modules in AngularJs
Intro to iOS Application Architecture
Angular 9
Ios development 2
Automated Testing on iOS
Mobile Programming - 8 Progress Bar, Draggable Music Knob, Timer
Day 4: Android: Getting Active through Activities
Angular 4 Introduction Tutorial
PukaPuka Presentation
iOS storyboard
Basic Intro to android(Will be updating later)
Introduction to angular | Concepts and Environment setup
IOS- Designing with ui tool bar in ios
Introduction To Angular 4 - J2I
Android MapView and MapActivity
MVP Community Camp 2014 - How to use enhanced features of Windows 8.1 Store ...
Fluttering
Training Session 2 - Day 2
Objective c design pattens-architetcure
List Views
Ad

Similar to Refreshing Your App in iOS 7 (20)

PDF
Ios 7 Programming Cookbook 2nd Edition Vandad Nahavandipoor
PDF
iOS 7 Programming Cookbook 2nd Edition Vandad Nahavandipoor
PDF
iOS 7 Programming Cookbook 2nd Edition Vandad Nahavandipoor
PDF
Ios 4 Programming Cookbook Solutions Examples For Iphone Ipad And Ipod Touch ...
PDF
iOS 7 Programming Cookbook 2nd Edition Vandad Nahavandipoor
PPTX
iOS Coding Best Practices
PPTX
App Project Planning, by Apple
PDF
Programming iOS 14 11th Edition Matt Neuburg
PDF
iOS 7 in Action 1st Edition Brendan G. Lim
PDF
iOS 7 in Action 1st Edition Brendan G. Lim
PDF
MOPCON 2014 - Best software architecture in app development
PPTX
Basic iOS Training with SWIFT - Part 1
PDF
Programming iOS 14 11th Edition Matt Neuburg
PDF
iOS 7 UI Transition Guide
PDF
iOS 7 Transition guide
PDF
iOS 5 Programming Cookbook Solutions Examples for iPhone iPad and iPod touch ...
PDF
iOS 5 Programming Cookbook Solutions Examples for iPhone iPad and iPod touch ...
PDF
Advanced iOS
PDF
iOS 5 Programming Cookbook Solutions Examples for iPhone iPad and iPod touch ...
PDF
Programming iOS 5 2nd Edition Matt Neuburg
Ios 7 Programming Cookbook 2nd Edition Vandad Nahavandipoor
iOS 7 Programming Cookbook 2nd Edition Vandad Nahavandipoor
iOS 7 Programming Cookbook 2nd Edition Vandad Nahavandipoor
Ios 4 Programming Cookbook Solutions Examples For Iphone Ipad And Ipod Touch ...
iOS 7 Programming Cookbook 2nd Edition Vandad Nahavandipoor
iOS Coding Best Practices
App Project Planning, by Apple
Programming iOS 14 11th Edition Matt Neuburg
iOS 7 in Action 1st Edition Brendan G. Lim
iOS 7 in Action 1st Edition Brendan G. Lim
MOPCON 2014 - Best software architecture in app development
Basic iOS Training with SWIFT - Part 1
Programming iOS 14 11th Edition Matt Neuburg
iOS 7 UI Transition Guide
iOS 7 Transition guide
iOS 5 Programming Cookbook Solutions Examples for iPhone iPad and iPod touch ...
iOS 5 Programming Cookbook Solutions Examples for iPhone iPad and iPod touch ...
Advanced iOS
iOS 5 Programming Cookbook Solutions Examples for iPhone iPad and iPod touch ...
Programming iOS 5 2nd Edition Matt Neuburg
Ad

Recently uploaded (20)

PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PPTX
Modernising the Digital Integration Hub
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PPTX
2018-HIPAA-Renewal-Training for executives
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
DOCX
search engine optimization ppt fir known well about this
PDF
Getting started with AI Agents and Multi-Agent Systems
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
STKI Israel Market Study 2025 version august
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPTX
Chapter 5: Probability Theory and Statistics
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
Modernising the Digital Integration Hub
UiPath Agentic Automation session 1: RPA to Agents
Convolutional neural network based encoder-decoder for efficient real-time ob...
NewMind AI Weekly Chronicles – August ’25 Week III
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
sbt 2.0: go big (Scala Days 2025 edition)
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
OpenACC and Open Hackathons Monthly Highlights July 2025
2018-HIPAA-Renewal-Training for executives
Custom Battery Pack Design Considerations for Performance and Safety
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
search engine optimization ppt fir known well about this
Getting started with AI Agents and Multi-Agent Systems
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
A proposed approach for plagiarism detection in Myanmar Unicode text
Enhancing emotion recognition model for a student engagement use case through...
STKI Israel Market Study 2025 version august
A review of recent deep learning applications in wood surface defect identifi...
Chapter 5: Probability Theory and Statistics

Refreshing Your App in iOS 7

  • 1. Refreshing your app in iOS 7 Michael Vitrano @michaelvitrano
  • 2. Going iOS 7+ ● Impressive adoption rate: ~60% in less than a week ● Older versions of apps are available on iTunes ● Users expect their apps to be native to the iOS 7 ecosystem ● Awesome new APIs
  • 3. New APIs ● Text Kit ● UIKit Dynamics ● Multitasking ● Custom View Controller Transitions
  • 4. Custom View Controller Transitions ● Pre iOS 7, you could have implemented this functionality yourself ● Required hacks, manually managing the process ● Using the new API, these types of transitions require much less code and effort
  • 5. iOS 7 as an Engineering Refresh ● You’re going to be rethinking and revamping almost every part of your app’s experience ● Given this, an iOS 7 update is the perfect opportunity to rethink your app’s architecture and organization.
  • 8. A Modular Approach (cont.) Editor Photo Selection and Sharing Content Analytics
  • 9. Thin View Controllers ● One of the biggest problems was bloated View Controllers ● Four Techniques: ○ Using modern APIs ○ Splitting View Controllers into categories ○ Composition over Subclassing ○ Data aware views
  • 10. Modern APIs ● Previously, we were supporting iOS 5 ● UICollectionView ● AutoLayout
  • 11. Categorizing View Controllers ● View controllers can have many different roles at once ● Group different aspects of the Controller’s functionality into categories ● Reduces the number of lines per file, improves organization and code clarity
  • 13. Composition over Subclassing ● Organize frequently used design patterns into template objects ● Allows for code reuse for slices of common functionality in objects that do not share an inheritance chain
  • 14. Collection View Data Source ● AFCollectionViewDataSource ● Takes an array of data objects and UICollectionViewCell subclass implementing the AFCollectionViewDataSourceView protocol ● Multi-Section versions too!
  • 15. Selection Controller ● Creates a Collection View, initializes the Layout and the Data Source ● Provides a common interface for View Controllers to receive selection events ● Everything is centered around data objects
  • 16. Data Aware Views ● Certain views are designed solely to represent a piece of data, i.e. an Effect pack ● These views should be able to configure themselves to represent a particular data object ● Removes the configuration from the View Controller
  • 17. Results ● Content View Controller Hierarchy ○ From 4 layers of subclasses to 2 ○ Reduced the amount of code by more than half ● Overall, reduced the code base by over 25% ● Improved compile times and developer productivity