 Android ?  Jetpack Compose
  


   ?

               UI.        , .

               .





 

 Android ?  Jetpack Compose





       .          XML.     ,          boilerplate .

      XML : , ,    + , Presenter/ViewModel.      .

JetpackCompose    ,      ,    200 .  ,        reusable .

    Android    ,   XML. Google           ,     Jetpack: MVVM, Coroutines, Jetpack Compose, Room, Hilt, Ktor, DataStore, WorkManager, Coil.

     3rdparty     MVVM  Model-View-Model.

   ?

 ,              UI.          .

               .

 

      File  New  Newproject.  EmptyComposeActivity,    , ,  Android   Finish.      .








        [https://inky-belief-259.notion.site/23f6848a200346d3b1b49ad211226b27 (https://inky-belief-259.notion.site/23f6848a200346d3b1b49ad211226b27)].

 

  UI  JetpackCompose   ,   Composable,     ,        UI.

Composable        Composable   .

  MainActivity   , ComposablesetContent -,          .             .

Compose    ,      customXMLView.     package c  ,    Composable ,     .

Preview

 Preview      .      View,  showBackground = true.      build&refresh   Preview,   ,  Preview  .

,  Preview   ,  Composable   -         .

PreviewParameter   ,    mock      .








   provider-    PreviewParameterProvider<T>     . PreviewParameter  provider       ,    .

 ,  provider   ,   ,  Preview  ,      .








 CollectionPreviewParameterProvider    ,    PreviewParameterProvider,       value  Sequence.

 provider     Pair    .   provider     CollectionPreviewParameterProvider,   PreviewParameterProvider.   ,        mock   ,                   .

  Notion,      mock, provider  [https://inky-belief-259.notion.site/Preview-909c458b613f49eabbd7dc67235382e5 (https://inky-belief-259.notion.site/Preview-909c458b613f49eabbd7dc67235382e5)].








 Preview   -    ,    ,         .      .

     Preview  .    group     .          Preview.

  

JetpackCompose       ,     camelcase .   Composable,    ,          .   ,   ,   .,     .

 

   ,   XML,     layout.       .  , JetpackCompose     , , .     ui.theme  Color.   ,        .








  0x,   FF     .

   Shape.  XML           .  JetpackCompose              ,     View.








      ,   : .dp, .sp.

       , background,     . DarkColorPalette       ,     ,   . LightColorPalette     .

     ,  Composable ,      .      .    - setContent       ,   Android-.








 Type    ,   TextStyle    , ,   ..








   

   JetpackCompose    . Composition, Layout, Drawing.

1. Composition:  UI . Compose  Composable      UI.

2. Layout:   UI.     :   .           .

3. Drawing:  . UI-   Canvas,    .

JetpackCompose             .     Composable ,    ,     .

      , ,      .

 1: Composition.

   Composable   -   Composition     .    , recomposer    Composable ,   .  ,          Composable ,     .

    Composition, Compose UI   Layout  Drawing.     ,    , , ,     .








 2: Layout.

 Layout   :   .    - ,   Layout-composable,  MeasureScope.measure  LayoutModifier.     layout,   Modifier.offset {}  ..

        Layout , , Drawing.    , Compose UI    Layout.     Drawing,     .

   ,        .             ,   .      ,            ,     .








 3: Drawing.

        Drawing.   : Canvas, Modifier.drawBehind  Modifier.drawWithContent.        , Compose UI    Drawing.








  .  Compose      ,     ,      .








   .    Image,   offset-    .             offset.   ,    .








     firstVisibleItemScrollOffset  .   , Compose    ,         ,      Box.

       Composition.   .     ,       UI.         ,          composable-,    ,    .

   Composition   ,   ,   ,  ,     .      ,    ,   Layout.

   offset-.     ,    offset.

    ? ,    ,     Layout    ,       ,    firstVisibleItemScrollOffset       Composition. Compose ,   . ,   firstVisibleItemScrollOffset , Compose     Layout  Drawing.

  :               ?   .        Layout   .  firstVisibleItemScrollOffset      , ,      Layout,      Composition.

Layouts

 layout  Jetpack Compose  Box, Row, Column.  Compose    ConstraintLayout.    inlineComposable  .  ,   Composable    


  .








Layouts       -,             ,   .

Box

Box   FrameLayout  XML.      ,    /.








View    Box   .   :        .

Box  4 :

 modifier        ;

 contentAlignment      ,     Alignment.TopStart (     );

 propagateMinConstraints  ,           ,   false;

 content    BoxScope,    ,     -.

Column

Column layout   , LinearLayout  XML








Column  4 :

 modifier        ;

 verticalArrangment     ,     Arrangment.Top;

 horizontalAlignment    ,     Alignment.Start;

 content    ColumnScope,    ,     -;

VerticalArrangment          ,  : Arrangment.Center, Arrangment.Bottom, Arrangment.Top,    ,       layout.

 Arrangment.SpaceAround           ,             ;

 Arrangement.SpaceBetween           ,          ;




  .


   .

   ,     (https://www.litres.ru/denis-sergeevich-popkov/razrabotka-android-prilozhenii-s-jetpack-compose/)  .

      Visa, MasterCard, Maestro,    ,   ,     ,  PayPal, WebMoney, ., QIWI ,       .


