Book Image

Learn Spring for Android Application Development

By : S. M. Mohi Us Sunnat, Igor Kucherenko
Book Image

Learn Spring for Android Application Development

By: S. M. Mohi Us Sunnat, Igor Kucherenko

Overview of this book

As the new official language for Android, Kotlin is attracting new as well as existing Android developers. As most developers are still working with Java and want to switch to Kotlin, they find a combination of these two appealing. This book addresses this interest by bringing together Spring, a widely used Java SE framework for building enterprise-grade applications, and Kotlin. Learn Spring for Android Application Development will guide you in leveraging some of the powerful modules of the Spring Framework to build lightweight and robust Android apps using Kotlin. You will work with various modules, such as Spring AOP, Dependency Injection, and Inversion of Control, to develop applications with better dependency management. You’ll also explore other modules of the Spring Framework, such as Spring MVC, Spring Boot, and Spring Security. Each chapter has practice exercises at the end for you to assess your learning. By the end of the book, you will be fully equipped to develop Android applications with Spring technologies.
Table of Contents (13 chapters)

Sequential operations

One of the most important benefits of the coroutines approach is a guarantee that functions are invoked in the same order in which they are written. The order of the operations is a very important nuance when we execute concurrent code in a multithreaded environment.

Let's imagine that we have to load a user's details, using the following function:

suspend fun loadUserDetails(): User {
delay(3000)
return User(0, "avatar")
}

The loadUserDetails function invokes the delay function from the coroutines-core library and returns an instance of the User class. The delay function suspends the invocation of the current coroutine. When a user is ready, we have to pass a value of the avatar property to the loadImage function:

suspend fun loadImage(avatar: String): Image {
delay(3000)
return Image()
}

The loadImage function also invokes...