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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!
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!
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 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!
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.
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 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.
Animations can help to engage and delight your users. You'll learn how to create animations using Jetpack Compose during the project development!
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.
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!
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!
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.
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.
If you have issues with your purchase, please email contact@compose.academy
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!
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.
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.
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.
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!
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