<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-you-get-the-real-liquid-glass-effect-in-compose-multiplatform-mv4qsimfr" -->

---
title: How You Get the REAL Liquid Glass Effect In Compose...
description: A walkthrough of implementing the native iOS liquid glass effect in a Kotlin Multiplatform project using Compose Multiplatform. The approach uses native...
canonical: https://daily.dev/posts/how-you-get-the-real-liquid-glass-effect-in-compose-multiplatform-mv4qsimfr
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How You Get the REAL Liquid Glass Effect In Compose Multiplatform | daily.dev
og:description: A walkthrough of implementing the native iOS liquid glass effect in a Kotlin Multiplatform project using Compose Multiplatform. The approach uses native...
og:url: https://daily.dev/posts/how-you-get-the-real-liquid-glass-effect-in-compose-multiplatform-mv4qsimfr
og:image: https://api.daily.dev/og/posts/MV4qSIMFR.png
og:image:alt: How You Get the REAL Liquid Glass Effect In Compose Multiplatform
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How You Get the REAL Liquid Glass Effect In Compose Multiplatform

**[Philipp Lackner](https://daily.dev/sources/philipplackner)** · 11 min read · 1 upvotes · 0 comments

## Summary

A walkthrough of implementing the native iOS liquid glass effect in a Kotlin Multiplatform project using Compose Multiplatform. The approach uses native SwiftUI for platform-specific UI (bottom tab bar, toolbar with liquid glass rendering) while sharing common UI logic like list screens via Compose Multiplatform. The key bridge is a UIViewControllerRepresentable struct in Swift that wraps the Compose view controller, allowing shared composables to be embedded inside a native SwiftUI hierarchy. The tutorial also covers the Android side using Material UI components, and discusses the tradeoffs of using platform interop views directly in Compose versus implementing native UI in Swift for the most authentic liquid glass look.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=zZtth3s1GH4>

## Questions this post answers

### How do I get the real native liquid glass effect on iOS in a Compose Multiplatform app?

Implement the liquid glass UI natively in SwiftUI rather than mimicking it in Compose, since the effect comes from the native iOS rendering engine. Bridge shared Compose Multiplatform screens into SwiftUI using a UIViewControllerRepresentable struct that wraps a ComposeUIViewController generated from a Kotlin function, keeping platform-specific chrome like tab bars and toolbars written directly in Swift.

_daily.dev surfaces cross-platform UI techniques for developers combining Compose Multiplatform with native SwiftUI._

### Can Compose Multiplatform lazy columns report scroll offset to SwiftUI for auto-hiding tab bars?

No, Compose lazy columns do not report their scroll offset to the SwiftUI side, so SwiftUI's automatic tab bar minimization on scroll does not work when the scrollable list lives in shared Compose code. That behavior only works if the scroll view itself is implemented natively in SwiftUI rather than in Compose Multiplatform.

_Track interop limitations like this one when planning shared UI architecture on daily.dev._

### What is the alternative to SwiftUI-based liquid glass for Compose Multiplatform apps?

An alternative is using platform interop directly in Compose Multiplatform, defining an expect/actual composable that references native UIKit classes such as UITabBar on the iOS side. This is not recommended because it introduces additional interop challenges compared to implementing the liquid glass UI directly in Swift with native code intended for that effect.

_Compare interop approaches for native UI effects in multiplatform apps via daily.dev._

## Similar posts on daily.dev

- [Liquid Glass Adaptation in UIKit \+ SwiftUI Hybrid Architecture](https://daily.dev/posts/liquid-glass-adaptation-in-uikit-swiftui-hybrid-architecture-zjhbaignh) · Fatbobman · 0 upvotes · 0 comments
- [A Linear spin on Liquid Glass](https://daily.dev/posts/a-linear-spin-on-liquid-glass-txcgqiurc) · Linear · 68 upvotes · 5 comments
- [Why Your Compose Multiplatform App Still Needs Native Code](https://daily.dev/posts/why-your-compose-multiplatform-app-still-needs-native-code-vwywn1ts5) · droidcon · 0 upvotes · 0 comments
- [Introducing Liquid Glass UI in .NET MAUI: Elevate Your App Design](https://daily.dev/posts/introducing-liquid-glass-ui-in-net-maui-elevate-your-app-design-6qpiib43b) · Syncfusion · 25 upvotes · 9 comments

---

Tags: [#ios](https://daily.dev/tags/ios), [#kotlin](https://daily.dev/tags/kotlin), [#swiftui](https://daily.dev/tags/swiftui), [#compose-multiplatform](https://daily.dev/tags/compose-multiplatform)

[View this post on daily.dev](https://daily.dev/posts/how-you-get-the-real-liquid-glass-effect-in-compose-multiplatform-mv4qsimfr)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How You Get the REAL Liquid Glass Effect In Compose Multiplatform","url":"https://daily.dev/posts/how-you-get-the-real-liquid-glass-effect-in-compose-multiplatform-mv4qsimfr","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-you-get-the-real-liquid-glass-effect-in-compose-multiplatform-mv4qsimfr"},"datePublished":"2026-07-22T13:29:03.808Z","dateModified":"2026-09-14T07:27:06.185Z","description":"A walkthrough of implementing the native iOS liquid glass effect in a Kotlin Multiplatform project using Compose Multiplatform. The approach uses native...","image":"https://i.ytimg.com/vi/zZtth3s1GH4/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/zZtth3s1GH4/sddefault.jpg","isAccessibleForFree":true,"articleSection":"Philipp Lackner","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Philipp Lackner","logo":"https://media.daily.dev/image/upload/s--WOEWUbRT--/f_auto/v1725038407/logos/philipplackner","url":"https://daily.dev/sources/philipplackner"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-you-get-the-real-liquid-glass-effect-in-compose-multiplatform-mv4qsimfr","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ios,kotlin,swiftui,compose-multiplatform","timeRequired":"PT11M","video":{"@type":"VideoObject","name":"How You Get the REAL Liquid Glass Effect In Compose Multiplatform","description":"A walkthrough of implementing the native iOS liquid glass effect in a Kotlin Multiplatform project using Compose Multiplatform. The approach uses native...","thumbnailUrl":"https://i.ytimg.com/vi/zZtth3s1GH4/sddefault.jpg","uploadDate":"2026-07-22T13:29:03.808Z","duration":"PT11M","url":"https://api.daily.dev/r/MV4qSIMFR","embedUrl":"https://www.youtube.com/embed/zZtth3s1GH4"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Philipp Lackner","item":"https://daily.dev/sources/philipplackner"},{"@type":"ListItem","position":3,"name":"How You Get the REAL Liquid Glass Effect In Compose Multiplatform"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-you-get-the-real-liquid-glass-effect-in-compose-multiplatform-mv4qsimfr#faq","mainEntity":[{"@type":"Question","name":"How do I get the real native liquid glass effect on iOS in a Compose Multiplatform app?","acceptedAnswer":{"@type":"Answer","text":"Implement the liquid glass UI natively in SwiftUI rather than mimicking it in Compose, since the effect comes from the native iOS rendering engine. Bridge shared Compose Multiplatform screens into SwiftUI using a UIViewControllerRepresentable struct that wraps a ComposeUIViewController generated from a Kotlin function, keeping platform-specific chrome like tab bars and toolbars written directly in Swift. daily.dev surfaces cross-platform UI techniques for developers combining Compose Multiplatform with native SwiftUI."}},{"@type":"Question","name":"Can Compose Multiplatform lazy columns report scroll offset to SwiftUI for auto-hiding tab bars?","acceptedAnswer":{"@type":"Answer","text":"No, Compose lazy columns do not report their scroll offset to the SwiftUI side, so SwiftUI's automatic tab bar minimization on scroll does not work when the scrollable list lives in shared Compose code. That behavior only works if the scroll view itself is implemented natively in SwiftUI rather than in Compose Multiplatform. Track interop limitations like this one when planning shared UI architecture on daily.dev."}},{"@type":"Question","name":"What is the alternative to SwiftUI-based liquid glass for Compose Multiplatform apps?","acceptedAnswer":{"@type":"Answer","text":"An alternative is using platform interop directly in Compose Multiplatform, defining an expect/actual composable that references native UIKit classes such as UITabBar on the iOS side. This is not recommended because it introduces additional interop challenges compared to implementing the liquid glass UI directly in Swift with native code intended for that effect. Compare interop approaches for native UI effects in multiplatform apps via daily.dev."}}]}
```

