Skip to content

πŸš€πŸ§¨πŸ“ Series of Tutorials to learn about Jetpack Compose, Material Widgets, State, Animation, and Navigation.

Notifications You must be signed in to change notification settings

xieren58/Jetpack-Compose-Tutorials

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Jetpack Compose Tutorials and Playground

πŸ€“ Overview

Series of Tutorials to learn about Jetpack Compose, Material Widgets, State, Animation, and Navigation. Easy to search in code and in app. Each chapter module contains it's own content in code. SearchBar can be used to search with a tag or description available for each tutorial.

Recommended section is under constructions for now, when finished it will get recommended tags using previous searches using a database, domain with ViewModel.




Tutorial Preview

1-1 Column, Row, Box, Modifiers


Create Row that adds elements in horizontal order, and Column that adds elements in vertical order.

β€’ Column
β€’ Row
β€’ Box
β€’ Modifier

1-2 Surface, Shape, Clickable


Create and modify Surface to draw background for Composables, add click action to any composable. Set weight or offset modifiers.

β€’ Surface
β€’ Shape
β€’ Clickable

Material Widgets

Tutorial Preview

2-1 Text


Create Text component with different properties such as color, background, font weight, family, style, spacing and others

β€’ Text
β€’ Row
β€’ FontStyle
β€’ Annotated String Hyperlink

2-2 Button, IconButton, FAB, Chip


Create button with text and/or with image, Floating Action Button or Chips. Modify properties of buttons including color, text, and click actions.

β€’ Button
β€’ IconButton
β€’ FloatingActionButton
β€’ Chip

2-3 TextField


Create TextField component with regular style or outlined. Set error, colors, state, icons, and IME actions.

β€’ TextField
β€’ OutlinedTextField
β€’ IME
β€’ Phone format VisualTransformation
β€’ Regex

2-4 Image


Create Image with image, vector resource or with Painter, set image and Content scales to fit, expand or shrink image. Change shape of Image or apply ColorFilter and PorterDuff modes.

β€’ Image
β€’ Canvas
β€’ Drawable
β€’ Bitmap

2-5 LazyColumn/Row/VerticalGrid


Vertical, horizontal grid lists with LazyColumn, LazyRow and LazyVerticalGrid. Use contentPadding set paddings for lists, verticalArrangement or horizontalArrangement for padding between items, rememberLazyListState to manually scroll.

β€’ LazyColumn(Vertical RecyclerView)
β€’ LazyRow(Horizontal RecyclerView
β€’ LazyVerticalGrid(GridLayout)
β€’ StickyHeaders

2-6 TopAppbar & Tab


TopAppbar with actions, overflow menus. Tabs with text only, image only and image+text with different background, divider, and indicators.

β€’ TopAppBar
β€’ Overflow menu
β€’ TabRow and Tab
β€’ Tab Indicator, Divider

2-7 BottomNavigation


Bottom navigation bars allow movement between primary destinations in an app. BottomNavigation should contain multiple BottomNavigationItems, each representing a singular destination.

β€’ BottomNavigation
β€’ BottomNavigationItem

2-8 BottomAppBar


A bottom app bar displays navigation and key actions at the bottom of screens.

β€’ BottomAppBar
β€’ Scaffold

2-9-1 Side Navigation


A backdrop appears behind all other surfaces in an app, displaying contextual and actionable content.

β€’ Scaffold
β€’ Side Navigation
β€’ DrawerState

2-9-2 ModalDrawer


Modal navigation drawers block interaction with the rest of an app’s content with a scrim. They are elevated above most of the app’s UI and don’t affect the screen’s layout grid.

β€’ ModalDrawer
β€’ DrawerState
β€’ Scaffold

2-10-1 BottomSheet


Create bottom sheet using BottomSheetScaffold and rememberBottomSheetScaffoldState, create modal bottom sheets.

β€’ BottomSheetScaffold
β€’ BottomSheetState
β€’ ModalBottomSheetLayout

2-10-4 BottomDrawer


BottomDrawer with BottomAppBar.

β€’ BottomDrawer
β€’ BottomAppBar
β€’ Scaffold

2-10-5 BackdropScaffold


Material Design backdrop. This component provides an API to put together several material components to construct your screen. For a similar component which implements the basic material design layout strategy with app bars, floating action buttons and navigation drawers, use the standard Scaffold. For similar component that uses a bottom sheet as the centerpiece of the screen, use BottomSheetScaffold.

2-11 Snackbar, Progress, Selection


Create Snackbars with various layouts and styling, Checkboxes with selectable text, tri state checkbox, grouped radio buttons and sliders.

β€’ SnackBar
β€’ ProgressIndicator
β€’ Checkbox
β€’ TriStateCheckbox
β€’ Switch
β€’ RadioButton
β€’ Slider
β€’ RangeSlider

2-12 Dialog, AlertDialog


Create Dialog, and AlertDialog with standard and custom layouts. Implement on dismiss logic and get result when dialog is closed.

β€’ AlertDialog
β€’ Dialog
β€’ DialogProperties

Layout

Tutorial Preview

3-1 Custom Modifier


Create custom layout using using layout, Measurable, Constraint, Placeable.

β€’ Custom Modifier
β€’ Measurable
β€’ Constraint
β€’ Placeable

3-2-1 Custom Layout


Create custom layout using using MeasurePolicy and use intrinsic dimensions.

β€’ Custom Layout
β€’ Measurable
β€’ Constraint
β€’ Placeable

3-3-1 Scope&ParenDataModifier


Add custom modifiers to Composable inside a custom layout using it's scope.

β€’ Custom Layout
β€’ Scope
β€’ ParentDataModifier
β€’ Measurable
β€’ Constraint
β€’ Placeable

3-4 BoxWithConstraints


BoxWithConstraints is a composable that defines its own content according to the available space, based on the incoming constraints or the current LayoutDirection.

β€’ BoxWithConstraints
β€’ Constraint

3-6 Custom Chat Layouts


Custom layout like whatsapp chat layout that moves time and message read status layout right or bottom based on message width.

β€’ Custom Layout
β€’ Measurable
β€’ Constraint
β€’ Placeable

About

πŸš€πŸ§¨πŸ“ Series of Tutorials to learn about Jetpack Compose, Material Widgets, State, Animation, and Navigation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 100.0%