𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

iOS 16 App Development Essentials - UIKit Edition: Learn to Develop iOS 16 Apps with Xcode 14 and Swift

✍ Scribed by Neil Smyth


Publisher
Payload Media
Year
2023
Tongue
English
Leaves
761
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


This book aims to teach the skills necessary to create iOS apps using the iOS 16 SDK, UIKit, Xcode 14, and the Swift programming language.

Beginning with the basics, this book outlines the steps necessary to set up an iOS development environment. Next, an introduction to the architecture of iOS 16 and programming in Swift 5.7 is provided, followed by an in-depth look at the design of iOS apps and user interfaces. More advanced topics such as file handling, database management, graphics drawing, and animation are also covered, as are touch screen handling, gesture recognition, multitasking, location management, local notifications, camera access, and video playback support. Other features include Auto Layout, local map search, user interface animation using UIKit dynamics, Siri integration, iMessage app development, and biometric authentication.

Additional features of iOS development using Xcode are also covered, including Swift playgrounds, universal user interface design using size classes, app extensions, Interface Builder Live Views, embedded frameworks, collection and stack layouts, CloudKit data storage, and the document browser.

Other features of iOS 16 and Xcode 14 are also covered in detail, including iOS machine learning features.

The aim of this book, therefore, is to teach you the skills necessary to build your own apps for iOS 16. Assuming you are ready to download the iOS 16 SDK and Xcode 14, have a Mac, and some ideas for some apps to develop, you are ready to get started.

