如果您是初学者并且想要制作一些移动应用程序,但是您对移动应用程序开发提供的技术和框架感到困惑,或者如果您只是想知道flutter从其竞争对手那里提供了哪些优势,那么本文适合您。如果开发人员想开始移动应用程序开发,那么他/她可以获得有关应用程序开发市场中最佳趋势和技术的大量选择。仅列出所有主要的应用程序开发技术,即React Native、Xamarine Forms、 Ionic、Cordova、ASP.NET和Angular 。有这么多可供选择的选项,选择一个可能是一项艰巨的任务,如果在没有适当知识的情况下完成,可能会导致浪费时间甚至业务损失。在这里,我们将比较flutter将所有主要的移动应用程序开发框架和技术。在文章的最后,您将清楚地了解flutter与其他技术相比为开发人员提供了哪些优势,以及它必须提供的未来承诺是什么。
什么是Flutter?
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.
这就是 Google 喜欢定义Flutter。
Flutter is a user interface software development kit for developing android, ios, web and desktop applications from a single codebase.
这就是我定义flutter。它不仅仅是另一个承诺跨平台应用程序开发的古怪框架,而且谷歌工程师和社区正在努力实现从单一代码库使flutter跨平台,几乎不需要修改的目标。它不仅仅是一个框架,而是一个完整的软件开发工具包,其中包含渲染引擎、CLI(命令行界面工具)、开发人员工具、完全可修改的小部件、测试、具有插件支持的高级调试、小部件树检查器、API 集成等等更多的。
目前, flutter已经发布了 1.22 版本。它包括对 iOS 14 和 android 11 的支持。Flutter 对 web 的支持已进入测试状态,但预计其稳定版本将在 2021 年中期准备就绪。它对 windows 的支持处于 alpha 阶段目前的状态。
Flutter 的卖点:
- 快速发展:Flutter有很多的方法可以帮助开发人员为应用程序的快速生产和部署诸如自带内置有flutter脱机文件,许多重要的布局和应用程序的元素预建是flutter作为小部件,最关键的是有状态的热重载,它使应用程序能够在不到一秒的时间内重建,从而节省了大量时间。
- 富有表现力和灵活的 UI:好的 UI 必须是任何应用程序开发技术的关键特征。但flutter将其提升到了另一个层次,借助其快速交付功能(例如材料设计),这使得应用程序以最少的努力看起来很好。
- 原生性能:关于flutter的最好的事情之一是它是开源的,它让任何有足够智慧的人都可以在flutter工作以改进它。这导致flutter实现了突破性的性能,很多时候与原生应用程序一样好。
- 跨平台操作: flutter最好的一点是在构建移动应用程序的同时,您还可以获得一个也适用于 Web 和桌面的应用程序。
对比表:
下面的比较表概述了Flutter的最佳可用替代方案。第一个表包含Flutter、React Native、Xamarin 和 ionic 之间的比较:
Basis Of Comparison | Flutter | React Native | Xamarin | Ionic |
Initial release | 2017 | 2015 | 2011 | 2013 |
Owner / Maintainer | Microsoft | Drifty.co | ||
Open-source | Yes | Yes | Yes | Yes |
User Interface | Propriety Widgets | Native Components | Native Components | Hybrid Components |
Programming Language | Dart | JavaScript | Objective C & XAML | JavaScript |
Documentation | Clear, well structured, and extensive | Extensive | Extensive | Well Structured but not extensive |
Version | Flutter – v1.7.8 | React Native- v0.60 | Forms – v4.3 | Ionic – v5.3.4 |
App Performance |
Higher. Flutter 60 fps or 120 fps animation. Flutter itself paints and controls every single pixel on the screen. |
High. It requires the javascript bridge to interact with the native components. |
Slower than React Native and flutter. |
It is not as performant as flutter, even though it is powered by javascript. |
Industry Adoption |
Xianyu, GoogleAdds, Hamilton, Reflectly, BMW, Alibaba, Ebay, Capital one, Square |
Facebook, Instagram, Walmart, Skype, Linkedin, Airbnb |
Fox Sports, Olo, Pinterest The World Bank, Microsoft |
McDonald’s Turkiye, NationWide, McLaren Automotive, HoneyFi |
Community |
Github start: > 111000 Forks: > 15000 Closed issues: > 40,000 |
Github start: > 93000 Forks: > 20000 Closed issues: > 19700 |
Github start: > 5100 Forks: > 1900 Closed issues: > 5400 |
Github start: > 42000 Forks: > 13000 Closed issues: > 17000 |
Number of Developers | > 2 million | > 3 million | > 700 thousand | > 1.3 million |
Hot reload | Yes | Yes | Yes | No |
Installation and configuration |
More straightforward, has automated checkup of the system problems. |
Lacks in streamlining setup and configuration. |
Easy to install but doesn’t have the automatic system updated and problem checkups. |
Installation is easy but it requires Cordova. |
Supported IDEs |
Android Studio, IntelliJ IDEA, Visual Studio Code |
Most of the IDEs | Visual Studio, XCode, Xamarine.Studio | VS Code, Atom, Web Storm, ALM |
现在让我们采用其他 Flutters 替代方案并比较它们,例如 Cordova、ASP.NET、Angular 和 Native Script:
Basis Of Comparison | Cordova | ASP.NET CORE | Angular | Native Script |
Initial release | 2009 | 2016 | 2016 | 2014 |
Owner / Maintainer | Adobe | Microsoft | Progress Software | |
Open-source | Yes | Yes | Yes | Yes |
User Interface | Native screen that holds web view | Native components | Hybrid components | Native components |
Programming Language | JavaScript | C++, C# | JavaScript / TypeScript | JavaScript / TypeScript |
Documentation | Well Structured but not extensive | Not structured | Not structured | Well Structured but not extensive |
Version | v9.0.0 | v5.0.0 | v11.00 | v7.0.13 |
App Performance |
As it uses web-view embedded in the native screen it is no were near the to the flutter’s performance. |
Not as robust as flutter. |
Similar to other frameworks that are powered by javascript, it also not as performant as flutter. |
High-performance equivalent to flutter. |
Industry Adoption | Facebook, Salesforce, IBM, Microsoft | Alibaba Travels, ViaVarejo, Queue-it. | Gmail, PayPal, Deutsche Bank, Forbes | FinTech Consortium, Beachy, GeekyAnts |
Community |
Github start: > 3100 Forks: > 1500 Closed issues: > 400 |
Github start: > 20000 Forks: > 6000 Closed issues: > 17000 |
Github start: > 111000 Forks: > 15000 Closed issues: > 40,000 |
Github start: > 19000 Forks: > 1500 Closed issues: > 5000 |
Number of Developers | > 1.3 million | > 100 thousand | > 400 thousand | > 700 thousand |
Hot reload | No | Yes | Yes | No |
Installation and configuration |
Simple but doesn’t have the automatic system updated and problem checkups. |
Simple but doesn’t have the automatic system updated and problem checkups. |
Easy installation and configuration. | Easy installation and configuration. |
Supported IDEs | Visual Studio Code, Netbeans, Intex XDK, JetBrains WebStorm | Visual Studio Code, Rider |
Angular IDE, Webstorm, VS Code, Sublime Text, Brackets, Atom |
WebStorm, Vim, IntellijIdea |
加起来
有移动应用开发许多选择在那里,我们看到了一个flutter的从顶部移动开发框架和SDK的比较。
- 尽管flutter是其竞争对手中的最新技术,但它已经准备好与 React Native 等行业领导者进行非常激烈的竞争。 React Native 在某些方面优于flutter,例如它由最常用的编程语言 javascript 提供支持,因此减少了学习曲线,另一个将是它的社区支持作为市场采用。由于 React Native 已经上市很长时间,许多大公司由于其稳定性而更喜欢它而不是flutter 。但是整体flutter也不落后,它正在风靡一时,并且社区维护得很好,原因可能是它的google产品。几年之内, flutter 的所有主要问题都将得到解决,它将成为市场领导者。
- 将flutter与 Xamarin 进行比较,Xamarin 拥有的功能很少会吸引新的开发人员使用它。由于它自 2011 年以来一直在市场上,许多大公司已经与 Xamarin 落户。尽管flutter是一项诱人的技术,但移动数百万人使用的整个应用程序并不是一件容易的事。
- Ionic也是一个很好的flutter竞争者,但不如 React Native。 Ionic也是用 JavaScript 编写的,这使得 Web 开发人员可以更轻松地直接切换到它。 Ionic已被用于 Nationwide 和麦当劳等许多大公司的技术堆栈中。它无法超越flutter是文档和社区支持。
- Cordova 自 2009 年以来一直在市场上,但它远未成为应用程序开发技术的市场参与者。虽然与其他框架相比,它使用 HTML、CSS 和 JS 很容易接近,但主要缺点是它的性能和社区支持。
- ASP.NET 已经使用了近 20 年,因此 ASP.NET Core 对于移动应用程序开发或跨平台应用程序开发来说听起来是一个非常好的主意,但事实并非如此。它是用 C++ 和 C# 编写的,但世界已经开始将 javascript 作为最受欢迎的语言。 flutter可以轻松破坏 ASP.NET Core 的领域将是文档和性能。
- Angular 也是谷歌的产品。它还由 javascript 提供支持,使其成为大多数开发人员的方便选择。但是谷歌和开发者社区都没有给它足够的时间和精力,使它成为应用程序开发的最佳选择。它没有被彻底记录下来,它的混合 UI 组件也没有像flutter那样高性能。
- NativeScript 也是使用 JavaScript 和 typescript 的包的一部分。它从 2014 年开始被标记,但是随着 React Native 和Ionic,它受到了竞争的影响,导致开发人员没有得到足够的曝光。即使它使用像 React Native 这样的原生组件,它仍然没有提供可比的性能。
综上所述,我们可以说flutter不仅在ios和android应用开发领域,在跨平台应用领域也是一颗冉冉升起的新星。