Skip to content

MohiFayden/compose-practice-core

Repository files navigation

Android Jetpack Compose Core

01. Introduction to Jetpack Compose

  • What is Jetpack Compose?
  • Differences between Jetpack Compose and XML-based UI.

02. Basic Composable Functions

  • Understanding @Composable functions.
  • How to define and use Composable functions.
  • Previewing composables with @Preview.

03. Layout in Jetpack Compose

  • Basic layout structures: Column, Row, Box, ConstraintLayout.
  • Advanced layouts: LazyColumn, LazyRow, LazyVerticalGrid, LazyHorizontalGrid, FlowRow, FlowColumn.

04. Modifier

  • Basic: Padding, Alignment, Size, Background, FillMaxWidth/FillMaxHeight, Spacer
  • Intermediate: Clickable, Border, Clip, Offset, Shadow
  • Advanced: GraphicsLayer, Rotate, Scale, ZIndex, AspectRatio

05. State in Jetpack Compose

  • State management with remember and mutableStateOf.
  • Unidirectional data flow.
  • rememberSaveable and surviving configuration changes.

06. Recomposition and Optimization

  • How recomposition works.
  • Controlling recomposition and avoiding unnecessary UI updates.
  • Key best practices to ensure efficient recomposition.

07. UI Components

  • Text, Image, Icons, Scaffold, and more in Compose.
  • Handling input fields: TextField, Button, Checkbox, Slider, etc.
  • Animations: basic animations, transitions, and gestures.

08. Side Effects in Jetpack Compose

  • Using LaunchedEffect, SideEffect, DisposableEffect.
  • Side-effect handling and lifecycle-aware composables.

09. Jetpack Compose and ViewModel Integration

  • Composing with ViewModel.
  • Using viewModel() in Jetpack Compose.
  • State and events between ViewModel and Composables.

10. Handling Lists and Performance

  • Using LazyColumn, LazyRow for large data sets.
  • Customizing list items, separators, and handling user interactions.
  • Understanding and optimizing scrolling performance.

In progress...

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages