Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Building Applications with Spring 5 and Kotlin
Building Applications with Spring 5 and Kotlin

Building Applications with Spring 5 and Kotlin: Build scalable and reactive applications with Spring combined with the productivity of Kotlin

Arrow left icon
Profile Icon Vasić
Arrow right icon
$12.99 per month
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3 (1 Ratings)
Paperback May 2018 310 pages 1st Edition
eBook
$39.99
Paperback
$48.99
Subscription
Free Trial
Renews at $12.99p/m
Arrow left icon
Profile Icon Vasić
Arrow right icon
$12.99 per month
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3 (1 Ratings)
Paperback May 2018 310 pages 1st Edition
eBook
$39.99
Paperback
$48.99
Subscription
Free Trial
Renews at $12.99p/m
eBook
$39.99
Paperback
$48.99
Subscription
Free Trial
Renews at $12.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $15.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Building Applications with Spring 5 and Kotlin

Chapter 1. Starting Up

Welcome! You are starting a long trip into the unknown: the unknown kingdom of Spring Framework. Luckily, you have the right guide and great companions! You have us! In this book, you will discover what Spring Framework is and how powerful it can be in modern web application development. We will teach you all about workflow with the framework and guide you through a real-world application example. Get ready to learn!

This chapter will cover the following points:

  • Defining your mission
  • Separating code into independent entities
  • Planning your environment
  • Preparing the working environment
  • Setting up a Git repository

What is your mission?


Your mission, as we mentioned, will be making a real-world application. What can be a better learning path than building real things from scratch through to production deployment? Our real-world application example will have a real theme!

We will create a REST application that will represent the application programming interface (API) for other applications. The theme for our application will be simple: management for user Notes and TODOs.

Imagine that there is a real-world mobile application that manages all these Notes and TODOs. That application will need a REST API so that all the data is synchronized to the backend. The story is simple. The user creates a Note or TODO. The user's mobile application then, at some point, does the synchronization. After some time, the user updates the content in it. Again, data is synchronized with the remote backend instance. Then, after a year, the user buys a new device that has a plain mobile application running. Luckily, the mobile application will synchronize with the remote backend instance again and get all the Notes and TODOs the user created.

So, what will this REST API do?

It will expose to the end user API calls for all Create, Read, Update, and Delete (CRUD) operations. The data we create or modify will be stored in the persistence layer. In our case, that will be MySQL database. Using Spring Security, we will create user roles so certain user profiles can do various things, such as creating the other users or modifying the main application content. To make things more interesting, we will create microservices responsible for various tasks.

Before we deploy, we will first test our code with the proper tests. We will also write unit tests. All tests will cover some of the core functionality so that our application is sufficiently stable to be deployed. We will deploy to Apache Tomcat and to Amazon AWS Elastic Beanstalk.

Separating code into independent entities


Before we start with the implementation, we will separate our code into independent entities. Each entity will cover a single responsibility and therefore will be implemented when we cover a certain Spring functionality.

We will start with the main classes that will represent the data we will actually handle: Notes and TODOs. Then we will describe user-related stuff: the users themselves and the roles we plan to assign to them. Later, when we actually implement most of them, we will introduce some new entities to cover additional responsibilities. This will be explained in Chapter 3, Building Your First Spring RESTful Service with Kotlin.

Describing entities

The main entities that we will use and that will hold the data are Notes and TODOs. We can consider each of them as an entry that will be stored and that has common attributes:

  • IDUniversally Unique IDentifier (UUID) String
  • Title: String
  • Message: String
  • Location: String value that represents serialized Location class into JSON.

Here are all the entities that we use:

  • Note: The Note entity will represent Notes in the system with all common attributes.
  • TODO: The TODO entity will represent TODOs in the system with all common attributes and timestamps for a scheduled time.
  • User: The User entity will be completely independent of the main data entities. The user will represent the user and all the attributes that the user of the system can have, including assigned roles. The user will have the following attributes:
    • ID: UUID String
    • Email: String
    • Password: String
    • First name: String
    • Last name: String
    • Roles: String
  • Enabled: Boolean representing whether the user has activated the account or whether it has been activated by the user from a higher user hierarchy
  • Created on: Long representing UTC timestamp when the user was created
  • Updated on: Long representing UTC timestamp when the user was updated

In later stages, we can introduce additional attributes if there is a need. For now, we will stick to the most important ones we just described.

