Hummingbird vs Angular Dart
Hummingbird は、12月4日の flutter ローンチイベントで発表されました。 私たちの flutter アプリケーションを本格的な Progressive Web Apps にコンパイルすることを可能にするプロジェクトです。
まず、この2つを実際に使えるかどうかという点ですが、Angular Dartの場合は「Angular Dartの方が使い勝手がいい」、Hummingbirdの場合は「Hummingbirdの方が使い勝手がいい」ということで、この2つを使い分けました。
Angular Dart
Current version of AngularDart is 5.2.0. 安定しており(ここ数年)、Google のインパクトの大きいプロジェクトや、世界中のプロジェクトで使用されています。
Hummingbird
Hummingbird は現在アルファであると言う人もいるでしょう。 しかし、私たちが持っているのは技術的な概要だけです。 チームが考えている技術的な方向性を徹底的に議論した、何よりも提案です。 (こちら:https://medium.com/flutter-io/hummingbird-building-flutter-for-the-web-e687c2a023a8)
実際に何をするのか?
ご質問ありがとうございます!とあります。 Single Page Application とは何か、Progressive Web Application とは何かを理解し、Angular と Hummingbird の期待されるアウトプットを見るようにします。 これは、これらの製品が解決しようとする問題を理解するのに役立ちます。
SPA vs PWAs
Single Page Applications
シングル ページ アプリケーション(SPA)は、サーバーから新しいページ全体をロードするのではなく、現在のページを動的に書き換えることによってユーザーと対話する Web アプリケーションまたは Web サイトである。 – Wikipedia
URL に含まれる #
という文字は、ページを再読み込みする代わりに、ページ内で何らかの対話を引き起こします。
Wikipedia の例では、インデックス内の見出しをクリックすると、ページがリロードされる代わりに、ブラウザがページのそのセクションに移動します。
- https://www.wikiwand.com/en/Single-page_application#/Ajaxへ移動
Ajax
をWebsockets
へ変更して Enter キーを押します。 いいえ、単純に設定を変更するだけです。
SPA はこれを次のレベルに進めています。 アプリケーション全体とそのすべての画面は、すべての機能に対して #
ベースの URL を使用して 1 つのページから動作します。
PWAs
Progressive Web Apps は、Web のリーチを持ち、信頼性と速度と魅力があるユーザー体験
– developers.google.com になります。com
PWA は、特定の方法で最適化された Web サイト (通常の Web サイト、またはシングル ページ アプリ) で、
- オフラインでも信頼性の低いインターネット (Lie-Fi) でも確実に動作する
- 高速で高い知覚パフォーマンスに最適化されている
- Engaging -ネイティブ アプリケーションと同じ感覚で、決して妥協しない。
AngularDartは何をするのか?
AngularDartまたは一般にAngularは、SPAを書くためのフレームワークです。 開発者に、次のような機能を持つ SPA を書く方法を提供します:
- Bidirectional Data Binding
- Routing
- Templating
- Directives
そしてもっと多くの機能です。 実際の UI は、これまでどおり HTML + CSS で記述します。 Angular は、Web 開発者が SPA を開発できるようにするための他のすべてを提供するだけです。 要点:
- Angular Dart は UI Framework ではない
- Angular Dart アプリは PWA であるかないか
それでは Angular Web Components とは? angular_components
パッケージが提供する多数のマテリアル デザイン コンポーネントは、アプリケーションを構築するテンプレートとして機能するものです。
- これらは Internet Explorer ではサポートされていません
- これらはまだ HTML + CSS + Dart で書かれています
ハミングバードは何をするのでしょうか?
今のところ単なる推測に過ぎません。 あらゆる flutter アプリケーションを PWA に変換することを目指すでしょう。 SPA である可能性もありますし、そうでない可能性もあります (おそらくそうなるでしょう)。
これを使えば、Flutter UI Frameworkを使い、状態管理ウィジェットなどのflutter SDKの機能をすべて使い、ワンクリックで、すでにあるAndroidやiOSアプリと一緒にPWAを作成できる!
途中には多くの課題があるが、Googleがこれを実現すれば、SDKのすべてとなるであろう。
オールDartアプリの状況
Flutter + AngularDart と Flutter + Hummingbird の違いを理解して、もし我々がオールDartを書くとすれば、Flashはどのようになるでしょうか?ウェブとネイティブのためのアプリケーションのダーツセット。
the present: Flutter + Angular Dart
このようなアプリケーションを書くために、私たちは以下のことを行う必要があります。
- すべてのビジネス ロジックを含むコア パッケージを書き、それが Angular や Flutter の依存性を持たず、そのような依存性はすべて外部から注入されるようにする
- すべての機能のコアを購読する Angular PWA を書く
* HTML + CSS による UI または Angular コンポーネントの構成
* Routing, state management with Angular way of things - Write a Flutter Application subscribing to the same core for all functionalities
* UI with the flutter UI framework
* Routing, State Management etc with the flutter way of things - Compile to iOS and Android from the flutter project
- Compile to Web from the Angular Project
Code Sharingは作業量を減らすか?
コード共有により「コードの量」は間違いなく減りますが、私の経験では、行う必要のある仕事の量はあまり減っていません。
では、どのような利点がありますか。
- Code is cleaner and the architecture is better
- I was forced to, and it’s easier to maintain feature parity across platforms now.
Code sharing has definitely reduced “code amount”, while I have been fully thoughtful in the process,
What is you need for you to have been upgraded to do.
THE FUTURE: Flutter + Hummingbird
Flutter アプリケーションを書くために必要なこと:
- Write a flutter application
* UI with the flutter framework
* Routing, State Management etc the flutte way - Compile on three different platforms
- Done.The Future for a application will have been to do it.
作業量は減ったか?
Hell yeah!
Conclusion
そこにあるのは、これです。 flutter、angular dart、hummingbird、コードの共有について知っていることの内訳です。
今、何かを開発しているなら…
flutter + angular dartを目指しましょう。 ハミングバードの夢ほど簡単ではありませんが、それでもベストな方法です。
今現在のハミングバードは遠い夢です。 いつの日か必ず実現することを願い、全力でサポートすべきプロジェクトですが、Dilli abhi door hai
(その未来は遠い)
。