1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ionic Framework / Capacitor / StencilAdvent Calendar 2022

Day 15

Angularアプリの一部にIonicコンポーネントを使う方法

Last updated at Posted at 2022-12-14

Ionic Frameworkは「モバイルアプリのUIをWebで再現できるUIフレームワーク」として多くのアプリ開発の現場で利用されているのは広く知られているところです。Ionic teamがIonic Conferenceの時にだした次のConference Appをみると、その再現度の高さに気づけるかと思います。

しかしWeb開発の現場において、モバイルアプリ開発はニーズのごく一部に過ぎません。ストアに配信するアプリではなく、ブラウザのみで配信することも多いでしょう。そういう案件によっては、Human Interface GuidelinesやMaterial Designに沿って、プッシュ遷移・ポップアップ遷移までは求めることはありません。

しかし、近年モバイルUIとWeb UIの間の境はほとんどなくなってきており、Web UIにおいてもToastやAction Sheet、Floating Actionといったモバイル起源のUIを使うことも増えてきました。そこで、本記事ではアプリの一部にIonicコンポーネントを使う方法をご紹介しましょう。IonicのUIコンポーネントはすべてがLazyLoadingになっているので、追加してもアプリ立ち上げ時に必要なbundleサイズにはほとんど影響しません!

はじめ方

scriptタグではじめる

おそらく現代でフロントエンドを行うほとんどの人にニーズはありませんが、まずは懐かしのscriptタグではじめる方法を整理しましょう。

Ionicは導入検討をすばやく行うために、CDN「jsdelivr」を使ってコンポーネントの配信をしています。これをタグで読み込むだけで使い始めることができます。あなたのプロジェクトに追加するのは、以下のたったの3行だけです。

<script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.esm.js"></script>
<script nomodule src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/ionic.bundle.css" />

1行目は[type=module]ですので、ES Module対応ブラウザのためのものです。2行目はnomoduleですので非対応ブラウザのためのスクリプトを読み込みます。まぁ、こうやって対応ブラウザをみると2行目はもう必要ない気もしますが、公式ドキュメントに残っているので案内しておきます。

そして、3行目はIonicデフォルトのスタイルシートを読み込みます。これには以下のすべてが含まれています。

用意するのはこれだけ。簡単ですね。

ng addではじめる

Angularだともっと簡単にはじめることができますね。

% ng add @ionic/angular

ng add で何が行われるかは以下の通りです。

  • @ionic/angulardependencies にインストール
  • @ionic/angular-toolkitdevDependencies にインストール
  • ngModuleIonicModule.forRoot() を設定(import)
  • 必要なスタイルシートを angular.json に設定
  • IonIconを使うために、必要なsvgファイルを angular.json に設定
  • Ionic CLIを使うことができるように、 @ionic/angular-toolkit などを angular.json に設定

実際に何が行われるかを知りたい人は以下をご覧ください。

シンプルにはじめることができますよね。

コンポーネントを使ってみる

それでは試しにコンポーネントの中にIonicのタグをつかってみましょう。比較的人気の高い、skelten-textを導入してみます。

<ion-skeleton-text [animated]="true" style="width: 80px"></ion-skeleton-text>

これだけでアニメーションのついたスケルトンテキストが表示できました。簡単ですね。

5fbb0f377966fc7cec3baa7b33d1ed82.gif

(このgifアニメーションは複数のskelten-textを組み合わせています)。

おわりに

この設定だけで、以下のすべてのコンポーネントを利用することができるようになります。しかもUIコンポーネントはLazy Loadingなので、少ないコストで!!

本稿では「一部にIonicコンポーネントを使う」としましたので、これだけだとAngularのRouterをハックしたプッシュ遷移などはできませんが、それでもIonicのコンポーネントのすばらしさと使いやすさを体験してもらえると思います。

ぜひAngularプロジェクトのUIコンポーネントのひとつにIonicを候補として検討してもらえればと思います。

それではまた!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?