vs Android? Both? • What Development Language? • If iOS: Objective-C vs Swift? Both? • If Android: Java vs Kotlin? Both? • Do I have the resources/skills in my team? • Budget? • Source Control? • Testing? • Deployments? • Code Maintainability
Depends on Person/Team Skills: • C# • JavaScript • Dart (similar to Kotlin) • Do I have the resources/skills in my team? Very Possible! • Budget? • Source Control? • Testing? • Deployments? • Code Maintainability • What Platform? Both!
Facebook Google Language C# JavaScript Dart Platforms iOS, Android, UWP, others. iOS, Android, iOS, Android IDE Visual Studio, Visual Studio for Mac, Rider IntelliJ IDEA, Atom, WebStorm, Visual Studio Code IntelliJ IDEA, Android Studio, Visual Studio Code Compilation JIT (Just in Time) & AOT (Ahead of Time). JIT not possible with iOS. AOT compiled code runs faster. Android defaults to JIT. JS code is being interpreted at runtime. JavaScriptCore. AOT (Ahead of Time). Hot Reload LiveXAML, Xamarin Live Player Included Included
Data-Binding. Can make more Reactive with the Reactive Extensions (Rx.NET). Use RxUI for advanced, composable, functional Reactive MVVM framework. Reactive Reactive Widgets Native Native Skia 2D graphics CI/CD Visual Studio App Center (combination of Xamarin Test Cloud and HockeyApp). Jenkins. TeamCity. Visual Studio App Center (combination of Xamarin Test Cloud and HockeyApp). Jenkins. TeamCity. CircleCI. Visual Studio App Center (with appcenter plugin for Flutter).
power of .Net framework and C#. Easy to learn XAML markup language. Performance close to native. Hot reload. Easy JavaScript development. Fast development. Fast builds. Hot reload. Simplify mobile UI development. Easy Dart language. Hot reload. Uses a Reactive framework. Because of the Skia 2D graphics, developed UI looks exactly the same across devices. Cons Slide delay supporting latest platform updates. JavaScript not as fast as native code (most times you won’t see difference). Still need native development for things like sensor, camera, etc. Still in Beta. Takes a bit of time to get comfortable to the layouts and box containers. Not widely support by CI platforms.
for text • React-style framework • Rich set of widgets for Android and iOS • APIs for unit and integration tests • Interop and plugin APIs to connect to the system and 3rd-party SDKs • Headless test runner for running tests on Windows, Linux, and Mac • Command-line tools for creating, building, testing, and compiling your apps Flutter https://flutter.io/