Warehouse Stock Clearance Sale

Grab a bargain today!


Sign Up for Fishpond's Best Deals Delivered to You Every Day
Go
Asynchronous Programming ­with Swiftui and Combine
Functional Programming to Build Uis on Apple Platforms

Rating
Format
Paperback, 434 pages
Published
United States, 28 January 2023


Chapter 1: SwiftUI - A new Beginning


  • Why a New UI framework?
  • SwiftUI Principles
    • Declarative vs Imperative
    • State Management
    • Composition over Inheritance
    • Everything is a View
    • UIs are a function of their state
  • A quick tour of SwiftUI
    • Creating a new app
    • Anatomy of a SwiftUI app
    • Two-way tooling
    • Adding your first button
      • Print "hello" to the console
      • Explain live mode (need to turn on debug mode so you can

      see console output while in preview)

      • A brief overview of statement management
    • Use code editor and preview pane to update the "hello
    • world" app to allow the user to give their name

      • TextField, Label, (Button)
      • @State to bind the TextField input
      • Bind Label, so it gets updated automatically
      • Run the app in live preview

      Chapter 2: Getting Started with SwiftUI

      ¿ Building Blocks

      • Views
      • View Modifiers
      • Property Wrappers
      • Simple UI Controls

      ¿ Lists

      ¿ Navigation ¿ Composing UIs from simple UI elements

      • Building a list row
      • Making it reusable
      • extracting parts into separate structs / views
      • using ViewBuilders (properties / functions)

      Chapter 3: SwiftUI Foundation

      • Opaque return types
      • Implicit returns from single-expression functions
      • Function Builders
      • View Builders
      • Multiple Trailing Closures
      • Domain Specific languages
      • Property Wrappers
      • The View Life Cycle

      Chapter 4: State Management

      • Managing State with Property Wrappers ¿ @State

      ¿ @ObservableObject ¿ @ObservedObject ¿ @StateObject ¿ @EnvironmentObject

      • SwiftUI Patterns and State Management
        • Pattern: Drill-Down Navigation
        • Pattern: Input form
        • Pattern: Lookup field
        • Pattern: Local state in a single dialog
      • View Lifecycle
      • See Michael Long's article
      • Maybe even build some sort of introspector?
      • Build my own debugging utilities
      • Chapter 5: Building Input Forms
        • Building simple forms Build a simple form with a couple of simple input fields.
        • Building advanced forms

        ¿ Look-up fields

        ¿ Drill-down

        ¿ In-place editing (e.g. date picker) ¿ Sections

        ¿ Forms and Data Binding / State Management

        ¿ Building a sign-up form

        ¿ Username

        ¿ Password / Repetition ¿ Validation

        ¿ Come up with a non-Combine version for the following rules:

        • Do the passwords match?
        • Password strong enough?
        • Username long enough?
        • Username still available?
        • How to handle state?

        Chapter 6: Functional Reactive Programming and Combine

          • Introduction to Functional Reactive Programming
            • What is it?
            • Why is it so cool / hot?
            • How can it help to make your apps better and more error-free
          • Core Combine Concepts ¿ Publishers
          • ¿ Subscribers

            ¿ Operators

              • Combine Visualised
                • Marble Diagrams
                • Show some Combine operators as Marble Diagrams

                Chapter 7: Combine and SwiftUI

                ¿ Driving UI state ¿ Input validation using Combine

                  • verify that the passwords match
                  • verify username length
                  • verify username is still available
                  • verify password meets password complexity rules
                  • show error messages for the individual error conditions
                  • combine all the above into a single state that drives the enabled

                  state of the sign-up button

                  • Optimise our code
                  • use debounce to throttle the number of calls on our fake backend
                  • ensure UI updates happen on the main thread (use receiveOn)
                • Closure
                  • Combine makes our code more maintainable.
                  • It helps to decouple business logic from our UI
                  • This also makes our code more testable

                  Chapter 8: Testing Combine Code

                    • Writing tests for asynchronous code
                    • Mocking parts of your implementation
                    • Some useful helpers

                    Chapter 9: Advanced SwiftUI UIs

                    ¿ LazyVGrid / LazyHGrid

                    ¿ Outlines

                    Chapter 10: Advanced SwiftUI - Building Reusable UI Components
                      • Keep it lean and mean
                        • Extracting functionality into sub-views
                        • Using ViewBuilders to organise view code within a screen
                      • Creating Container Components
                      • Making your views customisable
                      • Packaging your components using Swift Package Manager
                      • Integrating views and view modifiers with the Xcode library
                      • Chapter 11: Building a Complete App with SwiftUI and Combine

                        • Features of the app
                        • Data Model
                          • OpenLibrary API
                          • Firebase

                          Chapter 12: Displaying a list of books

                            • Building a list cell from simple UI views
                            • Compose a list view
                            • Make your code reusable

                            Chapter 13: Implementing a search screen

                            ¿ Implementing a re-usable search bar

                            • Designing the UI
                            • Data Binding and State Management
                            • Making the view re-usable

                            ¿ Connecting to the OpenLibrary API

                            • Searching book titles
                            • Using Combine to improve working with the API
                            • Debounce
                              • Mapping JSON Data
                              • Error handling
                              • Automatic retries

                              Chapter 14: Drill-Down Navigation and State Management

                              ¿ Implementing a book details / edit screen

                              ¿ Drill-down navigation pattern

                              Chapter 15: Persisting Data in Firestore

                              • What is Firebase?
                              • What is Firestore?
                              • NoSQL

                              ¿ Real-time Sync

                              • Mapping our data model to Firestore
                              • Reading and writing data from / to Firestore
                              • Implementing Combine Publishers for Firestore

                              Chapter 16: App Store Hero Animation

                              • Magic Move
                              • SwiftUI Magic Move Animations
                                • Explain how they work
                                • Transition the current list view to make use of animations
                              • Distribute your code
                              • Appendix A: An Overview of all SwiftUI Views

