Fedor Sorokin
07/14/2025, 12:51 PMMatthew David
07/14/2025, 11:24 PMimePadding
lags behind the iOS keyboard, is there some preferred way of syncing with the keyboard or does this need to happen outside of Compose?Chethan N
07/15/2025, 11:04 AMDebayan
07/17/2025, 10:57 AMarnaud.giuliani
07/17/2025, 12:52 PMSavedStateHandle
support for ViewModel
in iOS, or is it yet limited to Android side?Suresh Maidaragi
07/18/2025, 6:39 AMUncaught Kotlin exception: kotlin.IllegalStateException: Currently, UIKitViewController cannot be used within Popups or Dialogs
hi is this available to use? if so in which version?Jeffrey Bush
07/18/2025, 2:13 PMUIKitViewController
Compose call? I have tried a few things: UIApplication.sharedApplication.setStatusBarHidden(true, UIStatusBarAnimation.UIStatusBarAnimationNone)
but this is deprecated in iOS 10 (9 years ago) and has problems that if the app is closed/crashed in between the call with true
and false
the next time the app is started the status bar is still hidden... Then I found out that the ComposeUIViewControllerConfiguration
has a delegate that can help control this a bit better, but that delegate is also deprecated now with a suggestion to create a parent UIViewController
around the Compose Host UIViewController, so I tried the following but this causes issues with the sizing of the entire Compose hierarchy (basically seems to assume the initial viewport never changes regardless of rotations and other updates). How to fix this? Is there some additional methods to override in the UIViewController
wrapper that will fix it? Thanks!
class MainViewControllerWrapper(val vc: UIViewController): UIViewController(null, null) {
@OptIn(ExperimentalForeignApi::class)
override fun loadView() {
super.loadView()
vc.willMoveToParentViewController(this)
vc.view.setFrame(view.frame)
view.addSubview(vc.view)
addChildViewController(vc)
vc.didMoveToParentViewController(this)
}
override fun prefersStatusBarHidden() = anyPrefersStatusBarHidden()
companion object {
fun UIViewController.anyPrefersStatusBarHidden(): Boolean =
childViewControllers.any { (it as? UIViewController)?.anyPrefersStatusBarHidden() == true }
}
}
Dhiraj Chauhan
07/21/2025, 11:27 AMSurface.makeFromBackendRenderTarget
, but I can't figure out the root cause from the stack trace.
Stack trace in 🧵Chiaradia Juan
07/22/2025, 1:17 PMCsaba Szugyiczki
07/23/2025, 8:27 AMOutlinedTextField
nor TextField
sets up additional accessibility info such as label or any additional info like placeholder value or supportingText, on iOS. Meanwhile on Android these are handled well.
Is there something I miss, or is it intentionally so minimally supported on other platforms?Arne Vanstraeseele
07/23/2025, 1:08 PMDebayan
07/25/2025, 11:46 AMGilberto Hernández
07/27/2025, 6:16 PMclickable
event from Box., but does not work like Android.
Box(
modifier = Modifier
.fillMaxSize()
.background(Color.Black)
.testTag("VideoPlayer-Player")
.clickable {
viewModel.showControls = !viewModel.showControls
println("🎯 Touch screen detected! -> Box ")
}
) {
PlayerView(
avPlayerViewController = avPlayerViewController,
modifier = Modifier.fillMaxSize(),
onTouchScreen = { }
)
}
ferdialif02
07/30/2025, 3:56 AMskominas.ainis
08/01/2025, 12:08 AMVishal kumar singhvi
08/04/2025, 11:57 AMChristopher Mederos
08/05/2025, 5:29 AMcollectAsStateWithLifecycle
stops getting new values after restoring a view model after navigation.
However, collecting without lifecycle does keep updating
@Composable
fun MyScreen(viewModel: MyViewModel = koinViewModel()) {
val scope = rememberCoroutineScope()
// collectLatest: Does Update
scope.launch {
viewModel.uiState.collectLatest { state -> println("collectLatest Id: ${state.id}") }
}
// collectAsState: Does Update
val uiState by viewModel.uiState.collectAsState()
Text("collectAsState Id: ${uiState.id}: ")
// collectAsStateWithLifecycle: Does NOT Update
val uiStateWithLifecycle by viewModel.uiState.collectAsStateWithLifecycle()
Text("collectAsStateWithLifecycle Id: ${uiStateWithLifecycle.id}: ")
}
Any ideas on where I should go looking for a fix?Javier RG
08/06/2025, 2:17 PMtylerwilson
08/15/2025, 1:43 AMIsmail
08/15/2025, 6:00 PM@Composable
actual fun PlatformBottomNavigation(
selectedTabIndex: Int,
onTabSelected: (Int) -> Unit,
navigateToSettings: () -> Unit
) {
val factory = LocalNativeViewFactory.current
UIKitViewController(
factory = {
factory.createBottomNavigation(
selectedTabIndex = selectedTabIndex,
onTabSelected = onTabSelected,
navigateToSettings = navigateToSettings
)
},
modifier = Modifier
.fillMaxWidth()
)
}
faogustavo
08/18/2025, 1:55 PMFarhazul Mullick
08/18/2025, 5:24 PM# kotlin = "2.1.20" compose = "1.8.2", jbNavigation = "2.8.0-alpha08"
# kotlin = "2.1.10" compose = "1.8.2" jbNavigation = "2.8.0-alpha08"
# kotlin = "2.1.10" compose = "1.8.2" jbNavigation = "2.8.0-alpha10"
Uncaught Kotlin exception: kotlin.native.internal.IrLinkageError: Can not read value from backing field of property 'androidx_compose_animation_core_SeekableTransitionState$stable': Private backing field of property declared in module <org.jetbrains.compose.animation:animation-core> can not be accessed in module <org.jetbrains.androidx.navigation:navigation-compose>
Tristan
08/19/2025, 11:28 PMCan't show file for stack frame : <DBGLLDBStackFrame: 0x149e1ea90> - stackNumber:0 - name:kfun:kotlin.coroutines.Continuation#<get-context>(){}kotlin.coroutines.CoroutineContext-trampoline. The file path does not exist on the file system: /opt/buildAgent/work/2d153abd4d2c0600/kotlin/libraries/stdlib/src/kotlin/coroutines/Continuation.kt
And the text field I am using
var textFieldValue by remember {
mutableStateOf("")
}
OutlinedTextField(
value = textFieldValue,
onValueChange = { textFieldValue = it },
singleLine = true,
modifier = Modifier.width(160.dp)
)
And my imports
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.ui)
implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview)
Do you think I am missing something? Other UI elements work fine (buttons and checkboxes)DevOpsCraftsman
08/21/2025, 12:55 AMTextField
(and related) on iOS, it always crashes when we trying to click in it...
The sample code:
@Composable
@Preview
fun App() {
TextField(value = "Type", onValueChange = {})
}
The srceenshot of the app in the simulator and the crash
We tested with compose 1.8.2, 1.8.1, and 1.8.0.
For iOS: 18 and 17.
EDIT: we are using the 2.9.1 version of the life cycle view mode compose lib, so the proposed fix proposed in thread of the post above doesn't work...
The crash error message:
Can't show file for stack frame : <DBGLLDBStackFrame: 0x12c607040> - stackNumber:0 - name:kfun:kotlin.coroutines.Continuation#<get-context>(){}kotlin.coroutines.CoroutineContext-trampoline. The file path does not exist on the file system: /opt/buildAgent/work/2d153abd4d2c0600/kotlin/libraries/stdlib/src/kotlin/coroutines/Continuation.ktCan't show file for stack frame : <DBGLLDBStackFrame: 0x11c60ab40> - stackNumber:1 - name:kfun:kotlin.coroutines.native.internal.ContinuationImpl#<init>(kotlin.coroutines.Continuation<kotlin.Any?>?){}. The file path does not exist on the file system: /opt/buildAgent/work/2d153abd4d2c0600/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/coroutines/ContinuationImpl.ktCan't show file for stack frame : <DBGLLDBStackFrame: 0x11c60ab40> - stackNumber:1 - name:kfun:kotlin.coroutines.native.internal.ContinuationImpl#<init>(kotlin.coroutines.Continuation<kotlin.Any?>?){}. The file path does not exist on the file system: /opt/buildAgent/work/2d153abd4d2c0600/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/coroutines/ContinuationImpl.kt
Calle Höglund
08/21/2025, 9:34 AM@Composable
actual fun NativeButton(
enabled: Boolean,
onClick: () -> Unit,
modifier: Modifier
) {
val factory: NativeViewFactory = LocalNativeViewFactory.current
UIKitViewController(
modifier = modifier,
factory = {
factory.createNativeButton(
enabled = enabled,
onClick = onClick,
)
}
)
}
Changing the enabled flag is not updating the UI in SwiftUI. How do i achieve this? Any suggestions?
Thanks! 🙏Alexis
08/24/2025, 5:09 PMSam
08/26/2025, 1:33 PMcommonMain
?
I keep getting this:
No matching variant of org.jetbrains.compose.ui:ui-tooling-preview:1.9.0-beta03 was found. The consumer was configured to find a library for use during 'kotlin-metadata', preferably optimized for non-jvm, as well as attribute 'org.jetbrains.kotlin.native.target' with value 'ios_x64',
Alexis
08/27/2025, 2:44 PMmarkturnip
08/28/2025, 8:34 AMComposeUIViewController
in the UINavigationController
However it seems @Kashismails has put together a working demo using Voyager.
I wonder if anyone else is using a setup like this and in production?
https://www.droidcon.com/2024/09/06/using-native-ios-navigation-from-compose-multiplatform/aidanvii
08/28/2025, 1:48 PM