GitHub - SammyBloom/Jetpack-Compose-Tutorials: 🚀🧨📝 Series of Tutorials to learn about Jetpack Compose, Material Widgets, State, Animation, and Navigation. · GitHub
You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
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.
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.
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.