Planning your development


For every project you do, for big and complex projects, and for small ones too, planning is crucial! We will plan our development according to the chapter structure of this book. So, some stuff will be done first and some later. As you have probably realized, user-related functionalities will be provided when we touch on Spring Security. Until then, we will be focused on the main data entities and their relationship with Spring Framework and API clients as well.

Before you get into the deep implementation, it would be wise to plan your work first. As we already did, you should identify all your entities and the relations between them. You must be aware of potential hard connections between them. The best scenario is that each entity is completely independent and not aware of others. In our case, the user entity does not have any awareness of our main data entities, Notes, and TODOs, and vice versa.

Then, if we put all this on paper, we can consider what environments we will have. A common practice is that we have development, staging, and production environments. For bigger projects, sometimes a preproduction environment is also used. In our case, we will have a local development environment, too. The local development environment will be the one we will use for all these exercises. We will use our local working machines running an instance of MySQL and our Spring Framework application.

You must plan how will you deploy the application. For example, an application can run on Apache Tomcat or Amazon AWS. These are not the only options available. Depending on your needs, you will choose a proper deployment platform and deployment scenario. We will discuss this in more detail in Chapter 10, Project Deployment.

Preparing the working environment


Finally, it's time to prepare our working environment. We will prepare all the software needed to develop and run our application. For this process, we will need the following:

  • Git
  • JDK
  • IDE
  • Spring 5
  • Postman

For a proper development machine, you can use any computer having, for example, an i5 processor (or more powerful) with at least 8 GB of RAM. These are the main characteristics. You can do your development on Microsoft Windows, Linux, or macOS. All the development mentioned in this book was done on macOS Sierra (version 10.12.6).

Installing Git

We will use Git as our version control system. To install it, follow the procedure for your OS. We will provide guidance for the following:

  • Microsoft Windows
  • Linux (Debian, Ubuntu, Fedora, and raw source code)
  • macOS

Microsoft Windows

Here are the steps for installing Git on Microsoft Windows:

  1. Download Git for Microsoft Windows from the following location: https://git-for-windows.github.io/.
  2. Start the installer and follow the instructions.
  3. Open the Command Prompt.
  4. Configure Git with the following commands: 
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

macOS

To install Git on macOS, we recommend that you install Xcode with command-line tools from the App Store. Then, open Terminal and verify the Git version:

$ git -version 
git version 2.7.0 (Apple Git-66) 

Linux

Follow the installation steps for your distribution. 

Debian and Ubuntu

The following are the steps to install Git on Debian and Ubuntu:

  1. Open Terminal.
  2. Use the following commands to start the installation:
$ sudo apt-get update 
$ sudo apt-get install git
  1. Verify the installation:
$ git -version
  • The output should be something like the following:
git version 2.9.2
  1. Configure Git with the following commands:
$ git config --global user.name "Your Name" 
$ git config --global user.email "[email protected]"
Fedora

The following are the steps to install Git on Fedora:

  1. Open Terminal.
  2. Depending on your Fedora version, use YUM or DNF to install Git as follows:
$ sudo dnf install git 
//or
$ sudo yum install git
  1. Verify the installation:
$ git -version
  • The output should be something like the following:
git version 2.9.2
  1. Configure Git with the following commands:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

Building Git from the source code

If you prefer to build your stuff from source code, you can do the same with Git.

Debian and Ubuntu

To build from source, you need some dependencies installed:

  1. Open Terminal and install the following dependencies:
$ sudo apt-get update
$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc xmlto docbook2x
  1. Navigate to your preferred directory.
  2. Clone the Git source code as follows:
$ git clone https://git.kernel.org/pub/scm/git/git.git
  1. Build Git as follows:
$ make all doc info prefix=/usr
$ sudo make install install-doc install-html install-info install-man prefix=/usr

Note

We installed Git in the /usr directory. Use a different filesystem location if you prefer.

Fedora

The following are the steps to build from the source code:

  1. As was the case with Debian and Ubuntu, install the dependencies needed to build Git as follows:
$ sudo dnf install curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel asciidoc xmlto docbook2X
  • If you have an older version of Fedora, run the following commands:
$ sudo yum install epel-release
$ sudo yum install curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel asciidoc xmlto docbook2X
  1. Symlink docbook2X to the filename that the Git build expects:
$ sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
  1. Navigate to your preferred directory.
  2. Clone the Git source code as follows:
$git clone https://git.kernel.org/pub/scm/git/git.git
  1. Finally, build Git:
$ make all doc prefix=/usr
$ sudo make install install-doc install-html install-man prefix=/usr

Note

We installed Git in the /usr directory. Use a different filesystem location if you prefer.

Congratulations! You have installed the Git version control system on your machine! You are ready to create repositories that will keep your code. We will do this in Setting up a Git repository section.

Installing JDK

As you already know, we will use Kotlin as our primary development language. However, we need Java installed on our system since Kotlin is executed on JVM. Open the Java JDK home page and chose the proper installation depending on the version of your OS: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.

The following platforms are supported:

  • Linux ARM 32 Hard Float ABI
  • Linux ARM 64 Hard Float ABI
  • Linux x86
  • Linux x86
  • Linux x64
  • Linux x64
  • macOS X
  • Solaris SPARC 64-bit
  • Solaris SPARC 64-bit
  • Solaris x64
  • Solaris x64
  • Windows x86
  • Windows x64

Follow the instructions depending on your OS version.

Microsoft Windows

The following are the steps to install JDK in Microsoft Windows:

  1. Download the proper executable for your version of Microsoft Windows
  2. Execute the downloaded file
  3. Follow the instructions

Linux

Here are the steps to install JDK in Linux:

  1. Download the proper RPM Package Manager (RPM) installation package for your platform.
  2. Open Terminal and install the package:
$ rpm -ihv package_you_downloaded.rpm
  1. Verify you have installed the Java version:
$ java -version

macOS

The following are the steps to install JDK in macOS:

  1. Download the dmg file for your macOS.
  2. Double-click on the dmg file to run it.
  3. Double-click on the PKG icon to launch the installation.
  4. Follow the installation instructions. Enter your system credentials if asked.
  5. Verify that the Java version from Terminal:
$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Congratulations! Java is up and running! The next thing we are going to do is set up our IDE.

Installing the IDE

We chose IntelliJ IDEA as our IDE. Unfortunately, IDEA is not free. It is commercial software. You can buy a license or use IntelliJ IDEA Community Edition, Eclipse, or NetBeans to get it running. Follow the installation instructions for your specific OS.

Microsoft Windows

The following are the steps to install IDEA in Microsoft Windows:

  1. Download IntelliJ IDEA from the JetBrains website: https://www.jetbrains.com/idea/download/#section=windows.
  2. Launch setup by executing the file you downloaded.
  3. Follow the installation instructions.

Linux

The following are the steps to install IDEA in Linux:

  1. Download IntelliJ IDEA from the JetBrains website: https://www.jetbrains.com/idea/download/#section=linux.
  2. Unpack the ideaIC.gz or ideaIU.gz file you have downloaded.
  3. Switch to the directory where you extracted IntelliJ IDEA.
  4. Execute the idea.sh script.

macOS

The following are the steps to install IDEA in macOS:

  1. Download IntelliJ IDEA from the JetBrains website: https://www.jetbrains.com/idea/download/#section=macos.
  2. Double-click the ideaIC.dmg or ideaIU.dmg file you have downloaded to mount the macOS disk image.
  3. Copy IntelliJ IDEA to the Applications folder.

Starting IntelliJ for the first time

You have installed IntelliJ; now it is time for the first run. You will be asked to do some configuring. Don't worry, everything is simple and easy. Just follow the instructions:

  1. Launch IntelliJ and wait until the Complete Installation dialog appears. Choose Don't import settings and continue by clicking on OK.

 

  1. Next, you will be prompted to select the UI theme. You can choose between the default theme and the Darcula theme. We recommend that you use the Darcula theme:
  1. In the next section, disable any plugins that are not required:
  1. In the next step, you are prompted to download additional plugins:
  1. Finally, you can start the project! The setup is complete, as shown in the following screenshot:

Installing Spring 5

Before installing or running Spring 5, we need to install Kotlin, since this is our primary programming language for the project:

  1. Open IntelliJ IDEA and choose Configure | Plugins, as shown in the following screenshot:
  1. In the search field, type Kotlin:
  1. Click on the Install JetBrains plugin... button.

 

  1. From the list that appears, choose Kotlin.
  2. If you do not already have Kotlin installed, you will see a green Install button. Click on it, otherwise click on the Update button, as shown in the following screenshot:
  1. Wait until the installation or update process completes:
  1. When the installation is finished, click on the Restart IntelliJ IDEA button:

