compose-multiplatform: Keep it going! and iOS alpha crashes when adding TextField
Hi everyone! First, thanks for making this awesome tool for running compose code everywhere.
And second, a basic compose demo works great on iOS (Here is a demo project working) using compose-1.2.0-alpha01-dev724 and kotlin-gradle-plugin:1.6.21 But, and only for iOS, when I try something more elaborated with a TextField for entering text, the app crashes as soon as it starts (Here is the same project crashing)
Also adding a LazyColumn results on a crash as soon app starts up (Here is the same project crashing with LazyColumn)
Indeed after compose-1.2.0-alpha01-dev713 LazyColumn works on iOS! 🥳 🍾
It seems like the implementation of ScrollConfig is not yet finished, is there any way we can use components relying on it right now?
Now that platformScroll is added to iOS, it seems like the missing part is ContextMenuArea and elements tightly related to a typing container
Stacktrace
Uncaught Kotlin exception: kotlin.NotImplementedError: An operation is not implemented: implement native ContextMenuArea at 0 common 0x10f45750b kfun:kotlin.Throwable#<init>(kotlin.String?){} + 91 at 1 common 0x10f451549 kfun:kotlin.Error#<init>(kotlin.String?){} + 89 at 2 common 0x10f565f29 kfun:kotlin.NotImplementedError#<init>(kotlin.String){} + 89 at 3 common 0x10fc7a091 kfun:androidx.compose.foundation.text#ContextMenuArea(androidx.compose.foundation.text.selection.TextFieldSelectionManager;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 881 at 4 common 0x10fbfc0b8 kfun:androidx.compose.foundation.text.CoreTextFieldRootBox#internal + 7064 at 5 common 0x10fbf20c9 kfun:androidx.compose.foundation.text#CoreTextField(androidx.compose.ui.text.input.TextFieldValue;kotlin.Function1<androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit>;androidx.compose.ui.Modifier?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.input.VisualTransformation?;kotlin.Function1<androidx.compose.ui.text.TextLayoutResult,kotlin.Unit>?;androidx.compose.foundation.interaction.MutableInteractionSource?;androidx.compose.ui.graphics.Brush?;kotlin.Boolean;kotlin.Int;androidx.compose. + 32057 at 6 common 0x10fbd7459 kfun:androidx.compose.foundation.text#BasicTextField(kotlin.String;kotlin.Function1<kotlin.String,kotlin.Unit>;androidx.compose.ui.Modifier?;kotlin.Boolean;kotlin.Boolean;androidx.compose.ui.text.TextStyle?;androidx.compose.foundation.text.KeyboardOptions?;androidx.compose.foundation.text.KeyboardActions?;kotlin.Boolean;kotlin.Int;androidx.compose.ui.text.input.VisualTransformation?;kotlin.Function1<androidx.compose.ui.text.TextLayoutResult,kotlin.Unit>?;androidx.compose.foundation.interaction.MutableInter + 14169 at 7 common 0x10fd7c852 kfun:androidx.compose.material#TextField(kotlin.String;kotlin.Function1<kotlin.String,kotlin.Unit>;androidx.compose.ui.Modifier?;kotlin.Boolean;kotlin.Boolean;androidx.compose.ui.text.TextStyle?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Boole + 18450 at 8 common 0x10fee155d kfun:SkikoAppDelegate.application$lambda-0$<anonymous>_26#internal + 9117 at 9 common 0x10fee640e kfun:SkikoAppDelegate.$application$lambda-0$<anonymous>_26$FUNCTION_REFERENCE$4.invoke#internal + 222 at 10 common 0x10fee6559 kfun:SkikoAppDelegate.$application$lambda-0$<anonymous>_26$FUNCTION_REFERENCE$4.$<bridge-UNNNNN>invoke(-1:0;-1:1;-1:2){}#internal + 169 at 11 common 0x10f76f6af kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 1199 at 12 common 0x10f787fcf kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNNB>invoke(kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 351 at 13 common 0x10fd0734e kfun:androidx.compose.material.ScaffoldLayout$<anonymous>_8$<anonymous>_12$<anonymous>_98#internal + 1182 at 14 common 0x10fd10136 kfun:androidx.compose.material.$ScaffoldLayout$<anonymous>_8$<anonymous>_12$<anonymous>_98$FUNCTION_REFERENCE$193.invoke#internal + 214 at 15 common 0x10fd1038e kfun:androidx.compose.material.$ScaffoldLayout$<anonymous>_8$<anonymous>_12$<anonymous>_98$FUNCTION_REFERENCE$193.$<bridge-UNNNN>invoke(-1:0;-1:1){}#internal + 126 at 16 common 0x10f76ef1a kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 1098 at 17 common 0x10f787e0f kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNB>invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 271 at 18 common 0x10f9c0a3f kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose$<anonymous>_4_7#internal + 1279 at 19 common 0x10f9c1b0e kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.$subcompose$<anonymous>_4_7$FUNCTION_REFERENCE$786.invoke#internal + 174 at 20 common 0x10f9c1c8e kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.$subcompose$<anonymous>_4_7$FUNCTION_REFERENCE$786.$<bridge-UNNNN>invoke(-1:0;-1:1){}#internal + 126 at 21 common 0x10f76ef1a kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 1098 at 22 common 0x10f787e0f kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNB>invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 271 at 23 common 0x10f76d4fa kfun:androidx.compose.runtime#invokeComposable(androidx.compose.runtime.Composer;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 346 at 24 common 0x10f65297f kfun:androidx.compose.runtime.ComposerImpl.doCompose$<anonymous>_20#internal + 415 at 25 common 0x10f6581bd kfun:androidx.compose.runtime.ComposerImpl.$doCompose$<anonymous>_20$FUNCTION_REFERENCE$1148.invoke#internal + 77 at 26 common 0x10f65837f kfun:androidx.compose.runtime.ComposerImpl.$doCompose$<anonymous>_20$FUNCTION_REFERENCE$1148.$<bridge-UNN>invoke(){}#internal + 63 at 27 common 0x10f67a223 kfun:androidx.compose.runtime#observeDerivedStateRecalculations(kotlin.Function1<androidx.compose.runtime.State<*>,kotlin.Unit>;kotlin.Function1<androidx.compose.runtime.State<*>,kotlin.Unit>;kotlin.Function0<0:0>){0§<kotlin.Any?>} + 915 at 28 common 0x10f645e7a kfun:androidx.compose.runtime.ComposerImpl.doCompose#internal + 1626 at 29 common 0x10f644f1d kfun:androidx.compose.runtime.ComposerImpl#composeContent(androidx.compose.runtime.collection.IdentityArrayMap<androidx.compose.runtime.RecomposeScopeImpl,androidx.compose.runtime.collection.IdentityArraySet<kotlin.Any>?>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 413
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Reactions: 6
- Comments: 16 (9 by maintainers)
OMG, this is awesome Dima 🥳 🎆 ! Thank you very much, I can see there are still things to be done, but this is the feature we wanted for so long! #MVP!
@CoronelGlober Thanks for interest! We know this exceptions, and I will try to fix it!
Now You may use dev version 1.2.0-alpha01-dev725
@arkivanov Yeah, minesweeper crashes. But falling balls work’s good on my Mac with 1.2.0-alpha01-dev713 I will try to fix Minesweeper!
Right now dev version 1.2.0-alpha01-dev725 not fully published. I will tell when it possible to be used.
Confirm, the
EXC_BAD_ACCESS
crash is fixed in version1.2.0-alpha01-dev716
and we can now enjoy the workingLazyColumn
.TextField’s still in progress
TextField start’s working since version 1.2.0-alpha01-dev725 For now it’s only typing text from Mac keyboard and onscreen keyboard in iOS simulator. To show onscreen keyboard on iOS simulator, You may use hotkey ⌘+K. The are a lot of text feature we need to implement in the future.
Yeah @dima-avdeev-jb scrolling works now on iOS (cheers @arkivanov)! Only thing I’m waiting with my team and all my heart is the completion of the TextField dependencies on iOS, I see that ContextMenuArea is not implemented yet and maybe other elements too. Still 🤞 and checking this Issue on a daily basis
@dima-avdeev-jb I couldn’t try because any app crashes immediately on start with EXC_BAD_ACCESS, e.g. the minesweeper example.
@CoronelGlober LazyColumn works start from version 1.2.0-alpha01-dev713 But You already know it 😃
That is awesome, thanks @arkivanov and @dima-avdeev-jb! I’m following your progress on a daily basis 🤞