Roadmap IOS Assist
Roadmap IOS Assist
XCode IDE
Protocols &
Reactive
delegates programming
notifications
Data persistance NSKeyedArchiver
Realm
Carthage
Testing XCTest
Mocks
Project &
Build confing
Workspace
Target
Ready to launch
Resources
Documentation:
• Basics
• Enumeration
• Basic Operators
• Structure and Classes
• Collection Types
• Initialization
• Control Flow
• Extensions
• Functions
• Protocols
• Closures
• Examples
• Bars – provides navigation, screen title, has views that initiates actions
• Views – provides the app’s content such as text, graphics, animations, etc.
Using this link you will find a set of lessons to build a basic app called
FoodTracker. This app shows a list of meals, including a meal name, rating
and photo. These lessons cover the basic concepts for iOS app development
and many valuable features of XCode, the official IDE for developing iOS apps.
Resources
Advanced UI:
Auto Layout calculates the size and position of all the views in a view
hierarchy based on constraints placed on those views. Auto Layout can be
used without constraints with Stack Views. Stack Views defines rows or
columns of UI elements.
Here are some links with the documentation and tutorials for Auto Layout to
get started:
o Documentation
o Beginner Tutorial
o Advanced Tutorial
• content view controllers – they own all of their views and manage the data
for them. Most view controllers belong to this type.
• container view controllers – they do not own all of their views, some are
managed by other controllers, also known as child view controllers.
UIWindow
rootViewController
Container
View Controller
childViewControllers
View
View Controller
View
View Controller
In fig. 1 there is a container view controller acting as a root view controller. The
container has the role of positioning its children side by side and manage
their presentation.
Resources
There are two ways to display a view controller: embed it in a container view,
present it or push it. Presenting a view controller creates a relationship
between the presenting view controller and the presented view controller.
Pushing a view controller implies you are inside an UINavigationController.
• Segue – you drag the connections between view controllers from the design
view.
• Present (programmatically)
• Push (programmatically)
}}
iOS: D ata st o ra g e
NSCoding:
The most basic method to persist data in iOS is using NSCoding. This method
is working by assigning a particular key to each property from the model.
These keys will be used to search and load specific objects. The model class
needs to conform to NSCoding protocol and subclass NSObject. For example:
this.id = id
this.name = name
this.email = email
Resources
id = aDecoder.decodeInteger(forKey: „id”)
Keychain Services:
The keychain services API is a mechanism that stores small bits of user data in
When not using the basic method NSCoding, you can use third party libraries
like Realm to persist data locally on device. Realm is a noSQL database, it is
lightweight and highly performant, capable of handling large data loads and
running queries in fractions of a second.
One of the methods that handles background tasks in the iOS framework is
DispatchQueue, that can execute tasks on another thread in two ways:
• Serial (synchronous) – blocks the calling thread and waits for the previous
task to finish execution before starting the next one
Resources
queue.async { doSomeWork() }
queue.async { doSomeWork() }
PromiseKit is an alternative to RxSwift, they are simple, easy to use, but not as
complex as RxSwift. Tutorial to get started here.
iOS: N etw o r k in g
URLSession:
URLSession class provides an API for downloading data from and uploading to
endpoints indicated by URLs. This class creates a http session which handles a
data transfer task. For basic requests URLSession has a singleton shared
session, which is not very customizable. For a more customizable session you
can use one of the three configurations: default, ephemeral or background.
More learning materials about URLSession here.
Alamofire :
Kin gfisher :
Kingfisher is a Swift library for downloading and caching images from the web.
Resources
iOS: Cu st o m v iews
The iOS framework comes with many views that cover a lot of what you need.
You can also create a reusable custom view with your own appearance and
behavior. A xib file stands for XML Interface Builder and is used to separate UI
components or create custom views easily.
G it tec h n o l og y
Git is a version control system used in the everyday work of developers. More
Shortly, Git is a technology that helps development teams to unite the code on
which developers work and not only. More details about Git technology and
https://readwrite.com/2013/09/30/understandin g-github-a-journey-for-beginn
ers-part-1/
The more you will work with IOS, you will realise that one of the best abilities to
aquire is searching the web for answers. Let’s take a problem: You need to
show an error for a text field and you don’t know how. Go to Google and type:
“iOS textfield set error”.
Resources
a. Type “iOS” (if it’s more related to sintax you can type first “swift” or
“objective c”, depending on language)
b. Type the component you encountered the problem on: controller, textfield,
Other:
1. Official documentation
https://swift.org/documentation/
2. First app
https://developer.apple.com/library/archive/referencelibrary/GettingStarted/
DevelopiOSAppsSwift/
3. Human interfaces
https://developer.apple.com/design/human-interface-guidelines/ios/overvie
w/themes/
• https://www.youtube.com/channel/UCuP2vJ6kRutQBfRmdcI92mA/playlists
• https://www.youtube.com/channel/UCmJi5RdDLgzvkl3Ly0DRMlQ/videos
• https://www.youtube.com/channel/UCysEngjfeIYapEER9K8aikw
• https://www.hackingwithswift.com/articles
• https://www.raywenderlich.com/
• https://developer.apple.com/documentation/swiftui
• https://itunes.apple.com/us/course/developing-ios-11-apps-with-swift/id13
09275316
How to become a
powerful learner!
• Your motivation is the fuel for your learning. Find your WHY with Simon Sinek!
• You have to focus in order to understand. Learn how to focus with Christina
Bengtsson!
• Your brain needs a certain pace to learn optimally. Give your brain 25 minutes
of learning!
• There are lots and lots of tricks and tips. Listen to Marty Lobdel talking about learning!
iOS app.