0%

Acquire and hone the skills to develop iOS apps for iPhone and iPad devices using the Xcode development environment, SwiftUI, and the Swift programming language

Key Features

  • Learn to write object-oriented code using the Swift programming language
  • Understand how to work with the SwiftUI app lifecycle
  • Become comfortable developing apps using Xcode

Book Description

Do you want to create iOS apps with SwiftUI, Xcode 12, and Swift 5.3, and want to publish it on the app store? This book helps you achieve these skills with a step-by-step approach.

This course first walks you through the steps necessary to set up an iOS development environment together and introduces Swift Playgrounds to learn and experiment with Swift—specifically, the Swift 5.3 programming language. After establishing key concepts of SwiftUI and project architecture, this course provides a guided tour of Xcode in SwiftUI development mode.

The book also covers the creation of custom SwiftUI views and explains how these views are combined to create user interface layouts, including the use of stacks, frames, and forms. One of the more important skills you’ll learn is how to integrate SwiftUI views into existing UIKit-based projects and explain the integration of UIKit code into SwiftUI.

Finally, the book explains how to package up a completed app and upload it to the app store for publication. Along the way, the topics covered in the book are put into practice through detailed tutorials, the source code for which is also available for download.

By the end of this course, you will be able to build your own apps for iOS 14 using SwiftUI and publish it on the app store.

What you will learn

  • Install and configure the Xcode integrated development environment
  • Add navigation and lists to your apps
  • Draw graphics and animate your user interfaces
  • Recognize and respond to touches and gestures
  • Integrate SiriKit into your iOS apps
  • Integrate legacy UIKit iOS code into SwiftUI apps and vice versa

Who this book is for

This book is best suited for iOS developers who want to build their own apps for iOS 14 using SwiftUI.

This course assumes that you have an Apple Mac system and are ready to download the iOS 14 SDK while following along with the course.

