Practical Jetpack Compose

Take a practical approach in learning how to build Android Apps using Jetpack Compose. Build 12 independent projects, interacting with a vast range of essential Compose APIs.


ebook

Testimonials

This content is super well organized and really helped me get up to speed with Jetpack Compose. The practical examples are well designed, and I feel like I understand the important fundamental aspects of the technology pretty well after going through this course.

Mike Wolfson

Lead Android Engineer at Adobe, Google Developer Expert Android

Joe Birch made an amazing job with this book. The contents are clear, practical and the examples are more than good to begin with Compose.

Giovanny Velez

Globant, Android Tech Lead

I was looking for a clear reference book to ensure that my code follows guidelines and good practices. « Practical Jetpack Compose » is the one!

Etienne Vautherin

Orange S.A.

When I've started learning Jetpack Compose, there wasn't a lot of material available. Once this book rolled out, it was a blast of enlightenment on the topic. It helped me fill out all the gaps I missed as a beginner, and get much more advanced as I was progressing through the book. The book is amazingly well written - Joe put a lot of attention on top of his great ability to explain things well. It will definitely help you get started and get comfortable to write apps using Jetpack Compose

Jovche Mitrejchevski

9to5 software

Great book. Starts from the basic and goes to complete apps. I bought it at very earlier stage and the updates was constant adding more content related to jetpack compose and Android Development. Really great stuff to learn this technology. Nice work Joe Birch!

Alexandre Moraes da Silva

MConf

Great book, everything is well explained and the examples are awesome. I really recommend this book to anyone interested in Compose!

Juarez Lopes

Trusted by


What you'll learn

Build UI


Covering a range of APIs from the Jetpack Compose framework, learn how to build User Interfaces for a collection of common UI patterns. The 12 projects cover all the essentials you'll need to building beautiful UIs in your own work.

Manage State


Building UI is one thing, but knowing how to manage your UI state is just as essential! Through the projects, learn how to work with composable state to keep your UI fresh with any data changes. All 12 projects read and write state based on user-input, covering a good ground of state management concepts.

Test UI


Once you can build UI, writing automated tests for your UI means that you'll be able to automatically catch any UI regressions. We'll write tests for all 12 projects, giving you the knowledge to catch any issues when making changes to your code.

What you'll build

Settings


Using a collection of material composables, in this chapter we explore the foundations of building composable UI. We'll be building a settings screen that supports a variety of different interactable application settings.



Layout
Material
Accessibility
Testing

Authentication


Sign-up and Sign-in screens are in almost every application, so in this chapter we recreate this experience using composables. This also gives the oppourtunity to introduce the concepts of state management for Jetpack Compose.



Layout
Material
Accessibility
Testing

Home Dashboard


Many apps have some form of Home screen that is used to navigate around different sections of the app. In this chapter we take a look into the Scaffold composable, along with its contained Drawer section, to build a home screen for an app that can adapt to larger screen devices.



Layout
Material
Animation
Accessibility
Navigation
Large Screen
Testing

Email Inbox


Feeds allow apps to display streams of content to users, and in this chapter we take a look at building one for ourselves. This involves building a minimal list of content using various material composables, allow us to serve a stream of content to users.



Layout
Material
Animation
Accessibility
Testing

Video Player


Media is a big part of many applications. In this chapter we explore how we can can utilise Exoplayer to build a Video PLayer for Jetpack Compose.


inbox
Layout
Material
Animation
Accessibility
Interopability
Testing

Messenger


Messaging is a common use case that many mobile users are familiar with. In this chapter we explore recreating the sending and receiving of messages using composable UI.


Layout
Material
Animation
Accessibility
Testing

Music Dashboard


A single content feed will not be enough for all applications. Apps like the Google Play Store & Spotify display a range of browseable content in a variety of formats. In this chapter we cover building a complex content feed that contains multiple types of feeds (lists, carousels, chips) in a single content area.


Layout
Material
Animation
Accessibility
Testing

Gallery Picker


Image Pickers are quite common in different applications, but before we can display those images for picking from a users device we need permissions to do so. In this chapter we'll explore how to slot the Android permission APIs in alongside compose, allowing us to create an image picker for selecting media items.


Layout
Material
Accessibility
Permissions
Testing

Blog Feed


In some scenarios we might need greator flexibility in the the composable layouts that we're creating and for these situations, the Constraint Layout can be a great tool. In this project we'll build a basic bloc feed, using the constraint layout to compose our UI elements.


Layout
Material
Accessibility
Constraint Layout

Calendar


While not every application utilises a Calendar, it provides a range of interesting problems to solve. In this chapter we explore building daily, weekly and monthly calendar composable that can display a collection of events for those formats.


Layout
Material
Animation
Accessibility
Custom Layout
Testing

Graphs & Charts


