Reactive Programming in Kotlin.
Learn how to implement Reactive Programming paradigms with Kotlin, and apply them to web programming with Spring Framework 5.0 and in Android Application Development. About This Book Learn how to solve blocking user experience with Reactive Programming and get deep insights into RxKotlin Integrate R...
Saved in:
Online Access: |
Full text (MCPHS users only) |
---|---|
Main Author: | |
Format: | Electronic eBook |
Language: | English |
Published: |
Birmingham :
Packt Publishing,
2017
|
Subjects: | |
Local Note: | ProQuest Ebook Central |
Table of Contents:
- Cover
- Copyright
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Customer Feedback
- Dedication
- Table of Contents
- Preface
- Chapter 1: 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
- Chapter 2: 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
- Chapter 3: 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
- Chapter 4: 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
- Chapter 5: 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
- Chapter 6: 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
- Chapter 7: 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
- Chapter 8: 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
- Chapter 9: Resource Management and Extending RxKotlin
- Resource management
- Creating your own operators
- Composing operators with transformer
- Summary
- Chapter 10: 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
- Chapter 11: 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
- Chapter 12: 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
- Index.