Show more

Our Price
HK$431
Elsewhere
HK$566.16
Save HK$135.16 (24%)
Ships from UK Estimated delivery date: 22nd May - 29th May from UK
Free Shipping Worldwide

Buy Together
+
Buy Together
HK$630

Product Description


Chapter 1: SwiftUI - A new Beginning


Show more
Product Details
EAN
9781484285718
ISBN
1484285719
Publisher
Other Information
Illustrated
Dimensions
23.4 x 15.6 x 2.4 centimeters (0.37 kg)

Table of Contents

Chapter 1: SwiftUI - A new Beginning.- Chapter 2: Getting Started with SwiftUI.- Chapter 3: SwiftUI Building Blocks.- Chapter 4: State Management.- Chapter 5: Displaying Data in Lists.- Chapter 6: Building Input Forms.- Chapter 7: Getting Started with Combine.- Chapter 8: Driving UI State with Combine- Chapter 9: Networking with Combine.- Chapter 10: Error Handling in Combine.- Chapter 11: Implementing Custom Combine Operators.- Chapter 12: Wrapping existing APIs in Combine (Firebase).- Chapter 13: Combine Schedulers and SwiftUI.- Chapter 14: Getting Started with async-await.- Chapter 15: Using async-await in SwiftUI.- Chapter 16: Bringing it all together - SwiftUI, async-await, and Combine.

About the Author

Peter Friese is a software engineer, author, speaker, and musician with a passion for helping developers build great apps. He works as a Developer Relations Engineer / Developer Advocate on the Firebase team at Google, where he focuses on helping developers build better apps using Firebase on iOS and other Apple platforms.

Peter shares his knowledge and experience through writing on his personal blog, peterfriese.dev, publishing videos on YouTube, speaking at conferences and meet-ups, crafting sample apps and contributing to the Firebase SDKs.

Prior to working at Google, he has held roles as a software engineer, software architect, and principal consultant at companies such as Lufthansa Systems, Gentleware, itemis, and Zühlke.

Show more
Review this Product
Ask a Question About this Product More...
 
Look for similar items by category
Item ships from and is sold by Fishpond World Ltd.

Back to top