Our Kotlin training course will focus on teaching Kotlin from beginner to an intermediate/advanced level.
Typically Kotlin is used for Development of Android Apps or Backend applications with Java.
This course will help delegates understand the pure Kotlin Language and Best practices for using it in anger. Delegates can choose to keep Labs as "vanilla" Kotlin, or to apply to Android or Java development.
In this course we will focus on practical Kotlin development. We will briefly go over the Kotlin language in the ways it is equivalent to Java. We will spend a bit of time introducing concepts that Kotlin provides that are not found in Java.
Following that, we will begin to learn Kotlin development by creating an Android application using all of the modern libraries and technologies that are necessary for a successful commercial application.
We will set up a strong foundation by putting in place an MVP architecture that is both flexible and scalable. We will use reactive programming (RxAndroid) to achieve the network communication on background threads. Interactions between the View and the Presenter will be done via RxBinding methods to further decouple the Presenter. Finally, we will be implementing unit testing for our presenters, as well as UI testing.
This will allow us to build an application that is scalable, and that allows for Continuous Integration and Continuous Delivery to be set up.
In addition to that, this methodology of development allows for large team collaboration using Git and a versioning system (GitHub). It will allow us to be adaptable and flexible and permit using Agile development methodologies like Scrum or Kanban.
Objects and variables
Nullability and smart casting
Composite data types
Classes and properties, interfaces, abstract classes, enums, overriding methods and properties
Primary constructors and initialization blocks
Object declarations and companion objects
Default arguments and named argument syntax
Top-level functions and properties
Simpler lambda notation
Lambda functions under the hood
Last lambda in argument convention
Java Single Abstract Method lambda interface and usage of them in Java methods
Function type with receiver, function literal with receiver, referencing extension functions
Predefined functional literals with a receiver
Making your own DSL
Basic collection processing functions
Making collection flat and grouping it
Converting between collection types
Functions used to process texts and to accumulate collections to texts
Covariance, contravariance, and invariance
Common issues with bounded wildcards in Java
Declaration-site variance, use-site variance, and type projection
Declaring single and multiple constraints on types
Referencing types, classes, functions, and properties
Kotlin references vs Java references
Structure and types of references
Guidelines for mixed language codebases
Calling Java libraries from Kotlin
Preparing Kotlin to be used from Java
Annotations to work with Java annotation processing libraries
See why people choose JBI
06/08/2018: Kotlin develops quickly! Last year brought us many changes and possibilities. Both in the community and in the language. Let’s summarize them....
31/07/2018: Example programmes delivered: Professional Scrum Master PSM I Agile and Scrum These are 2 day courses which focus on understanding the agile/scrum...
10/12/2018: Natural Language Processing is right at the cutting-edge of Artificial Intelligence, and the handling of data is critical to its success. Computers,...
03/12/2018: Deep Learning and Machine Learning – some practical applications Machine Learning and its Deep Learning subset are evolving rapidly, and getting...
16/11/2018: Data Analytics – the process of analysing data sets – enables organisations to make better-informed decisions. It’s a key focus in many businesses...
Bring a JBI course to your office
and train a whole team onsite
0800 028 6400 or request quote
Get in touch
0800 028 6400
Excellent feedback, consistently !
"great tips help reduce build times"
"we got access to exclusive content"
"Short course meant less time off"
"what an inspiring trainer !"
"colleagues at 2 sites joined via web"
"I passed my exam the next day"