NewsSeptember 13, 2025
Compose Multiplatform for iOS Stable in 2025: What Developers Need to Know
Compose Multiplatform for iOS is now stable with version 1.8.0. Learn how Kotlin Multiplatform's UI framework enables shared UI code across Android and iOS with native performance and 96% code reuse.
Posted by


TL;DR: The Mobile Development Game Has Changed
Compose Multiplatform for iOS is now stable as of May 2025, marking the most significant milestone in cross-platform mobile development since React Native's launch. This means you can now:
- Share UI code between Android and iOS using Kotlin and Compose
- Achieve native performance with iOS-specific optimizations
- Build production-ready apps with JetBrains' full support and Google's backing for Kotlin Multiplatform
- Maintain full platform control while maximizing code reuse
The verdict: If you're building mobile apps in 2025, Kotlin Multiplatform UI with Compose is now a serious contender alongside Flutter and React Native for cross-platform mobile development.
The milestone that changes everything
On May 6, 2025, JetBrains announced that Compose Multiplatform for iOS has reached stable status with the release of Compose Multiplatform 1.8.0. This wasn't just another incremental update - it represents the culmination of years of engineering work to bring Kotlin's declarative UI framework to Apple's ecosystem.
For mobile developers, this announcement is massive. Here's why:
- Production readiness: No more "experimental" or "alpha" warnings
- Enterprise confidence: Major companies can now adopt without hesitation
- Ecosystem maturity: Full tooling support and comprehensive documentation
- Performance parity: Native iOS feel with shared codebase benefits
What Compose Multiplatform iOS brings to the table
Native iOS Performance with Cross-Platform UI
JetBrains didn't just port Compose to iOS - they rebuilt it with iOS-specific optimizations. The result? Apps that deliver native iOS performance while maintaining consistent Material Design UI across platforms.
Key performance achievements:
- Startup time comparable to native iOS apps
- Scrolling performance on par with SwiftUI
- Memory usage optimized for iOS constraints
- iOS-native integrations for system APIs and platform services
Note: Compose Multiplatform uses Material Design by default. For iOS-native UI appearance, you can create custom themes or use platform-specific UI components where needed.
Shared UI Architecture Without Compromise
Unlike traditional cross-platform solutions that force UI compromises, Compose Multiplatform lets you share exactly what makes sense while keeping platform-specific code where needed.
kotlin@Composable fun UserProfile(user: User) { Column( modifier = Modifier.padding(16.dp) ) { // This UI runs identically on Android and iOS ProfileImage(user.avatar) Text( text = user.name, style = MaterialTheme.typography.headlineMedium ) // Platform-specific behavior can be injected PlatformSpecificButton( onClick = { handleProfileAction() } ) } }
Real-World Code Sharing Results
Early adopters are reporting impressive code reuse metrics:
- Cash App: Block (formerly Square) uses KMP for shared business logic across their mobile apps
- Respawn: Built with Compose Multiplatform, sharing 96% of its code between iOS and Android.
- Netflix: Leveraging KMP for data and business logic sharing in production apps
- PeopleInSpace, an open-source demo app, showcases Compose running on iOS.
- Enterprise adoption: Typical code reuse ranges from 80-90% when sharing both business logic and UI
- Indie devs have started shipping App Store apps with Compose for iOS, proving it’s ready for production use.
Sample Projects to Explore:
The technical foundation that makes it work
Architecture: Skia + Native Integration
Compose Multiplatform iOS uses Skia as its rendering engine while integrating deeply with iOS system APIs. This hybrid approach delivers:
- Consistent visual output across platforms using Google's Skia graphics library
- Native iOS system integration for accessibility, keyboards, and system UI
- Platform-appropriate behaviors without sacrificing shared code benefits
Technical Requirements: Starting with version 1.8.0, Compose Multiplatform requires Kotlin 2.1.0+ and has fully transitioned to the K2 compiler for all native (including iOS) and web targets. K1-based builds are no longer supported.
iOS Integration: The framework renders through Metal API on iOS while maintaining compatibility with UIKit for system-level integrations like keyboards, accessibility, and navigation bars.
Development Experience Improvements
The stable release brings significant developer experience enhancements:
- Hot Reload: See UI changes instantly without losing app state
- iOS Simulator support: Direct deployment from Android Studio to iOS Simulator
- Compose Previews: Preview composables directly in Android Studio
- Xcode integration: Seamless workflow with existing iOS toolchains
Migration path: From concept to production
Starting Fresh: The Modern Approach
For new projects, the path is straightforward:
- Project Setup: Use the official Kotlin Multiplatform wizard or KMPShip for a production-ready setup
- Shared Business Logic: Implement core features in
commonMain
- Shared UI: Build screens using Compose Multiplatform
- Platform-Specific: Add native code only where necessary
Existing Apps: Incremental Adoption
You don't need to rewrite everything. Compose Multiplatform supports incremental adoption:
- Start with shared ViewModels and business logic
- Gradually move UI components to shared Compose code
- Keep platform-specific features in native code
- Migrate at your own pace without breaking existing functionality
What this means for different developer audiences
For Android Developers
The opportunity: Your Kotlin and Compose skills now translate directly to iOS development. You can:
- Build iOS apps without learning Swift or SwiftUI
- Leverage existing Android libraries and patterns
- Share architectural patterns across platforms
- Maintain type safety and familiar debugging tools
For iOS Developers
The consideration: While Compose Multiplatform can handle UI, you might still want to learn Kotlin for business logic sharing. The good news:
- Kotlin syntax is approachable for Swift developers
- Shared business logic means less duplicate code maintenance
- Native iOS integration remains available for complex scenarios
For Cross-Platform Teams
The game changer: No more choosing between "fast development" and "native feel":
- Faster than native: One codebase, two apps
- Better than other cross-platform: True native performance
- More maintainable: Single source of truth for UI and logic
- Future-proof: Backed by JetBrains and Google
Enterprise readiness and adoption signals
Survey Data: Developer Confidence
Recent JetBrains developer surveys and community reports show strong adoption signals:
- 96% of teams using Compose Multiplatform iOS report no major performance concerns
- Production usage has grown 300% since alpha status according to JetBrains usage analytics
- Enterprise adoption is accelerating with stable status announcement
Industry Backing
The stable release comes with strong industry support:
- JetBrains leadership: Full ownership and development of Compose Multiplatform with dedicated team
- Google's KMP support: Google backs Kotlin Multiplatform and is porting Jetpack libraries to KMP
- Community ecosystem: Growing library and tool ecosystem
- Enterprise adoption: Companies like Netflix, Cash App, and others investing in KMP
Important distinction: While Google supports Kotlin Multiplatform as a platform, Compose Multiplatform is primarily a JetBrains initiative.
Performance benchmarks: How it compares
Performance Characteristics
Based on available industry benchmarks and developer reports:
- Cold start times: Flutter generally leads in UI rendering speed
- Memory efficiency: KMP shows advantages in resource usage
- Frame rates: All three frameworks can achieve 60fps, with Flutter and KMP showing more consistent performance
- App size: KMP typically produces smaller binaries, Flutter apps tend to be larger due to the rendering engine
Note: Specific performance metrics vary significantly based on implementation complexity, device specifications, and optimization techniques used.
Resource Impact
While specific metrics vary by implementation, developers generally report that Compose Multiplatform maintains competitive resource usage compared to other cross-platform solutions, with framework overhead being manageable for most production applications.
Current limitations and considerations
While Compose Multiplatform for iOS has reached stable status, developers should be aware of some current challenges and trade-offs:
Performance Considerations
Memory and CPU consumption remains a significant concern for some applications. A critical GitHub issue (#4912) reports high CPU and memory consumption on iOS that has caused some teams to halt development until resolved.
Complex UI performance: Apps with deeply nested Composables or heavy use of Canvas for custom drawing may experience performance bottlenecks, especially on resource-constrained devices.
Platform Integration Gaps
- Swift interop: While functional, calling Kotlin code from Swift isn't as seamless as native development
- iOS-specific APIs: Some iOS system features may require platform-specific implementations
- Build times: Kotlin/Native compilation can be slower than pure iOS development
Ecosystem Maturity
Unlike Flutter or React Native, the Compose Multiplatform ecosystem is still growing:
- Third-party libraries: Limited compared to more mature cross-platform frameworks
- Community resources: Fewer tutorials, examples, and community solutions
- Breaking changes: As the platform evolves, API changes may require code updates
When to Consider Alternatives
Compose Multiplatform may not be the best choice if:
- Your team lacks Kotlin experience and timeline is tight
- The app requires extensive iOS-specific UI patterns (Cupertino design)
- Performance is absolutely critical (high-frequency trading, games with 60fps+)
- Your project has a large existing React/JavaScript codebase
Note: JetBrains continues active development to address these limitations, with the experimental Swift Export feature in development to improve iOS integration.
The roadmap ahead: What's coming next
Kotlin-to-Swift Export (2025)
JetBrains is working on direct Kotlin-to-Swift code generation, enabling:
- Seamless iOS team integration with familiar Swift interfaces
- Gradual adoption for iOS-heavy teams
- Native Xcode debugging of Kotlin business logic
Enhanced Platform Integration
Future releases will add:
- Better accessibility support with iOS-specific optimizations
- Advanced iOS system integration for notifications, widgets, and shortcuts
- Performance improvements with each stable release
Ecosystem Growth
The stable status will accelerate:
- Third-party library adoption for Compose Multiplatform
- Framework integrations with popular iOS libraries
- Tooling improvements across the development workflow
Getting started with Compose Multiplatform iOS
Prerequisites
To start building with Compose Multiplatform iOS, you need:
- macOS machine for iOS development
- Xcode installed for iOS simulator and device testing
- Kotlin Multiplatform plugin for IntelliJ IDEA or Android Studio
- Basic Kotlin knowledge (transferable from Java/Swift)
- Kotlin 2.1.0+ (required for Compose Multiplatform 1.8.0)
Quick Setup Guide:
Your First Shared UI App
kotlin// Shared UI code in commonMain // Compatible with Compose Multiplatform 1.8.0+ @Composable fun App() { MaterialTheme { Scaffold( topBar = { TopAppBar( title = { Text("My KMP App") } ) } ) { paddingValues -> LazyColumn( modifier = Modifier.padding(paddingValues), contentPadding = PaddingValues(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp) ) { items(getSampleData()) { item -> Card( modifier = Modifier.fillMaxWidth(), elevation = CardDefaults.cardElevation(defaultElevation = 4.dp) ) { ListItem( headlineContent = { Text( text = item.title, style = MaterialTheme.typography.titleMedium ) }, supportingContent = { Text( text = item.description, style = MaterialTheme.typography.bodyMedium ) } ) } } } } } } // Data class for type safety data class AppItem( val title: String, val description: String ) // Sample data function fun getSampleData(): List<AppItem> = listOf( AppItem("Cross-platform UI", "Built with Compose Multiplatform"), AppItem("Native Performance", "Skia rendering with iOS integration"), AppItem("Shared Logic", "96% code reuse between platforms") )
This enhanced example demonstrates modern Compose practices with proper spacing, elevation, and type safety that works across Android and iOS.
Business impact: Why this matters now
Development Velocity
Teams adopting Compose Multiplatform report:
- 40-60% faster initial development compared to separate native apps
- Reduced maintenance burden with single codebase
- Faster feature iteration across both platforms simultaneously
Cost Considerations
- Reduced team size requirements: One team can handle both platforms
- Lower maintenance costs: Single codebase means fewer bugs and updates
- Faster time-to-market: Build once, deploy everywhere
Risk Mitigation
The stable status addresses previous concerns:
- Production readiness: No more "experimental" technology risks
- Long-term support: JetBrains' commitment to the platform
- Migration flexibility: Gradual adoption and escape hatches available
When to choose Compose Multiplatform
Perfect Fit Scenarios
Choose Compose Multiplatform when:
- Team has Kotlin/Android expertise that you want to leverage
- UI consistency across platforms is important
- Performance requirements are high (gaming, financial apps)
- Complex business logic needs sharing between platforms
Consider Alternatives When
Other solutions might be better if:
- Team is iOS-only and needs to stay Swift-focused
- Heavy platform-specific UI requirements dominate
- Existing large native codebases would be costly to migrate
- Web platform support is equally important
The bottom line for 2025
Compose Multiplatform for iOS reaching stable status represents a fundamental shift in cross-platform mobile development. For the first time, developers can achieve true code sharing across Android and iOS without sacrificing native performance or platform integration.
This isn't just an incremental improvement - it's a new paradigm that combines:
- The development speed of cross-platform frameworks
- The performance of native development
- The maintainability of shared codebases
- The flexibility of platform-specific optimization
If you're building mobile apps in 2025, ignoring Kotlin Multiplatform UI development with Compose is no longer an option. The cross-platform framework has matured, the ecosystem has grown, and the results speak for themselves.
Sources and references
- Compose Multiplatform 1.8.0 Released: Compose Multiplatform for iOS Is Stable and Production-Ready - JetBrains Kotlin Blog
- Kotlin Multiplatform Development Roadmap for 2025 - JetBrains Kotlin Blog
- What's Next for Kotlin Multiplatform and Compose Multiplatform – August 2025 Update - JetBrains Kotlin Blog
- Android's Kotlin Multiplatform announcements at Google I/O and KotlinConf 25 - Android Developers Blog
- Compose Multiplatform – Beautiful UIs Everywhere - JetBrains Official Documentation
Ready to build the future?
The stable release of Compose Multiplatform iOS means it's time to start building. Whether you're starting a new project or considering migration, the technology is ready for production use.
KMPShip provides a production-ready foundation with Kotlin Multiplatform and Compose already configured, plus authentication, payments, notifications, and deployment pipelines. Skip the setup complexity and start building your app today.