Table of Contents

  1. 1. Start Here
    1. 1.1 For Swift Programmers
    2. 1.2 For Non-Swift Programmers
    3. 1.3 Source Code Download
    4. 1.4 Feedback
    5. 1.5 Errata
  2. 2. Joining the Apple Developer Program
    1. 2.1 Downloading Xcode 12 and the iOS 14 SDK
    2. 2.2 Apple Developer Program
    3. 2.3 When to Enroll in the Apple Developer Program?
    4. 2.4 Enrolling in the Apple Developer Program
    5. 2.5 Summary
  3. 3. Installing Xcode 12 and the iOS 14 SDK
    1. 3.1 Identifying Your macOS Version
    2. 3.2 Installing Xcode 12 and the iOS 14 SDK
    3. 3.3 Starting Xcode
    4. 3.4 Adding Your Apple ID to the Xcode Preferences
    5. 3.5 Developer and Distribution Signing Identities
    6. 3.6 Summary
  4. 4. An Introduction to Xcode 12 Playgrounds
    1. 4.1 What is a Playground?
    2. 4.2 Creating a New Playground
    3. 4.3 A Swift Playground Example
    4. 4.4 Viewing Results
    5. 4.5 Adding Rich Text Comments
    6. 4.6 Working with Playground Pages
    7. 4.7 Working with SwiftUI and Live View in Playgrounds
    8. 4.8 Summary
  5. 5. Swift Data Types, Constants and Variables
    1. 5.1 Using a Swift Playground
    2. 5.2 Swift Data Types
    3. 5.2.1 Integer Data Types
    4. 5.2.2 Floating Point Data Types
    5. 5.2.3 Bool Data Type
    6. 5.2.4 Character Data Type
    7. 5.2.5 String Data Type
    8. 5.2.6 Special Characters/Escape Sequences
    9. 5.3 Swift Variables
    10. 5.4 Swift Constants
    11. 5.5 Declaring Constants and Variables
    12. 5.6 Type Annotations and Type Inference
    13. 5.7 The Swift Tuple
    14. 5.8 The Swift Optional Type
    15. 5.9 Type Casting and Type Checking
    16. 5.10 Summary
  6. 6. Swift Operators and Expressions
    1. 6.1 Expression Syntax in Swift
    2. 6.2 The Basic Assignment Operator
    3. 6.3 Swift Arithmetic Operators
    4. 6.4 Compound Assignment Operators
    5. 6.5 Comparison Operators
    6. 6.6 Boolean Logical Operators
    7. 6.7 Range Operators
    8. 6.8 The Ternary Operator
    9. 6.9 Nil Coalescing Operator
    10. 6.10 Bitwise Operators
    11. 6.10.1 Bitwise NOT
    12. 6.10.2 Bitwise AND
    13. 6.10.3 Bitwise OR
    14. 6.10.4 Bitwise XOR
    15. 6.10.5 Bitwise Left Shift
    16. 6.10.6 Bitwise Right Shift
    17. 6.11 Compound Bitwise Operators
    18. 6.12 Summary
  7. 7. Swift Control Flow
    1. 7.1 Looping Control Flow
    2. 7.2 The Swift for-in Statement
    3. 7.2.1 The while Loop
    4. 7.3 The repeat ... while loop
    5. 7.4 Breaking from Loops
    6. 7.5 The continue Statement
    7. 7.6 Conditional Control Flow
    8. 7.7 Using the if Statement
    9. 7.8 Using if ... else … Statements
    10. 7.9 Using if ... else if ... Statements
    11. 7.10 The guard Statement
    12. 7.11 Summary
  8. 8. The Swift Switch Statement
    1. 8.1 Why Use a switch Statement?
    2. 8.2 Using the switch Statement Syntax
    3. 8.3 A Swift switch Statement Example
    4. 8.4 Combining case Statements
    5. 8.5 Range Matching in a switch Statement
    6. 8.6 Using the where statement
    7. 8.7 Fallthrough
    8. 8.8 Summary
  9. 9. Swift Functions, Methods and Closures
    1. 9.1 What is a Function?
    2. 9.2 What is a Method?
    3. 9.3 How to Declare a Swift Function
    4. 9.4 Implicit Returns from Single Expressions
    5. 9.5 Calling a Swift Function
    6. 9.6 Handling Return Values
    7. 9.7 Local and External Parameter Names
    8. 9.8 Declaring Default Function Parameters
    9. 9.9 Returning Multiple Results from a Function
    10. 9.10 Variable Numbers of Function Parameters
    11. 9.11 Parameters as Variables
    12. 9.12 Working with In-Out Parameters
    13. 9.13 Functions as Parameters
    14. 9.14 Closure Expressions
    15. 9.15 Shorthand Argument Names
    16. 9.16 Closures in Swift
    17. 9.17 Summary
  10. 10. The Basics of Swift Object-Oriented Programming
    1. 10.1 What is an Instance?
    2. 10.2 What is a Class?
    3. 10.3 Declaring a Swift Class
    4. 10.4 Adding Instance Properties to a Class
    5. 10.5 Defining Methods
    6. 10.6 Declaring and Initializing a Class Instance
    7. 10.7 Initializing and De-initializing a Class Instance
    8. 10.8 Calling Methods and Accessing Properties
    9. 10.9 Stored and Computed Properties
    10. 10.10 Lazy Stored Properties
    11. 10.11 Using self in Swift
    12. 10.12 Understanding Swift Protocols
    13. 10.13 Opaque Return Types
    14. 10.14 Summary
  11. 11. An Introduction to Swift Subclassing and Extensions
    1. 11.1 Inheritance, Classes and Subclasses
    2. 11.2 A Swift Inheritance Example
    3. 11.3 Extending the Functionality of a Subclass
    4. 11.4 Overriding Inherited Methods
    5. 11.5 Initializing the Subclass
    6. 11.6 Using the SavingsAccount Class
    7. 11.7 Swift Class Extensions
    8. 11.8 Summary
  12. 12. An Introduction to Swift Structures and Enumerations
    1. 12.1 An Overview of Swift Structures
    2. 12.2 Value Types vs. Reference Types
    3. 12.3 When to Use Structures or Classes
    4. 12.4 An Overview of Enumerations
    5. 12.5 Summary
  13. 13. An Introduction to Swift Property Wrappers
    1. 13.1 Understanding Property Wrappers
    2. 13.2 A Simple Property Wrapper Example
    3. 13.3 Supporting Multiple Variables and Types
    4. 13.4 Summary
  14. 14. Working with Array and Dictionary Collections in Swift
    1. 14.1 Mutable and Immutable Collections
    2. 14.2 Swift Array Initialization
    3. 14.3 Working with Arrays in Swift
    4. 14.3.1 Array Item Count
    5. 14.3.2 Accessing Array Items
    6. 14.4 Random Items and Shuffling
    7. 14.5 Appending Items to an Array
    8. 14.5.1 Inserting and Deleting Array Items
    9. 14.6 Array Iteration
    10. 14.7 Creating Mixed Type Arrays
    11. 14.8 Swift Dictionary Collections
    12. 14.9 Swift Dictionary Initialization
    13. 14.10 Sequence-based Dictionary Initialization
    14. 14.11 Dictionary Item Count
    15. 14.12 Accessing and Updating Dictionary Items
    16. 14.13 Adding and Removing Dictionary Entries
    17. 14.14 Dictionary Iteration
    18. 14.15 Summary
  15. 15. Understanding Error Handling in Swift 5
    1. 15.1 Understanding Error Handling
    2. 15.2 Declaring Error Types
    3. 15.3 Throwing an Error
    4. 15.4 Calling Throwing Methods and Functions
    5. 15.5 Accessing the Error Object
    6. 15.6 Disabling Error Catching
    7. 15.7 Using the defer Statement
    8. 15.8 Summary
  16. 16. An Overview of SwiftUI
    1. 16.1 UIKit and Interface Builder
    2. 16.2 SwiftUI Declarative Syntax
    3. 16.3 SwiftUI is Data Driven
    4. 16.4 SwiftUI vs. UIKit
    5. 16.5 Summary
  17. 17. Using Xcode in SwiftUI Mode
    1. 17.1 Starting Xcode 12
    2. 17.2 Creating a SwiftUI Project
    3. 17.3 Xcode in SwiftUI Mode
    4. 17.4 The Preview Canvas
    5. 17.5 Preview Pinning
    6. 17.6 The Preview Toolbar
    7. 17.7 Modifying the Design
    8. 17.8 Editor Context Menu
    9. 17.9 Previewing on Multiple Device Configurations
    10. 17.10 Running the App on a Simulator
    11. 17.11 Running the App on a Physical iOS Device
    12. 17.12 Managing Devices and Simulators
    13. 17.13 Enabling Network Testing
    14. 17.14 Dealing with Build Errors
    15. 17.15 Monitoring Application Performance
    16. 17.16 Exploring the User Interface Layout Hierarchy
    17. 17.17 Summary
  18. 18. SwiftUI Architecture
    1. 18.1 SwiftUI App Hierarchy
    2. 18.2 App
    3. 18.3 Scenes
    4. 18.4 Views
    5. 18.5 Summary
  19. 19. The Anatomy of a Basic SwiftUI Project
    1. 19.1 Creating an Example Project
    2. 19.2 Project Folders
    3. 19.3 The DemoProjectApp.swift File
    4. 19.4 The ContentView.swift File
    5. 19.5 Assets.xcassets
    6. 19.6 Info.plist
    7. 19.7 Summary
  20. 20. Creating Custom Views with SwiftUI
    1. 20.1 SwiftUI Views
    2. 20.2 Creating a Basic View
    3. 20.3 Adding Additional Views
    4. 20.4 Working with Subviews
    5. 20.5 Views as Properties
    6. 20.6 Modifying Views
    7. 20.7 Working with Text Styles
    8. 20.8 Modifier Ordering
    9. 20.9 Custom Modifiers
    10. 20.10 Basic Event Handling
    11. 20.11 Building Custom Container Views
    12. 20.12 Working with the Label View
    13. 20.13 Summary
  21. 21. SwiftUI Stacks and Frames
    1. 21.1 SwiftUI Stacks
    2. 21.2 Spacers, Alignment and Padding
    3. 21.3 Container Child Limit
    4. 21.4 Text Line Limits and Layout Priority
    5. 21.5 Traditional vs. Lazy Stacks
    6. 21.6 SwiftUI Frames
    7. 21.7 Frames and the Geometry Reader
    8. 21.8 Summary
  22. 22. SwiftUI State Properties, Observable, State and Environment Objects
    1. 22.1 State Properties
    2. 22.2 State Binding
    3. 22.3 Observable Objects
    4. 22.4 State Objects
    5. 22.5 Environment Objects
    6. 22.6 Summary
  23. 23. A SwiftUI Example Tutorial
    1. 23.1 Creating the Example Project
    2. 23.2 Reviewing the Project
    3. 23.3 Adding a VStack to the Layout
    4. 23.4 Adding a Slider View to the Stack
    5. 23.5 Adding a State Property
    6. 23.6 Adding Modifiers to the Text View
    7. 23.7 Adding Rotation and Animation
    8. 23.8 Adding a TextField to the Stack
    9. 23.9 Adding a Color Picker
    10. 23.10 Tidying the Layout
    11. 23.11 Summary
  24. 24. SwiftUI Lifecycle Event Modifiers
    1. 24.1 Creating the LifecycleDemo Project
    2. 24.2 Designing the App
    3. 24.3 The onAppear and onDisappear Modifiers
    4. 24.4 The onChange Modifier
    5. 24.5 ScenePhase and the onChange Modifier
    6. 24.6 Summary
  25. 25. SwiftUI Observable and Environment Objects – A Tutorial
    1. 25.1 About the ObservableDemo Project
    2. 25.2 Creating the Project
    3. 25.3 Adding the Observable Object
    4. 25.4 Designing the ContentView Layout
    5. 25.5 Adding the Second View
    6. 25.6 Adding Navigation
    7. 25.7 Using an Environment Object
    8. 25.8 Summary
  26. 26. SwiftUI Data Persistence using AppStorage and SceneStorage
    1. 26.1 The @SceneStorage Property Wrapper
    2. 26.2 The @AppStorage Property Wrapper
    3. 26.3 Creating and Preparing the StorageDemo Project
    4. 26.4 Using Scene Storage
    5. 26.5 Using App Storage
    6. 26.6 Storing Custom Types
    7. 26.7 Summary
  27. 27. SwiftUI Stack Alignment and Alignment Guides
    1. 27.1 Container Alignment
    2. 27.2 Alignment Guides
    3. 27.3 Using the Alignment Guides Tool
    4. 27.4 Custom Alignment Types
    5. 27.5 Cross Stack Alignment
    6. 27.6 ZStack Custom Alignment
    7. 27.7 Summary
  28. 28. SwiftUI Lists and Navigation
    1. 28.1 SwiftUI Lists
    2. 28.2 SwiftUI Dynamic Lists
    3. 28.3 SwiftUI NavigationView and NavigationLink
    4. 28.4 Making the List Editable
    5. 28.5 Hierarchical Lists
    6. 28.6 Summary
  29. 29. A SwiftUI List and Navigation Tutorial
    1. 29.1 About the ListNavDemo Project
    2. 29.2 Creating the ListNavDemo Project
    3. 29.3 Preparing the Project
    4. 29.4 Adding the Car Structure
    5. 29.5 Loading the JSON Data
    6. 29.6 Adding the Data Store
    7. 29.7 Designing the Content View
    8. 29.8 Designing the Detail View
    9. 29.9 Adding Navigation to the List
    10. 29.10 Designing the Add Car View
    11. 29.11 Implementing Add and Edit Buttons
    12. 29.12 Adding the Edit Button Methods
    13. 29.13 Summary
  30. 30. An Overview of List, OutlineGroup and DisclosureGroup
    1. 30.1 Hierarchical Data and Disclosures
    2. 30.2 Hierarchies and Disclosure in SwiftUI Lists
    3. 30.3 Using OutlineGroup
    4. 30.4 Using DisclosureGroup
    5. 30.5 Summary
  31. 31. A SwiftUI List, OutlineGroup and DisclosureGroup Tutorial
    1. 31.1 About the Example Project
    2. 31.2 Creating the OutlineGroupDemo Project
    3. 31.3 Adding the Data Structure
    4. 31.4 Adding the List View
    5. 31.5 Testing the Project
    6. 31.6 Using the Sidebar List Style
    7. 31.7 Using OutlineGroup
    8. 31.8 Working with DisclosureGroups
    9. 31.9 Summary
  32. 32. Building SwiftUI Grids with LazyVGrid and LazyHGrid
    1. 32.1 SwiftUI Grids
    2. 32.2 GridItems
    3. 32.3 Creating the GridDemo Project
    4. 32.4 Working with Flexible GridItems
    5. 32.5 Adding Scrolling Support to a Grid
    6. 32.6 Working with Adaptive GridItems
    7. 32.7 Working with Fixed GridItems
    8. 32.8 Using the LazyHGrid View
    9. 32.9 Summary
  33. 33. Building Tabbed and Paged Views in SwiftUI
    1. 33.1 An Overview of SwiftUI TabView
    2. 33.2 Creating the TabViewDemo App
    3. 33.3 Adding the TabView Container
    4. 33.4 Adding the Content Views
    5. 33.5 Adding View Paging
    6. 33.6 Adding the Tab Items
    7. 33.7 Adding Tab Item Tags
    8. 33.8 Summary
  34. 34. Building Context Menus in SwiftUI
    1. 34.1 Creating the ContextMenuDemo Project
    2. 34.2 Preparing the Content View
    3. 34.3 Adding the Context Menu
    4. 34.4 Testing the Context Menu
    5. 34.5 Summary
  35. 35. Basic SwiftUI Graphics Drawing
    1. 35.1 Creating the DrawDemo Project
    2. 35.2 SwiftUI Shapes
    3. 35.3 Using Overlays
    4. 35.4 Drawing Custom Paths and Shapes
    5. 35.5 Drawing Gradients
    6. 35.6 Summary
  36. 36. SwiftUI Animation and Transitions
    1. 36.1 Creating the AnimationDemo Example Project
    2. 36.2 Implicit Animation
    3. 36.3 Repeating an Animation
    4. 36.4 Explicit Animation
    5. 36.5 Animation and State Bindings
    6. 36.6 Automatically Starting an Animation
    7. 36.7 SwiftUI Transitions
    8. 36.8 Combining Transitions
    9. 36.9 Asymmetrical Transitions
    10. 36.10 Summary
  37. 37. Working with Gesture Recognizers in SwiftUI
    1. 37.1 Creating the GestureDemo Example Project
    2. 37.2 Basic Gestures
    3. 37.3 The onChange Action Callback
    4. 37.4 The updating Callback Action
    5. 37.5 Composing Gestures
    6. 37.6 Summary
  38. 38. Creating a Customized SwiftUI ProgressView
    1. 38.1 ProgressView Styles
    2. 38.2 Creating the ProgressViewDemo Project
    3. 38.3 Adding a ProgressView
    4. 38.4 Using the Circular ProgressView Style
    5. 38.5 Declaring an Indeterminate ProgressView
    6. 38.6 ProgressView Customization
    7. 38.7 Summary
  39. 39. An Overview of SwiftUI DocumentGroup Scenes
    1. 39.1 Documents in Apps
    2. 39.2 Creating the DocDemo App
    3. 39.3 The DocumentGroup Scene
    4. 39.4 Declaring File Type Support
    5. 39.4.1 Document Content Type Identifier
    6. 39.4.2 Handler Rank
    7. 39.4.3 Type Identifiers
    8. 39.4.4 Filename Extensions
    9. 39.4.5 Custom Type Document Content Identifiers
    10. 39.4.6 Exported vs. Imported Type Identifiers
    11. 39.5 Configuring File Type Support in Xcode
    12. 39.6 The Document Structure
    13. 39.7 The Content View
    14. 39.8 Running the Example App
    15. 39.9 Summary
  40. 40. A SwiftUI DocumentGroup Tutorial
    1. 40.1 Creating the ImageDocDemo Project
    2. 40.2 Modifying the Info.plist File
    3. 40.3 Adding an Image Asset
    4. 40.4 Modifying the ImageDocDemoDocument.swift File
    5. 40.5 Designing the Content View
    6. 40.6 Filtering the Image
    7. 40.7 Testing the App
    8. 40.8 Summary
  41. 41. An Introduction to SiriKit
    1. 41.1 Siri and SiriKit
    2. 41.2 SiriKit Domains
    3. 41.3 Siri Shortcuts
    4. 41.4 SiriKit Intents
    5. 41.5 How SiriKit Integration Works
    6. 41.6 Resolving Intent Parameters
    7. 41.7 The Confirm Method
    8. 41.8 The Handle Method
    9. 41.9 Custom Vocabulary
    10. 41.10 The Siri User Interface
    11. 41.11 Summary
  42. 42. A SwiftUI SiriKit Messaging Extension Tutorial
    1. 42.1 Creating the Example Project
    2. 42.2 Enabling the Siri Entitlement
    3. 42.3 Seeking Siri Authorization
    4. 42.4 Adding the Intents Extension
    5. 42.5 Supported Intents
    6. 42.6 Trying the Example
    7. 42.7 Specifying a Default Phrase
    8. 42.8 Reviewing the Intent Handler
    9. 42.9 Summary
  43. 43. Customizing the SiriKit Intent User Interface
    1. 43.1 Adding the Intents UI Extension
    2. 43.2 Modifying the UI Extension
    3. 43.3 Using the configure Method
    4. 43.4 Using the configureView Method
    5. 43.5 Designing the Siri Snippet
    6. 43.6 Implementing a configureView Method
    7. 43.7 Testing the Extension
    8. 43.8 Summary
  44. 44. A SwiftUI SiriKit NSUserActivity Tutorial
    1. 44.1 About the SiriKit Photo Search Project
    2. 44.2 Creating the SiriPhoto Project
    3. 44.3 Enabling the Siri Entitlement
    4. 44.4 Seeking Siri Authorization
    5. 44.5 Adding an Image Asset
    6. 44.6 Adding the Intents Extension to the Project
    7. 44.7 Reviewing the Default Intents Extension
    8. 44.8 Modifying the Supported Intents
    9. 44.9 Modifying the IntentHandler Implementation
    10. 44.10 Implementing the Resolve Methods
    11. 44.11 Implementing the Confirmation Method
    12. 44.12 Handling the Intent
    13. 44.13 Testing the App
    14. 44.14 Adding a Data Class to SiriPhoto
    15. 44.15 Designing the Content View
    16. 44.16 Adding Supported Activity Types to SiriPhoto
    17. 44.17 Handling the NSUserActivity Object
    18. 44.18 Testing the Completed App
    19. 44.19 Summary
  45. 45. An Overview of Siri Shortcut App Integration
    1. 45.1 An Overview of Siri Shortcuts
    2. 45.2 An Introduction to the Intent Definition File
    3. 45.3 Automatically Generated Classes
    4. 45.4 Donating Shortcuts
    5. 45.5 The Add to Siri Button
    6. 45.6 Summary
  46. 46. A SwiftUI Siri Shortcut Tutorial
    1. 46.1 About the Example App
    2. 46.2 App Groups and UserDefaults
    3. 46.3 Preparing the Project
    4. 46.4 Running the App
    5. 46.5 Enabling Siri Support
    6. 46.6 Seeking Siri Authorization
    7. 46.7 Adding the Intents Extension
    8. 46.8 Adding the SiriKit Intent Definition File
    9. 46.9 Adding the Intent to the App Group
    10. 46.10 Configuring the SiriKit Intent Definition File
    11. 46.11 Adding Intent Parameters
    12. 46.12 Declaring Shortcut Combinations
    13. 46.13 Configuring the Intent Response
    14. 46.14 Configuring Target Membership
    15. 46.15 Modifying the Intent Handler Code
    16. 46.16 Adding the Confirm Method
    17. 46.17 Donating Shortcuts to Siri
    18. 46.18 Testing the Shortcuts
    19. 46.19 Designing the Intent UI
    20. 46.20 Summary
  47. 47. Building Widgets with SwiftUI and WidgetKit
    1. 47.1 An Overview of Widgets
    2. 47.2 The Widget Extension
    3. 47.3 Widget Configuration Types
    4. 47.4 Widget Entry View
    5. 47.5 Widget Timeline Entries
    6. 47.6 Widget Timeline
    7. 47.7 Widget Provider
    8. 47.8 Reload Policy
    9. 47.9 Relevance
    10. 47.10 Forcing a Timeline Reload
    11. 47.11 Widget Sizes
    12. 47.12 Widget Placeholder
    13. 47.13 Summary
  48. 48. A SwiftUI WidgetKit Tutorial
    1. 48.1 About the WidgetDemo Project
    2. 48.2 Creating the WidgetDemo Project
    3. 48.3 Building the App
    4. 48.4 Adding the Widget Extension
    5. 48.5 Adding the Widget Data
    6. 48.6 Creating Sample Timelines
    7. 48.7 Adding Image and Color Assets
    8. 48.8 Designing the Widget View
    9. 48.9 Modifying the Widget Provider
    10. 48.10 Configuring the Placeholder View
    11. 48.11 Previewing the Widget
    12. 48.12 Summary
  49. 49. Supporting WidgetKit Size Families
    1. 49.1 Supporting Multiple Size Families
    2. 49.2 Adding Size Support to the Widget View
    3. 49.3 Summary
  50. 50. A SwiftUI WidgetKit Deep Link Tutorial
    1. 50.1 Adding Deep Link Support to the Widget
    2. 50.2 Adding Deep Link Support to the App
    3. 50.3 Testing the Widget
    4. 50.4 Summary
  51. 51. Adding Configuration Options to a WidgetKit Widget
    1. 51.1 Modifying the Weather Data
    2. 51.2 Configuring the Intent Definition
    3. 51.3 Modifying the Widget
    4. 51.4 Testing Widget Configuration
    5. 51.5 Customizing the Configuration Intent UI
    6. 51.6 Summary
  52. 52. Integrating UIViews with SwiftUI
    1. 52.1 SwiftUI and UIKit Integration
    2. 52.2 Integrating UIViews into SwiftUI
    3. 52.3 Adding a Coordinator
    4. 52.4 Handling UIKit Delegation and Data Sources
    5. 52.5 An Example Project
    6. 52.6 Wrapping the UIScrolledView
    7. 52.7 Implementing the Coordinator
    8. 52.8 Using MyScrollView
    9. 52.9 Summary
  53. 53. Integrating UIViewControllers with SwiftUI
    1. 53.1 UIViewControllers and SwiftUI
    2. 53.2 Creating the ViewControllerDemo project
    3. 53.3 Wrapping the UIImagePickerController
    4. 53.4 Designing the Content View
    5. 53.5 Completing MyImagePicker
    6. 53.6 Completing the Content View
    7. 53.7 Testing the App
    8. 53.8 Summary
  54. 54. Integrating SwiftUI with UIKit
    1. 54.1 An Overview of the Hosting Controller
    2. 54.2 A UIHostingController Example Project
    3. 54.3 Adding the SwiftUI Content View
    4. 54.4 Preparing the Storyboard
    5. 54.5 Adding a Hosting Controller
    6. 54.6 Configuring the Segue Action
    7. 54.7 Embedding a Container View
    8. 54.8 Embedding SwiftUI in Code
    9. 54.9 Summary
  55. 55. Preparing and Submitting an iOS 14 Application to the App Store
    1. 55.1 Verifying the iOS Distribution Certificate
    2. 55.2 Adding App Icons
    3. 55.3 Assign the Project to a Team
    4. 55.4 Archiving the Application for Distribution
    5. 55.5 Configuring the Application in App Store Connect
    6. 55.6 Validating and Submitting the Application
    7. 55.7 Configuring and Submitting the App for Review
  56. Index
3.145.173.112