Hi guys! I have to develop an iOS/Android applicat...
# multiplatform
s
Hi guys! I have to develop an iOS/Android application. I'm thinking of using KMM and Compose Multiplatform. Regarding Compose Multiplatform, is it easy to customize widgets? Would you recommend any libraries? I'm not very familiar with Compose on Android; I still use XML layout. Are there any limitations in Compose Multiplatform compared to Jetpack Compose natively, or is it essentially the same? What are the biggest limitations on the iOS side (which is still in alpha)? Thanks
m
from the top of my head, I remember having issues with UI automation. The modifiers used to identify components in android compose UI weren't working in multiplatform compose UI, but that was going to be fixed. Multiplatform Compose UI is a soft fork of Android Compose UI, so you can expect most things to be identical.
I've been dabbling with iOs and my biggest gripe is how to import swift code. you can make a swift package and bring it into the project, but every signature has to use object C classes. If you have a private function using swift types, compilation fails.
What if you describe your project's features a little? That way you could get specific advice about what to use, what is ready, and what you would need to build from scratch.
a
@McEna Have you got success to import Swift code directly to Kotlin multiplatform? In my case, I have a feature written in swift under iOSApp section in KMM project. But not getting any idea How to import in KMM directly.
s
Thank you @McEna for your feedback. My app will be an app to help person with reduced mobility. I will need to show a mapView. May be OSM or mapbox. , to add POI (Point of interest) over this map, to use localisation, show bottom sheets, need to build custom UI to show a itinerary summary. ANd of course I will need to be compliant with accessibility for partially sighted.
m
Maps aren't directly supported in compose multiplatform (nor just android compose). But you can use the AndroidView and UIKitView composables to wrap platform views.
Since a composable function can receive composable arguments, you could define your entire view hierarchy and inject your platform map compositions from the android/ios sourcesets.