✦ Table of Contents


  1. Start Here
    1.1 Source Code Download
    1.2 Feedback
    1.3 Errata
  2. Joining the Apple Developer Program
    2.1 Downloading Xcode 14 and the iOS 16 SDK
    2.2 Apple Developer Program
    2.3 When to Enroll in the Apple Developer Program?
    2.4 Enrolling in the Apple Developer Program
    2.5 Summary
  3. Installing Xcode 14 and the iOS 16 SDK
    3.1 Identifying Your macOS Version
    3.2 Installing Xcode 14 and the iOS 16 SDK
    3.3 Starting Xcode
    3.4 Adding Your Apple ID to the Xcode Preferences
    3.5 Developer and Distribution Signing Identities
  4. A Guided Tour of Xcode 14
    4.1 Starting Xcode 14
    4.2 Creating the iOS App User Interface
    4.3 Changing Component Properties
    4.4 Adding Objects to the User Interface
    4.5 Building and Running an iOS App in Xcode
    4.6 Running the App on a Physical iOS Device
    4.7 Managing Devices and Simulators
    4.8 Enabling Network Testing
    4.9 Dealing with Build Errors
    4.10 Monitoring Application Performance
    4.11 Exploring the User Interface Layout Hierarchy
    4.12 Summary
  5. An Introduction to Xcode 14 Playgrounds
    5.1 What is a Playground?
    5.2 Creating a New Playground
    5.3 A Swift Playground Example
    5.4 Viewing Results
    5.5 Adding Rich Text Comments
    5.6 Working with Playground Pages
    5.7 Working with UIKit in Playgrounds
    5.8 Adding Resources to a Playground
    5.9 Working with Enhanced Live Views
    5.10 When to Use Playgrounds
    5.11 Summary
  6. Swift Data Types, Constants and Variables
    6.1 Using a Swift Playground
    6.2 Swift Data Types
    6.2.1 Integer Data Types
    6.2.2 Floating Point Data Types
    6.2.3 Bool Data Type
    6.2.4 Character Data Type
    6.2.5 String Data Type
    6.2.6 Special Characters/Escape Sequences
    6.3 Swift Variables
    6.4 Swift Constants
    6.5 Declaring Constants and Variables
    6.6 Type Annotations and Type Inference
    6.7 The Swift Tuple
    6.8 The Swift Optional Type
    6.9 Type Casting and Type Checking
    6.10 Summary
  7. Swift Operators and Expressions
    7.1 Expression Syntax in Swift
    7.2 The Basic Assignment Operator
    7.3 Swift Arithmetic Operators
    7.4 Compound Assignment Operators
    7.5 Comparison Operators
    7.6 Boolean Logical Operators
    7.7 Range Operators
    7.8 The Ternary Operator
    7.9 Nil Coalescing Operator
    7.10 Bitwise Operators
    7.10.1 Bitwise NOT
    7.10.2 Bitwise AND
    7.10.3 Bitwise OR
    7.10.4 Bitwise XOR
    7.10.5 Bitwise Left Shift
    7.10.6 Bitwise Right Shift
    7.11 Compound Bitwise Operators
    7.12 Summary
  8. Swift Control Flow
    8.1 Looping Control Flow
    8.2 The Swift for-in Statement
    8.2.1 The while Loop
    8.3 The repeat ... while loop
    8.4 Breaking from Loops
    8.5 The continue Statement
    8.6 Conditional Control Flow
    8.7 Using the if Statement
    8.8 Using if ... else … Statements
    8.9 Using if ... else if ... Statements
    8.10 The guard Statement
    8.11 Summary
  9. The Swift Switch Statement
    9.1 Why Use a switch Statement?
    9.2 Using the switch Statement Syntax
    9.3 A Swift switch Statement Example
    9.4 Combining case Statements
    9.5 Range Matching in a switch Statement
    9.6 Using the where statement
    9.7 Fallthrough
    9.8 Summary
  10. Swift Functions, Methods and Closures
    10.1 What is a Function?
    10.2 What is a Method?
    10.3 How to Declare a Swift Function
    10.4 Implicit Returns from Single Expressions
    10.5 Calling a Swift Function
    10.6 Handling Return Values
    10.7 Local and External Parameter Names
    10.8 Declaring Default Function Parameters
    10.9 Returning Multiple Results from a Function
    10.10 Variable Numbers of Function Parameters
    10.11 Parameters as Variables
    10.12 Working with In-Out Parameters
    10.13 Functions as Parameters
    10.14 Closure Expressions
    10.15 Shorthand Argument Names
    10.16 Closures in Swift
    10.17 Summary
  11. The Basics of Swift Object-Oriented Programming
    11.1 What is an Instance?
    11.2 What is a Class?
    11.3 Declaring a Swift Class
    11.4 Adding Instance Properties to a Class
    11.5 Defining Methods
    11.6 Declaring and Initializing a Class Instance
    11.7 Initializing and De-initializing a Class Instance
    11.8 Calling Methods and Accessing Properties
    11.9 Stored and Computed Properties
    11.10 Lazy Stored Properties
    11.11 Using self in Swift
    11.12 Understanding Swift Protocols
    11.13 Opaque Return Types
    11.14 Summary
  12. An Introduction to Swift Subclassing and Extensions
    12.1 Inheritance, Classes and Subclasses
    12.2 A Swift Inheritance Example
    12.3 Extending the Functionality of a Subclass
    12.4 Overriding Inherited Methods
    12.5 Initializing the Subclass
    12.6 Using the SavingsAccount Class
    12.7 Swift Class Extensions
    12.8 Summary
  13. Working with Array and Dictionary Collections in Swift
    13.1 Mutable and Immutable Collections
    13.2 Swift Array Initialization
    13.3 Working with Arrays in Swift
    13.3.1 Array Item Count
    13.3.2 Accessing Array Items
    13.3.3 Random Items and Shuffling
    13.3.4 Appending Items to an Array
    13.3.5 Inserting and Deleting Array Items
    13.3.6 Array Iteration
    13.4 Creating Mixed Type Arrays
    13.5 Swift Dictionary Collections
    13.6 Swift Dictionary Initialization
    13.7 Sequence-based Dictionary Initialization
    13.8 Dictionary Item Count
    13.9 Accessing and Updating Dictionary Items
    13.10 Adding and Removing Dictionary Entries
    13.11 Dictionary Iteration
    13.12 Summary
  14. Understanding Error Handling in Swift 5
    14.1 Understanding Error Handling
    14.2 Declaring Error Types
    14.3 Throwing an Error
    14.4 Calling Throwing Methods and Functions
    14.5 Accessing the Error Object
    14.6 Disabling Error Catching
    14.7 Using the defer Statement
    14.8 Summary
  15. The iOS 16 App and Development Architecture
    15.1 An Overview of the iOS 16 Operating System Architecture
    15.2 Model View Controller (MVC)
    15.3 The Target-Action pattern, IBOutlets, and IBActions
    15.4 Subclassing
    15.5 Delegation
    15.6 Summary
  16. Creating an Interactive iOS 16 App
    16.1 Creating the New Project
    16.2 Creating the User Interface
    16.3 Building and Running the Sample App
    16.4 Adding Actions and Outlets
    16.5 Building and Running the Finished App
    16.6 Hiding the Keyboard
    16.7 Summary
  17. Understanding iOS 16 Views, Windows, and the View Hierarchy
    17.1 An Overview of Views and the UIKit Class Hierarchy
    17.2 The UIWindow Class
    17.3 The View Hierarchy
    17.4 Viewing Hierarchy Ancestors in Interface Builder
    17.5 View Types
    17.5.1 The Window
    17.5.2 Container Views
    17.5.3 Controls
    17.5.4 Display Views
    17.5.5 Text and WebKit Views
    17.5.6 Navigation Views and Tab Bars
    17.5.7 Alert Views
    17.6 Summary
  18. An Introduction to Auto Layout in iOS 16
    18.1 An Overview of Auto Layout
    18.2 Alignment Rects
    18.3 Intrinsic Content Size
    18.4 Content Hugging and Compression Resistance Priorities
    18.5 Safe Area Layout Guide
    18.6 Three Ways to Create Constraints
    18.7 Constraints in More Detail
    18.8 Summary
  19. Working with iOS 16 Auto Layout Constraints in Interface Builder
    19.1 An Example of Auto Layout in Action
    19.2 Working with Constraints
    19.3 The Auto Layout Features of Interface Builder
    19.3.1 Suggested Constraints
    19.3.2 Visual Cues
    19.3.3 Highlighting Constraint Problems
    19.3.4 Viewing, Editing, and Deleting Constraints
    19.4 Creating New Constraints in Interface Builder
    19.5 Adding Aspect Ratio Constraints
    19.6 Resolving Auto Layout Problems
    19.7 Summary
  20. Implementing iOS 16 Auto Layout Constraints in Code
    20.1 Creating Constraints Using NSLayoutConstraint
    20.2 Adding a Constraint to a View
    20.3 Turning off Auto Resizing Translation
    20.4 Creating Constraints Using NSLayoutAnchor
    20.5 An Example App
    20.6 Creating the Views
    20.7 Creating and Adding the Constraints
    20.8 Using Layout Anchors
    20.9 Removing Constraints
    20.10 Summary
  21. Implementing Cross-Hierarchy Auto Layout Constraints in iOS 16
    21.1 The Example App
    21.2 Establishing Outlets
    21.3 Writing the Code to Remove the Old Constraint
    21.4 Adding the Cross Hierarchy Constraint
    21.5 Testing the App
    21.6 Summary
  22. Understanding the iOS 16 Auto Layout Visual Format Language
    22.1 Introducing the Visual Format Language
    22.2 Visual Format Language Examples
    22.3 Using the constraints(withVisualFormat:) Method
    22.4 Summary
  23. Using Trait Variations to Design Adaptive iOS 16 User Interfaces
    23.1 Understanding Traits and Size Classes
    23.2 Size Classes in Interface Builder
    23.3 Enabling Trait Variations
    23.4 Setting β€œAny” Defaults
    23.5 Working with Trait Variations in Interface Builder
    23.6 Attributes Inspector Trait Variations
    23.7 Using Constraint Variations
    23.8 An Adaptive User Interface Tutorial
    23.9 Designing the Initial Layout
    23.10 Adding Universal Image Assets
    23.11 Increasing Font Size for iPad Devices
    23.12 Adding Width Constraint Variations
    23.13 Testing the Adaptivity
    23.14 Summary
  24. Using Storyboards in Xcode 14
    24.1 Creating the Storyboard Example Project
    24.2 Accessing the Storyboard
    24.3 Adding Scenes to the Storyboard
    24.4 Configuring Storyboard Segues
    24.5 Configuring Storyboard Transitions
    24.6 Associating a View Controller with a Scene
    24.7 Passing Data Between Scenes
    24.8 Unwinding Storyboard Segues
    24.9 Triggering a Storyboard Segue Programmatically
    24.10 Summary
  25. Organizing Scenes over Multiple Storyboard Files
    25.1 Organizing Scenes into Multiple Storyboards
    25.2 Establishing a Connection between Different Storyboards
    25.3 Summary
  26. Using Xcode 14 Storyboards to Create an iOS 16 Tab Bar App
    26.1 An Overview of the Tab Bar
    26.2 Understanding View Controllers in a Multiview App
    26.3 Setting up the Tab Bar Example App
    26.4 Reviewing the Project Files
    26.5 Adding the View Controllers for the Content Views
    26.6 Adding the Tab Bar Controller to the Storyboard
    26.7 Designing the View Controller User interfaces
    26.8 Configuring the Tab Bar Items
    26.9 Building and Running the App
    26.10 Summary
  27. An Overview of iOS 16 Table Views and Xcode 14 Storyboards
    27.1 An Overview of the Table View
    27.2 Static vs. Dynamic Table Views
    27.3 The Table View Delegate and dataSource
    27.4 Table View Styles
    27.5 Self-Sizing Table Cells
    27.6 Dynamic Type
    27.7 Table View Cell Styles
    27.8 Table View Cell Reuse
    27.9 Table View Swipe Actions
    27.10 Summary
  28. Using Xcode 14 Storyboards to Build Dynamic TableViews
    28.1 Creating the Example Project
    28.2 Adding the TableView Controller to the Storyboard
    28.3 Creating the UITableViewController and UITableViewCell Subclasses
    28.4 Declaring the Cell Reuse Identifier
    28.5 Designing a Storyboard UITableView Prototype Cell
    28.6 Modifying the AttractionTableViewCell Class
    28.7 Creating the Table View Datasource
    28.8 Downloading and Adding the Image Files
    28.9 Compiling and Running the App
    28.10 Handling TableView Swipe Gestures
    28.11 Summary
  29. Implementing iOS 16 TableView Navigation using Storyboards
    29.1 Understanding the Navigation Controller
    29.2 Adding the New Scene to the Storyboard
    29.3 Adding a Navigation Controller
    29.4 Establishing the Storyboard Segue
    29.5 Modifying the AttractionDetailViewController Class
    29.6 Using prepare(for segue:) to Pass Data between Storyboard Scenes
    29.7 Testing the App
    29.8 Customizing the Navigation Title Size
    29.9 Summary
  30. Integrating Search using the iOS UISearchController
    30.1 Introducing the UISearchController Class
    30.2 Adding a Search Controller to the TableViewStory Project
    30.3 Implementing the updateSearchResults Method
    30.4 Reporting the Number of Table Rows
    30.5 Modifying the cellForRowAt Method
    30.6 Modifying the Trailing Swipe Delegate Method
    30.7 Modifying the Detail Segue
    30.8 Handling the Search Cancel Button
    30.9 Testing the Search Controller
    30.10 Summary
  31. Working with the iOS 16 Stack View Class
    31.1 Introducing the UIStackView Class
    31.2 Understanding Subviews and Arranged Subviews
    31.3 StackView Configuration Options
    31.3.1 axis
    31.3.2 distribution
    31.3.3 spacing
    31.3.4 alignment
    31.3.5 baseLineRelativeArrangement
    31.3.6 layoutMarginsRelativeArrangement
    31.4 Creating a Stack View in Code
    31.5 Adding Subviews to an Existing Stack View
    31.6 Hiding and Removing Subviews
    31.7 Summary
  32. An iOS 16 Stack View Tutorial
    32.1 About the Stack View Example App
    32.2 Creating the First Stack View
    32.3 Creating the Banner Stack View
    32.4 Adding the Switch Stack Views
    32.5 Creating the Top-Level Stack View
    32.6 Adding the Button Stack View
    32.7 Adding the Final Subviews to the Top Level Stack View
    32.8 Dynamically Adding and Removing Subviews
    32.9 Summary
  33. A Guide to iPad Multitasking
    33.1 Using iPad Multitasking
    33.2 Picture-In-Picture Multitasking
    33.3 Multitasking and Size Classes
    33.4 Handling Multitasking in Code
    33.4.1 willTransition(to newcollection: with coordinator:)
    33.4.2 viewWillTransition(to size: with coordinator:)
    33.4.3 traitCollectionDidChange(_:)
    33.5 Lifecycle Method Calls
    33.6 Opting Out of Multitasking
    33.7 Summary
  34. An iPadOS Multitasking Example
    34.1 Creating the Multitasking Example Project
    34.2 Adding the Image Files
    34.3 Designing the Regular Width Size Class Layout
    34.4 Designing the Compact Width Size Class
    34.5 Testing the Project in a Multitasking Environment
    34.6 Summary
  35. An Overview of Swift Structured Concurrency
    35.1 An Overview of Threads
    35.2 The Application Main Thread
    35.3 Completion Handlers
    35.4 Structured Concurrency
    35.5 Preparing the Project
    35.6 Non-Concurrent Code
    35.7 Introducing async/await Concurrency
    35.8 Asynchronous Calls from Synchronous Functions
    35.9 The await Keyword
    35.10 Using async-let Bindings
    35.11 Handling Errors
    35.12 Understanding Tasks
    35.13 Unstructured Concurrency
    35.14 Detached Tasks
    35.15 Task Management
    35.16 Working with Task Groups
    35.17 Avoiding Data Races
    35.18 The for-await Loop
    35.19 Asynchronous Properties
    35.20 Summary
  36. Working with Directories in Swift on iOS 16
    36.1 The Application Documents Directory
    36.2 The FileManager, FileHandle, and Data Classes
    36.3 Understanding Pathnames in Swift
    36.4 Obtaining a Reference to the Default FileManager Object
    36.5 Identifying the Current Working Directory
    36.6 Identifying the Documents Directory
    36.7 Identifying the Temporary Directory
    36.8 Changing Directory
    36.9 Creating a New Directory
    36.10 Deleting a Directory
    36.11 Listing the Contents of a Directory
    36.12 Getting the Attributes of a File or Directory
    36.13 Summary
  37. Working with Files in Swift on iOS 16
    37.1 Obtaining a FileManager Instance Reference
    37.2 Checking for the Existence of a File
    37.3 Comparing the Contents of Two Files
    37.4 Checking if a File is Readable/Writable/Executable/Deletable
    37.5 Moving/Renaming a File
    37.6 Copying a File
    37.7 Removing a File
    37.8 Creating a Symbolic Link
    37.9 Reading and Writing Files with FileManager
    37.10 Working with Files using the FileHandle Class
    37.11 Creating a FileHandle Object
    37.12 FileHandle File Offsets and Seeking
    37.13 Reading Data from a File
    37.14 Writing Data to a File
    37.15 Truncating a File
    37.16 Summary
  38. iOS 16 Directory Handling and File I/O in Swift – A Worked Example
    38.1 The Example App
    38.2 Setting up the App Project
    38.3 Designing the User Interface
    38.4 Checking the Data File on App Startup
    38.5 Implementing the Action Method
    38.6 Building and Running the Example
    38.7 Summary
  39. Preparing an iOS 16 App to use iCloud Storage
    39.1 iCloud Data Storage Services
    39.2 Preparing an App to Use iCloud Storage
    39.3 Enabling iCloud Support for an iOS 16 App
    39.4 Reviewing the iCloud Entitlements File
    39.5 Accessing Multiple Ubiquity Containers
    39.6 Ubiquity Container URLs
    39.7 Summary
  40. Managing Files using the iOS 16 UIDocument Class
    40.1 An Overview of the UIDocument Class
    40.2 Subclassing the UIDocument Class
    40.3 Conflict Resolution and Document States
    40.4 The UIDocument Example App
    40.5 Creating a UIDocument Subclass
    40.6 Designing the User Interface
    40.7 Implementing the App Data Structure
    40.8 Implementing the contents(forType:) Method
    40.9 Implementing the load(fromContents:) Method
    40.10 Loading the Document at App Launch
    40.11 Saving Content to the Document
    40.12 Testing the App
    40.13 Summary
  41. Using iCloud Storage in an iOS 16 App
    41.1 iCloud Usage Guidelines
    41.2 Preparing the iCloudStore App for iCloud Access
    41.3 Enabling iCloud Capabilities and Services
    41.4 Configuring the View Controller
    41.5 Implementing the loadFile Method
    41.6 Implementing the metadataQueryDidFinishGathering Method
    41.7 Implementing the saveDocument Method
    41.8 Enabling iCloud Document and Data Storage
    41.9 Running the iCloud App
    41.10 Making a Local File Ubiquitous
    41.11 Summary
  42. Using iCloud Drive Storage in an iOS 16 App
    42.1 Preparing an App to use iCloud Drive Storage
    42.2 Making Changes to the NSUbiquitousContainers Key
    42.3 Creating the iCloud Drive Example Project
    42.4 Modifying the Info.plist File
    42.5 Designing the User Interface
    42.6 Accessing the Ubiquitous Container
    42.7 Saving the File to iCloud Drive
    42.8 Testing the App
    42.9 Summary
  43. An Overview of the iOS 16 Document Browser View Controller
    43.1 An Overview of the Document Browser View Controller
    43.2 The Anatomy of a Document-Based App
    43.3 Document Browser Project Settings
    43.4 The Document Browser Delegate Methods
    43.4.1 didRequestDocumentCreationWithHandler
    43.4.2 didImportDocumentAt
    43.4.3 didPickDocumentURLs
    43.4.4 failedToImportDocumentAt
    43.5 Customizing the Document Browser
    43.6 Adding Browser Actions
    43.7 Summary
  44. An iOS 16 Document Browser Tutorial
    44.1 Creating the DocumentBrowser Project
    44.2 Declaring the Supported File Types
    44.3 Completing the didRequestDocumentCreationWithHandler Method
    44.4 Finishing the UIDocument Subclass
    44.5 Modifying the Document View Controller
    44.6 Testing the Document Browser App
    44.7 Summary
  45. Synchronizing iOS 16 Key-Value Data using iCloud
    45.1 An Overview of iCloud Key-Value Data Storage
    45.2 Sharing Data Between Apps
    45.3 Data Storage Restrictions
    45.4 Conflict Resolution
    45.5 Receiving Notification of Key-Value Changes
    45.6 An iCloud Key-Value Data Storage Example
    45.7 Enabling the App for iCloud Key-Value Data Storage
    45.8 Designing the User Interface
    45.9 Implementing the View Controller
    45.10 Modifying the viewDidLoad Method
    45.11 Implementing the Notification Method
    45.12 Implementing the saveData Method
    45.13 Testing the App
    45.14 Summary
  46. iOS 16 Database Implementation using SQLite
    46.1 What is SQLite?
    46.2 Structured Query Language (SQL)
    46.3 Trying SQLite on macOS
    46.4 Preparing an iOS App Project for SQLite Integration
    46.5 SQLite, Swift, and Wrappers
    46.6 Key FMDB Classes
    46.7 Creating and Opening a Database
    46.8 Creating a Database Table
    46.9 Extracting Data from a Database Table
    46.10 Closing an SQLite Database
    46.11 Summary
  47. An Example SQLite-based iOS 16 App using Swift and FMDB
    47.1 About the Example SQLite App
    47.2 Creating and Preparing the SQLite App Project
    47.3 Checking Out the FMDB Source Code
    47.4 Designing the User Interface
    47.5 Creating the Database and Table
    47.6 Implementing the Code to Save Data to the SQLite Database
    47.7 Implementing Code to Extract Data from the SQLite Database
    47.8 Building and Running the App
    47.9 Summary
  48. Working with iOS 16 Databases using Core Data
    48.1 The Core Data Stack
    48.2 Persistent Container
    48.3 Managed Objects
    48.4 Managed Object Context
    48.5 Managed Object Model
    48.6 Persistent Store Coordinator
    48.7 Persistent Object Store
    48.8 Defining an Entity Description
    48.9 Initializing the Persistent Container
    48.10 Obtaining the Managed Object Context
    48.11 Getting an Entity Description
    48.12 Setting the Attributes of a Managed Object
    48.13 Saving a Managed Object
    48.14 Fetching Managed Objects
    48.15 Retrieving Managed Objects based on Criteria
    48.16 Accessing the Data in a Retrieved Managed Object
    48.17 Summary
  49. An iOS 16 Core Data Tutorial
    49.1 The Core Data Example App
    49.2 Creating a Core Data-based App
    49.3 Creating the Entity Description
    49.4 Designing the User Interface
    49.5 Initializing the Persistent Container
    49.6 Saving Data to the Persistent Store using Core Data
    49.7 Retrieving Data from the Persistent Store using Core Data
    49.8 Building and Running the Example App
    49.9 Summary
  50. An Introduction to CloudKit Data Storage on iOS 16
    50.1 An Overview of CloudKit
    50.2 CloudKit Containers
    50.3 CloudKit Public Database
    50.4 CloudKit Private Databases
    50.5 Data Storage and Transfer Quotas
    50.6 CloudKit Records
    50.7 CloudKit Record IDs
    50.8 CloudKit References
    50.9 CloudKit Assets
    50.10 Record Zones
    50.11 CloudKit Sharing
    50.12 CloudKit Subscriptions
    50.13 Obtaining iCloud User Information
    50.14 CloudKit Console
    50.15 Summary
  51. An iOS 16 CloudKit Example
    51.1 About the Example CloudKit Project
    51.2 Creating the CloudKit Example Project
    51.3 Designing the User Interface
    51.4 Establishing Outlets and Actions
    51.5 Implementing the notifyUser Method
    51.6 Accessing the Private Database
    51.7 Hiding the Keyboard
    51.8 Implementing the selectPhoto method
    51.9 Saving a Record to the Cloud Database
    51.10 Testing the Record Saving Method
    51.11 Reviewing the Saved Data in the CloudKit Console
    51.12 Searching for Cloud Database Records
    51.13 Updating Cloud Database Records
    51.14 Deleting a Cloud Record
    51.15 Testing the App
    51.16 Summary
  52. An Overview of iOS 16 Multitouch, Taps, and Gestures
    52.1 The Responder Chain
    52.2 Forwarding an Event to the Next Responder
    52.3 Gestures
    52.4 Taps
    52.5 Touches
    52.6 Touch Notification Methods
    52.6.1 touchesBegan method
    52.6.2 touchesMoved method
    52.6.3 touchesEnded method
    52.6.4 touchesCancelled method
    52.7 Touch Prediction
    52.8 Touch Coalescing
    52.9 Summary
  53. An Example iOS 16 Touch, Multitouch, and Tap App
    53.1 The Example iOS Tap and Touch App
    53.2 Creating the Example iOS Touch Project
    53.3 Designing the User Interface
    53.4 Enabling Multitouch on the View
    53.5 Implementing the touchesBegan Method
    53.6 Implementing the touchesMoved Method
    53.7 Implementing the touchesEnded Method
    53.8 Getting the Coordinates of a Touch
    53.9 Building and Running the Touch Example App
    53.10 Checking for Touch Predictions
    53.11 Accessing Coalesced Touches
    53.12 Summary
  54. Detecting iOS 16 Touch Screen Gesture Motions
    54.1 The Example iOS 16 Gesture App
    54.2 Creating the Example Project
    54.3 Designing the App User Interface
    54.4 Implementing the touchesBegan Method
    54.5 Implementing the touchesMoved Method
    54.6 Implementing the touchesEnded Method
    54.7 Building and Running the Gesture Example
    54.8 Summary
  55. Identifying Gestures using iOS 16 Gesture Recognizers
    55.1 The UIGestureRecognizer Class
    55.2 Recognizer Action Messages
    55.3 Discrete and Continuous Gestures
    55.4 Obtaining Data from a Gesture
    55.5 Recognizing Tap Gestures
    55.6 Recognizing Pinch Gestures
    55.7 Detecting Rotation Gestures
    55.8 Recognizing Pan and Dragging Gestures
    55.9 Recognizing Swipe Gestures
    55.10 Recognizing Long Touch (Touch and Hold) Gestures
    55.11 Summary
  56. An iOS 16 Gesture Recognition Tutorial
    56.1 Creating the Gesture Recognition Project
    56.2 Designing the User Interface
    56.3 Implementing the Action Methods
    56.4 Testing the Gesture Recognition Application
    56.5 Summary
  57. Implementing Touch ID and Face ID Authentication in iOS 16 Apps
    57.1 The Local Authentication Framework
    57.2 Checking for Biometric Authentication Availability
    57.3 Identifying Authentication Options
    57.4 Evaluating Biometric Policy
    57.5 A Biometric Authentication Example Project
    57.6 Checking for Biometric Availability
    57.7 Seeking Biometric Authentication
    57.8 Adding the Face ID Privacy Statement
    57.9 Testing the App
    57.10 Summary
  58. Drawing iOS 16 2D Graphics with Core Graphics
    58.1 Introducing Core Graphics and Quartz 2D
    58.2 The draw Method
    58.3 Points, Coordinates, and Pixels
    58.4 The Graphics Context
    58.5 Working with Colors in Quartz 2D
    58.6 Summary
  59. Interface Builder Live Views and iOS 16 Embedded Frameworks
    59.1 Embedded Frameworks
    59.2 Interface Builder Live Views
    59.3 Creating the Example Project
    59.4 Adding an Embedded Framework
    59.5 Implementing the Drawing Code in the Framework
    59.6 Making the View Designable
    59.7 Making Variables Inspectable
    59.8 Summary
  60. An iOS 16 Graphics Tutorial using Core Graphics and Core Image
    60.1 The iOS Drawing Example App
    60.2 Creating the New Project
    60.3 Creating the UIView Subclass
    60.4 Locating the draw Method in the UIView Subclass
    60.5 Drawing a Line
    60.6 Drawing Paths
    60.7 Drawing a Rectangle
    60.8 Drawing an Ellipse or Circle
    60.9 Filling a Path with a Color
    60.10 Drawing an Arc
    60.11 Drawing a Cubic BΓ©zier Curve
    60.12 Drawing a Quadratic BΓ©zier Curve
    60.13 Dashed Line Drawing
    60.14 Drawing Shadows
    60.15 Drawing Gradients
    60.16 Drawing an Image into a Graphics Context
    60.17 Image Filtering with the Core Image Framework
    60.18 Summary
  61. iOS 16 Animation using UIViewPropertyAnimator
    61.1 The Basics of UIKit Animation
    61.2 Understanding Animation Curves
    61.3 Performing Affine Transformations
    61.4 Combining Transformations
    61.5 Creating the Animation Example App
    61.6 Implementing the Variables
    61.7 Drawing in the UIView
    61.8 Detecting Screen Touches and Performing the Animation
    61.9 Building and Running the Animation App
    61.10 Implementing Spring Timing
    61.11 Summary
  62. iOS 16 UIKit Dynamics – An Overview
    62.1 Understanding UIKit Dynamics
    62.2 The UIKit Dynamics Architecture
    62.2.1 Dynamic Items
    62.2.2 Dynamic Behaviors
    62.2.3 The Reference View
    62.2.4 The Dynamic Animator
    62.3 Implementing UIKit Dynamics in an iOS App
    62.4 Dynamic Animator Initialization
    62.5 Configuring Gravity Behavior
    62.6 Configuring Collision Behavior
    62.7 Configuring Attachment Behavior
    62.8 Configuring Snap Behavior
    62.9 Configuring Push Behavior
    62.10 The UIDynamicItemBehavior Class
    62.11 Combining Behaviors to Create a Custom Behavior
    62.12 Summary
  63. An iOS 16 UIKit Dynamics Tutorial
    63.1 Creating the UIKit Dynamics Example Project
    63.2 Adding the Dynamic Items
    63.3 Creating the Dynamic Animator Instance
    63.4 Adding Gravity to the Views
    63.5 Implementing Collision Behavior
    63.6 Attaching a View to an Anchor Point
    63.7 Implementing a Spring Attachment Between two Views
    63.8 Summary
  64. Integrating Maps into iOS 16 Apps using MKMapItem
    64.1 MKMapItem and MKPlacemark Classes
    64.2 An Introduction to Forward and Reverse Geocoding
    64.3 Creating MKPlacemark Instances
    64.4 Working with MKMapItem
    64.5 MKMapItem Options and Configuring Directions
    64.6 Adding Item Details to an MKMapItem
    64.7 Summary
  65. An Example iOS 16 MKMapItem App
    65.1 Creating the MapItem Project
    65.2 Designing the User Interface
    65.3 Converting the Destination using Forward Geocoding
    65.4 Launching the Map
    65.5 Building and Running the App
    65.6 Summary
  66. Getting Location Information using the iOS 16 Core Location Framework
    66.1 The Core Location Manager
    66.2 Requesting Location Access Authorization
    66.3 Configuring the Desired Location Accuracy
    66.4 Configuring the Distance Filter
    66.5 Continuous Background Location Updates
    66.6 The Location Manager Delegate
    66.7 Starting and Stopping Location Updates
    66.8 Obtaining Location Information from CLLocation Objects
    66.8.1 Longitude and Latitude
    66.8.2 Accuracy
    66.8.3 Altitude
    66.9 Getting the Current Location
    66.10 Calculating Distances
    66.11 Summary
  67. An Example iOS 16 Location App
    67.1 Creating the Example iOS 16 Location Project
    67.2 Designing the User Interface
    67.3 Configuring the CLLocationManager Object
    67.4 Setting up the Usage Description Keys
    67.5 Implementing the startWhenInUse Method
    67.6 Implementing the startAlways Method
    67.7 Implementing the resetDistance Method
    67.8 Implementing the App Delegate Methods
    67.9 Building and Running the Location App
    67.10 Adding Continuous Background Location Updates
    67.11 Summary
  68. Working with Maps on iOS 16 with MapKit and the MKMapView Class
    68.1 About the MapKit Framework
    68.2 Understanding Map Regions
    68.3 Getting Transit ETA Information
    68.4 About the MKMapView Tutorial
    68.5 Creating the Map Project
    68.6 Adding the Navigation Controller
    68.7 Creating the MKMapView Instance and Toolbar
    68.8 Obtaining Location Information Permission
    68.9 Setting up the Usage Description Keys
    68.10 Configuring the Map View
    68.11 Changing the MapView Region
    68.12 Changing the Map Type
    68.13 Testing the MapView App
    68.14 Updating the Map View based on User Movement
    68.15 Summary
  69. Working with MapKit Local Search in iOS 16
    69.1 An Overview of iOS Local Search
    69.2 Adding Local Search to the MapSample App
    69.3 Adding the Local Search Text Field
    69.4 Performing the Local Search
    69.5 Testing the App
    69.6 Customized Annotation Markers
    69.7 Annotation Marker Clustering
    69.8 Summary
  70. Using MKDirections to get iOS 16 Map Directions and Routes
    70.1 An Overview of MKDirections
    70.2 Adding Directions and Routes to the MapSample App
    70.3 Adding the New Classes to the Project
    70.4 Configuring the Results Table View
    70.5 Implementing the Result Table View Segue
    70.6 Adding the Route Scene
    70.7 Identifying the User’s Current Location
    70.8 Getting the Route and Directions
    70.9 Establishing the Route Segue
    70.10 Testing the App
    70.11 Summary
  71. Accessing the iOS 16 Camera and Photo Library
    71.1 The UIImagePickerController Class
    71.2 Creating and Configuring a UIImagePickerController Instance
    71.3 Configuring the UIImagePickerController Delegate
    71.4 Detecting Device Capabilities
    71.5 Saving Movies and Images
    71.6 Summary
  72. An Example iOS 16 Camera App
    72.1 An Overview of the App
    72.2 Creating the Camera Project
    72.3 Designing the User Interface
    72.4 Implementing the Action Methods
    72.5 Writing the Delegate Methods
    72.6 Seeking Camera and Photo Library Access
    72.7 Building and Running the App
    72.8 Summary
  73. iOS 16 Video Playback using AVPlayer and AVPlayerViewController
    73.1 The AVPlayer and AVPlayerViewController Classes
    73.2 The iOS Movie Player Example App
    73.3 Designing the User Interface
    73.4 Initializing Video Playback
    73.5 Build and Run the App
    73.6 Creating an AVPlayerViewController Instance from Code
    73.7 Summary
  74. An iOS 16 Multitasking Picture-in-Picture Tutorial
    74.1 An Overview of Picture-in-Picture Multitasking
    74.2 Adding Picture-in-Picture Support to the AVPlayerDemo App
    74.3 Adding the Navigation Controller
    74.4 Setting the Audio Session Category
    74.5 Implementing the Delegate
    74.6 Opting Out of Picture-in-Picture Support
    74.7 Additional Delegate Methods
    74.8 Summary
  75. An Introduction to Extensions in iOS 16
    75.1 iOS Extensions – An Overview
    75.2 Extension Types
    75.2.1 Share Extension
    75.2.2 Action Extension
    75.2.3 Photo Editing Extension
    75.2.4 Document Provider Extension
    75.2.5 Custom Keyboard Extension
    75.2.6 Audio Unit Extension
    75.2.7 Shared Links Extension
    75.2.8 Content Blocking Extension
    75.2.9 Sticker Pack Extension
    75.2.10 iMessage Extension
    75.2.11 Intents Extension
    75.3 Creating Extensions
    75.4 Summary
  76. Creating an iOS 16 Photo Editing Extension
    76.1 Creating a Photo Editing Extension
    76.2 Accessing the Photo Editing Extension
    76.3 Configuring the Info.plist File
    76.4 Designing the User Interface
    76.5 The PHContentEditingController Protocol
    76.6 Photo Extensions and Adjustment Data
    76.7 Receiving the Content
    76.8 Implementing the Filter Actions
    76.9 Returning the Image to the Photos App
    76.10 Testing the App
    76.11 Summary
  77. Creating an iOS 16 Action Extension
    77.1 An Overview of Action Extensions
    77.2 About the Action Extension Example
    77.3 Creating the Action Extension Project
    77.4 Adding the Action Extension Target
    77.5 Changing the Extension Display Name
    77.6 Designing the Action Extension User Interface
    77.7 Receiving the Content
    77.8 Returning the Modified Data to the Host App
    77.9 Testing the Extension
    77.10 Summary
  78. Receiving Data from an iOS 16 Action Extension
    78.1 Creating the Example Project
    78.2 Designing the User Interface
    78.3 Importing the Mobile Core Services Framework
    78.4 Adding an Action Button to the App
    78.5 Receiving Data from an Extension
    78.6 Testing the App
    78.7 Summary
  79. An Introduction to Building iOS 16 Message Apps
    79.1 Introducing Message Apps
    79.2 Types of Message Apps
    79.3 The Key Messages Framework Classes
    79.3.1 MSMessagesAppViewController
    79.3.2 MSConversation
    79.3.3 MSMessage
    79.3.4 MSMessageTemplateLayout
    79.4 Sending Simple Messages
    79.5 Creating an MSMessage Message
    79.6 Receiving a Message
    79.7 Supported Message App Platforms
    79.8 Summary
  80. An iOS 16 Interactive Message App Tutorial
    80.1 About the Example Message App Project
    80.2 Creating the MessageApp Project
    80.3 Designing the MessageApp User Interface
    80.4 Creating the Outlet Collection
    80.5 Creating the Game Model
    80.6 Responding to Button Selections
    80.7 Preparing the Message URL
    80.8 Preparing and Inserting the Message
    80.9 Message Receipt Handling
    80.10 Setting the Message Image
    80.11 Summary
  81. An Introduction to SiriKit
    81.1 Siri and SiriKit
    81.2 SiriKit Domains
    81.3 Siri Shortcuts
    81.4 SiriKit Intents
    81.5 How SiriKit Integration Works
    81.6 Resolving Intent Parameters
    81.7 The Confirm Method
    81.8 The Handle Method
    81.9 Custom Vocabulary
    81.10 The Siri User Interface
    81.11 Summary
  82. An iOS 16 Example SiriKit Messaging Extension
    82.1 Creating the Example Project
    82.2 Enabling the Siri Entitlement
    82.3 Seeking Siri Authorization
    82.4 Adding the Extensions
    82.5 Supported Intents
    82.6 Using the Default User Interface
    82.7 Trying the Example
    82.8 Specifying a Default Phrase
    82.9 Reviewing the Intent Handler
    82.10 Summary
  83. An Introduction to Machine Learning on iOS
    83.1 Datasets and Machine Learning Models
    83.2 Machine Learning in Xcode and iOS
    83.3 iOS Machine Learning Frameworks
    83.4 Summary
  84. Using Create ML to Build an Image Classification Model
    84.1 About the Dataset
    84.2 Creating the Machine Learning Model
    84.3 Importing the Training and Testing Data
    84.4 Training and Testing the Model
    84.5 Summary
  85. An iOS Vision and Core ML Image Classification Tutorial
    85.1 Preparing the Project
    85.2 Adding the Model
    85.3 Modifying the User Interface
    85.4 Initializing the Core ML Request
    85.5 Handling the Results of the Core ML Request
    85.6 Making the Classification Request
    85.7 Testing the App
    85.8 Summary
  86. An iOS 16 Quick Actions Tutorial
    86.1 Creating the Quick Actions Example Project
    86.2 Static Quick Action Keys
    86.3 Adding a Static Quick Action to the Project
    86.4 Adding a Dynamic Quick Action
    86.5 Adding, Removing, and Changing Dynamic Quick Actions
    86.6 Responding to a Quick Action Selection
    86.7 Testing the Quick Action App
    86.8 Summary
  87. An iOS 16 Local Notification Tutorial
    87.1 Creating the Local Notification App Project
    87.2 Requesting Notification Authorization
    87.3 Designing the User Interface
    87.4 Creating the Message Content
    87.5 Specifying a Notification Trigger
    87.6 Creating the Notification Request
    87.7 Adding the Request
    87.8 Testing the Notification
    87.9 Receiving Notifications in the Foreground
    87.10 Adding Notification Actions
    87.11 Handling Notification Actions
    87.12 Hidden Notification Content
    87.13 Managing Notifications
    87.14 Summary
  88. Playing Audio on iOS 16 using AVAudioPlayer
    88.1 Supported Audio Formats
    88.2 Receiving Playback Notifications
    88.3 Controlling and Monitoring Playback
    88.4 Creating the Audio Example App
    88.5 Adding an Audio File to the Project Resources
    88.6 Designing the User Interface
    88.7 Implementing the Action Methods
    88.8 Creating and Initializing the AVAudioPlayer Object
    88.9 Implementing the AVAudioPlayerDelegate Protocol Methods
    88.10 Building and Running the App
    88.11 Summary
  89. Recording Audio on iOS 16 with AVAudioRecorder
    89.1 An Overview of the AVAudioRecorder Tutorial
    89.2 Creating the Recorder Project
    89.3 Configuring the Microphone Usage Description
    89.4 Designing the User Interface
    89.5 Creating the AVAudioRecorder Instance
    89.6 Implementing the Action Methods
    89.7 Implementing the Delegate Methods
    89.8 Testing the App
    89.9 Summary
  90. An iOS 16 Speech Recognition Tutorial
    90.1 An Overview of Speech Recognition in iOS
    90.2 Speech Recognition Authorization
    90.3 Transcribing Recorded Audio
    90.4 Transcribing Live Audio
    90.5 An Audio File Speech Recognition Tutorial
    90.6 Modifying the User Interface
    90.7 Adding the Speech Recognition Permission
    90.8 Seeking Speech Recognition Authorization
    90.9 Performing the Transcription
    90.10 Testing the App
    90.11 Summary
  91. An iOS 16 Real-Time Speech Recognition Tutorial
    91.1 Creating the Project
    91.2 Designing the User Interface
    91.3 Adding the Speech Recognition Permission
    91.4 Requesting Speech Recognition Authorization
    91.5 Declaring and Initializing the Speech and Audio Objects
    91.6 Starting the Transcription
    91.7 Implementing the stopTranscribing Method
    91.8 Testing the App
    91.9 Summary
  92. An Introduction to iOS 16 Sprite Kit Programming
    92.1 What is Sprite Kit?
    92.2 The Key Components of a Sprite Kit Game
    92.2.1 Sprite Kit View
    92.2.2 Scenes
    92.2.3 Nodes
    92.2.4 Physics Bodies
    92.2.5 Physics World
    92.2.6 Actions
    92.2.7 Transitions
    92.2.8 Texture Atlas
    92.2.9 Constraints
    92.3 An Example Sprite Kit Game Hierarchy
    92.4 The Sprite Kit Game Rendering Loop
    92.5 The Sprite Kit Level Editor
    92.6 Summary
  93. An iOS 16 Sprite Kit Level Editor Game Tutorial
    93.1 About the Sprite Kit Demo Game
    93.2 Creating the SpriteKitDemo Project
    93.3 Reviewing the SpriteKit Game Template Project
    93.4 Restricting Interface Orientation
    93.5 Modifying the GameScene SpriteKit Scene File
    93.6 Creating the Archery Scene
    93.7 Transitioning to the Archery Scene
    93.8 Adding the Texture Atlas
    93.9 Designing the Archery Scene
    93.10 Preparing the Archery Scene
    93.11 Preparing the Animation Texture Atlas
    93.12 Creating the Named Action Reference
    93.13 Triggering the Named Action from the Code
    93.14 Creating the Arrow Sprite Node
    93.15 Shooting the Arrow
    93.16 Adding the Ball Sprite Node
    93.17 Summary
  94. An iOS 16 Sprite Kit Collision Handling Tutorial
    94.1 Defining the Category Bit Masks
    94.2 Assigning the Category Masks to the Sprite Nodes
    94.3 Configuring the Collision and Contact Masks
    94.4 Implementing the Contact Delegate
    94.5 Game Over
    94.6 Summary
  95. An iOS 16 Sprite Kit Particle Emitter Tutorial
    95.1 What is the Particle Emitter?
    95.2 The Particle Emitter Editor
    95.3 The SKEmitterNode Class
    95.4 Using the Particle Emitter Editor
    95.5 Particle Emitter Node Properties
    95.5.1 Background
    95.5.2 Particle Texture
    95.5.3 Particle Birthrate
    95.5.4 Particle Life Cycle
    95.5.5 Particle Position Range
    95.5.6 Angle
    95.5.7 Particle Speed
    95.5.8 Particle Acceleration
    95.5.9 Particle Scale
    95.5.10 Particle Rotation
    95.5.11 Particle Color
    95.5.12 Particle Blend Mode
    95.6 Experimenting with the Particle Emitter Editor
    95.7 Bursting a Ball using Particle Emitter Effects
    95.8 Adding the Burst Particle Emitter Effect
    95.9 Adding an Audio Action
    95.10 Summary
  96. Preparing and Submitting an iOS 16 Application to the App Store
    96.1 Verifying the iOS Distribution Certificate
    96.2 Adding App Icons
    96.3 Assign the Project to a Team
    96.4 Archiving the Application for Distribution
    96.5 Configuring the Application in App Store Connect
    96.6 Validating and Submitting the Application
    96.7 Configuring and Submitting the App for Review
    Index
    _Installing_Xcode_5
    _Installing_Xcode_6
    _Installing_Xcode_7
    _Installing_Xcode_8
    _Installing_Xcode_9
    _Installing_Xcode_10
    Starting_Xcode
    _Ref429746122
    _Ref429746723
    _Ref302558281
    _Ref504467476
    _Ref362425536
    _Ref401646208
    _Ref401650569
    _Ref302558390
    _Ref401646807
    _Ref401648106
    _Ref429745526
    _Ref404763289
    _Ref302559013
    _Ref431551178
    _Ref500159872
    _Ref464051841
    _Ref363730032
    _Ref363730496
    _Ref332889222
    _Ref332891516
    _Ref332891899
    _Ref363732512
    _Ref404773322
    _Ref363733654
    _Ref332977299
    _Ref333224727
    _Ref458425317
    _Ref463429244
    _Ref396033177
    _Ref463432575
    _Ref395879753
    _Ref458611363
    _Ref302559385
    _Ref336262998
    _Ref302559412
    OLE_LINK434
    OLE_LINK435
    OLE_LINK436
    OLE_LINK437
    OLE_LINK440
    OLE_LINK441
    OLE_LINK438
    OLE_LINK439
    OLE_LINK442
    OLE_LINK443
    _Ref426030298
    _Ref426033304
    _Ref426033363
    _Ref426033523
    _Ref314484484
    _Ref314484533
    _Ref314490902
    _Ref400092383
    _Ref504487771
    _Ref314485785
    _Ref400010228
    _Ref314485814
    _Ref314485876
    OLE_LINK444
    OLE_LINK445
    OLE_LINK446
    OLE_LINK447
    OLE_LINK448
    OLE_LINK449
    OLE_LINK450
    OLE_LINK451
    OLE_LINK452
    OLE_LINK453
    OLE_LINK454
    _Ref336599574
    _Ref314486125
    OLE_LINK455
    OLE_LINK456
    _Ref504554903
    OLE_LINK457
    OLE_LINK458
    OLE_LINK459
    OLE_LINK460
    OLE_LINK461
    OLE_LINK462
    OLE_LINK463
    OLE_LINK464
    OLE_LINK465
    OLE_LINK466
    OLE_LINK469
    OLE_LINK470
    OLE_LINK471
    OLE_LINK472
    OLE_LINK473
    OLE_LINK474
    OLE_LINK475
    OLE_LINK476
    OLE_LINK477
    OLE_LINK478
    OLE_LINK479
    OLE_LINK480
    OLE_LINK481
    OLE_LINK482
    OLE_LINK483
    OLE_LINK484
    OLE_LINK485
    OLE_LINK486
    OLE_LINK487
    OLE_LINK488
    _Ref425151038
    _Ref424740171
    _Ref424721567
    _Ref431304379
    _Ref424721769
    _Ref424893920
    _Ref424816592
    _Ref424894904
    _Ref425434139
    Understanding_Pathnames_in_Objective-C
    Creating_an_NSFileManager_Instance_Objec
    OLE_LINK13
    OLE_LINK14
    Identifying_the_Current_Working_Director
    OLE_LINK15
    OLE_LINK16
    OLE_LINK17
    OLE_LINK18
    OLE_LINK19
    OLE_LINK20
    OLE_LINK21
    OLE_LINK22
    OLE_LINK23
    OLE_LINK24
    OLE_LINK25
    OLE_LINK26
    OLE_LINK3
    OLE_LINK4
    OLE_LINK27
    OLE_LINK1
    OLE_LINK2
    OLE_LINK28
    OLE_LINK29
    OLE_LINK30
    Checking_if_a_File_Exists
    OLE_LINK31
    OLE_LINK32
    Comparing_the_Contents_of_Two_Files
    OLE_LINK33
    OLE_LINK34
    Checking_if_a_File_is_Readable.2FWritabl
    OLE_LINK35
    OLE_LINK36
    Moving.2FRenaming_a_File
    OLE_LINK37
    OLE_LINK38
    Copying_a_File
    OLE_LINK39
    OLE_LINK40
    Removing_a_File
    OLE_LINK41
    OLE_LINK42
    Creating_a_Symbolic_Link
    OLE_LINK43
    OLE_LINK44
    Reading_and_Writing_Files_with_NSFileMan
    OLE_LINK45
    OLE_LINK46
    OLE_LINK47
    OLE_LINK48
    Working_with_Files_using_the_NSFileHandl
    Creating_an_NSFileHandle_Object
    OLE_LINK49
    OLE_LINK50
    NSFileHandle_File_Offsets_and_Seeking
    OLE_LINK51
    OLE_LINK52
    Reading_Data_from_a_File
    OLE_LINK53
    OLE_LINK54
    Writing_Data_to_a_File
    OLE_LINK55
    OLE_LINK56
    Truncating_a_File
    OLE_LINK57
    OLE_LINK58
    OLE_LINK500
    OLE_LINK501
    OLE_LINK502
    OLE_LINK503
    OLE_LINK504
    OLE_LINK505
    OLE_LINK506
    OLE_LINK507
    OLE_LINK508
    OLE_LINK509
    OLE_LINK510
    OLE_LINK511
    OLE_LINK512
    OLE_LINK513
    OLE_LINK514
    OLE_LINK515
    OLE_LINK516
    OLE_LINK517
    OLE_LINK518
    OLE_LINK519
    OLE_LINK520
    OLE_LINK521
    OLE_LINK522
    OLE_LINK523
    OLE_LINK524
    OLE_LINK525
    OLE_LINK526
    OLE_LINK527
    OLE_LINK530
    OLE_LINK531
    OLE_LINK532
    OLE_LINK533
    OLE_LINK534
    OLE_LINK535
    _Ref504051794
    _Ref505156371
    _Ref504568765
    OLE_LINK536
    OLE_LINK537
    _Ref504568838
    OLE_LINK538
    OLE_LINK539
    OLE_LINK540
    OLE_LINK541
    OLE_LINK542
    OLE_LINK543
    OLE_LINK544
    OLE_LINK545
    OLE_LINK546
    OLE_LINK547
    OLE_LINK548
    OLE_LINK549
    OLE_LINK550
    OLE_LINK551
    _Ref336593023
    OLE_LINK552
    OLE_LINK553
    OLE_LINK554
    OLE_LINK555
    OLE_LINK556
    OLE_LINK557
    OLE_LINK558
    OLE_LINK559
    _Ref401571488
    OLE_LINK560
    OLE_LINK561
    _Ref401572729
    _Ref401572776
    OLE_LINK562
    OLE_LINK563
    OLE_LINK564
    OLE_LINK565
    OLE_LINK566
    OLE_LINK567
    OLE_LINK568
    OLE_LINK569
    OLE_LINK570
    OLE_LINK571
    OLE_LINK572
    _Ref302560021
    OLE_LINK573
    OLE_LINK574
    OLE_LINK585
    OLE_LINK586
    OLE_LINK587
    OLE_LINK575
    OLE_LINK576
    OLE_LINK577
    OLE_LINK578
    OLE_LINK588
    OLE_LINK589
    OLE_LINK579
    OLE_LINK580
    OLE_LINK581
    OLE_LINK582
    OLE_LINK590
    OLE_LINK591
    OLE_LINK583
    OLE_LINK584
    OLE_LINK592
    _Ref397070365
    _Ref396812798
    OLE_LINK593
    OLE_LINK594
    OLE_LINK595
    OLE_LINK596
    OLE_LINK599
    OLE_LINK600
    OLE_LINK603
    OLE_LINK604
    OLE_LINK605
    OLE_LINK606
    OLE_LINK609
    OLE_LINK610
    OLE_LINK611
    OLE_LINK612
    OLE_LINK251
    OLE_LINK252
    OLE_LINK619
    OLE_LINK620
    OLE_LINK643
    OLE_LINK644
    OLE_LINK645
    OLE_LINK646
    OLE_LINK647
    OLE_LINK648
    OLE_LINK649
    OLE_LINK650
    OLE_LINK651
    OLE_LINK652
    OLE_LINK653
    OLE_LINK654
    OLE_LINK655
    OLE_LINK656
    OLE_LINK59
    OLE_LINK60
    OLE_LINK657
    OLE_LINK658
    OLE_LINK61
    OLE_LINK62
    OLE_LINK63
    OLE_LINK64
    _Drawing_iPhone_2D_2
    OLE_LINK91
    OLE_LINK92
    OLE_LINK687
    OLE_LINK93
    OLE_LINK94
    OLE_LINK688
    OLE_LINK95
    OLE_LINK96
    OLE_LINK689
    OLE_LINK97
    OLE_LINK98
    OLE_LINK690
    _Ref501354161
    _Ref501353308
    _Ref501353466
    _Ref396130951
    _Ref396130929
    _Ref396131274
    OLE_LINK691
    OLE_LINK692
    OLE_LINK99
    OLE_LINK100
    OLE_LINK693
    OLE_LINK101
    OLE_LINK102
    OLE_LINK694
    OLE_LINK103
    OLE_LINK104
    OLE_LINK695
    _Ref396132986
    OLE_LINK105
    OLE_LINK106
    OLE_LINK696
    _Ref396133644
    _Drawing_iPhone_2D
    _Drawing_iPhone_2D_1
    _An_iPhone_Graphics
    OLE_LINK697
    OLE_LINK698
    _Ref302560297
    OLE_LINK699
    OLE_LINK700
    OLE_LINK701
    OLE_LINK702
    _Ref501119369
    _Ref302560321
    OLE_LINK703
    OLE_LINK704
    _Ref501119536
    OLE_LINK705
    OLE_LINK706
    OLE_LINK707
    OLE_LINK708
    OLE_LINK709
    OLE_LINK710
    OLE_LINK711
    OLE_LINK712
    OLE_LINK713
    OLE_LINK714
    OLE_LINK715
    OLE_LINK716
    OLE_LINK717
    OLE_LINK718
    OLE_LINK719
    OLE_LINK720
    OLE_LINK721
    OLE_LINK722
    OLE_LINK723
    OLE_LINK724
    OLE_LINK725
    OLE_LINK726
    OLE_LINK727
    OLE_LINK728
    OLE_LINK731
    OLE_LINK732
    OLE_LINK729
    OLE_LINK730
    OLE_LINK733
    OLE_LINK734
    OLE_LINK735
    OLE_LINK736
    OLE_LINK737
    OLE_LINK738
    OLE_LINK739
    OLE_LINK740
    OLE_LINK741
    OLE_LINK742
    _Ref335231251
    OLE_LINK743
    OLE_LINK744
    _iOS_7_UIKit
    _Ref361042235
    OLE_LINK747
    OLE_LINK748
    _Ref504723555
    OLE_LINK751
    OLE_LINK752
    OLE_LINK753
    OLE_LINK754
    OLE_LINK755
    OLE_LINK756
    OLE_LINK759
    OLE_LINK760
    OLE_LINK757
    OLE_LINK758
    OLE_LINK761
    OLE_LINK762
    OLE_LINK763
    OLE_LINK764
    OLE_LINK765
    OLE_LINK766
    OLE_LINK767
    OLE_LINK768
    OLE_LINK769
    OLE_LINK770
    OLE_LINK771
    OLE_LINK772
    OLE_LINK773
    OLE_LINK774
    _Ref332631103
    _Ref332700856
    OLE_LINK107
    OLE_LINK108
    OLE_LINK109
    OLE_LINK110
    _Ref394323899
    OLE_LINK113
    OLE_LINK114
    OLE_LINK115
    OLE_LINK116
    OLE_LINK117
    OLE_LINK118
    OLE_LINK119
    OLE_LINK120
    OLE_LINK121
    OLE_LINK122
    OLE_LINK123
    OLE_LINK124
    OLE_LINK125
    OLE_LINK126
    OLE_LINK127
    OLE_LINK128
    OLE_LINK131
    OLE_LINK132
    OLE_LINK129
    OLE_LINK130
    _Ref302560686
    OLE_LINK135
    OLE_LINK136
    OLE_LINK137
    OLE_LINK138
    OLE_LINK139
    OLE_LINK140
    _Ref502136511
    OLE_LINK141
    OLE_LINK142
    OLE_LINK143
    OLE_LINK144
    OLE_LINK145
    OLE_LINK146
    OLE_LINK147
    _Ref363482848
    OLE_LINK148
    OLE_LINK149
    OLE_LINK150
    OLE_LINK151
    _Ref502149712
    _Ref502150865
    OLE_LINK152
    OLE_LINK153
    OLE_LINK154
    OLE_LINK155
    OLE_LINK156
    OLE_LINK157
    _Ref505156512
    OLE_LINK158
    OLE_LINK159
    _Ref363560487
    _Ref363560705
    OLE_LINK160
    OLE_LINK161
    OLE_LINK162
    OLE_LINK163
    OLE_LINK164
    OLE_LINK165
    _Ref363634669
    OLE_LINK166
    OLE_LINK167
    OLE_LINK168
    OLE_LINK169
    OLE_LINK172
    OLE_LINK173
    OLE_LINK181
    OLE_LINK182
    OLE_LINK170
    OLE_LINK171
    OLE_LINK197
    OLE_LINK198
    _Ref336593031
    OLE_LINK183
    OLE_LINK184
    OLE_LINK185
    OLE_LINK186
    OLE_LINK187
    OLE_LINK188
    OLE_LINK189
    OLE_LINK190
    OLE_LINK191
    OLE_LINK192
    OLE_LINK193
    OLE_LINK194
    OLE_LINK195
    OLE_LINK196
    OLE_LINK199
    OLE_LINK200
    OLE_LINK205
    OLE_LINK206
    OLE_LINK207
    OLE_LINK208
    OLE_LINK209
    OLE_LINK210
    _Ref425767730
    _Ref425767748
    OLE_LINK211
    OLE_LINK212
    OLE_LINK853
    OLE_LINK215
    OLE_LINK216
    OLE_LINK856
    OLE_LINK857
    OLE_LINK858
    OLE_LINK217
    OLE_LINK218
    OLE_LINK219
    OLE_LINK220
    OLE_LINK859
    OLE_LINK860
    OLE_LINK221
    OLE_LINK222
    _Ref506294773
    _Ref506294792
    _Ref506294813
    _Ref506294969
    OLE_LINK875
    OLE_LINK876
    OLE_LINK245
    OLE_LINK246
    OLE_LINK877
    OLE_LINK878
    OLE_LINK879
    OLE_LINK880
    OLE_LINK881
    OLE_LINK882
    OLE_LINK883
    OLE_LINK884
    OLE_LINK885
    OLE_LINK887
    OLE_LINK888
    OLE_LINK253
    OLE_LINK254
    OLE_LINK255
    OLE_LINK256
    _Ref506295094
    _Ref506295127
    _Ref506295141
    _Ref506295172
    OLE_LINK257
    OLE_LINK258
    OLE_LINK889
    OLE_LINK259
    OLE_LINK260
    OLE_LINK890
    OLE_LINK263
    OLE_LINK264
    OLE_LINK892
    OLE_LINK265
    OLE_LINK266
    OLE_LINK893
    OLE_LINK267
    OLE_LINK268
    OLE_LINK894
    _Ref506295199
    _Ref506295273
    OLE_LINK271
    OLE_LINK272
    OLE_LINK895
    OLE_LINK273
    OLE_LINK274
    OLE_LINK896
    OLE_LINK275
    OLE_LINK276
    OLE_LINK897
    _Ref506295306
    _Ref506295318
    _Ref506295368
    _Ref506295386
    OLE_LINK277
    OLE_LINK278
    OLE_LINK898
    OLE_LINK899
    OLE_LINK900
    OLE_LINK279
    OLE_LINK280
    OLE_LINK901
    OLE_LINK281
    OLE_LINK902
    OLE_LINK903
    OLE_LINK282
    OLE_LINK283
    OLE_LINK904
    OLE_LINK905
    OLE_LINK284
    OLE_LINK285
    OLE_LINK286
    OLE_LINK287
    OLE_LINK906
    OLE_LINK907
    OLE_LINK288
    OLE_LINK289
    OLE_LINK908
    OLE_LINK290
    OLE_LINK291
    OLE_LINK909
    OLE_LINK910
    OLE_LINK292
    OLE_LINK293
    OLE_LINK911
    _Ref464572455
    OLE_LINK298
    OLE_LINK299
    OLE_LINK918
    OLE_LINK300
    OLE_LINK301
    OLE_LINK302
    OLE_LINK303
    OLE_LINK919
    OLE_LINK304
    OLE_LINK305
    OLE_LINK920
    OLE_LINK921
    _Ref461204097
    OLE_LINK922
    OLE_LINK923
    _Ref502926326
    OLE_LINK306
    OLE_LINK307
    _Ref525655341
    _Ref525655797
    OLE_LINK992
    OLE_LINK993
    OLE_LINK994
    OLE_LINK995
    OLE_LINK996
    OLE_LINK997
    OLE_LINK998
    OLE_LINK999
    OLE_LINK1000
    OLE_LINK1001
    OLE_LINK1002
    OLE_LINK1003
    OLE_LINK348
    OLE_LINK349
    OLE_LINK1004
    OLE_LINK350
    OLE_LINK351
    OLE_LINK1005
    OLE_LINK1006
    OLE_LINK352
    OLE_LINK353
    OLE_LINK1007
    OLE_LINK1008
    _Ref506295587
    OLE_LINK1023
    OLE_LINK1024
    _Ref506295600
    OLE_LINK354
    OLE_LINK355
    OLE_LINK1009
    _Ref506295614
    OLE_LINK356
    OLE_LINK357
    OLE_LINK1010
    OLE_LINK358
    OLE_LINK359
    OLE_LINK1011
    OLE_LINK360
    OLE_LINK361
    OLE_LINK1012
    OLE_LINK1013
    OLE_LINK362
    OLE_LINK363
    OLE_LINK1014
    OLE_LINK1015
    OLE_LINK1016
    OLE_LINK364
    OLE_LINK365
    OLE_LINK1017
    OLE_LINK1018
    OLE_LINK366
    OLE_LINK367
    OLE_LINK1019
    OLE_LINK368
    OLE_LINK369
    OLE_LINK1020
    _Ref506295649
    OLE_LINK1021
    OLE_LINK1022
    _Ref501457015
    _Ref501459683
    OLE_LINK1025
    OLE_LINK1026
    _Ref506295668
    OLE_LINK370
    OLE_LINK371
    OLE_LINK1031
    OLE_LINK1027
    OLE_LINK1028
    OLE_LINK1029
    OLE_LINK1030
    OLE_LINK1032
    OLE_LINK1033
    OLE_LINK1034
    OLE_LINK1035
    OLE_LINK1036
    OLE_LINK1037
    OLE_LINK1038
    OLE_LINK1039
    OLE_LINK372
    OLE_LINK373
    OLE_LINK1040
    _Ref506295711
    OLE_LINK378
    OLE_LINK379
    OLE_LINK1042
    OLE_LINK376
    OLE_LINK377
    OLE_LINK1043
    OLE_LINK380
    OLE_LINK381
    OLE_LINK1044
    OLE_LINK1045
    OLE_LINK1046
    OLE_LINK1047
    OLE_LINK1048
    OLE_LINK1049
    OLE_LINK1050
    OLE_LINK1051
    OLE_LINK1052
    OLE_LINK1053
    OLE_LINK1054
    OLE_LINK1055
    OLE_LINK1056
    _Ref506295735
    OLE_LINK383
    OLE_LINK384
    OLE_LINK1058
    OLE_LINK1059
    OLE_LINK1060
    OLE_LINK385
    OLE_LINK386
    OLE_LINK1061
    OLE_LINK1062
    OLE_LINK387
    OLE_LINK388
    OLE_LINK1063
    _Ref506295762
    OLE_LINK391
    OLE_LINK392
    OLE_LINK1065
    OLE_LINK393
    OLE_LINK394
    OLE_LINK1066
    OLE_LINK395
    OLE_LINK396
    OLE_LINK1067
    OLE_LINK397
    OLE_LINK398
    OLE_LINK1068
    OLE_LINK1069
    OLE_LINK1070
    OLE_LINK1071
    OLE_LINK399
    OLE_LINK400
    OLE_LINK401
    OLE_LINK402
    OLE_LINK1072
    OLE_LINK403
    OLE_LINK404
    OLE_LINK1073
    _Ref506295932
    _Ref506295943
    OLE_LINK429
    OLE_LINK430
    OLE_LINK1074
    OLE_LINK431
    OLE_LINK432
    OLE_LINK433
    OLE_LINK1075
    OLE_LINK1076
    OLE_LINK1077
    OLE_LINK1078
    OLE_LINK1079
    OLE_LINK1080
    OLE_LINK1081
    OLE_LINK1082
    OLE_LINK1083
    OLE_LINK1084
    OLE_LINK1085
    OLE_LINK1086
    OLE_LINK1087
    OLE_LINK1090
    OLE_LINK1091
    OLE_LINK1092
    OLE_LINK1093
    OLE_LINK1094
    OLE_LINK1095
    OLE_LINK1096
    OLE_LINK1097
    OLE_LINK1098
    OLE_LINK1099
    OLE_LINK1100
    OLE_LINK1101
    OLE_LINK1102
    OLE_LINK1103
    OLE_LINK1104
    OLE_LINK1105
    OLE_LINK1106
    OLE_LINK1107
    _Ref506296063
    _Ref506296074
    _Ref506296088
    OLE_LINK1108
    OLE_LINK1109
    OLE_LINK1110
    OLE_LINK1111
    OLE_LINK1112
    OLE_LINK1113

