目錄(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 your code
- 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
推薦閱讀
- Spark快速大數據分析(第2版)
- Mastering Ninject for Dependency Injection
- Neural Network Programming with TensorFlow
- 區塊鏈:看得見的信任
- WS-BPEL 2.0 Beginner's Guide
- Scratch 3.0 藝術進階
- Python金融數據分析(原書第2版)
- 深入淺出Greenplum分布式數據庫:原理、架構和代碼分析
- 數據庫原理與應用
- Hadoop大數據開發案例教程與項目實戰(在線實驗+在線自測)
- Artificial Intelligence for Big Data
- Nagios Core Administrators Cookbook
- 實用數據結構基礎(第四版)
- Hadoop海量數據處理:技術詳解與項目實戰(第2版)
- 全球智庫評價報告(2015)
- 創新求索錄:第二集(精裝版)
- Visual Studio 2010(C#)Web數據庫項目開發
- 大數據SQL優化:原理與實踐
- 算法設計與分析
- 數據結構與算法圖解
- Swift:Developing iOS Applications
- 穿越數據的迷宮:數據管理執行指南
- 劍指大數據:企業級數據倉庫項目實戰(電商版)
- 大數據技術和應用
- 百度統計:網站數據分析實戰
- 云計算和大數據服務:技術架構、運營管理與智能實踐
- 數據科學技術:文本分析和知識圖譜
- 數據可視化分析:Tableau原理與實踐(全彩)
- Learning SciPy for Numerical and Scientific Computing
- 網站數據分析:數據驅動的網站管理、優化和運營