Asynchronous Programming with SwiftUI and Combine: Functional Programming to Build UIs on Apple Platforms

Author:   Peter Friese
Publisher:   APress
Edition:   1st ed.
ISBN:  

9781484285718


Pages:   434
Publication Date:   14 January 2023
Format:   Paperback
Availability:   Manufactured on demand   Availability explained
We will order this item for you from a manufactured on demand supplier.

Our Price $171.57 Quantity:  
Add to Cart

Share |

Asynchronous Programming with SwiftUI and Combine: Functional Programming to Build UIs on Apple Platforms


Add your own review!

Overview

Full Product Details

Author:   Peter Friese
Publisher:   APress
Imprint:   APress
Edition:   1st ed.
Weight:   0.706kg
ISBN:  

9781484285718


ISBN 10:   1484285719
Pages:   434
Publication Date:   14 January 2023
Audience:   Professional and scholarly ,  Professional & Vocational
Format:   Paperback
Publisher's Status:   Active
Availability:   Manufactured on demand   Availability explained
We will order this item for you from a manufactured on demand supplier.

Table of Contents

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

Reviews

Author Information

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.

Tab Content 6

Author Website:  

Customer Reviews

Recent Reviews

No review item found!

Add your own review!

Countries Available

All regions
Latest Reading Guide

wl

Shopping Cart
Your cart is empty
Shopping cart
Mailing List