【翻訳】Ionic 2.0.0 正式リリースのお知らせ

本記事は、THE OFFICIAL IONIC BLOGの「Announcing Ionic 2.0.0 Final」の翻訳記事となります。
なお、翻訳内容の多くは我らがGoogle翻訳に頼ったものであり、更に多くを意訳しておりますので、ぜひ興味を持たれた方は原文に当たっていただければと思います。


Ionic 2.0.0 正式リリースのお知らせ

今日、Ionic Framework 2.0.0のリリースを発表できることにとてもわくわくしています。

Ionic Framework 2.0.0について話す前に、少しだけ昔話をします。

2015年3月、IonicチームはIonic2の構築に着手しました。JavaScriptとWebテクノロジーにすぐやってくる近い未来を見据えて、Angular1のモバイルフレームワークであるIonic1での教訓を取り入れるまたとない機会を得ることになったのです。

私たちは2014年に構築したIonic1を非常に誇りに思っていました。Ionic1は、企業向け業務用アプリから、何百万人ものユーザーがいる人気ソーシャルアプリまで、100万を超えるアプリに利用されました。おそらく最も重要なのは、Ionic1は、モバイル開発とは異なった領域にいるWebエンジニアが、キャリアとスキルセットを全く変化させることなく(訳注:C++やSwiftを覚えることなく)モバイルアプリ開発者となることができました。ソフトウェア開発の領域において「Webエンジニア」のスキルの枠を更に広げることに成功したのです。

また、当時、JavaScriptが、刺激的な新機能と強力な機能を備えた言語へと進化しようとしている時でした。ES6は、可読性が高まることによって開発者はコードを共有しやすくなり、今まで以上に複雑なオブジェクト指向の開発ができるようになる新しい未来を示しておりました。

この頃、私たちはAngularチームに、Angular2.0でIonicを再構築できないかとアプローチを受けておりました。彼らにとって、最も人気のあるAngularベースのOSSプロジェクトであるIonicが、次世代となるAngular2を受け入れることができるかはとても重要なテーマだったのでしょう。私たちは、Angular2上に次世代のIonic Frameworkを構築することと、Angularチームと緊密に協力することを決めました。

正直に言うと、私たちはこの1年半の間、その決定に対して何度も疑問を呈しました。

率直に言って、Angular 2.xは期待していたよりも安定するのに時間がかかりました。Angular 2.xに追随していた他のフレームワークがプロジェクトを断念する様子をみました。APIは絶えず変化しており、機能は安定せず、私たちのストレスは溜まるばかりでした。

私たちの誰もが完成予想図を持っていませんでした。Angularチームは、新しい技術要素を先駆けて開発し、その時点では「これは開発者は混乱するだろう」という選択をしたりしましたが、今振り返って考えてみるとそれは最善手でした。TypeScriptは、Angular開発者をJavaScriptネイティブから遠ざけざる得ないような危険な選択でした。標準のES6変換ツールを使用しないのは、JavaScriptコミュニティの基準を拒否したようなものです。Reactが採用したJSXのような代替手段の代わりにHTMLを使うことは、過去に執着するように感じました。実験的なDecoratorを使用することは、将来それが標準規格となるかもしれない不確実な未来を前提としたものでした。

しかし、最終的にはAngularチームのこれらの決定は最高のものでした。現在Angular以外でも様々なところでJavaScriptのエコシステムとしてTypeScriptを採用しています。変換ツールは新たに生まれ、消えていってしまっています。HTMLは柔軟な最高のマークアップ言語であることを再び証明しました。Decoratorは重複したコードを大幅に削減し、強力な新しいメタプログラミング機能を追加しました。AngularチームはFrontend Frameworkがどのように機能するかビジョンを持っており、最初は誤解を恐れなかったことがとても素晴らしいです。
 
Ionicチームの全てのメンバーは、Web開発が大好きで、趣味ともしています。このことはとても重要であり、私たちは技術の評価とプロダクトへの採用についてはシビアに判断します。Ionicチームの中には、React、Vue、Angular 1、Ember、Vanilla JSなどの熱烈なファンがいます。
しかしながら、私たち全員がAngular、TypeScript、Ionicがとても大きく進化したと考えており、大まかな移行にも関わらず今回の技術の組み合わせを大絶賛しています。

