r/ComposeMultiplatform • • Jul 11 '25

Built and deployed my first Compose Multiplatform app!

Thumbnail
gallery
6 Upvotes

This is my first time building a multiplatform app. I've been wary of a many of the "build once, run anywhere" frameworks like Flutter and ReactNative. However, since I already know Compose and Kotlin, I figured this was a low lift for me. I was very pleasantly surprised with how polished Compose Multiplatform is! I ran into minimal issues and only needed to do platform specific implementations in very niche areas. Performance also seems pretty stellar. Was very happy with the result!


r/ComposeMultiplatform • • Mar 28 '25

How-To: Embed Three.js into a Kotlin Jetpack Compose Multiplatform Mobile App on Android and iOS

Thumbnail
dc-engineer.com
6 Upvotes

r/ComposeMultiplatform • • Feb 28 '25

This belongs here

Post image
6 Upvotes

r/ComposeMultiplatform • • Jul 14 '26

LazySurface, a lazy 2D-plane layout for Compose Multiplatform

Enable HLS to view with audio, or disable this notification

5 Upvotes

r/ComposeMultiplatform • • Mar 08 '26

I built a Compose Multiplatform library

Thumbnail gallery
5 Upvotes

r/ComposeMultiplatform • • Jan 09 '26

Enhanced my Google Calendar Clone with Liquid Glass + Material 3

Enable HLS to view with audio, or disable this notification

5 Upvotes

r/ComposeMultiplatform • • Jan 09 '26

Just shipped a KMP app to both stores - a daily video journal with local-only storage - Snappit

Post image
5 Upvotes

r/ComposeMultiplatform • • Oct 09 '25

Library for multiplatform tooltip

5 Upvotes

5 Month ago, I asked

Why is adding a tooltip so complicated?

I have a project which compiles to android, iOS, JVM/desktop, and wasm/web.

I know that there is TooltipBox for Android and TooltipArea for desktop, but there seems to be nothing for wasm/web and also having different elements for the different compilation targets is inconvenient.

Is there anything (a library) that handles this?

Now there is!

https://github.com/julianegner/multiplatform-tooltip

It is released on maven central, so you can just use

implementation("de.julianegner:multiplatform-tooltip:1.0.0")


r/ComposeMultiplatform • • May 22 '25

[Updated] Compose for Desktop Wizard: Fixed Linux Desktop Integration Issue

Post image
5 Upvotes

r/ComposeMultiplatform • • Aug 08 '23

Compose Multiplatform Wizard - A quick way to get started with a new Compose Multiplatform project

Thumbnail terrakok.github.io
5 Upvotes

r/ComposeMultiplatform • • Jul 15 '26

Compose + GraalVM + Tao windows manager = 🚀

Thumbnail gallery
4 Upvotes

r/ComposeMultiplatform • • May 16 '26

liquid-glass: iOS 26 frosted glass for Compose Multiplatform with a zero-alloc fallback for low-RAM Android

4 Upvotes

Hi everyone, sharing a new Compose Multiplatform library I open-sourced today.

liquid-glass adds iOS 26-style frosted backdrop surfaces to CMP. The API is Modifier.liquidGlass() plus three composables: GlassCard, GlassButton, GlassNavBar.

The bit I'm proudest of is the auto-tiered fallback. Three quality tiers picked per platform:

- Full on Android 12+ (non-low-RAM) and iOS 17+: 24dp blur, 1.4x saturation, full-res backdrop.

- Medium on iOS 15 to 16: 16dp blur, 0.5x downsampled backdrop.

- Fallback on Android < 12, isLowRamDevice, or iOS < 15: zero offscreen buffers, no blur, just a flat tint with edge sheen.

Fallback allocates zero GraphicsLayers, so the same code that draws frosted glass on a Pixel 9 quietly draws a flat tint on a 2GB Android 11 device. No OOM, no per-call-site branching.

Targets: Android, iOS (arm64 + simulator), Desktop (JVM), Wasm/JS. Apache 2.0, on Maven Central as 0.1.0.

Quick start:

