Skip to content

0.24.0

Compare
Choose a tag to compare
@github-actions github-actions released this 09 Jun 16:39
· 48 commits to refs/heads/master since this release
907e04a

Changes

  • Support of Kotlin 1.9.20+ #477, #510, #531, #532, #535, #555, #557, #562, #576, #590, #594, #606, #612, #613, #618, #621, #628, #639 , #646, #650, #703
  • Support of Compose Multiplatform 1.6.0+ #530, #685
  • Gradle Configuration-Cache support #311, #607
  • Adaptation for new Android Gradle Plugin Layout V2 (fix for broken android sourceSets) #642 , #655
  • Adaptation of plugin for Kotlin 2.0 changes #564, #595
  • Gradle plugin was reworked and simplified #474
  • Support of custom resources directory (additional contains support of tasks result, thanks @Burtan) [Readme] #641 , #667
  • Support of SourceSet resources #204, #357
  • Support of Dark/Light themed images (thanks, @lammertw) [Readme] #543, #672 , #676 , #680 , #728
  • Support of WatchOs target (thanks, @FabioCornelli) #648
  • Removed: Usage of moko.parcelize (check how to update for workaround) #678
  • Fixed: Usage of colorResources on iOS when resource was changed #681
  • Fixed: getAssetByFilePath for files without extension (thanks, @luca992) #550
  • Added registerFont in FontResource for Apple (thanks, @darronschall) #598
  • Improve performance of first time usage resources on Apple targets #708
  • Added simply usage of plurals with pluralStringResource for Compose (@darronschall) #679
  • Reworked strings and plurals processing in gradle plugin #462, #673 , #689 , #697 , #698 , #710 , #723
  • Removed unused compose desktop dependency #718
  • Fix custom baseName for apple frameworks in CopyResources tasks #709
  • Fix assets path on Windows #700
  • Fix js tests on CI #669
  • Described in readme about Xcode sandbox usage #643
  • Added control of actool minimal deployment version #619
  • Show error in gradle log if iOS Assets can't compile #610
  • values() function is available for all resources in shared code #545
  • Added recomposition of stringResource when locale changed in Compose #533
  • Optimized painerResource for iOS #526
  • MR will not be generated if no resources in module #418
  • Fixed code completion in XCode with static framework and cocoapods #387
  • Now files and assets resources names contains extension in name (to support same name with different extensions) #350
  • Missed translations will use base locale #118

Breaking changes

  • Minimal: Kotlin 1.9.20+
  • Minimal: Compose Multiplatform: 1.6.0+
  • Resources moved from src/<sourceSet>/resources/MR to src/<sourceSet>/moko-resources
  • FontResources not generates additional object for FontFamily. , MR.fonts.Arial.regular => MR.fonts.arial-regular
  • Parcelable was removed (because K2 not support different actuals for expect interface)
  • Assets and files now contain extension in property name
  • Disable warning notification about static framework moved from plugin configuration to gradle.properties [Readme]

How to update

For migration from 0.23.0 to 0.24.0 you need do this steps:

  • Remove all workaround for compatibility 0.23.0 with kotlin 1.9.x+
  • Remove gradle config resourcesSourceSet - now expect object will be generated in lower source set in hierarchy
  • Change all multiplatformResources values set from = to set like resourcesPackage = "org.example.library" to resourcesPackage.set("org.example.library")
  • Move resources from commonMain/resources/MR to commonMain/moko-resources (inner structure of catalog was saved)
  • Update plugin settings, please check Readme
  • Assets and Files changes:
    Property generation was changed from:
    MR.assets.same_file
    to
    MR.assets.same_file_ext (now include file extension).
    Now property save catalog hierarchy if your file is in:
    commonMain/moko-resources/files/sameFolder/file.txt
    in MR will generated:
    MR.files.sameFolder.file_txt
    In your code need update on usage of new style property

If you use other MOKO library where has moko-resources version less 0.24.0 (or other libs with MOKO), that workaround help you. If you has exception on iOS target like:

...
error: KLIB resolver: Could not find "dev.icerock.moko:parcelize" in ...
...

You need add this in your project:

dependencies {
    iosMainImplementation("dev.icerock.moko:parcelize:0.9.0")
}

That dependency can be removed after all libs will be updated on 0.24.0+.

Thanks

@ExNDY @Pschsch @illarionov @lammertw @FabioCornelli @darronschall @luca992 @martinbonnin @Burtan @shtolik @Syer10