Ionicとは
公式サイトには「Build amazing apps in one codebase, for any platform, with the web.」Google翻訳で「どのプラットフォームでも、Webを使って1つのコードベースですばらしいアプリケーションを構築できます。」
具体的には
- Webサイト(SPA)ができる
- buildしてiOSプロジェクトを出力できる
- buildしてAndroidプロジェクトを出力できる
Webサイトも作れるし、クロスコンパイルでApp Store、Google Playに登録できるアプリも作れるような素晴らしいフレームワーク。ちなみに中身はAngular。
読んだ書籍について
Angularについて知識があったので、実行しながらでも8時間ぐらいで終わりました。環境構築からリリース方法まで記載されています。対象OSとしてMacが指定されていますがWindowsでも問題ありませんでしたね。正直内容としては薄いですが、公式の英語tutorialで間違った解釈をしたりブログを漁ったりするより費用対効果は良いですね。
別途Angularも勉強しないといけない
この書籍だけではアプリを作るのは厳しいです。Ionicの機能が主なのでAngularの解説についてはほぼ皆無です。またIonicコンポーネントについての解説も薄いので公式サイトを見る必要は当然あります。全コンポーネントの解説してたら辞書になるので当然と言えば当然でしょう。
Angularとの違い
感じたことを雑にまとめ。
pageと言うコンポーネントがある。(Angularには無い)。メインとなる画面ページを作るのがpage、細かく機能を分けたければcomponentやdirectiveを実装しpage内に実装していく感じ。
画面遷移がIonicのnavigationになります。画面全体を描画するまさしくスマホアプリ。画面遷移に近い機能としてサイドメニューなども用意されているので変態サイトを作らない限りIonicが提供している機能で十分。
AngualrのserviceはIonicではproviderと呼ばれています。機能は同じ。
ionic generateコマンドが用意されているがng generateと違いディレクトリの指定ができない(たぶん)。pipeやdirectiveなどのディレクトリが自動で作成され、そこに、すべて詰め込まれるのでソースディレクトリ階層が浅くいので非常に見難い。手動でディレクトリを掘ることもできるだろうけど。ん~。って感じ。
暗黙的?にいくつかのprovider(Angularのサービス)が実装されている。app.module.tsなどに登録されていなくてもIonicの機能が使える。navigation系がメイン?
気が向いたらスマホアプリも作ってみたい
BLEもあるので、そのうちスマホアプリ作るかもしれへん。