Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Circuit 찍먹해보기(부제: Circuit 희망편)

Avatar for easyhooon easyhooon
July 14, 2025
23

Circuit 찍먹해보기(부제: Circuit 희망편)

Avatar for easyhooon

easyhooon

July 14, 2025
Tweet

Transcript

  1. ݾର • Circuitਸ ҕࠗೞѱ ػ ҅ӝ • Circuit੉ۆ? • Circuit

    ੄ ҳઑ ߂ ৘द • Circuit੄ ੢੼ • Circuit Presenter(vs AAC ViewModel) • Circuit Navigation(vs Compose Navigation) • ੿ܻ
  2. Circuit ਸ ҕࠗೞѱ ػ ҅ӝ - 1 Progenitor of Compose੄

    X ੋਊ -> AAC ViewModel ॳ૑݈ۄҊ? -> ঌѷחؘ Ӓۢ ৘दח? -> ҳӖ੄ ࢠ೒ٜ਷ ੹ࠗ AAC ViewModelਸ ࢎਊೞҊ ੓חؘ?
  3. Circuit ਸ ҕࠗೞѱ ػ ҅ӝ - 1 • AAC ViewModelਸ

    ࢎਊೞ૑ ঋח ৘दܳ ߊѼ! -> DroidKaigi conference app ௏٘ܳ ੉೧೧ঠѷ׮. -> https://github.com/DroidKaigi/conference-app-2024 -> https://github.com/takahirom/Rin -> DroidKaigi੄ ࢚కҙܻ ߑध੄ ೨बੋ
 Rin ۄ੉࠳۞ܻо Circuit੄ ৔хਸ ߉ই ٜ݅য૗ -> Circuitਸ ੉೧೧ঠ Droidkaigi ௏٘ܳ ੉೧ೡ ࣻ ੓ѷҳա!
  4. Circuit ਸ ҕࠗೞѱ ػ ҅ӝ - 2 • ஠஠য় ݽ࠽ܻ౭

    ੑࢎ ൞ݎ(਋؀ࢎ೦ ୽઒) • [஠஠য়T~೗ழজ ѐߊӝ] stateҙܻ Mavericks ীࢲ circuitө૑ / if(kakaoAI)2024
  5. Circuit 🔎 Circuit੉ۆ? • Slackীࢲ ѐߊೞҊ ࢎਊ઺ੋ Kotlin & Android

    জ ѐߊਸ ਤೠ ೐ۨ੐ਕ௼(KMP ૑ਗ) • UDF ӝ߈੄ MVI ಁఢਸ Compose੄ ੢੼ਸ ୭؀ೠ ഝਊೞৈ ҳഅೡ ࣻ ੓ب۾ ૑ਗ • Compose-driven architecture?
  6. Screen Presenter৬ UIܳ োѾೞח 
 Key(ध߹੗ ৉ೡ) Presenter UIܳ ਤೠ

    ࠺ૉפझ ۽૒җ Data ҅க р੄ ߸ജ ҅க ৉ೡ, UIীѱ ࢜܂ѱ ࢤ ࢿػ Stateܳ ߈ജ UI ࢎਊ੗ীѱ ࠁৈ૑ח ചݶ, Presenter ীѱ eventSinkܳ ా೧ eventܳ ੹׳
 Circuit + MVI 🔎 Architecture
  7. Circuit ੄ ੢੼ - 1 ӝઓ੄ AAC ViewModel੄ ޙઁ੼ •

    Activity/Fragment & Composable Screenҗ ࢤݺ઱ӝо ׮ܴ • Android ೒ۖಬ ੄ઓࢿ(੉ઁח ইצ٠?)ਵ۽ ੋೠ పझ౟ ௏٘ ੘ࢿ੄ য۰਑ Circuit Presenter -> Circuit Presenter • Composable Screenҗ ࢤݺ઱ӝо ੌ஖ • ࣽࣻ Kotlin ӝ߈ਵ۽ ҳഅغয ੓য, పझ౟ ௏٘ ੘ࢿ ਊ੉
  8. Composable Screenҗ ࢤݺ઱ӝо ੌ஖? Con fi guration Changeо ߊࢤೠ׮ݶ? •

    rememberRetained ೣࣻܳ ా೧ Con fi guration Change۽ ࠗఠ ؘ੉ఠ(࢚క)ܳ ਬ૑ ೡ ࣻ ੓਺ • remember : Compose ӝࠄ ઁҕ ೣࣻ۽, recomposition җ੿ীࢲ чਸ ਬ૑, য ו ఋੑ੉ٚ ੷੢ оמ • rememberRetained : Circuit ীࢲ ઁҕೞח ೣࣻ۽, recomposition, backstack, con fi guration change җ੿ীࢲ чਸ ਬ૑, যו ఋੑ੉ٚ ੷੢ оמ • rememberSaveable : Compose ӝࠄ ઁҕ ೣࣻ۽, recomposition, backstack, con fi guration change, process death ࢚ടীࢲب чਸ ਬ૑,
 primitive ఋੑ੉ա, Parcelable ҳഅ୓ ژח Saverܳ ҳഅೠ ఋੑ݅ ੷੢ оמ
  9. Circuit ੄ ੢੼ - 2 ӝઓ੄ Compose Navigation੄ ޙઁ੼ •

    Uri ৬ э਷ ੋ੗ܳ ੹׳ೡ ٸ, ߹ب੄ ੋ௏٬ җ੿ ೙ਃ • Custom Data Class Typeਸ ੋ੗۽ ੹׳ೡ ٸ, ߹ب੄ Custom NavType ੿੄ ೙ਃ • ز੸ਵ۽ startDestinationਸ ߸҃ೞחؘ য۰਑੉ ੓਺ • ߹ب੄ Route Composable ҳഅ ೙ਃ(ࠁੌ۞ ೒ۨ੉౟) Circuit Navigation -> Circuit Navigation • ਤ৬ э਷ ޙઁо 1ب হ਺
  10. Circuit ੄ ੢੼ - 2 Compose Navigation ࠁੌ۞೒ۨ੉౟ 1
 


    Lectureܳ ੹׳ೞӝ ਤೠ LectureNavType ੿੄
  11. Circuit ੄ ੢੼ - 2 Circuit Navigation ૒ҙ੸ੋ API goTo(),

    pop(), peek() startDestination ߸҃ API ૑ਗ resetRoot()ܳ ాೠ рಞೠ ߸҃

  12. Circuit ੄ ੢੼ - 2 Circuit Navigation Bundle ఋੑਵ۽ ੹׳ೞח

    Ѫ੉ ইפӝী ߹ب੄ NavType ੿੄ ೙ਃ X ੉زೞ۰ח ചݶ੄ ࢤࢿ੗ ౵ۄ޷ఠী
 ؘ੉ఠܳ ੹׳ೞח ߑध
  13. Circuit ੄ ੢੼ - 2 Circuit Navigation ߹ب੄ Bundle ౵य

    җ੿ হ੉, Screen ё୓੄ ౵ۄ޷ఠ۽ ૊ द ੽Ӕ оמ
  14. ✅ ViewModel ؀न Composable ӝ߈ Presenter + UI ۽ ചݶ

    ҳഅ ✅ Circuit੉ ઁҕೞח ъ۱ೞҊ рಞೠ Navigationਸ ࢎਊೞৈ ചݶ ੹ജө૑ ా೤ ҙܻ
 
 ✅ Hilt, Dagger ١ ׮নೠ DI ۄ੉࠳۞ܻ ా೤ ૑ਗ koin਷... Presentation Layerܳ Compose-driven architecture۽ ҳࢿ оמ Circuit ੢੼ ੿ܻ 🗒
  15. ۨಌ۠झ • https://slackhq.github.io/circuit/ • https://velog.io/@mraz3068/series/Circuit • Modern Compose Architecture with

    Circuit by Zac Sweers and Kieran Elliott • https://chrisbanes.me/posts/retaining-beyond-viewmodels/ • https://x.com/JimSproch/status/1561024830786322433