Mixing canvas drawing and animations in compose can result in some pretty interesting projects. In this chapter we build a collection of graphs and charts, animating the display of their values using the compose animation APIs.



Canvas
Layout
Animation
Testing

Stories Editor

Coming in the final release

We see Stories features in many apps, so let's build an editor for ourselves! For this project we'll build an editor that allow us to not only draw text and paint on top of an image, but move and scale those elements also!



Canvas
Layout
Material
Animation
Accessibility
Testing
Gestures

API Coverage

UI Composition


So that you can utilise composables, you'll need to learn the foundations of composing UI. Throughout the projects we'll introduce you to and guide you through UI composition, so you'll be confident in building your on compose apps from start to finish!

Laying out Composable UI


When it comes to laying our our composables, there are many different pieces of the layout APIs that provide support for this. Throughout the projects we build, we'll be covering all of the different parts of the layout APIs, so that you can learn how these can be used in to build Android layouts.

Material Design


Material Design plays a crucial part in the look and feel of Android Apps. We'll be using the Compose Material Components package throughout the projects, thoroughly using most of the components that it has to offer!

Architecture


The way in which we build apps is largely affected by the use of Jetpack Compose, and there are ways which can make working with Jetpack Compose much smoother! Throughout the projects we'll pay close attention to how we are architecting each features to learn how Jetpack Compose fits into Android projects.

Accessibility


So that you can sure your UI is accessible for your users, throughout the projects we will cover the different approaches we take to apply accessibility concepts to our composables

Theming


Theming allows you to declare a foundation set of properties that be applied to composabes throughout your project. We'll show you how you can do this within Jetpack Compose.

Animation


Animations can help to engage and delight your users. You'll learn how to create animations using Jetpack Compose during the project development!

Dependency Injection


Using Dependency Injection is a common use case in many projects, and things can look a little different with compose. We'll cover how you can use Hilt with Jetpack Compose and View Models.

Navigation


Within your apps you'll likely want to navigate between different composables. This can be done using the Compose navigation component, which you'll learn how to use thoroughly within the book!

Canvas Drawing


While Compose offers a lot of UI components, there are going to be times where we want to have complete control over the things we are drawing. For this we can create custom drawing and components using the canvas, which we'll learn all about throughout various projects!

Gestures


In all applications, user will be performing gestures against our UI. This works a little differently when it comes to Jetpack Compose but fear not, we cover all different types of gesture interactions in the projects.

Interopability


Using Composables alongside the Android UI Toolkit (and vice versa) is going to be required in a range of scenarios. In the projects we will cover several scenarios on how to approach this and learn how to fully support interopability in Compose projects.

Pricing

If you have issues with your purchase, please email contact@compose.academy


Essentials

$ 179
  • ebook course (ePub, azw3, PDF and HTML)
  • 1800+ pages of tutorial content
  • Build 12 Compose Projects
  • Source Code

Team

$730
  • Team licence ebook course
  • Build 12 Compose Projects
  • Source Code
  • Team Consulting session for 2 hours

Essentials Video

$179
  • Video course
  • 12+ hours of content
  • Build 12 Compose Projects
  • Source Code

Deep Dive

$229
  • Video course
  • ebook course
  • Build 12 Compose Projects
  • Source Code

FAQ

The price is not a affordable for my country, can I get a discount?

Totally! I want this to be accessible to everyone - please send an email to contact@compose.academy, or message us on twitter @composeacademy and we'll send you over a discount code!


If I buy the essentials version, can I upgrade to the Deep Dive Bundle?

Yes! Currently the video course is not available, but if you purchase the Essentials (eBook) version then you'll be eligible for a reduced price Deep Dive Bundle when it becomes available. This will be applied via the use of a discount code to the email you purchased the course with.


Will the course and project be kept up-to-date?

The project will be updated for this version of the course if there are any breaking issues or bugs that occur, but the release of this version of the course is only valid for Jetpack Compose v1. I haven't worked out the plans yet for a version 2 of Jetpack Compose, but that would likely resolve in a second edition of the course.


I'm not happy with my purchase, can I get a refund?

Because this is a digital download, don't currently offer refunds on purchases. If you're unsure about purchasing the product, please check out the preview chapter at the top of this page.


Can I use the code from this course in my own projects?

Both the code from the projects and the code samples in this book comes with the Apache License 2.0. Please be sure to read these licenses if you are going to be taking the code into some of your own projects!


Any more questions?

If you have any further questions on this course, please check the compose.academy website to see if they have already been answered. Otherwise, please feel free to reach out at contact@compose.academy

About the Author

author

Joe Birch


Joe is a Google Developer Expert for Android who has been working with Android for over 10 years. He has been working closely with Jetpack Compose since it's initial announcement and while building Compose.Academy, Joe has gained a lot of knowledge and experience with Jetpack Compose - which he is now excited to be sharing in this course!