In this aricle I’ll point out – how Flutter is engineered and what are the Alternatives and the different approaches for App Development.
Native App Developmen
Native app development involves creating applications specifically for a single platform (iOS or Android) using platform-specific languages and tools (Swift for iOS, Kotlin/Java for Android). This approach ensures optimal performance and access to all native APIs and features but requires separate codebases for each platform. But, If you target also Linux, Windows, macOS and especially Web – the variations for “Native” get too much.
Progressive Web Apps (PWA)
PWAs are web applications that use modern web technologies to deliver app-like experiences in the browser, including offline capabilities, push notifications, and fast loading times. You built Apps by using standard web technologies (HTML, CSS, JavaScript) and can run on any platform with a compatible web browser. You – as a Developer – may access the features that are exposed with JavaScript APIs by the browsers.
Cordova
Apache Cordova allows developers to create cross-platform mobile applications using HTML, CSS, and JavaScript by wrapping them in a native container. It extends the Browser – by injecting access to native. This approach enables access to device features through a unified JavaScript API, but performance may not match that of fully native applications.
There is a variety of tools build on to it:
React Native
React Native enables developers to build mobile applications using JavaScript and React, allowing for code sharing between iOS and Android platforms. It renders components using native views, providing a near-native performance and user experience.
NativeScript
NativeScript allows for the development of native iOS and Android applications using JavaScript, TypeScript, or Angular. It provides direct access to native APIs and renders UI components using native views, ensuring performance close to native apps.
JetPack Compose – Cross-Platform
https://www.jetbrains.com/lp/compose-multiplatform/
JetPack Compose is a modern toolkit for building native UIs on Android using Kotlin, which also has experimental support for cross-platform development with Kotlin Multiplatform. It simplifies UI development with a declarative approach, allowing for shared codebases between Android and potentially other platforms in the future. It is designed by cross-compilation of the business logic for the non-android platforms.
Flutter
Flutter is a UI toolkit from Google for building natively compiled applications for mobile, web, and desktop from a single codebase using the Dart programming language. It provides a rich set of customizable widgets and delivers high performance by rendering UI components directly via the Skia graphics engine.
It seems there is a curse of having too many options.
- https://positiwise.medium.com/exploring-15-powerful-flutter-alternatives-c05e4855e6e9
- https://www.moontechnolabs.com/blog/flutter-alternatives/
I’m more about – picking one – and focusing on buillding: https://programtom.com/dev/2024/07/04/it-seems-in-todays-world-one-must-focus-on-just-one-tech-niche/