If the Restart IntelliJ IDEA button does not restart your IDE, do it yourself manually.

Your IDE is ready for development. It is time to finally set up Spring 5! You can use Spring in the same way as any standard Java library. Simply include the appropriate Spring library files in your classpath. Spring does not require any special tool integration, so you can use any IDE or text editor! As you already know, we will stick to IntelliJ IDEA. You can run and debug Spring applications as you would any other Java application.

Spring can be used through Maven or Gradle. It is up to you to choose which suits you better. We will use Gradle in our development but we will give examples of Maven too.

Maven installation

The recommended way to get started using Spring Framework in your project is with a dependency management system. Take a look at the following Maven example:

<dependencies> 
    <dependency> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-context</artifactId> 
        <version>5.0.0.RC4</version> 
    </dependency> 
</dependencies><repositories> 
    <repository> 
        <id>spring-milestones</id> 
        <name>Spring Milestones</name> 
        <url>https://repo.spring.io/libs-milestone</url> 
        <snapshots> 
            <enabled>false</enabled> 
        </snapshots>      
    </repository>  
</repositories>

Gradle installation

Gradle installation requires less code, as the following snippet shows:

repositories { 
    maven { 
        url 'https://repo.spring.io/libs-milestone' 
    } 
}  
dependencies { 
    compile 'org.springframework:spring-context:5.0.0.RC4' 
 
} 

Installing Postman

To try out our API calls, we will need Postman. Postman is a complete toolchain for API development. Postman is designed from the ground up to support the API developer. It offers us an intuitive user interface to send requests, save responses, add tests, and create workflows.

To get Postman, open https://www.getpostman.com/postman and choose your OS.

Microsoft Windows installation

The following are the steps to install Postman in Microsoft Windows:

  1. Download the setup file
  2. Run the installer
  3. Follow the setup instructions

Linux installation

To simplify the installation process, we recommend that you install it through the Google Chrome store. Search for Postman and install it:

macOS installation

Once you have downloaded the Postman-archived application, extract it, then drag the file to the Applications folder. Double-click on Postman to open the application.

Postman is installed. Run it and take a look at its UI. We will not go into details on how to use it. It is enough to play a bit. Most of the options are self-explanatory. Enjoy!

The following screenshot shows the Postman application running on macOS:

Setting up a Git repository


We have installed the IDE and Spring Framework. It is time to start working on our project. We will develop a REST application API for Notes and TODOs. This is a tool that everybody needs. We will give it a name: Journaler API. Journaler API will be a REST application capable of creating Notes and TODOs with reminders. Many different applications, such as mobile ones, will be synced to our backend instance running this REST application.

The first step in development is initializing a Git repository. Git will be our code versioning system. It is up to you to decide whether you will use GitHub, BitBucket, or something else for your remote Git instance. Create your remote repository and keep its URL ready along with your credentials. So, let's start!

The following are the steps to set up Git:

  1. Go into the directory containing the project.
  2. Execute the following command:
$ git init .
  1. The console output will be something like the following:
Initialized empty Git repository in <directory_you_choose/.git>
  1. We have initialized the repository. Now let's add the first file by executing the following command:
$ vi notes.txt

Note

Here we are using vi editor to edit notes.txt. If you are familiar with some other editor, use that.

  1. Populate notes.txt with some content and save it.
  2. To add all of the relevant files, execute the following commands:
$ git add .
$ git commit -m "Journaler API: First commit"
  1. The console output will be something like the following:
[master (root-commit) 5e98ea4] Journaler API: First commit
 
1 file changed, 1 insertion(+)
 
create mode 100644 notes.txt
  1. Use the remote Git repository URL that you have prepared previously with credentials, and execute the following command:
$ git remote add origin <repository_url>
  • This sets the new remote.
  1. Execute the following command to verify the new remote URL:
$ git remote -v
  1. Finally, push everything we have to remote, by executing the following command:
$ git push -u origin master
  • If you are asked for credentials, enter them and confirm by pressing Enter.

Summary


