This 6.5 day course introduces students to developing applications for Android using the Kotlin programming language. Students will first learn the Kotlin programming language during a 2-day intensive study. Then students spend 4.5 days learning the fundamental building blocks of Android, as well as common patterns and conventions to help propel their Android development skills forward.
Bootcamp Price (In Person): $5200 - price includes hotel, meals, and a shuttle to and from the hotel.
Bootcamp Price (Online): $3000
In the Atlanta area? Interested in commuting to an in person class? Contact email@example.com to discuss commuting options and discounts.
Developers who want or need to create Android apps using the Kotlin programming language but have little to no experience with Kotlin and little to no experience with Android.
Students should already be familiar with basic programming concepts: variables, statements, functions, arrays, data structures and common programming problems.
Fundamentals of Kotlin, including type system and nullable types, arrays and collections, control flow, and functional programming techniques
How to represent complex data structures with objects, inheritance, and extensions in Kotlin
Java and Kotlin interoperability, including how to port your existing Android application from Java to Kotlin
Construct Android applications using Activities and Fragments
Communicate with other applications
Understand Android’s threading model and access the web
Create custom views and handle raw touch events
Safely perform background tasks even after the user has left your app
Install the latest version of the JDK.
Install IntelliJ Community Edition (for the Kotlin portion of the course).
Install Android Studio.
Once installed, start Android Studio and follow the additional installation instructions. Once you have installed all of the software and SDK components, make sure that you can create and run a new application on an emulator or on a device.
Understand writable & read-only properties, take a look at Kotlin’s type system, and learn about nullable and non-nullable types
Work with control flow statements as assignable expressions
See Kotlin’s scope functions — apply, let, run, with, also, takeIf, and takeUnless — and use them to write more concise and idiomatic Kotlin code
Take a closer look at collections, including destructuring, type checking, smart casting, and type parameter constraints
Use functional programming paradigms to write complex algorithms using just a few operations, including map, flatMap, associate, filter, zip, and fold
Apply object-oriented programming concepts in Kotlin to define your own types
Learn about constructors, preconditions, and initialization requirements for object creation
Inherit and override class behavior using abstract and open classes
Define general sets of behaviors using interfaces
Learn how to use data classes to define types that represent your application’s models
Use Kotlin’s built-in singleton implementation
Learn how to define algebraic data types with enums and sealed classes
See how to define value classes to create more efficient classes that wrap a single property
Understand type variance and generic type parameters
Use extensions to add functionality to a type without modifying the original class
Leverage coroutines to efficiently and safely move work between threads
Understand what an Activity is and how they are used to construct Android apps
Master the activity lifecycle to elegantly respond to device changes
Maintain UI state across rotation and process death
Use the debugger to find and fix bugs
Write unit tests to verify the behavior of your app
Safely communicate across Activities
Explore the differences between versions of Android and use new features while maintaining compatibility with older versions
Use Fragments to create reusable components and to respond elegantly to different types of devices
Display lists of items performantly with the RecyclerView API
Peek behind the scenes at Android’s layout system and understand how to use layout tools such as ConstraintLayout
Customize a dialog to present modal content to the user
Add navigation and menu options to the Toolbar
Use Room to access a database and performantly store application data
Use Kotlin coroutines to efficiently execute background work
Seamlessly communicate with other applications using Android’s intent system
Increase the potential user base of an app by supporting multiple languages and improving the accessibility
Download, parse, and present data from a web service
Learn more about the Toolbar on Android and how to add custom views
Perform background work safely in your application
Display content from a web site in your application
Learn how to create your own custom views when the default widgets just won’t do
Receive and respond to raw touch events
Understand how to increase the delightfulness of an app through animation