/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠMd . ĠM ah mud ul ĠHas an ĠSh oh ag Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* Ġ------------------------------------------------------------------------ Ċ Ġ* Ċ Ġ* ĠProject : ĠWhy ĠNot ĠCompose ! Ċ Ġ* ĠDevelop ed Ġby : Ġ@ Imag in ative Sh oh ag Ċ Ġ* Ċ Ġ* ĠMd . ĠM ah mud ul ĠHas an ĠSh oh ag Ċ Ġ* Ġimag in atives ho h ag @ gmail . com Ċ Ġ* Ċ Ġ* ĠSource : Ġhttps :// github . com / Imag in ative Sh oh ag / Why - Not - Compose Ċ Ġ*/ Ċ Ċ package Ġorg . imag in ativ ew orld . wh yn ot compose . ui . screens . tutorial . index Ċ Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġorg . imag in ativ ew orld . wh yn ot compose . common . compose . theme . Tail wind CSS Color Ċ import Ġorg . imag in ativ ew orld . wh yn ot compose . ui . screens . Tutorial s Screen Ċ Ċ sealed Ġclass ĠTutorial Level ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġcolor : ĠColor , Ċ ) Ġ{ ĊĠĠĠ Ġobject ĠBegin ner Ġ: ĠTutorial Level ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Begin ner ", ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠTail wind CSS Color . Green 5 0 0 , ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġobject ĠInter mediate Ġ: ĠTutorial Level ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Intermediate ", ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠTail wind CSS Color . Yellow 5 0 0 , ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġobject ĠAdvanced Ġ: ĠTutorial Level ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Advanced ", ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠTail wind CSS Color . Red 5 0 0 , ĊĠĠĠ Ġ) Ċ } Ċ Ċ data Ġclass ĠTutorial ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġdescription : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġroute : ĠTutorial s Screen , ĊĠĠĠ Ġval Ġlevel : ĠTutorial Level , Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtutorial List Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Counter ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Simple Ġcounter .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial Counter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Begin ner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Counter Ġwith ĠViewModel ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Control Ġcounter Ġusing Ġ` ViewModel `. ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial Counter With ViewModel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Begin ner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Animated Visibility ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Animate ĠUI Ġusing Ġ` Animated Visibility `. ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial Animated Visibility , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Begin ner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Lot tie ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Ex plor ing Ġ` Lot tie `. ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial Lot tie , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Begin ner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Select ĠImage Ġand ĠC rop Ġfor ĠUpload ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Select Ġimage Ġfrom Ġgallery Ġand Ġcrop Ġimage Ġusing Ġ` u Crop `. ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial Select Image And Crop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Intermediate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Capture ĠImage Ġand ĠC rop Ġfor ĠUpload ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Capture Ġimage Ġfrom Ġdefault Ġcamera Ġapp Ġand Ġcrop Ġimage Ġusing Ġ` u Crop `. ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial Capture Image And Crop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Intermediate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Permission ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Check Ġand Ġhandle Ġpermission Ġfrom ĠCompose ĠUI .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial Permission , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Begin ner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Data ĠFetch Ġand ĠP aging ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Fetch Ġdata Ġfrom Ġserver Ġusing Ġ` Android ĠJet pack ĠP aging ` Ġlibrary .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial Data Fetch And Paging , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Advanced , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" T ic - T ac - To e ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Simple Ġgame Ġwith Ġ( kind Ġof ) Ġsuper vised Ġlearning ĠAI .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial T ic T ac To e , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Advanced , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" One Signal Ġand ĠBroadcast ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Send Ġnotification Ġwith Ġdata Ġusing Ġ` One Signal `, Ġthen Ġsend Ġbroadcast Ġwhen Ġa Ġnew Ġnotification Ġcomes . ĠFinally , Ġreceive Ġthe Ġbroadcast Ġand Ġdata Ġfrom ĠCompose ĠUI .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial One Signal And Broadcast , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Intermediate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTutorial ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Exo Player ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Example Ġusage Ġof Ġ` Exo Player ` Ġwith ĠCompose .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTutorial s Screen . Tutorial Exo Player , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠTutorial Level . Advanced , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