These are exciting times! We are preparing to dive deep into the depths of Spring Framework. We are practically ready! We have set our environment up! We have installed Git, Java JDK, and IDE, shown you how Spring Framework is installed, and finally installed Postman. We skipped the MySQL installation for now but we will get back to it once we introduce you to Spring data.

Dear reader, we have come to the end of the first chapter. We have learned how to set up and configure the environment for development. In the next chapter, we will make our first real steps into Spring Framework. We will explain what Spring is and why you need it! We will write some code, run it, and trigger our first API call. So, get ready!

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Build a full-fledged application in Spring and Kotlin
  • Architect your application to take a microservice-based approach in the cloud
  • Integrate your application with a variety of Spring components

Description

Kotlin is being used widely by developers because of its light weight, built-in null safety, and functional and reactive programming aspects. Kotlin shares the same pragmatic, innovative and opinionated mindset as Spring, so they work well together. Spring when combined with Kotlin helps you to reach a new level of productivity. This combination has helped developers to create Functional Applications using both the tools together. This book will teach you how to take advantage of these developments and build robust, scalable and reactive applications with ease. In this book, you will begin with an introduction to Spring and its setup with Kotlin. You will then dive into assessing the design considerations of your application. Then you will learn to use Spring (with Spring Boot) along with Kotlin to build a robust backend in a microservice architecture with a REST based collaboration, and leverage Project Reactor in your application. You’ll then learn how to integrate Spring Data and Spring Cloud to manage configurations for database interaction and cloud deployment. You’ll also learn to use Spring Security to beef up security of your application before testing it with the JUnit framework and then deploying it on a cloud platform like AWS.

Who is this book for?

Developers comfortable using Spring who have basic knowledge of Kotlin and want to take their development skills to the next level and build enterprise-grade applications will benefit from this book.

What you will learn

  • * Explore Spring 5 concepts with Kotlin
  • * Learn both dependency injections and complex configurations
  • * Utilize Spring Data, Spring Cloud, and Spring Security in your applications
  • * Create efficient reactive systems with Project Reactor
  • * Write unit tests for your Spring/Kotlin applications
  • * Deploy applications on cloud platforms like AWS

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : May 18, 2018
Length: 310 pages
Edition : 1st
Language : English
ISBN-13 : 9781788394802
Vendor :
Pivotal
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $15.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : May 18, 2018
Length: 310 pages
Edition : 1st
Language : English
ISBN-13 : 9781788394802
Vendor :
Pivotal
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$12.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 6,500+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$129.99 billed annually
Feature tick icon Unlimited access to Packt's library of 6,500+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$179.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 6,500+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 146.97
Hands-On Microservices with  Kotlin
$48.99
Building Applications with Spring 5 and Kotlin
$48.99
Hands-On Design Patterns with Kotlin
$48.99
Total $ 146.97 Stars icon
Visually different images

Table of Contents

10 Chapters
Starting Up Chevron down icon Chevron up icon
Starting with Spring Chevron down icon Chevron up icon
Building Your First Spring RESTful Service with Kotlin Chevron down icon Chevron up icon
Working with Spring Data JPA and MySQL Chevron down icon Chevron up icon
Securing Applications with Spring Security Chevron down icon Chevron up icon
Spring Cloud Chevron down icon Chevron up icon
Using Project Reactor Chevron down icon Chevron up icon
Development Practices Chevron down icon Chevron up icon
Testing Chevron down icon Chevron up icon
Project Deployment Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
(1 Ratings)
5 star 0%
4 star 0%
3 star 100%
2 star 0%
1 star 0%
Nevyn Jul 12, 2018
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
If you are an absolute beginner who requires screenshots, then this book is for you. The only con for you then is that the writer is very brief in explaining things that for a beginner requires a deeper description.As for me (not a beginner). I paged through 15% of the book to get to the end of installing the tools you need. After that the next chapter described what Spring Framework is. MVC was explained on 3 pages, one for each component and even then only a small paragraph each. In all the chapter is like a bullet list of features which would be far too cryptic for a beginner. 20% of the book gets you nowhere.At that point I requested a refund.Why?The book seems like something rushed to be a first to cover the combined topics. The software covered are milestone and release candidates, except for Kotlin which is a major version behind. Why not wait for things to be released and then have an up to date and comprehensive book?I also get the feeling that the author was targeting the topic not out of in-depth knowledge of the components, but more due to it being a hot topic and having some exposure to the components.That's just my opinion.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.