アプリケーション開発が進化し続ける中で、顧客のニーズに合わせて拡張・進化できるソフトウェアを迅速に提供することが、チームに求められています。
これらのフレームワークは、レイアウト、ロジック、およびアプリケーションのための作業を実行する場所です。
では、どのフレームワークを選べばよいのでしょうか。
Top front-end frameworks
Webブラウザはすべて、HTML、CSS、JavaScriptなどのオープンスタンダードを最もよくサポートしているかどうかを競っています。 異なる Web ブラウザ間で技術が動作するかどうかをテストする必要性は、はるかに少なくなっています。
- Angular
- React
- Vue
- Ember
- Svelte
この後のレビューは、私と私のチームの経験に基づいています。
Angular
Angularは、このリストの中で最も長い歴史を持っていると言っても過言ではありません。 2010年にGoogleによって開発され、その後オープンソース プロジェクトとして公開されました。 このフレームワークは常にアップデートされており、通常6~9カ月ごとに重要なリリースが行われています。 現在のメジャーリリースはバージョン 9.1 です。
長所
Angularには開発者からの強い支持があります。 Angular の開発をサポートするサイトのドキュメントは優れていますし、開発者としては、YouTube にある多くの素晴らしいハウツー動画を見て始めることができます。
また、Angular は進化し続け、ウェブ開発者のニーズを満たしています。
Angularは、MongoDB、ExpressJS、Angular、NodeJSで構成されるMEAN開発スタックの重要なコンポーネントでもあります。
Cons
Angularの古さが問題になることもあります。 2010年には、開発者はモバイルWebアプリを作っていなかったので、数年間はモバイルアプリに対応するためにAngularに追加機能を押し込んでいました。 2016年、AngularはTypeScriptで書き直され、Angular 4としてリリースされました。 オリジナルのバージョンであるAngularJSは、Angularと名前を変えました。
残念ながら、以前のバージョンのAngularは、Angular 4の新しいTypeScriptバージョンと互換性がありません。
結論
Angularは成長し、現代の開発ニーズに適応しています。 このルートを取る場合、Angularアプリの構築には、より新しいAngular 4以降のバージョンを使用してください。
React
多くの開発グループは、ウェブアプリケーションの基本的な基盤として、AngularかReactのどちらかを選択します。 その理由は、理にかなっており、どちらも成熟しているからです。
しかし、AngularがTypeScriptを採用したのに対し、ReactはJavaScriptを多用しています。
Pros
Facebook、Netflix、Dropbox、Airbnb、Redditなどの超大企業が、フロントエンドフレームワークとしてReactを使用しています。 これらのサイトは1日に何百万ものビューを受けています。
さらに、Reactで学んだスキルは、開発者がiOSやAndroidのモバイルOS上で動作するネイティブアプリケーションを構築するために使用できるフレームワークであるReactNativeにも適用されます。
Cons
Reactは学ぶのが簡単ではありません。 アーキテクチャ全体がJavaScriptで構築されているため、Reactを始めるには経験豊富な開発者でなければなりません。
Bottom line
Reactの学習曲線は険しいですが、その結果、最も要求の厳しいWebサイトをサポートできるモジュール式のアーキテクチャが生まれました。
Vue
Vue のセールスポイントは、フレームワークのサイズです。 わずか20KBと、今回のリストの中でも最も軽量なフレームワークの1つです。 Vueのインスピレーションは、オリジナルの開発者がAngularで完成させた仕事から得られました。
Pros
Angularと同様に、Vueを使いこなすのは難しくありません。 HTML、CSS、JavaScriptのスキルを活用することができます。 また、ReactJSと同じように、Vueでテンプレートやコンポーネントを構築することができます。
Cons
多くの開発者は、VueをAngularやReactに次ぐ第3候補のフレームワークと位置づけています。
Bottom line
Vueは、必要に応じて学び、活用できる優れた代替フレームワークです。
4.Ember
Emberは、このリストの中で最も若いフレームワークの1つです。 2011年にリリースされたこのフレームワークは、複雑なWebアプリケーションの構築を支援することに重点を置いています。
- 他のフレームワークと比較して、より高い生産性
- 停滞しない安定性
- HTML5のサポート
これらの原則と継続的な開発により、Emberは現在、Apple Music、LinkedIn、Squareなど、多くの大規模で人気のあるアプリケーションで使用されています。
Pros
モジュール式のアーキテクチャと何百ものプラグインのおかげで、Emberはスタートゲートからすぐに多くのことを与えてくれるフレームワークになっています。
Cons
Emberはモジュールを活用してフレームワークを拡張します。 開発者としての課題は、どのモジュールを使用すべきかを知ることです。
Bottom line
Emberは、React.NativeやAngularと比較して、ウェブアプリやネイティブアプリを構築するための成熟した安定した選択肢として急速に進化しています。
Svelte
Svelteはアンチフレームワークのフレームワークです。 フレームワークの中には、スクリプトを実行するために大量のコードベースが必要になるなどの問題があります。
例えば、Svelteで書かれたシンプルなTo Do MVPアプリの重さは3.6KBですが、Reactで書かれた同じアプリはトップで45KBと10倍の大きさになっています。
Svelteが小さなアプリを作ることができるのは、アプリケーションを構築するためのモデルを採用しているからです。
Svelteでは、CSS、HTML、JavaScriptでコンポーネントを記述し、それをSvelteがJavaScriptモジュールにコンパイルしていきます。 その結果、ブラウザの負担が軽減されます。
長所
JavaScriptモジュールは、あらゆるJavaScriptアプリケーションを高速化する効果的な方法です。 Svelteがもたらすアプローチは、アプリケーションの効率性を高めることです。
Cons
多くのWeb開発者は、JavaScriptモジュールを扱ったことがありません。
Bottom line
SvelteはWebアプリ開発に興味深いアプローチを提供しています。 JavaScript モジュールを使って作業することにはメリットがあり、Svelte が提供するモデルは、開発者が試してみるべきものです。 とはいえ、Svelteはドキュメントが少ない。
Web アプリを超えて
これらのフレームワークの焦点はWebアプリですが、それはもはや私たちが住んでいる世界ではありません。 最近のアプリ開発では、バックエンドのフレームワークやアクセラレータも大きな役割を果たしています。
重要なアクセラレータには、クラウド、オープンソース・ツール、DevOps手法、セキュリティなどがあります。 しかし、多くの意味で最も重要なアクセラレータは、あなたのマインドセットです。 現代の開発者は、顧客の増え続ける要求に応えるために、デリバリーモデルを継続的に改善するための絶え間ない学習のマインドセットを採用しなければなりません。
あなたは、顧客が使用するすべてのプラットフォームでスケールできるソリューションを効果的に提供できなければなりません。 フロントエンド、バックエンド、そしてアクセラレータの力を結集することで、あなたは必要なエッジを手に入れることができるのです。