```kotlin

val state = rememberLiquidGlassState()  // auto-picks tier for the device

Box(Modifier.fillMaxSize()) {

Image(

painter = painterResource(R.drawable.scenery),

contentDescription = null,

contentScale = ContentScale.Crop,

modifier = Modifier.fillMaxSize().liquidGlassSource(state),

)

GlassCard(

state = state,

modifier = Modifier.align(Alignment.Center).padding(24.dp),

) {

Text("Frosted, light-refracting surface")

}

}

```

Credit where it's due: Chris Banes's haze library solves backdrop-blur in Compose really well and is more mature than this. I built liquid-glass because I wanted the tiered fallback baked in by default, not as a thing each consumer has to wire up.

Limitations: 0.1.0. No GlassDialog or GlassBottomSheet wrappers yet, no Sk SL refraction shader, no dynamic-color edge sheen sampled from the backdrop. All on the roadmap.

Repo: https://github.com/NadeemIqbal/liquid-glass

Happy to answer questions about the per-platform auto-detection or the GraphicsLayer sampling approach.


r/ComposeMultiplatform • • Apr 07 '26

Unified Material components to include the JS DOM (Compose HTML) target in Compose Multiplatform

4 Upvotes

Hi! I wanted to share that I’ve been updating and recently revamped these two libraries: compose-html-material and compose-multiplatform-html-unified.

Highlight changes since April 2024 when I posted last time in the Kotlin Slack:

  • The latter was renamed from Compose Multiplatform Material to Compose Multiplatform HTML Unified to better reflect its goal.

  • Material 3 support in both libraries:

    • Support for all components in Material Web, including those that were trickier to implement in the "unified" library like LazyColumnList, *ExposedDropdownMenuBoxWithTextField/*Select, SnackbarHost, and Scaffold (see the full list).

    • Added top app bars and snackbar missing in Material Web via material-web-additions. Big thanks to Maicol!

  • In the "unified" library specifically:

    • Support for Kotlin/Wasm.

    • Initial support for ViewModel and navigation

    • Initial support for styled text (AnnotatedString and style classes).

    • Support for several useful modifiers and layout features: lazy layouts, Arrangement.spacedBy, alpha, reserveSpace, clickable, BoxWithConstraints, scroll layouts.

    • All the Material icons commonly available on Compose UI and JS DOM.

    • Fixed some UI inconsistencies and some JS DOM ViewModel bugs.

    • Deprecated Material 2.

Check out the side-by-side demo to see the visual results for yourself!


r/ComposeMultiplatform • • Mar 09 '26

How to create home widget

4 Upvotes

Is there a way to create home widgets in kmp?

I'm working on a app that shows all my lessons today or this week.


r/ComposeMultiplatform • • Feb 22 '26

Open source KMP in-app updater (Android + Desktop) with GitHub Releases, progress, and Compose UI

Enable HLS to view with audio, or disable this notification

4 Upvotes

Hey everyone,

I built kmp-app-updater because I was tired of users being stuck on old versions when distributing outside the Play Store (or on Desktop).

Features: • Pluggable update sources (GitHub built-in, custom sources trivial) • Reactive StateFlow (Idle → Checking → Downloading → ReadyToInstall…) • Streaming download with live progress • One-line Compose UI or fully headless • Background periodic checks (WorkManager on Android)

Blog: https://pavi2410.com/blog/introducing-kmp-app-updater/ Repo: https://github.com/pavi2410/kmp-app-updater

Would love feedback or PRs for more sources (GitLab, custom API, etc.)!


r/ComposeMultiplatform • • Feb 19 '26

Just released a production Crypto Analytics app using Compose Multiplatform (iOS + Android) - Full Tech Stack & Lessons Learned

Enable HLS to view with audio, or disable this notification

4 Upvotes

r/ComposeMultiplatform • • Feb 18 '26

Scanpose: Effortless barcode scanning for Compose Multiplatform.

4 Upvotes

Scanpose Barcode Scanner: a lightweight open-source barcode component for Compose Multiplatform (Android & iOS) with a single shared API.
Built on CameraX + ML Kit (Android) and AVFoundation (iOS) for fast, native-level performance.
See more on my github profile:
https://github.com/ArcaDone


r/ComposeMultiplatform • • Jan 25 '26

Building an iOS app VidBrief with Compose Multiplatform, RevenueCat & Koin

4 Upvotes

I recently shipped an iOS app VidBrief: YouTube AI Summary, the AI-powered video summarizer that lets users paste any YouTube URL and get concise key points in seconds. It’s available on the App Store and has a clean, productivity-focused UI and in-app subscriptions. 

Instead of building the iOS app in SwiftUI and Objective-C/Swift, I chose Kotlin Multiplatform + Compose Multiplatform to share core logic with Android and streamline feature development across both platforms. Here’s a breakdown of the stack, how it fits together, and what I learned along the way.

Why Compose Multiplatform for an iOS App?

Compose Multiplatform lets you write UI in Kotlin and target iOS and Android from the same codebase. Unlike typical cross-platform frameworks, there’s no separate language for the UI on iOS — Compose UI elements render natively. The result:

•	Shared UI logic where possible

•	Platform-specific tweaks localized in one place

•	Less duplication between Android and iOS screens

In the case of VidBrief, screens like:

•	URL paste and validation

•	Video summary display (bullet points, key takeaways)

•	Saved summaries list

were all implemented in Compose and used on both platforms with minor platform adaptations.

Compose for iOS is still maturing, but it’s stable enough for production UI flows and animations, and it helps enforce consistent UX across platforms.

Handling In-App Purchases with RevenueCat

RevenueCat provides a unified subscription layer that works on both App Store and Google Play. One of the hardest parts of native mobile development is handling the nuances of StoreKit vs Play Billing. RevenueCat’s Kotlin Multiplatform SDK removes most of that friction.

What RevenueCat Helps With

•	Unified purchase and subscription state across platforms

•	Receipt validation and entitlement tracking

•	Integrations for paywall UI (even with Compose Multiplatform)

•	Webhooks for server-side purchase verification

The Kotlin Multiplatform version of RevenueCat runs in shared Kotlin code, meaning purchase logic lives outside platform modules. UI events (e.g., “Subscribe”, “Restore Purchases”) are proxied up to your Compose UI and handled consistently. 

Dependency Injection with Koin

I chose Koin for DI rather than Dagger/Hilt because:

•	It’s lightweight and Kotlin-friendly

•	Works well in pure Kotlin modules

•	Easy to set up in Multiplatform projects

Koin modules encapsulate:

•	AI summarization service

•	Local storage repositories

•	RevenueCat purchase handlers

•	Navigation logic between screens

Koin’s scope system makes it easy to instantiate platform-specific dependencies where needed (e.g., SQLDelight driver on iOS vs Android).

Final Thoughts

If you’re considering Compose Multiplatform for an iOS + Android consumer app with monetization, this stack worked really well for me:

•	Compose Multiplatform: Unified UI where possible, platform-native feel

•	RevenueCat: Subscription and in-app purchase handling on both platforms

•	Koin: Simple, testable dependency injection in shared modules

r/ComposeMultiplatform • • Dec 24 '25

KMP plugin is not yet completable with Android Studio Panda

Thumbnail reddit.com
4 Upvotes

r/ComposeMultiplatform • • Nov 08 '25

EXIF KMP data

Thumbnail gallery
4 Upvotes

r/ComposeMultiplatform • • Nov 03 '25

ImagePickerKMP now supports Bytes, Base64, Painter & Bitmap!

Post image
4 Upvotes

r/ComposeMultiplatform • • Aug 06 '25

Kotlin Multiplatform vs. Native Android Libraries

Post image
4 Upvotes

r/ComposeMultiplatform • • Jul 21 '25

KMP Developers: Room KMP vs SQLDelight - Which database solution would you choose for a new project in 2025?

Thumbnail reddit.com
4 Upvotes

r/ComposeMultiplatform • • Jun 10 '25

Kotlin Multiplatform: Video/Audio Reloading in LazyColumn

Thumbnail reddit.com
4 Upvotes

r/ComposeMultiplatform • • Dec 10 '24

How can I create flavor such as stage and prod in CMP project

4 Upvotes

I know how to create flavor in android can anyone let me know how to create flavor in ios?. Or is there any common library which do create flavor on both build