Practical Jetpack Compose (beta)

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.


Join the beta release for a reduced price + access to the first 10 projects, with no additional cost for the remaining projects! Don't want the beta version? We can let you know when the full release is ready!

ebook

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

Included in beta

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

Included in beta

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

Included in beta

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.


inbox
Layout
Material
Animation
Accessibility
Navigation
Large Screen
Testing

Email Inbox

Included in beta

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.


inbox
Layout
Material
Animation
Accessibility
Testing

Video Player

Included in beta

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

Included in beta

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

Included in beta

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

Included in beta

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

Included in beta

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

Included in beta

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.


inbox
Layout
Material
Animation
Accessibility
Custom Layout
Testing

Graphs & Charts

Included in beta

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.


inbox
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

Please note, all available releases are currently for the beta version of the course. The current beta release contains the first 11 projects out of the 12 that will make up the finalised version of the course. This includes the Settings, Authentication, Home, Inbox, Video, Messenger, Music Dashboard, Gallery, Graphs and Calendar projects.

By purchasing the beta you will recieve all future projects at no extra cost

As new projects are shipped, the cost of the beta will increase


Essentials Course (limited time beta price)

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

The current release (beta) gives you access to the first 11 of the 12 projects. By purchasing the beta you will recieve all future projects at no extra cost


Team Pack

$664
  • Team licence ebook course
  • Build 12 Compose Projects
  • Source Code

The current release (beta) gives you access to the first 11 of the 12 projects. By purchasing the beta you will recieve all future projects at no extra cost

Get a free Amazon Voucher representing 10% of the team bundle price if your team purches a bundle from your recommendation. Email contact@compose.academy to get your voucher after purchasing ๐Ÿ’ธ


Video Course

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

Deep Dive Bundle

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

FAQ

If I buy the beta, do I have to pay for future projects?

Nope! Buying the beta will give you complete and free access to the remaining projects in the course. I setup the beta as a way to offer the project at a reduced price and to fund the work I'm doing here.


When will the price go up?

As more of the 12 projects are finished and released, the price will increase closer to the full price outlined in the pricing table. So the sooner you buy the course, the cheaper you'll get the complete course for.


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 beta ebook, can I upgrade to the Deep Dive Bundle?

Yes! Currently the video course is not available, but if you purchase the Essentials (eBook) beta 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 purchased the beta release, when can I expect the finished release?

There is currently no set date for the finalised version, but you can expect it by Summer 2022. The remaining chapters will be released as and when they are finished - which will likely be every 3-4 weeks. I work on this course as a side-project and with life commitments, hard dates arenโ€™t easy to lay out.


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โ€™ve 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!