Hummingbird 对比 Angular Dart:该选择哪个?

Hummingbird在12月4日的flutter发布会上宣布。这个项目将容许咱们将咱们的fulluer应用程序编译成完整的渐进式Web应用程序。那么...... Angular Dart还值得吗?web

我将尝试分享到目前为止我收集到的信息,但愿个人发现也能帮助其余人。浏览器

他们都准备好了吗?

第一个问题是咱们是否能够实际使用这二者。架构

Angular Dart

当前版本的AngularDart是5.2.0。它是稳定的(已经有几年了),用于谷歌的高影响力项目,以及世界各地的项目。app

Hummingbird

有些人会声称Hummingbird目前处于其阿尔法状态。可是,咱们所拥有的只是技术概述。更多的声音是比团队完全讨论他们正在考虑的技术方向的任何其余建议。 (连接框架

自2019年1月5日起,没有什么能够测试的

他们实际上在作什么

很高兴你问!咱们将尝试了解单页应用程序是什么,渐进式Web应用程序是什么,并查看Angular和Hummingbird的预期输出。这将有助于咱们理解他们打算解决的问题。socket

SPAs vs PWAs

单页应用程序

A single-page application (SPA) is a web application or web site that interacts with the user by dynamically rewriting the current page rather than loading entire new pages from a server. — Wikipedia性能

包含在URL中的字符#,而不是致使页面从新加载,将致使页面内的一些交互。 SPA使用此浏览器特性。测试

例如,在维基百科中,若是咱们点击索引中的标题,而不是页面从新加载,浏览器会将咱们带到页面的该部分。优化

SPA正在将其提高到新的水平。整个应用程序及其全部屏幕使用基于#Based的网址从单个页面开始工做,以实现其全部功能。网站

PWAs

Progressive Web Apps are user experiences that have the reach of the web, and are reliable, fast and engaging — developers.google.com

PWAs是以某种方式优化的网站(能够是常规网站,也能够是单页应用)

  • 离线和不可靠的互联网(Lie-Fi)可靠地工做
  • 快速,优化以得到高感知性能
  • 参与 - 感受就像一个本机应用程序,并无少其余功能。

AngularDart作了什么?

AngularDart或Angular一般是编写SPAs的框架。它为开发人员提供了一种使用如下功能编写SPA的方法:

  • 双向数据绑定
  • 路由
  • 模板
  • 指令

以及更多。实际的UI仍然使用HTML + CSS编写。 Angular仅提供使Web开发人员可以开发其SPA的全部其余功能。要点是:

  • Angular Dart不是UI框架
  • Angular Dart应用程序能够是也能够不是PWAs

那什么是Angular Web Components呢?

它们是由angular_components包提供的一组材料设计组件,它们充当用于构建应用程序的模板。

  • Internet Explorer不支持它们
  • 它们仍然是用HTML + CSS + Dart编写的

Hummingbird会作什么?

到目前为止,这只是猜想。它的目标是将任何flutter应用程序转换为PWA。它多是也可能不是SPA(最有可能)。然而,它会尝试作全部那些原来flutter作的事情。

有了它,咱们可使用Flutter UI框架,使用全部flutter的SDK功能,如状态管理小部件和全部......只需点击一下,就能够生成咱们已有的Android和iOS应用程序的PWA!

在此过程当中存在许多挑战,但若是Google意识到这一点,那将是SDK的全部功能。

All-Dart应用程序的状态

让咱们尝试理解Flutter + AngularDart和Flutter + Hummingbird组合之间的区别,若是咱们要为web和native编写一套全套的应用程序。

Flutter + Angular Dart

要编写这样的应用程序,咱们须要:

  • 编写一个包含全部业务逻辑的核心包,确保它没有angular或flutter的依赖关系,全部这些依赖关系都是从外部注入的

  • 编写Angular PWA订阅核心以获取全部功能

    *使用HTML + CSS或组合angular组件的UI

    *路由,状态管理与Angular的服务方式

  • 编写一个Flutter应用程序,为全部功能订阅相同的核心

    *具备fltter UI框架的UI

    *路由,状态管理等,用颤抖的方式作事

  • 从flutter项目编译到iOS和Android

  • 从Angular项目编译到Web

代码共享是否会减小工做量?

虽然代码共享确定会减小“代码量”,但根据个人经验,它并无真正减小须要完成的工做量。这须要我在整个过程当中更加周到。

那有什么好处呢?

  • 代码更清晰,架构更好
  • 我被迫,如今更容易在各个平台上维护功能奇偶校验。

将来:Flutter + Hummingbird

要编写这样的应用程序,咱们须要:

  • 写一个flutter应用程序

    *带有flutter框架的UI

    *路由,状态管理等flutter方式

  • 在三个不一样平台上编译

  • 完成

##工做少了吗? 固然不是~好吧!

结论

这就是咱们对flutter,angular,hummingbird和彼此共享代码的了解细分。

若是你如今正在开发什么东西......

使用flutter + angular dart。它不像hummingbird想得那么容易,但仍然是最好的方式。

到目前为止,hummingbird是一个遥远的梦想。一个项目,咱们必定但愿有一天可以取得成果,并对得起咱们全部的努力,但将来仍旧是遥远的。

相关文章
相关标签/搜索