πŸ“œ SIMILAR VOLUMES


SwiftUI Essentials - iOS 16 Edition: Lea
✍ Neil Smyth πŸ“‚ Library πŸ“… 2022 πŸ› Payload Media 🌐 English

<p><span>This book will teach you the skills necessary to build iOS 16 applications using SwiftUI, Xcode 14, and the Swift 5.7 programming language.</span></p><p><span>Beginning with the basics, this book outlines the steps necessary to set up an iOS development environment, together with an introdu

SwiftUI Essentials - iOS 16 Edition: Lea
✍ Neil Smyth πŸ“‚ Library πŸ“… 2022 πŸ› Payload Media 🌐 English

<p><span>This book will teach you the skills necessary to build iOS 16 applications using SwiftUI, Xcode 14, and the Swift 5.7 programming language.</span></p><p><span>Beginning with the basics, this book outlines the steps necessary to set up an iOS development environment, together with an introdu

iOS 12 App Development Essentials: Learn
✍ Neil Smyth πŸ“‚ Library πŸ“… 2018 πŸ› Payload Media, Inc. 🌐 English

iOS 12 App Development Essentials, the latest edition of this popular book series, has now been fully updated for the iOS 12 SDK, Xcode 10 and the Swift 4.2 programming language.<br /><br />This publication is available for purchase in print and eBook editions. The print edition consists of 102 chap

iOS 10 App Development Essentials: Learn
✍ Neil Smyth πŸ“‚ Library πŸ“… 2016 πŸ› CreateSpace Independent Publishing Platform 🌐 English

<p> iOS 10 App Development Essentials is latest edition of this popular book series and has now been fully updated for the iOS 10 SDK, Xcode 8 and the Swift 3 programming language. </p><p> Beginning with the basics, this book provides an outline of the steps necessary to set up an iOS development en

Beginning iOS 16 & Swift App Development
✍ Greg Lim πŸ“‚ Library 🌐 English

<p><span>Follow Greg at twitter.com/greglim81</span><span><br><br>In this book, we take you on a fun, hands-on and pragmatic journey to learning iOS 16 application development using Swift. You'll start building your first iOS app within minutes. Every section is written in a bite-sized manner and st

iOS 9 App Development Essentials: Learn
✍ Neil Smyth πŸ“‚ Library πŸ“… 2015 πŸ› CreateSpace Independent Publishing Platform 🌐 English

<p> iOS 9 App Development Essentials is latest edition of this popular book series and has now been fully updated for the iOS 9 SDK, Xcode 7 and the Swift 2 programming language. <p> Beginning with the basics, this book provides an outline of the steps necessary to set up an iOS development environm