目錄(198章)
倒序
- 封面
- 版權信息
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Why subscribe?
- Customer Feedback
- Dedication
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Downloading the color images of this book
- Errata
- Piracy
- Questions
- A Short Introduction to Reactive Programming
- What is reactive programming?
- Reasons to adapt functional reactive programming
- Reactive Manifesto
- Reactive Streams standard specifications
- Reactive Frameworks for Kotlin
- Getting started with RxKotlin
- Downloading and setting up RxKotlin
- Comparing the pull mechanism with the RxJava push mechanism
- The ReactiveEvenOdd program
- The ReactiveCalculator project
- Summary
- Functional Programming with Kotlin and RxKotlin
- Introducing functional programming
- Fundamentals of functional programming
- Lambda expressions
- Pure function
- High-order functions
- Inline functions
- Applying functional programming to the ReactiveCalculator class
- Coroutines
- Getting started with coroutines
- Building sequences
- The ReactiveCalculator class with coroutines
- Functional programming – monads
- Single monad
- Summary
- Observables Observers and Subjects
- Observables
- How Observable works
- Understanding the Observable.create method
- Understanding the Observable.from methods
- Understanding the toObservable extension function
- Understanding the Observable.just method
- Other Observable factory methods
- Subscribers - the Observer interface
- Subscribing and disposing
- Hot and Cold Observables
- Cold Observables
- Hot Observables
- Introducing the ConnectableObservable object
- Subjects
- Varieties of Subject
- Understanding AsyncSubject
- Understanding PublishSubject
- Understanding BehaviorSubject
- Understanding ReplaySubject
- Summary
- Introduction to Backpressure and Flowables
- Understanding backpressure
- Flowable
- When to use Flowables and Observables
- When to use Flowables?
- When to use Observables?
- Flowable and Subscriber
- Creating Flowable from scratch
- Creating Flowable from Observable
- BackpressureStrategy.MISSING and onBackpressureXXX()
- Operator onBackpressureBuffer()
- Operator onBackpressureDrop()
- Operator onBackpressureLatest()
- Generating Flowable with backpressure at source
- ConnectableFlowable
- Processor
- Learning Buffer Throttle and Window operators
- The buffer() operator
- The window() operator
- The throttle() operators
- Summary
- Asynchronous Data Operators and Transformations
- Operator
- The filtering/suppressing operators
- The debounce operator
- The distinct operators – distinct distinctUntilChanged
- The elementAt operator
- Filtering emissions - filter operator
- The first and last operator
- The ignoreElements operator
- The transforming operators
- The map operator
- Casting emissions (cast operator)
- The flatMap operator
- The defaultIfEmpty operator
- The switchIfEmpty operator
- The startWith operator
- Sorting emissions (sorted operator)
- Accumulating data – scan operator
- Reducing operators
- Counting emissions (count operator)
- Accumulating emissions – reduce operator
- The collection operators
- The error handling operators
- The utility operators
- Summary
- More on Operators and Error Handling
- Combining producers (Observable/Flowable)
- The startWith operator
- Zipping emissions – zip operator
- The zipWith operator
- The combineLatest operator
- Merging Observables/Flowables – merge operator
- Concatenating producers (Observable/Flowable)
- Ambiguously combining producers
- Grouping
- flatMap concatMap – In details
- When to use flatMap operator
- When to use concatMap operator
- Understanding switchMap operator
- Skipping and taking emissions
- Skipping emissions (skip skipLast skipUntil and skipWhile)
- Take operators (take takeLast takeWhile and takeUntil)
- The error handling operators
- onErrorReturn – return a default value on error
- The onErrorResumeNext operator
- Retrying on error
- An HTTP example
- Summary
- Concurrency and Parallel Processing in RxKotlin with Schedulers
- Introduction to concurrency
- Parallel execution versus concurrency
- What is a scheduler?
- Types of scheduler
- Schedulers.io() - I/O bound scheduler
- Schedulers.computation() - CPU bound schedulers
- Schedulers.newThread()
- Schedulers.single()
- Schedulers.trampoline()
- Schedulers.from
- How to use schedulers – subscribeOn and observeOn operators
- Changing thread on subscription – subscribeOn operator
- Observing on a different thread – observeOn operator
- Summary
- Testing RxKotlin Applications
- Introduction to unit testing and its importance
- Why is unit testing so important?
- Writing JUnit tests in Kotlin
- Testing in RxKotlin
- Blocking subscribers
- Blocking operators
- Getting the first emitted item – blockingFirst()
- Getting the only item from single or maybe - blockingGet
- Getting the last Item - blockingLast
- Getting all emissions as iterable - blockingIterable operator
- Looping through all emissions - blockingForEach
- Introducing TestObserver and TestSubscriber
- Understanding TestScheduler
- Summary
- Resource Management and Extending RxKotlin
- Resource management
- Creating your own operators
- Composing operators with transformer
- Summary
- Introduction to Web Programming with Spring for Kotlin Developers
- Spring history and origin of Spring
- The origin and history of Spring
- Dependency injection and IoC
- Spring Annotation configuration
- Spring – AOP
- Introduction to Spring Boot
- Creating a Rest API with Spring Boot
- Summary
- REST APIs with Spring JPA and Hibernate
- REST API with Spring Boot Hibernate and JPA
- Reactive programming with Reactor
- Add Reactor to your project
- Understanding Flux and Mono
- Summary
- Reactive Kotlin and Android
- Setting up Kotlin in Android Studio
- Getting started with ToDoApp on Android
- Retrofit 2 for API calls
- RxKotlin with Retrofit
- Making Android events reactive
- Introducing RxBinding in Android
- Kotlin extensions
- Summary 更新時間:2021-07-02 22:27:09
推薦閱讀
- 數據庫基礎教程(SQL Server平臺)
- 輕松學大數據挖掘:算法、場景與數據產品
- 數據庫開發實踐案例
- 數據結構與算法(C語言版)
- Spark核心技術與高級應用
- 大數據營銷:如何讓營銷更具吸引力
- Sybase數據庫在UNIX、Windows上的實施和管理
- OracleDBA實戰攻略:運維管理、診斷優化、高可用與最佳實踐
- Apache Kylin權威指南
- 大數據治理與安全:從理論到開源實踐
- Visual FoxPro數據庫技術基礎
- 機器學習:實用案例解析
- 離線和實時大數據開發實戰
- 一本書讀懂大數據
- MySQL性能調優與架構設計
- 基于數據發布的隱私保護模型研究
- ORACLE 11g權威指南
- SQL Server 數據庫教程(2008版)
- Oracle數據庫性能優化的藝術
- 大數據理論與工程實踐
- 大數據:從海量到精準
- Access 2007數據庫應用
- Oracle云計算平臺實戰:IaaS與PaaS應用詳解
- 數據庫原理與實踐(Access版)
- 零基礎輕松學MySQL 5.7
- Spark大數據處理:技術、應用與性能優化
- DB2數據庫管理最佳實踐
- 涂抹Oracle:三思筆記之一步一步學Oracle
- Oracle DBA手記 3:數據庫性能優化與內部原理解析
- 臨危不懼:Oracle 11g數據庫恢復技術