COURSE OBJECTIVE:
• Load content from web APIs into structs
• Use methods to store structs to files
• Implement the copy-on-write technique
• Describe protocols and protocol-oriented programming in depth
• Write code with less duplication using generics
• Evaluate different architectural patterns for iOS apps
• Create an iOS app using Redux.
TARGET AUDIENCE:
This is an ideal course for you, if you want to improve your Swift skills and move into the professional app development world. You will benefit the most from this course, if you already know the following concepts of Swift:
– Basic syntax
– Optionals
– Functions and closures
– Classes
It is assumed that you are familiar with Xcode. Any additional iOS application development experience, either using Swift or Objective-C, will be an advantage for you.
COURSE PREREQUISITES:
Hardware:
For an optimal experience with the hands-on labs and other practical activities, we recommend the following hardware configuration:
A Mac computer capable of running macOS Sierra 10.12, such as:
• MacBook (Late 2009 or newer)
• MacBook Pro (Mid 2010 or newer)
• MacBook Air (Late 2010 or newer)
• Mac mini (Mid 2010 or newer)
• iMac (Late 2009 or newer)
• Mac Pro (Mid 2010 or newer)
Software:
• Operating system: macOS Sierra 10.12.6+
• Xcode 9
• Safari browser
COURSE CONTENT:
LESSON 1: VALUE TYPES
• Reference versus Value Types
• Structs
• Enums
LESSON 2: ENCODING AND DECODING
• JSON Decoding
• JSON Encoding
LESSON 3: SWIFT FRAMEWORKS
• Creating a framework
• CocoaPods
• Carthage
LESSON 4: SWIFT PROTOCOLS
• Protocol Syntax Basics
• Using Protocols as Types
• Mutating Method Requirements
LESSON 5: TRANSITIONING TO PROTOCOL-ORIENTED PROGRAMMING
• Comparing Object-Oriented and Protocol-Oriented Programming
• Implement Employee as a Simple Swift Struct
• Refactoring Employee with an Object-Oriented Approach
• Refactoring Employee with a Protocol-Oriented Approach
LESSON 6: GENERICS
• Basics of Generics
• Creating Generic Types
• Generic Extensions
• Associated Types
LESSON 7: SOFTWARE DESIGN
• The Need for Architectural Patterns
• The Original MVC Report
• Apple's MVC
LESSON 8: MVC ALTERNATIVES
• Apple's MVC in Practice
• MVVM (Model-View-ViewModel)
• VIPER
LESSON 9: UNIDIRECTIONAL DATA FLOW
• Identifying Side Effects of Functions
• Unidirectional Data Flow
• Redux in iO
FOLLOW ON COURSES:
Not available. Please contact.