
State of mobile cross platform development
About
Flutter, React Native, native... or something else? In this talk I will dive into the current state of mobile cross-platform development, highlighting the latest frameworks, methodologies and industry standards.
I will discuss performance of every major framework - not limited to technical performance, but developer experience as well.
Watch the full talk
Watch this WaysConf session, then continue with related talks or explore the current programme.
Talk in brief
At WaysConf 2023, mobile development consultant Jarosław Michalik presented an architectural comparison of modern mobile cross-platform frameworks, evaluating React Native, Flutter, and Kotlin Multiplatform Mobile (KMM) against native development and web views. Michalik highlighted that while native applications excel at platform-specific user experiences, offline functionality, and direct hardware integrations like location tracking, cross-platform tools offer distinct trade-offs for different development team structures. React Native provides web teams leveraging JavaScript with familiar workflows through tools like Expo, though its bridge architecture can introduce minor performance bottlenecks. Google's Flutter delivers high UI consistency and fast iteration using a custom C++ rendering engine and Dart, but increases application bundle sizes to a minimum of 20 MB. Kotlin Multiplatform Mobile offers an incremental approach focused on sharing business logic while retaining native Swift UI and Jetpack Compose interfaces, making it ideal for teams with existing native codebases. Ultimately, Michalik emphasized that framework choice should depend on team expertise, existing infrastructure, and product goals rather than seeking a single universal solution.
Key takeaways
- 01
Hardware Capabilities Require Native Frameworks
Web applications cannot maintain continuous location tracking or low-latency hardware interaction required for complex mobile use cases. Native device APIs provide reliable access to Bluetooth, local AI models, and background location services.
Watch from 2:05 - 02
React Native Introduces Bridge Overhead
React Native enables web developers to leverage JavaScript and familiar patterns across mobile platforms. However, communications between JavaScript and native platform threads across the bridge add measurable millisecond latency to user interactions.
Watch from 7:22 - 03
Flutter Portability Increases Bundle Footprint
Flutter achieves high-performance UI rendering across devices by shipping its own C++ rendering engine. This self-contained architecture increases minimum binary sizes to around 20 megabytes, which can impact distribution in bandwidth-sensitive markets.
Watch from 11:13 - 04
Kotlin Multiplatform Preserves Native UI Layers
Kotlin Multiplatform Mobile allows teams to share business logic, data models, and backend code without replacing native Swift UI or Jetpack Compose interfaces. This enables incremental adoption and preserves platform-native user experiences.
Watch from 13:25 - 05
Framework Choice Depends on Team Context
No single cross-platform solution fits every mobile project. Startups seeking rapid UI iteration benefit from Flutter, web teams favor React Native, and teams with established native apps can integrate Kotlin Multiplatform.
Watch from 16:01
Video chapters
- 0:15Why Build Native Mobile Apps
Jarosław Michalik outlines key reasons to build native mobile apps, including platform-specific user experiences, offline functionality, hardware integration, and App Store visibility.
- 1:01Platform UI Conventions and Hardware Access
The speaker details how platform-specific interaction patterns and hardware APIs like continuous location tracking set native apps apart from mobile web solutions.
- 4:47Approaches to Mobile App Architecture
Michalik compares web views, fully native development in Swift or Kotlin, and cross-platform frameworks as architectural strategies.
- 6:00Evaluating React Native and its Bridge Mechanics
The session covers React Native's architecture, leveraging web developer skillsets while examining performance trade-offs caused by its JavaScript bridge.
- 8:53Flutter and Custom Rendering Engines
Michalik analyzes Google's Flutter framework, its Dart programming language, custom rendering architecture, and the associated application binary size overhead.
- 12:41Kotlin Multiplatform for Shared Code
The talk highlights Kotlin Multiplatform Mobile as an approach for sharing business logic across iOS and Android while retaining native user interfaces.
- 15:42Selecting the Right Cross-Platform Strategy
The speaker summarizes how team composition, existing codebases, and product goals dictate the ideal cross-platform framework choice.
Read edited transcript highlights
These concise notes were edited from automatic captions and checked against the talk structure. They are not a verbatim transcript.
Native App Advantages Over Responsive Web
While responsive web design serves basic content needs, dedicated mobile applications remain essential when projects require native platform polish, offline operation, and deep hardware access. Native development enables smooth platform-specific user interface interactions, such as gesture navigation on iOS or dedicated back buttons on Android. Furthermore, native apps can leverage local SQLite or non-relational databases to ensure instantaneous startup times and retain functionality during network disruptions, providing a critical operational advantage over standard web pages.
Watch from 0:36App Store Distribution as Prime Real Estate
Publishing a dedicated mobile application provides strategically valuable presence on device home screens and app store marketplaces. Unofficial clones often fill marketplace voids before official releases, capturing prospective users early. Securing home screen placement gives brands recurring direct visibility that web applications struggle to replicate. Furthermore, native applications can sustain continuous background processes, such as live location updates for ride-sharing or delivery tracking, which browser-based progressive web apps cannot reliably maintain.
Watch from 3:49React Native Developer Ecosystem and Expo
React Native offers frontend developers a familiar transition into mobile development by reusing JavaScript and TypeScript skillsets. Tools like Expo streamline the development process, speeding up iteration cycles and build workflows. The ecosystem provides extensive community libraries for common mobile capabilities, including Bluetooth connectivity and geolocation services. However, because JavaScript logic communicates with native platform modules through an intermediate bridge, high-frequency interactions can suffer from minor performance delays.
Watch from 7:59Flutter Architectural Trade-Offs and Binary Size
Flutter provides a UI-focused framework backed by Google that compiles to native code using the Dart programming language. Instead of utilizing native system widgets, Flutter carries its own internal C++ rendering engine, guaranteeing consistent UI presentation across diverse screen sizes. While this approach provides high rendering performance and rapid UI experimentation, it significantly inflates the application binary size. Simple Flutter apps start at around twenty megabytes, compared to five megabytes for purely native builds, making app size a critical consideration for markets with costly mobile data.
Watch from 10:32Incremental Adoption with Kotlin Multiplatform
Kotlin Multiplatform Mobile takes a distinct path by focusing on shared business logic and network models rather than forcing a unified UI runtime. Android applications run Kotlin code natively, while iOS builds package the shared logic into an imported library alongside a native SwiftUI interface. This modular model allows existing native development teams to share data layer implementations without sacrificing platform conventions, although configuration complexity and evolving experimental features require experienced developers.
Watch from 13:41Matching Frameworks to Organizational Needs
Selecting a cross-platform mobile framework requires balancing project constraints, developer skillsets, and existing infrastructure rather than searching for a universal winner. Flutter excels for early-stage MVPs focused on rapid visual prototyping, React Native suits organizations with strong JavaScript engineering capacity, and Kotlin Multiplatform offers the smoothest path for scaling shared logic in existing native codebases. Matching the technology stack to team composition ensures long-term maintainability and optimal user experience.
Watch from 15:53