それでは、すべての新しいIonic Frameworkを掘り下げてみましょう:

Ionic2の新機能

Ionic2の開発をずっと追ってきた人にとっては、Ionic 2.0.0はすでに知ってるIonic2のリリース版に過ぎません。Ionic2をはじめて知った方、またリリース版を辛抱強く待っていた方(ありがとうございます!)にとっては新たな発見や変更をみつけることができます。私たちは、きっとIonic2を気に入ってくれると思っております。

新しいComponents、API、ドキュメント

Components

Ionic2は、モバイルアプリを作成するための新たなクロスプラットフォームのComponentsを持っています。(訳注:リンク先にComponentsの一覧があります)
100%のMaterial Designをサポートしており(FAB buttonもありますよ)、モーダルウインドウ、メニュー、トーストや新たなナビゲーションシステムがあります。ブラウザでも動作可能なDateTimePikerをはじめとして新たなFormコントロールも新たに開発しました。

IonicNative

私たちは、全てがPromiseとObservablesのどちらかに対応したWeb APIライクな70以上のNativePluginをIonic Nativeとして統合しました。

Theme

私たちは、Themeをすべて刷新しました。これまで通りか、これまで以上に最小のコードで思い通りにアプリの外観をカスタマイズすることができます。
Ionic2は、iOS、MaterialDesign、Windowsの3つの異なるモードをサポートしています。各モードは、それぞれのプラットフォーム標準の外観となりますので、ユーザは期待通りのUXを得ることができます。Sass変数を仕様するか、Components自体に属性を追加することによって、それぞれのデザインは自由に変更することができます。

DefaultThemeは、最初からアプリに含まれています。IonicのSass変数にあなたが選択した色を設定したことによって、オリジナルテーマをつくることができます。また、Ionicチームでも、DefaultTheme以外にもThemeを用意したいと考えています。DarkThemeが近い未来のテーマです!!

Webサイトとドキュメント

Ionic FrameWorkのWebサイトのリニューアルは完了しており、徹底的に見直されたドキュメントでIonic2について確認することができます。

強化されたパフォーマンス

Ionicの最も優れた機能の1つは、Web標準とAPIを使用して、さまざまなプラットフォーム上で、1つのコードベースでうまくいくようなアプリケーションを構築するのに役立ちます。(訳注:ハイブリッドアプリをつくることができることを指します)

Ionic2では、AndroidとiOSの両方において、60FPSのJavaScriptを使ったスクロールをすることができます。私達の新しいVirtual Scrollは、大量のリストを(画像がついていても!)最小限のパフォーマンスでアニメーションを描画しながらスクロールすることが可能です。

全ての新しいレンダリングとIonic2のComponentsは、レイアウトのスラッシング(メモリ不足)につながる再描画をなくしました。これは歴史的にWeb開発者にとって厄介な問題の原因でした。Ionic2のComponentsは、will-changeやCSSのカプセル化、受動的なevent listernerなどのAngularの新機能と新しいWebAPIの両方を使用して、変更されたviewのみを再描画します。

チームでは、レンダリング問題を突き詰めるために、Chromeで利用できる新しいツールをを使いました。このことについては、いくつかの事例で公開してきたとおりです。

そして最後に、Ionic2が新しいAngular上に構築されたという単純な事実は、Angular1時代とくらべてかなり早くなったという、とても大きな変化をもたらします。すべてのIonic2でつくられたアプリはこの改善によるメリットを享受することができるようになります。

結論:パフォーマンスは当社の最優先事項であり、ここ数年の間にウェブパフォーマンスを向上させることができました。Ionicアプリ(およびその開発者)は、AoTによって事前コンパイルされたComponentsと機能を目一杯に活用して、パフォーマンスを最大限に引き出すことができます。Ionic2の最大のメリットの1つは、低レベルのWeb APIを抽象化し、パフォーマンスの落とし穴なしで簡単に使用できることです。

お問い合わせ