Skip to content

Releases: kotlitecture/template-multiplatform-compose

v0.6.0

13 Jul 17:12
Compare
Choose a tag to compare

Changes

  • Added new feature 'SQLite Room'. Integration with Jetpack Room for Kotlin Multiplatform. It targets Mobile and Desktop only and can be configured via Kotli as an alternative to SQLDelight integration.
  • Removed some unused version catalog dependencies to include into the generated structure only what is required.

v0.5.0

30 Jun 18:37
d3f9334
Compare
Choose a tag to compare

Changes

In keeping with the best traditions of the KMP team, everything has been changed:

  • Updated packages structure in app module to follow standard layout with domain/data/presentation structure.
app
├── domain
├── data
│   ├── source
│   └── repository
├── presentation
│   ├── theme
│   ├── navigation
│   ├── loader
│   ├── app
│   └── feature...
├── di
│   ├── data
│   └── presentation
  • Renamed some classes, specific for DI configuration (previously it was ProvidesSomething, now it is SomethingModule.
  • Moved ViewModelFactory of app layer to DI package as it is mostly based on injections from DI.
  • Updated documentation to be aligned with the changes 💀.

v0.4.0

24 Jun 21:19
Compare
Choose a tag to compare

Changes

  • Added new configurable feature In-Memory Cache API (ported from Android template to become Multiplatform). The API is thread-safe and can be utilized as an L1 Cache when managing HTTP requests (but not limited), offering an efficient means to present data without delays, but with the ability to update based on expiration and other conditions.

v0.3.0

22 Jun 11:23
65824f5
Compare
Choose a tag to compare

Changes

  • Added new target - Ktor Server (Backend, #4). The target is optional (so can be included/excluded in wizard as well). When it is included, the extra module will be added to serve common domain logic between client and server (shared/domain).
  • Added new feature SQLDelight Datasource. The integration is preconfigured for all client platforms and includes showcases. It also supports paging using Cash App Paging Library (paging logic and appropriate showcases will be included if Paging Library is added via online tool).
  • Renamed client module composeApp to app. The template itself is based on Compose Multiplatform with 100% logic shared across all targets (iOS, Android, JVM, Web/JS), so no need to write this prefix in client app).
  • Refactored some core components to be more simple to use.
  • Updated documentation, showcases and diagrams.
  • The root README.MD is slightly updated to describe how to get started with the template.

v0.2.1

08 Jun 15:44
b692cfd
Compare
Choose a tag to compare

Changes

  • Updated generated docs
  • Use common XML-based vector icons instead of SVGs with platform specific logic. Now all resources are truly Multiplatform:)

v0.2.0

05 Jun 19:17
719c34c
Compare
Choose a tag to compare

Changes

  • Module core renamed to presentation according to #7
  • Compose Multiplatform updated to 1.6.11
  • Updated diagram with modules responsibilities

v0.1.2

01 Jun 23:38
c6542b9
Compare
Choose a tag to compare

Changes

Fixed issues with the Android target related to the usage of SVG resources from commonMain sources (using SVG resources in this way is not possible by design 💀). Now, all shared SVGs are used on all platforms except Android. For Android, the same SVGs are wrapped as XML vector drawables.

The logic to provide icons is implemented as part of the Design System (design module).

v0.1.1

01 Jun 20:00
d450f4b
Compare
Choose a tag to compare

Changes

  • Gradle updated to 8.8.
  • Ktor updated to 2.3.11.
  • Kotlin Coroutines updated to 1.9.0-RC.
  • Refactored Versions Catalog (versions.toml) to use common naming conventions for plugins block.
  • For Platforms added usage.md with either the command example or a reference on official instruction (for example, iOS target can be run from Android Studio following the link in the usage.md file).
  • Fixed proguard configuration for Android release builds.

v0.1.0

31 May 18:53
Compare
Choose a tag to compare

IMPORTANT

This is a Kotli template. The latest changes will be applied to newly generated projects only (at least now).

Changes

  • Migrated to Kotlin 2.0 and Compose Multiplatform 1.6.10 (all related artifacts updated as well to the latest versions).
  • Module shared/design (Design System) does not have dependency on compose.materialIconsExtended anymore. This dependency lead to unpredictable release js bundle size (when using ./gradlew jsBrowserProductionebpack). Now all required resources included directly as SVG and exposed via AppIcons helper class to use in other modules. Now js bundle has a predictable size and compilation time.
  • method provideViewModel uses either provided ViewModelFactory or LocalViewModelFactory configured with CompositionLocalProvider via ViewModelProvider helper composable. It is useful if you, for example, uses feature-based approach and want to construct module specific view models independently from the main app.
  • DI injected components can be provided now via get() instead of inject().

Thanks!