What is Xamarin and what are its top alternatives?
Xamarin is a popular framework for building cross-platform mobile applications using C#. It allows developers to share code across multiple platforms, including iOS, Android, and Windows. Xamarin provides native performance and user experiences while streamlining development with shared code and libraries. However, its limitations include a steep learning curve for beginners and the need to purchase a license for certain advanced features.
React Native: React Native is a popular open-source framework developed by Facebook for building cross-platform mobile applications. It uses JavaScript and React to create native mobile apps, allowing for code reusability across different platforms. Pros include a large community support and extensive plugin ecosystem, while cons include performance issues on complex applications.
Flutter: Flutter is Google's UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase. It uses Dart programming language and provides a hot reload feature for fast development cycles. Pros include high performance and customizable widgets, while cons include a smaller community compared to other frameworks.
Ionic: Ionic is a popular open-source framework for building cross-platform mobile applications using web technologies like HTML, CSS, and JavaScript. It provides a large library of pre-built components and themes for rapid development. Pros include easy integration with Angular and React, while cons include performance limitations compared to native development.
NativeScript: NativeScript is an open-source framework that enables developers to build native mobile applications with JavaScript, TypeScript, or Angular. It provides access to native APIs and UI components for a truly native user experience. Pros include performance comparable to native apps and extensive plugin support, while cons include a steeper learning curve for beginners.
PhoneGap: PhoneGap, now known as Apache Cordova, is an open-source mobile development framework that uses web technologies to create cross-platform mobile applications. It provides a simple way to access device features using plugins and supports multiple platforms with a single codebase. Pros include easy integration with various web technologies, while cons include performance limitations compared to native development.
XCode: XCode is Apple's integrated development environment (IDE) for building native iOS applications using Swift or Objective-C. It provides a comprehensive set of tools for designing, coding, and testing iOS apps, with seamless integration with Apple's ecosystem. Pros include access to the latest iOS features and performance optimization, while cons include limited support for cross-platform development.
Android Studio: Android Studio is Google's official IDE for developing native Android applications using Java or Kotlin. It offers a rich set of tools for building and optimizing Android apps, including a visual layout editor and emulator support. Pros include seamless integration with Google services and performance optimization, while cons include limited support for iOS development.
Unity: Unity is a powerful game development platform that can also be used to create interactive 3D and 2D applications for mobile, web, and desktop. It supports C# programming language and provides a robust set of tools for designing and testing applications. Pros include high performance and extensive support for graphics and animation, while cons include a steep learning curve for non-gaming applications.
Kotlin Multiplatform: Kotlin Multiplatform is a cross-platform development solution by JetBrains that allows developers to share code between different platforms using Kotlin programming language. It enables building native applications for iOS, Android, and web with a single codebase. Pros include seamless integration with existing Android projects and performance optimization, while cons include limited support for complex iOS features.
FlutterFlow: FlutterFlow is a low-code platform that allows developers to visually design and build Flutter applications without writing code. It provides a drag-and-drop interface for designing UI components and integrates with Flutter for code generation. Pros include fast prototyping and easy customization, while cons include limited flexibility compared to traditional development methods.
Top Alternatives to Xamarin
- React Native
React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native. ...
- Ionic
Free and open source, Ionic offers a library of mobile and desktop-optimized HTML, CSS and JS components for building highly interactive apps. Use with Angular, React, Vue, or plain JavaScript. ...
- Flutter
Flutter is a mobile app SDK to help developers and designers build modern mobile apps for iOS and Android. ...
- NativeScript
NativeScript enables developers to build native apps for iOS, Android and Windows Universal while sharing the application code across the platforms. When building the application UI, developers use our libraries, which abstract the differences between the native platforms. ...
- PhoneGap
PhoneGap is a web platform that exposes native mobile device apis and data to JavaScript. PhoneGap is a distribution of Apache Cordova. PhoneGap allows you to use standard web technologies such as HTML5, CSS3, and JavaScript for cross-platform development, avoiding each mobile platforms' native development language. Applications execute within wrappers targeted to each platform, and rely on standards-compliant API bindings to access each device's sensors, data, and network status. ...
- Swift
Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C. ...
- Android Studio
Android Studio is a new Android development environment based on IntelliJ IDEA. It provides new features and improvements over Eclipse ADT and will be the official Android IDE once it's ready. ...
- Appcelerator
Appcelerator is the first mobile platform to combine the flexibility of open source development technologies with the power of cloud services. ...
Xamarin alternatives & related posts
- Learn once write everywhere214
- Cross platform174
- Javascript169
- Native ios components122
- Built by facebook69
- Easy to learn66
- Bridges me into ios development46
- It's just react40
- No compile39
- Declarative36
- Fast22
- Virtual Dom13
- Insanely fast develop / test cycle12
- Livereload12
- Great community11
- It is free and open source9
- Native android components9
- Easy setup9
- Backed by Facebook9
- Highly customizable7
- Scalable7
- Awesome6
- Everything component6
- Great errors6
- Win win solution of hybrid app6
- Not dependent on anything such as Angular5
- Simple5
- Awesome, easy starting from scratch4
- OTA update4
- As good as Native without any performance concerns3
- Easy to use3
- Many salary2
- Can be incrementally added to existing native apps2
- Hot reload2
- Over the air update (Flutter lacks)2
- 'It's just react'2
- Web development meets Mobile development2
- Ngon1
- Javascript23
- Built by facebook19
- Cant use CSS12
- 30 FPS Limit4
- Slow2
- Generate large apk even for a simple app2
- Some compenents not truly native2
related React Native posts
Your tech stack is solid for building a real-time messaging project.
React and React Native are excellent choices for the frontend, especially if you want to have both web and mobile versions of your application share code.
ExpressJS is an unopinionated framework that affords you the flexibility to use it's features at your term, which is a good start. However, I would recommend you explore Sails.js as well. Sails.js is built on top of Express.js and it provides additional features out of the box, especially the Websocket integration that your project requires.
Don't forget to set up Graphql codegen, this would improve your dev experience (Add Typescript, if you can too).
I don't know much about databases but you might want to consider using NO-SQL. I used Firebase real-time db and aws dynamo db on a few of my personal projects and I love they're easy to work with and offer more flexibility for a chat application.
I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.
Ionic
- Allows for rapid prototyping248
- Hybrid mobile228
- It's angularjs208
- Free186
- It's javascript, html, and css179
- Ui and theming109
- Great designs78
- Mv* pattern74
- Reuse frontend devs on mobile71
- Extensibility65
- Great community31
- Open source29
- Responsive design23
- Good cli21
- So easy to use14
- Angularjs-based13
- Beautifully designed13
- Widgets12
- Allows for rapid prototyping, hybrid mobile11
- Typescript11
- Quick prototyping, amazing community10
- Easy setup10
- Angular2 support8
- Fast, easy, free7
- Because of the productivity and easy for development7
- Base on angular7
- So much thought behind what developers actually need7
- Super fast, their dev team is amazingly passionate6
- Easy to use6
- It's Angular6
- UI is awesome4
- Hot deploy4
- Material design support using theme3
- Amazing support3
- It's the future3
- Angular3
- Allow for rapid prototyping3
- Easy setup, development and testing3
- Ionic creator3
- User Friendly2
- It's angular js2
- Complete package2
- Simple & Fast2
- Fastest growing mobile app framework2
- Best Support and Community2
- Material Design By Default2
- Cross platform2
- Documentation2
- Because I can use my existing web devloper skills2
- Removes 300ms delay in mobile browsers2
- Responsive1
- Native access1
- Typescript support1
- Ionic conect codeigniter1
- Fast Prototyping1
- All Trending Stack1
- Not suitable for high performance or UI intensive apps20
- Not meant for game development15
- Not a native app2
related Ionic posts
I'm currently doing some research to build a full cross-platform system that our personnel will use for various management and selling purposes, this is just a first step to migrate (and clean, lots of cleaning) a gigantic and obsolete system made in Java 7 with a nightmarish coupling between logic and view layers.
Since the system itself is considerably large, we are currently migrating the essential modules of its logic to an ExpressJS driven Restful API.
As a complementary project, I must find a way to share the highest possible amount of view code while achieving said cross-platform capacity.
My approach is the following:
- Angular 7+ and Ionic 5 for Android and iOS.
- Angular 7+ for the web.
- Angular 7+ and Electron for Desktop.
While Angular
is the common part, and considering that Ionic
can work on any platform, i'm wondering what is the best way to achieve a non-conflicting integration of Electron.js
to the very-commonly-used Angular+Ionic
Stack for both Mobile and Web development?
I've stumbled with a quite good template build called Polyonic
but I would love to hear more about the matter before taking such a long-lasting decision.
I want to learn cross-platform application frameworks like React Native, Flutter, Xamarin, or Ionic, and I'm a web developer. I can learn other programming languages as well. But I'm confused about what to learn, which framework is best, and which framework will last long as the application grows further into complexity.
- Hot Reload143
- Cross platform123
- Performance105
- Backed by Google89
- Compiled into Native Code73
- Fast Development61
- Open Source58
- Fast Prototyping53
- Single Codebase49
- Expressive and Flexible UI48
- Reactive Programming36
- Material Design34
- Dart30
- Widget-based29
- Target to Fuchsia26
- IOS + Android20
- Easy to learn17
- Great CLI Support16
- You can use it as mobile, web, Server development14
- Tooling14
- Debugging quickly13
- Have built-in Material theme13
- Target to Android12
- Good docs & sample code12
- Community12
- Support by multiple IDE: Android Studio, VS Code, XCode11
- Written by Dart, which is easy to read code10
- Easy Testing Support10
- Target to iOS9
- Real platform free framework of the future9
- Have built-in Cupertino theme9
- Easy to Widget Test8
- Easy to Unit Test8
- Large Community1
- Need to learn Dart29
- Lack of community support11
- No 3D Graphics Engine Support10
- Graphics programming8
- Lack of friendly documentation6
- Lack of promotion2
- Https://iphtechnologies.com/difference-between-flutter1
related Flutter posts
I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.
The only two programming languages I know are Python and Dart, I fall in love with Dart when I learned about the type safeness, ease of refactoring, and the help of the IDE. I have an idea for an app, a simple app, but I need SEO and server rendering, and I also want it to be available on all platforms. I can't use Flutter or Dart anymore because of that. I have been searching and looks like there is no way to avoid learning HTML and CSS for this. I want to use Supabase as BASS, at the moment I think that I have two options if I want to learn the least amount of things because of my lack of time available:
Quasar Framework: They claim that I can do all the things I need, but I have to use JavaScript, and I am going to have all those bugs with a type-safe programming language avoidable. I guess I can use TypeScript?, but that means learning both, and I am not sure if I will be able to use 100% Typescript. Besides Vue.js, Node.js, etc.
Blazor and .NET: There is MAUI with razor bindings in .Net now, and also a Blazor server. And as far as I can see, the transition from Dart to C# will be easy. I guess that I have to learn some Javascript here and there, but I have to less things I guess, am I wrong? But Blazor is a new technology, Vue is widely used.
- Access to the entire native api75
- Support for native ios and android libraries47
- Support for javascript libraries46
- Angular 2.0 support46
- Native ux and performance44
- Typescript support37
- Backed up by google and telerik35
- Css support29
- Cross-platform declarative ui and code27
- Fully open source under apache 2.0 license25
- Vuejs support11
- 60fps performance9
- Powerful data visualization with native UI6
- VS Code integration5
- Angular, typescript and javascript support5
- No need for Mac to build iOS apps in Telerik Platform5
- Extended CLI support4
- Cloud builds as part of Telerik PLatform4
- Truly Object-Oriented with Typescript4
- On-device debugging4
- Extensibility4
- Access to entire native api3
- Live reload3
- Easiest of all other frameworks3
- Easy to learn3
- Backed by google3
- 0 day support for new OS updates3
- Publishing modules to NPM3
- Vue.js support out of the box2
- VueJS support2
- Svelte support2
- Powerfull mobile services as part of Telerik Platform2
- Native ui with angular2
- Vue support2
- Playground1
- Hot Reload1
- HMR via webpack1
- Very small app size1
- Write once, use anywhere1
- Easy to use, support for almost all npm packages1
- Rich ecosystem1
- Compile to Apple/Google Stores via CloudCompiler1
- Has CSS ;-)1
- It works with Angular1
- Code reuse with your website1
- Dart0
- Lack of promotion5
- Slower Performance compared to competitors1
related NativeScript posts
Hello,
We're just brainstorming for the moment and we have a few questions.
We have an idea for an app that we want to develop, here are the prerequisites:
1) cross-platform (iOS, Android, and website);
2) as easy to maintain as possible / well documented / widely used;
3) Visual Studio Code and Copilot compatible;
4) Text to speech;
5) Speech recognition;
6) Running in background (screen off with TTS and speech recognition);
7) could be using TypeScript;
8) Monetized through ad and in-App payment for premium version;
9) Display on lock screen (Android only I guess)
So what would you recommend?
I've been trying to review the options available, and I've considered:
NativeScript
React Native
Flutter
Any other?
Thanks in advance for your help, and I'm open to any comments.
So, i am preparing to adopt NativeScript.
For years my hybrid projects used Apache Cordova.
"Let's avoid to maintain two teams and double the deliver velocity".
It was good for a few years, we had those september issues, (i.e. apple broke some backward compatibility) , but for the last years, things seems to be losing the grip faster.
Last breaking changes, for instance, seems to have a workaround, however that growing feeling that simple things can not rely on so fragile webviews keeps growing faster and faster.
I've tested nativescript not only on it's "helloworld", but also on how do they respond on issues.
I got tweed support. I opened an github issue and got answers on less than 10 hours (yes i did it on another timezone and very close to a weekend). I saw the faulty docs get corrected in two days.
The bad news is i only can adopt nativescript on newer projects, since there is no budget to revamp the current solutions.
The good news is i can keep coding on Vue.js , without vou router, but that's ok. I've already exchanged vanilla html for real native app with background magic enabled, the router can be easily reproduced.
- Javascript46
- Backed by Adobe13
- Free11
- Easy and developer friendly9
- Support more platforms6
- It's javascript, html, and css3
- Common code base across all mobile platform2
- Not bound to specific framework1
- Powerful Framework1
- Runs on mobile browser1
- Similar UI across all platform1
- Free easy fast and not buggy in my experience0
- Never as good as a native app2
- Created for web pages, not for complex Apps1
- Poor user experience1
- Not build for high performance1
- Hard to see1
related PhoneGap posts
I needed to choose a full stack of tools for cross platform mobile application design & development. After much research and trying different tools, these are what I came up with that work for me today:
For the client coding I chose Framework7 because of its performance, easy learning curve, and very well designed, beautiful UI widgets. I think it's perfect for solo development or small teams. I didn't like React Native. It felt heavy to me and rigid. Framework7 allows the use of #CSS3, which I think is the best technology to come out of the #WWW movement. No other tech has been able to allow designers and developers to develop such flexible, high performance, customisable user interface elements that are highly responsive and hardware accelerated before. Now #CSS3 includes variables and flexboxes it is truly a powerful language and there is no longer a need for preprocessors such as #SCSS / #Sass / #less. React Native contains a very limited interpretation of #CSS3 which I found very frustrating after using #CSS3 for some years already and knowing its powerful features. The other very nice feature of Framework7 is that you can even build for the browser if you want your app to be available for desktop web browsers. The latest release also includes the ability to build for #Electron so you can have MacOS, Windows and Linux desktop apps. This is not possible with React Native yet.
Framework7 runs on top of Apache Cordova. Cordova and webviews have been slated as being slow in the past. Having a game developer background I found the tweeks to make it run as smooth as silk. One of those tweeks is to use WKWebView. Another important one was using srcset on images.
I use #Template7 for the for the templating system which is a no-nonsense mobile-centric #HandleBars style extensible templating system. It's easy to write custom helpers for, is fast and has a small footprint. I'm not forced into a new paradigm or learning some new syntax. It operates with standard JavaScript, HTML5 and CSS 3. It's written by the developer of Framework7 and so dovetails with it as expected.
I configured TypeScript to work with the latest version of Framework7. I consider TypeScript to be one of the best creations to come out of Microsoft in some time. They must have an amazing team working on it. It's very powerful and flexible. It helps you catch a lot of bugs and also provides code completion in supporting IDEs. So for my IDE I use Visual Studio Code which is a blazingly fast and silky smooth editor that integrates seamlessly with TypeScript for the ultimate type checking setup (both products are produced by Microsoft).
I use Webpack and Babel to compile the JavaScript. TypeScript can compile to JavaScript directly but Babel offers a few more options and polyfills so you can use the latest (and even prerelease) JavaScript features today and compile to be backwards compatible with virtually any browser. My favorite recent addition is "optional chaining" which greatly simplifies and increases readability of a number of sections of my code dealing with getting and setting data in nested objects.
I use some Ruby scripts to process images with ImageMagick and pngquant to optimise for size and even auto insert responsive image code into the HTML5. Ruby is the ultimate cross platform scripting language. Even as your scripts become large, Ruby allows you to refactor your code easily and make it Object Oriented if necessary. I find it the quickest and easiest way to maintain certain aspects of my build process.
For the user interface design and prototyping I use Figma. Figma has an almost identical user interface to #Sketch but has the added advantage of being cross platform (MacOS and Windows). Its real-time collaboration features are outstanding and I use them a often as I work mostly on remote projects. Clients can collaborate in real-time and see changes I make as I make them. The clickable prototyping features in Figma are also very well designed and mean I can send clickable prototypes to clients to try user interface updates as they are made and get immediate feedback. I'm currently also evaluating the latest version of #AdobeXD as an alternative to Figma as it has the very cool auto-animate feature. It doesn't have real-time collaboration yet, but I heard it is proposed for 2019.
For the UI icons I use Font Awesome Pro. They have the largest selection and best looking icons you can find on the internet with several variations in styles so you can find most of the icons you want for standard projects.
For the backend I was using the #GraphCool Framework. As I later found out, #GraphQL still has some way to go in order to provide the full power of a mature graph query language so later in my project I ripped out #GraphCool and replaced it with CouchDB and Pouchdb. Primarily so I could provide good offline app support. CouchDB with Pouchdb is very flexible and efficient combination and overcomes some of the restrictions I found in #GraphQL and hence #GraphCool also. The most impressive and important feature of CouchDB is its replication. You can configure it in various ways for backups, fault tolerance, caching or conditional merging of databases. CouchDB and Pouchdb even supports storing, retrieving and serving binary or image data or other mime types. This removes a level of complexity usually present in database implementations where binary or image data is usually referenced through an #HTML5 link. With CouchDB and Pouchdb apps can operate offline and sync later, very efficiently, when the network connection is good.
I use PhoneGap when testing the app. It auto-reloads your app when its code is changed and you can also install it on Android phones to preview your app instantly. iOS is a bit more tricky cause of Apple's policies so it's not available on the App Store, but you can build it and install it yourself to your device.
So that's my latest mobile stack. What tools do you use? Have you tried these ones?
For a front end dev like me, using a mobile framework for side projects makes more sense than writing a native app. I had used Apache Cordova (formerly PhoneGap) before (because React Native didn't exist yet), and was happy with it. But once React Native came out, it made more sense to go that way instead. It's more efficient and smooth, since it doesn't have the simulation overhead, and has more access to hardware features. It feels cleaner since you don't need to deal with #WebView, using native UI widgets directly. I also considered Flutter . It looks promising, but is relatively new to the game, and React Native seems more stable for now.
MobileFrameworks #JavaScript NativeApps
- Ios259
- Elegant180
- Not Objective-C126
- Backed by apple107
- Type inference93
- Generics61
- Playgrounds54
- Semicolon free49
- OSX38
- Tuples offer compound variables36
- Clean Syntax24
- Easy to learn24
- Open Source22
- Beautiful Code21
- Functional20
- Dynamic12
- Linux12
- Protocol-oriented programming11
- Promotes safe, readable code10
- No S-l-o-w JVM9
- Explicit optionals8
- Storyboard designer7
- Optionals6
- Type safety6
- Super addicting language, great people, open, elegant5
- Best UI concept5
- Its friendly4
- Highly Readable codes4
- Fail-safe4
- Powerful4
- Faster and looks better4
- Swift is faster than Objective-C4
- Feels like a better C++4
- Easy to learn and work3
- Much more fun3
- Protocol extensions3
- Native3
- Its fun and damn fast3
- Strong Type safety3
- Easy to Maintain3
- Protocol as type2
- All Cons C# and Java Swift Already has2
- Esay2
- MacOS2
- Type Safe2
- Protocol oriented programming2
- Can interface with C easily1
- Actually don't have to own a mac1
- Free from Memory Leak1
- Swift is easier to understand for non-iOS developers.1
- Numbers with underbar1
- Optional chain1
- Great for Multi-Threaded Programming1
- Runs Python 8 times faster1
- Objec1
- Must own a mac6
- Memory leaks are not uncommon2
- Very irritatingly picky about things that’s1
- Complicated process for exporting modules1
- Its classes compile to roughly 300 lines of assembly1
- Is a lot more effort than lua to make simple functions1
- Overly complex options makes it easy to create bad code0
related Swift posts
Hi Community! Trust everyone is keeping safe. I am exploring the idea of building a #Neobank (App) with end-to-end banking capabilities. In the process of exploring this space, I have come across multiple Apps (N26, Revolut, Monese, etc) and explored their stacks in detail. The confusion remains to be the Backend Tech to be used?
What would you go with considering all of the languages such as Node.js Java Rails Python are suggested by some person or the other. As a general trend, I have noticed the usage of Node with React on the front or Node with a combination of Kotlin and Swift. Please suggest what would be the right approach!
Excerpts from how we developed (and subsequently open sourced) Uber's cross-platform mobile architecture framework, RIBs , going from Objective-C to Swift in the process for iOS: https://github.com/uber/RIBs
Uber’s new application architecture (RIBs) extensively uses protocols to keep its various components decoupled and testable. We used this architecture for the first time in our new rider application and moved our primary language from Objective-C to Swift. Since Swift is a very static language, unit testing became problematic. Dynamic languages have good frameworks to build test mocks, stubs, or stand-ins by dynamically creating or modifying existing concrete classes.
Needless to say, we were not very excited about the additional complexity of manually writing and maintaining mock implementations for each of our thousands of protocols.
The information required to generate mock classes already exists in the Swift protocol. For Uber’s use case, we set out to create tooling that would let engineers automatically generate test mocks for any protocol they wanted by simply annotating them.
The iOS codebase for our rider application alone incorporates around 1,500 of these generated mocks. Without our code generation tool, all of these would have to be written and maintained by hand, which would have made testing much more time-intensive. Auto-generated mocks have contributed a lot to the unit test coverage that we have today.
We built these code generation tools ourselves for a number of reasons, including that there weren’t many open source tools available at the time we started our effort. Today, there are some great open source tools to generate resource accessors, like SwiftGen. And Sourcery can help you with generic code generation needs:
https://eng.uber.com/code-generation/ https://eng.uber.com/driver-app-ribs-architecture/
(GitHub : https://github.com/uber/RIBs )
- Android studio is a great tool, getting better and bet176
- Google's official android ide103
- Intelligent code editor with lots of auto-completion37
- Its powerful and robust25
- Easy creating android app5
- Amazing Layout Designer3
- Great Code Tips3
- Great tool & very helpful3
- Easy to use2
- Built in Emulator2
- Keyboard Shortcuts are Amazing Out of the box2
- Slow emulator4
- Huge memory usage4
- Using Intellij IDEA, while Intellij IDEA have too2
- Complex for begginers2
- No checking incompatibilities2
- Lags behind IntelliJ IDEA1
- Slow release process1
related Android Studio posts
As a Engineering Manager & Director at SmartZip, I had a mix of front-end, back-end, #mobile engineers reporting to me.
Sprints after sprints, I noticed some inefficiencies on the MobileDev side. People working multiple sprints in a row on their Xcode / Objective-C codebase while some others were working on Android Studio. After which, QA & Product ensured both applications were in sync, on a UI/UX standpoint, creating addional work, which also happened to be extremely costly.
Our resources being so limited, my role was to stop this bleeding and keep my team productive and their time, valuable.
After some analysis, discussions, proof of concepts... etc. We decided to move to a single codebase using React Native so our velocity would increase.
After some initial investment, our initial assumptions were confirmed and we indeed started to ship features a lot faster than ever before. Also, our engineers found a way to perform this upgrade incrementally, so the initial platform-specific codebase wouldn't have to entirely be rewritten at once but only gradually and at will.
Feedback around React Native was very positive. And I doubt - for the kind of application we had - no one would want to go back to two or more code bases. Our application was still as Native as it gets. And no feature or device capability was compromised.
In my modest opinion, Flutter is the future of mobile development. The framework is as important to mobile as React is to the web. And seeing that React Native does not finish taking off, I am focusing all my efforts on learning Flutter and Dart. The ecosystem is amazing. The community is crazy about Flutter. There are enough resources to learn and enjoy the framework, and the tools developed to work with it are amazing. Android Studio or Visual Studio Code has incredible plugins and Dart is a pretty straight forward and easy-to-learn language, even more, if you came from JavaScript. I admit it. I'm in love with Flutter. When you are not a designer, having a framework focused on design an pretty things is a must. And counting with tools like #flare for animations makes everything easier. It is so amazing that I wish I had a big mobile project right now at work just to use Flutter.
- Android5
- Open Source4
- Easy to learn4
- Great community2
- Javascript2
- IOS2
- Angular.js beta1
- Vue.js beta1
- Native UI1
- Lots of native modules, components, libraries1
- MVC-based1
- Paid plans available1
- Free1
- Write directly to iOS and Android SDK with JavaScript1
- No online IDE1