Reactive programming with swift 4 build asynchronous reactive applications with easy-to-maintain and clean code using RxSwift and Xcode 9
Learn how to solve blocking user experience and build event based reactive applications with Swift. About This Book Build fast and scalable apps with RxSwift Apply reactive programming to solve complex problems and build efficient programs with reactive user interfaces Take expressiveness, scalabili...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham, [England] ; Mumbai, [India] :
Packt Publishing
2018.
|
Edición: | First edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009631588606719 |
Tabla de Contenidos:
- Cover
- Title Page
- Copyright and Credits
- Packt Upsell
- Contributors
- Table of Contents
- Preface
- Chapter 1: Migrating from Swift 3 to Swift 4
- What's new in Swift 4?
- Setting up the environment
- What's changed?
- Changes/improvements in Dictionary
- Grouping initializer
- Key-based subscript with default value
- Convert tuples to Dictionary
- Convert arrays to Dictionary
- Resolving duplicates
- Reserving capacity
- Changes/improvements in Strings
- Bid bye to string.characters
- String protocol
- Changed interpretation of grapheme clusters
- Access modifiers
- What's new
- JSON encoding and decoding
- Multiline String literals
- Smart key paths
- One sided ranges
- Pattern matching with one sided ranges.
- swap versus swapAt
- Improved NSNumber
- Directly access unicode scalars of characters
- Migrating to Swift 4
- Preparation before migration
- Swift migration assistant
- Swift 4 migration changes overview
- SDK changes
- Notable special cases
- New String
- Differentiating between single-tuple and multiple-argument function types
- Adding tuple destructuring
- Default parameter values must be public
- After migration
- Known migration issues
- Using Carthage/CocoaPods projects
- Summary
- Chapter 2: FRP Fundamentals, Terminology, and Basic Building Blocks
- Functional reactive programming
- What is functional reactive programming (FRP)?
- Imperative programming
- Functional programming
- Reactive programming
- Basic building blocks
- Event streams
- State
- Side effects
- Immutability
- RxSwift foundation
- Reactive extensions
- Observable
- Subject
- Marble diagrams
- Schedulers
- Railway-oriented programming
- Summary
- Chapter 3: Set up RxSwift and Convert a Basic Login App to its RxSwift Counterpart
- RxSwift in action
- Let's build the environment first.
- Setting up the environment
- RxSwift with CocoaPods
- Installing RxSwift
- Installing RxSwift with Carthage
- Let's get started - The Login page
- Setting up
- Steps to set up
- Functional programming to the rescue
- Summary
- Chapter 4: When to Become Reactive?
- Creating and subscribing to Observables
- Project setup
- Getting started
- Different types of subject
- PublishSubject in action
- BehaviorSubject in action
- ReplaySubject in action
- Variable in action
- Understanding traits and its types
- What are traits?
- Different types of trait
- The single trait
- The completable trait
- The maybe trait
- Summary
- Chapter 5: Filter, Transform, and Simplify
- Working with events using operators
- Environment setup
- Transforming operators
- flatMap and flatMapLatest in action
- Scan, reduce, and buffer
- Scan
- Buffer
- Filtering operators
- The filter operator
- The distinctUntilChanged operator
- The takeWhile operator
- Summary
- Chapter 6: Reduce by Combining and Filtering and Common Trade Offs
- Combining and filtering Observable sequences
- Project setup
- Concatenating and prefixing
- Merging
- Combining elements of different types
- Introducing zip
- Performing side effects
- doOn in action
- Setting the project
- Building the app
- Summary
- Chapter 7: React to UI Events - Start Subscribing
- RxCocoa traits
- Types of RxCocoa traits
- Driver
- ControlProperty
- ControlEvent
- Binding UI elements in practice
- Binding data to UI
- Binding UITableViews
- Configuring cell rows in a TableView
- Selecting a row in TableView
- Binding UICollectionViews
- Summary
- Chapter 8: RxTest and Custom Rx Extensions - Testing with Rx
- Testing in RxSwift
- RxTest
- Testing in practice with HotObservables
- Testing in RxTest with ColdObservables
- RxBlocking
- Testing with RxBlocking.
- Summary
- Chapter 9: Testing Your RxCode - Testing Asynchronous Code
- Tracking down issues - Debugging Rx code
- Debugging with debug
- Debugging with total
- Testing asynchronous code
- Summary
- Chapter 10: Schedule Your Tasks, Don't Queue!
- Queues and schedulers
- Scheduler Singletons
- Specifying a scheduler
- Schedulers in practice
- ConcurrentDispatchQueueScheduler
- SerialDispatchQueueScheduler
- OperationQueueScheduler
- Summary
- Chapter 11: Subscribe to Errors and Save Your App
- Error handling
- The catchErrorJustReturn operator
- The catchError operator
- The retry operator
- onErrorJustReturn
- onErrorDriveWith
- onErrorRecover
- Summary
- Chapter 12: Functional and Reactive App-Architecture
- Design patterns
- Singleton design pattern
- Implementation
- Singleton design pattern - Pros and cons
- Key value coding (KVC)
- KVC - Implementation
- Notifications
- Notifications - Implementation
- Model view controller - MVC
- The model
- The view
- The controller
- MVC implementation
- Summary
- Chapter 13: Finish a Real-World Application
- Networking in RxSwift
- Project setup
- Project implementation
- Fetching and parsing data
- Binding fetched data to View elements
- Build and run
- Some other cool libraries
- Summary
- Other Books You May Enjoy
- Index.