
Paolo Deshon introduces the Android Jetpack Compose bootcamp, a comprehensive course, teaching declarative UI with Kotlin to build Android apps using Compose, with hands-on challenges and code-along learning.
Navigate the learning path for Kotlin fundamentals and Jetpack Compose, building Android apps with flexible video lessons and optional Kotlin refreshers.
Install Android Studio from Google, accept terms, meet system requirements, and complete setup; create a compose project, install missing SDK components, and configure an AVD to run on an emulator.
Create a Kotlin module inside an Android project as a Java or Kotlin library, and run it separately with Gradle to print hello world.
Explore Kotlin playground as a free online editor for writing Kotlin code, learning variables and string interpolation, and running samples like hello world and named values.
Install Android Studio, the official Android ide, from developer.android.com, choose the correct Mac or Intel option, then create a Kotlin project with an empty compose activity and configure an emulator.
Create a Kotlin module inside an Android Studio Compose project, add a Kotlin file with a main function, print Hello Kotlin, and run to see the output.
Explore Kotlin playground, an online code editor, to write and run Kotlin code quickly, learn differences between print and print line, set variables, and share runnable snippets with others.
Build a simple Android app called business card in Android Jetpack Compose that shows a profile picture, name, profession, and Twitter handle, with a portfolio button that reveals projects.
Learn how to set up a new Android Studio project and build a first compose biz card ui using surface, modifiers, and previews in Android Jetpack Compose.
Create an elevated card inside a surface with the card composable, and tailor width, height, elevation, shape, color, and padding using modifiers in Android Jetpack Compose.
Add a profile image from the drawable folder into a circular surface using Jetpack Compose, applying size, padding, border, elevation, material theme colors, and a content description.
Learn to use a column to arrange the user interface vertically, apply modifiers and vertical arrangement for alignment, insert a divider, and refactor image profile into a reusable composable.
Engage in a quick exercise to hover over the divider and use modifiers to change its color, thickness, and start indent.
Explore divider parameters in jetpack compose by tweaking thickness and start indent to observe layout effects, then revert to default. Center the text 'Miles P' and change its color.
Add a card info section for the developer by composing a vertical column with padding and material typography. Refactor into a create info composable and add a portfolio button.
Add the portfolio button in Android Jetpack Compose, wire onClick to log a message, and apply Material typography to preview the ripple effect and a forthcoming dummy data portfolio list.
Create a content composable with a bordered rounded surface and box layout to host a portfolio composable that accepts a list of strings and can be previewed.
Create a scrollable list with lazy column in compose to display portfolio items and toggle the content on button click using remember and mutableStateOf.
Master building a reusable bizcard app card in Jetpack Compose by crafting a row with a circular profile image, text, and description using modifiers, surfaces, padding, and typography.
Explore what's next by revisiting the learning path, advancing from Kotlin fundamentals to Jetpack Compose concepts, and choosing optional sections based on your Kotlin proficiency.
Learn fundamentals of Kotlin and start programming, with guidance for both beginners and experienced learners, and explore sections to find the most helpful lectures.
Explore Kotlin variables by using var for mutable data and val for immutable values, and learn string interpolation with the dollar sign in Kotlin projects inside Android Studio.
Explore how to initialize variables in Kotlin with val and var, using type annotations or type inference, and understand why a variable must be initialized before use.
Learn how to declare variables without immediate initialization and assign later, with explicit types using val vs var, and string and int types, including interpolation.
Learn how Kotlin basic types map to memory sizes, from byte to long, and how bit limits guide choosing the right int type for your Android apps.
Explore how Kotlin uses the long type as a 64-bit integer, how the L suffix marks long values, and why a value exceeding the 32-bit max becomes long.
Learn about floating point types, including 32-bit floats and 64-bit doubles, and why doubles offer more precision for decimal numbers in Kotlin.
Discover Kotlin arithmetic operators, including addition, subtraction, multiplication, division, and modulo, and learn why integer division yields integers while doubles provide precision.
Master Kotlin basics by declaring variables with val and var and using explicit types. Explore integer and floating point types, learn common operators, and implement conditional branching to drive decisions.
Explore how branching and loops drive data-driven decisions in programs, using true/false conditions, if, else, else if, and while blocks to repeat tasks until conditions are met in Kotlin.
Explore branching in Kotlin with if statements and the when expression, comparing amount to 1000 and printing outcomes like wealthy or getting by.
Use the when expression to check if a value lies in a range, printing messages such as the amount is between 1 and 100, or outside range.
Explore for loops over a range from 1 to 1000, identifying multiples of three with the modulo operator, using if statements or a when expression, and printing the counter.
Learn how functions bundle logic into reusable units in Kotlin, using the fun keyword, parentheses, and a curly-brace body to call library functions like print with Hello world.
Create a simple Kotlin function and call it from main. See function syntax, curly braces, and calling behavior with a for loop printing even numbers up to 100.
Learn to make a function accept int parameters instead of hard-coded values, using arguments to pass ranges to calculate and make code dynamic and reusable.
Make the function dynamic by replacing the hard-coded multiple with a parameter, then test with 3 or 11, and plan a variant that accepts strings.
Learn how to use default arguments and named arguments to minimize parameters, skip arguments, and safely override defaults while improving function call clarity.
Explore how functions return values in Kotlin, using an int return type and the return keyword to produce usable results, illustrated by calculating a cat's age and printing versus returning.
Explore returning booleans in Kotlin by building a check age function that uses an int cat age to yield true or false, and apply if statements.
Explore how lambda expressions simplify Kotlin functions, with inferred types and return values, using a sum example and transforming a normal function into a lambda.
Create a lambda expression to calculate cat age by multiplying the input age by seven using arrow syntax, with val and Int types. Call it with 3 to produce 21.
Master single-parameter lambda simplifications in Android jetpack Compose using the it keyword, with implicit value access and arithmetic like multiplying by seven to produce a result.
Demonstrates creating Kotlin lambda expressions that return unit (void) and how to convert a named function to a lambda, including single-string parameter handling and simple print statements.
Master trailing lambda in Kotlin, where a last function parameter can be called outside the parentheses as a lambda. This pattern is used extensively in Android Jetpack Compose.
Explore how collections store multiple items using mutable and immutable lists, with elements and indices, sizes, and operations like add, remove, and looping with for and for each using lambdas.
Learn to manipulate immutable and mutable lists in Kotlin, using get and indexing operator, remove at, and index of element, while checking list size and element positions.
Explore Kotlin collections by comparing lists, sets, and maps; learn immutable and mutable variants, how sets enforce unique elements, and how maps map keys to values, contains checks, and put.
Initialize mutable and immutable lists, using type inference or explicit generics. Show adding elements with a loop and printing results, for strings, integers, and custom objects, with sets and maps.
Learn to create empty Kotlin collections—lists, sets, and maps—with type parameters, and distinguish immutable from mutable options while applying basic control flow like for loops, if statements, and when.
Explore collection filters in Kotlin to create new lists by applying predicates with lambda expressions, including starts with, ends with, length checks, and ignore case options.
Explore mutable and immutable Kotlin collections, including lists, sets, and maps, learn how to initialize and filter data, and reference the Kotlin collection functions cheat sheet for deeper mastery.
Create interacting objects in object oriented programming using a class as a blueprint. Instantiate objects with color and model, and implement drive behavior while mutating with val and var.
Explore Kotlin primary constructors, properties, and passing color and model parameters to instantiate customizable classes, with default values and concise syntax.
See how the init block initializes primary constructor properties, controls initialization order, and distinguishes mutable and immutable fields, using car examples and simple conditional logic.
Explore adding a parameterized function in a Kotlin class using a car example with min speed and max speed, drive the car objects via the primary constructor and init block.
Explore how Kotlin inheritance lets a truck inherit from a car, reuse properties and behaviors, override methods, and use super with an open parent class.
Learn how kotlin interfaces define a common onClick behavior across diverse classes, enabling button, icon button, text view, and game characters to implement a shared click event.
Learn how to create Kotlin extension functions to extend existing classes, such as strings, by appending text and returning results, using the receiver this and one-line implementations.
Create a Kotlin extension function to remove the first and last character of a string using substring and length, then call it as if it came with Kotlin.
Explore Kotlin data classes that hold data with a simple primary constructor, auto-generating copy, equals, hashCode, and toString, and use them in lists and for-each operations.
Explore object oriented programming basics with classes, objects, and inheritance in Kotlin. Learn to design interfaces, use extension functions, and apply data classes for simple data holders.
**This course is tailored for beginners and Advanced Developers**
Android Jetpack Compose is a new way of building modern android apps in android app development.
The Software Development industry is moving away from the Imperative Approach of building apps - where developers were required to write a lot of boilerplate code, navigate through inconsistent APIs, and hard to maintain code to build simple mobile apps.
With Jetpack Compose, building Native UI for the Android platform is more effortless, concise, consistent, and less code.
Jetpack Compose is the new modern toolkit that gives Android developers a simplified and accelerated way to build Native UIs on Android - with this toolkit; developers can build android apps with less code using Kotlin!
Jetpack Compose brings a paradigm shift in Android development - we now describe the UI instead of specifying the steps to build a UI. With Jetpack Compose, development time is accelerated as we can iterate fast with live previews while developing User Interfaces in Android Studio.
With Jetpack, creating slick animations and using Material Design is a breeze because the toolkit is powered by the Android platform APIs and intuitive Kotlin APIs.
This course brings you up-to-speed developing apps with Jetpack Compose and Kotlin.
You’ll be learning from the basics of what a Composable function is to how to handle state in Compose, and how to build full-fledge android apps that leverage the full power of Jetpack Compose and Kotlin.
Who is this ideal student for this course?
This course is tailored for beginners and Advanced Developers
I created this course with you in mind - whether you’re a beginner or a more experienced developer, you’ll find the course materials equally valuable - it’s a deep-dive course where I take you from the very beginning to building a complex Jetpack Compose App.
I’ve structured the course so that even if you’ve never programmed in Kotlin, you’ll have the opportunity to learn the basics, intermediate and advanced Kotlin concepts before moving on to learning Jetpack Compose.
On the other hand, if you already have a good grasp of Kotlin, you can skip the Kotlin sections altogether and go to the Jetpack Compose sections.
What you’ll learn?
This course is comprehensive, meaning I don’t assume you’ve had a lot of experience developing Android apps in general, so I will take you through all the concepts you need to get started. It’s a comprehensive course packed with a lot of information. Here are a few key concepts you’ll be learning:
What’s Jetpack Compose and Its Advantages over the Imperative way of building Android Apps
Kotlin Programming basics, Intermediate and advanced concepts (Optional - you can skip if you need to)
Core Jetpack Compose concepts: Composable functions, Compose layout widgets and Modifiers
Learn how to customize UI elements in Compose
Understand how Jetpack Compose handles State - Recomposition and State Hoisting
Understand how to construct a Native UI for Android devices using Composable functions that are stateless
Understand how MutableState, and Flow work with Composable Functions
Master how to build 8 Jetpack compose apps that range from simple to complex (Tip Calculator, Movie App, Note App, Trivia App, Weather Forecast App, and so much more)
Build a lot of apps while learning Jetpack Compose (of course!)
Learn how to structure and build Compose apps with Clean Architecture, MVVM, ViewModel, Coroutines
Build Compose apps that use the Android ROOM database
Learn how to Parse JSON data from APIs using Retrofit
Learn how to use Jetpack Navigation Components to help create a navigation structure in your Compose app
Learn how to use Dependency Injection with Hilt and Dagger to build easy-to-refactor and test apps
Build a capstone app (A.Reader) that uses Firebase Firestore to Authenticate Users and save books
And so much more (check out the curriculum to get the complete list of topics!)
By the end of the course, you’ll have learned everything you need to know about Kotlin and Jetpack Compose to build complex Native UIs and Android apps with Jetpack Compose.
Try It Risk-Free
This course comes with a 30-day money-back guarantee - if you find out it’s not for you, you can get your money back, no questions asked!
Go ahead and enroll today and start building Modern Android apps with Jetpack Compose - the new way of building fast, concise, and powerful Android Native UI.
I can’t wait to see you in the course!
See you soon.
Paulo :)