Skip to content

Latest commit

Β 

History

History
112 lines (94 loc) Β· 5.39 KB

File metadata and controls

112 lines (94 loc) Β· 5.39 KB

npm version npm npm licence


App For Iwaki

🍎 Project Log

  • 4 April 2025, create documentation about setup android development wihtout android studio in kotlin multiplatform
  • 19 Agustus 2025, create poc kotlin test, sideeffect, lifecycle, kotlin flow test, flow appstate.
  • 24 Desember 2025, learning state management and data fetching in kotlin (especially for android development with compose)
    • StateFlow is analogous to zustand in typescript world, we can create centralized state with this without need external lib
    • Flow is analogous to react-query in typescript world, we can do fetching like with this library
    • var state by remember {mutableStateOf("")}, learn how to read that, to work with by keyword we need Delegate either function delegate or class delegate, and remember is not a delegate, instead remember is function that require lambda argument that return a state MutableState, MutableState is real delegate that will be executed by by keyword, to meke MutableState we can use function mutableStateOf(args).
    • try to learn this to understand more about StateFlow and Flow https://github.com/android/compose-samples/tree/main/JetNews
    • TODO try to clone JetNews, build and run it on real physical device

πŸš€ Useful Note

β”œβ”€β”€ Architecture
β”‚   β”œβ”€β”€ Lifecycle (Manages activity/fragment lifecycle)
β”‚   β”œβ”€β”€ LiveData (Observable data holder)
β”‚   β”œβ”€β”€ ViewModel (Holds UI-related data)
β”‚   β”œβ”€β”€ Room (SQLite object mapping)
β”‚   └── WorkManager (Background work)
β”‚
β”œβ”€β”€ UI
β”‚   β”œβ”€β”€ Jetpack Compose (Declarative UI)
β”‚   β”‚   β”œβ”€β”€ UI Toolkit (Layout, Material components)
β”‚   β”‚   β”œβ”€β”€ Animation (Motion and transitions)
β”‚   β”‚   └── Tooling (Preview, Debugging)
β”‚   β”œβ”€β”€ AppCompat (Backward compatibility)
β”‚   └── Fragment (UI modularity)
β”‚
β”œβ”€β”€ Behavior
β”‚   β”œβ”€β”€ Notifications (Alerts and messaging)
β”‚   β”œβ”€β”€ Permissions (Runtime permissions)
β”‚   └── Sharing (Content sharing between apps)
β”‚
└── Foundation
    β”œβ”€β”€ Android KTX (Kotlin extensions for Android APIs)
    β”œβ”€β”€ App Startup (Initialize components quickly)
    └── Test (JUnit extensions, Espresso, etc.)

Command Note

  • gradle init, generate gradle project
  • gradle project, show subproject and project structure
  • gradle :labor-sever:dependencies, list specific project dependencies
  • : colon is analogous to / slash

KMP Readme

This is a Kotlin Multiplatform project targeting Android, iOS, Web, Desktop.

  • /composeApp is for code that will be shared across your Compose Multiplatform applications. It contains several subfolders:

    • commonMain is for code that’s common for all targets.
    • Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name. For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app, iosMain would be the right folder for such calls.
  • /iosApp contains iOS applications. Even if you’re sharing your UI with Compose Multiplatform, you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project.

Learn more about Kotlin Multiplatform, Compose Multiplatform, Kotlin/Wasm…

We would appreciate your feedback on Compose/Web and Kotlin/Wasm in the public Slack channel #compose-web. If you face any issues, please report them on YouTrack.

You can open the web application by running the :composeApp:wasmJsBrowserDevelopmentRun Gradle task.

🌼 Reference