UIKit for Masterminds
1st Edition 2021
ISBN: 978-1-7779782-0-4

How to take advantage of Swift and UIKit to create insanely great apps for iPhones, iPads, and Macs

Learn how to create apps with all the new features introduced to the UIKit framework, and how to build asynchronous and concurrent applications to take advantage of the multiple cores available in Apple Silicon chips (M1, M1 Pro, and M1 Max)... see more
Table of Contents
Chapter 1—App Development
1.1 Overview
Requirements
1.2 Xcode
1.3 Development
Programming Languages
Frameworks and APIs
Compiler
Chapter 2—Introduction to Swift
2.1 Computer Programming
Playground
2.2 Variables
Memory
Primitive Data Types
Declaration and Initialization
Arithmetic Operators
Constants
2.3 Data Types
Characters
Strings
Booleans
Optionals
Tuples
2.4 Conditionals and Loops
If and Else
Switch
While and Repeat While
For In
Control Transfer Statements
Guard
Chapter 3—Swift Paradigm
3.1 Programming Paradigms
3.2 Functions
Declaration of Functions
Generic Functions
Standard Functions
Scopes
Closures
3.3 Structures
Definition of Structures
Key Paths
Methods
Initialization
Computed Properties
Property Observers
Type Properties and Methods
Generic Structures
Primitive Type Structures
Range Structures
String Structures
Array Structures
Set Structures
Dictionary Structures
3.4 Enumerations
Raw Values
Associated Values
Collection Difference
3.5 Objects
Definition of Objects
Type Properties and Methods
Reference Types
Self
Memory Management
Inheritance
Type Casting
Initialization
Deinitialization
Access Control and Modifiers
3.6 Protocols
Definition of Protocols
Generic Protocols
Swift Protocols
Extensions
Delegates
3.7 Errors
Throwing Errors
Handling Errors
Results
Chapter 4—Introduction to Frameworks
4.1 Frameworks
Importing Frameworks
4.2 Foundation
More Standard Functions
Strings
Ranges
Numbers
Dates
Measurements
Timer
4.3 Core Graphics
Data Types
Chapter 5—UIKit Framework
5.1 UIKit
Application
Device
Windows
Views
UIView Subclasses
Scenes
5.2 Xcode
Projects
Tools
Running the App
5.3 Templates
MVC
Application Delegate
Scene Delegate
Storyboard
View Controllers
5.4 Views
Library
Guide Lines
Outlets
Document Outline Panel
Labels
Actions
Buttons
Outlet Collections
Progress View
Activity Indicator
Segmented Control
Switch
Slider
Stepper
Text Field
Text View
Keyboard
Picker View
Date Picker
5.7 Images
Assets Catalog
Image
SF Symbols
Image View
Processing Images
Visual Effects
Dark Appearance
Icons
Accent Color
Launching Image
Chapter 6—Adaptivity
6.1 Adaptivity
6.2 Auto Layout
Constraints
Assigning Constraints
Editing Constraints
Safe Area
Resolving Auto Layout Issues
Intrinsic Content Size
Multiple Views Constraints
Relations and Priorities
Stack Views
Constraint Objects
Updating Frames
6.3 Size Classes
Adapting Properties
Adapting Constraints
Adapting Elements
Trait Collection
Orientation
Chapter 7—Scroll Views
7.1 Scroll Views
Implementing Scroll Views
Customizing Scroll Views
Zooming
Pages
Scrolling the Interface
Chapter 8—Gesture Recognizers
8.1 Gestures
Chapter 9—Navigation
9.1 Multiple View Controllers
Segues
Unwind Segues
Segues in Code
9.2 Navigation Controllers
Navigation Controllers in the Storyboard
Navigation Bar
Large Titles
Bar Buttons
Toolbar
Custom Navigation
Data Model
9.3 Tab Bar Controllers
Tabs
Tab Bar Controller
Tab Bar Controller Delegate
Chapter 10—Table Views
10.1 Tables
Table Views
Table View Cells
Data Source
Index Paths and Identifiers
Implementing Table Views
Background
States
Cell Subclass
Custom Cell
Table View Delegates
10.2 Table Views in Navigation Controllers
Adding Rows
Deleting Rows
Moving Rows
Modifying Rows
10.3 Table View Controller
Refresh Control
10.4 Search
Search Bar
10.5 Sections
Deleting Sections
10.6 Static Tables
Chapter 11—Collection Views
11.1 Collection Views
Collection View Cells
Collection View Delegate
Data Source
11.2 Implementing Collection Views
Flow Layout
Custom Layout
Supplementary Views
Sections
11.3 Lists
Chapter 12—Split View Controllers
12.1 Universal Container
Split View Controller
Split View Controller Configuration
Split View Controller Delegate
12.2 Implementing Split View Controllers
Swipe Gesture
Display Mode
Default Item
Default Column
Compact Scene
Three-Column Design
Secondary Only Button
12.3 Modal Scenes
Presentation Controller
Popover Presentation Controller
Chapter 13—Alert Views
13.1 Alert Views
Alerts
Action Sheets
Chapter 14—Concurrency
14.1 Asynchronous and Concurrent Tasks
Tasks
Async and Await
Errors
Concurrency
Actors
Main Actor
Asynchronous Sequences
Task Group
Chapter 15—Storage
15.1 User Preferences
User Defaults
15.2 Files
URLs and Paths
Files and Directories
Files Attributes
Files Content
Bundle
15.3 Archiving
Encoding and Decoding
15.4 Core Data
Data Model
Core Data Stack
Managed Objects
Asynchronous Access
Storing Objects
Counting Objects
Predicates
Sort Descriptors
Modifying Objects
Deleting Objects
Fetched Results Controller
Search
Sections
To-Many Relationships
Chapter 16—Notifications
16.1 Notification Center
System Notifications
16.2 User Notifications
User Notifications Framework
Media Attachments
Provisional Notifications
Notifications Delegate
Groups
Summary
Actions
16.3 Key/Value Observing
KVC
KVO
Chapter 17—iCloud
17.1 Data in the Cloud
Enabling iCloud
Testing Devices
17.2 Key-Value Storage
17.3 iCloud Documents
Documents
Metadata Query
Single Document
Multiple Documents
17.4 CloudKit
Container
Records
Zones
Query
Operations
Batch Operations
References
CloudKit Dashboard
Implementing CloudKit
Assets
Subscriptions
Errors
CloudKit and Core Data
Deploy to Production
Chapter 18—Media
18.1 Media
Camera
Storing Pictures
Photo Library
Custom Camera
AVKit Framework
Custom Video Player
18.2 Color Picker
Chapter 19—Web
19.1 Links
19.2 Safari View Controller
19.3 WebKit Framework
App Transport Security
19.4 Web Content
JSON
Chapter 20—Map Kit
20.1 Map Kit View
Configuring the Map
Annotations
User Location
Search
Directions
Chapter 21—Drag and Drop
21.1 Drag and Drop
Drag
Drop
Lists
Chapter 22—Mac Catalyst
22.1 Mac Catalyst
Mac Apps
Conditional Code
Menu
Toolbar
Gestures
Views
22.2 Multiple Windows
Chapter 23—App Store
23.1 Publishing
Apple Developer Program
Certificates, Provisioning Profiles, and Identifiers
App Store Connect
Submitting the Application
UIKit for Masterminds
How to take advantage of Swift and UIKit to create insanely great apps for iPhones, iPads, and Macs
Paperback
     
eBook
     
     
Other Books in this Series
HTML5 for Masterminds
How to take advantage of HTML5 to create amazing websites and revolutionary applications

HTML5 for Masterminds leads the reader step by step to gain essential knowledge and to master complex subjects introduced by HTML5. After reading this book, you will know how to structure your documents with HTML, how to style them with CSS and how to work with the most powerful Javascript APIs. This book is not an introduction, but instead a complete course that will teach you how to build compelling websites and amazing web applications from scratch.