メインコンテンツまでスキップ
バージョン: v8

基本的な考え方

Ionic アプリの開発に慣れていない人には、Ionic プロジェクトの背景にある基本的な哲学、概念、およびツールについて知ることが、理解を深めることに役立ちます。複雑なトピックに入る前に、Ionic Framework とは何か、そしてそれがどのように機能するかについての基本を説明します。

UI コンポーネント

Ionic Framework は、アプリケーションの構成要素として機能する、再利用可能な UI コンポーネントのライブラリです。Ionic のコンポーネントは、HTML、CSS、JavaScript を利用したWeb 標準に基づいて構築されています。コンポーネントは事前に構築されていますが、高度にカスタマイズできるようになるように設計されており、アプリで各コンポーネントを独自に作成できるため、アプリごとにオリジナルの外観を持たせることができます。具体的には、Ionic コンポーネントは、アプリ全体で外観をグローバルに変更するように簡単にテーマを設定できます。外観のカスタマイズの詳細については、Themingを参照してください。

スタイルの適用

スタイルの適用は、アプリ開発者が複数のプラットフォームで共通したベースとなるコードを使用できる Ionic Framework に組み込まれている機能です。すべての Ionic コンポーネントは、自動的にアプリケーションが実行されているプラットフォームに外観を合わせます。たとえば、iPhone や iPad などの Apple デバイスは、Apple 独自のiOS デザインを使用します。同様に、Android デバイスは、Material Designと呼ばれる Google のデザインを使用します。

プラットフォーム間で微妙なデザイン変更を行うことで、ユーザーに使い慣れたアプリの UX を提供します。Apple の App Store からダウンロードした Ionic アプリは iOS テーマを使用し、Android の Play Store からダウンロードした Ionic アプリは Material Design テーマを取得します。ブラウザから Progressive Web Apps(PWA)として表示アプリを表示する場合、Ionic はデフォルトで Material Design テーマを使用します。さらに、特定のシナリオで使用するプラットフォームを決定することはすべて設定可能です。スタイルの適用についてのさらなる情報はThemingをご覧ください。

ナビゲーション

従来の Web アプリケーションは「線形」のナビゲーションを使用します。つまりユーザーは、ページに移動して、戻るボタンを押すと戻ることができます。 この例としては、ユーザが、Wikipedia のようなページで、ブラウザの履歴から「進む」「戻る」をつかっているのが挙げられます。

これとは対照的に、モバイルアプリはしばしば平行な「非線形」ナビゲーションを利用します。たとえば、タブのついたインタフェースでは、タブごとにナビゲーションスタックを個別に設定できるため、ユーザがタブ間を移動したり切り替えたりするときにユーザが自分の場所を失うことはありません。

Ionic アプリは、このモバイルナビゲーションのアプローチを採用しており、Web 開発者が慣れ親しんでいるブラウザスタイルのナビゲーション概念を維持しながら、ネストすることもできる並列ナビゲーション履歴をサポートしています。

Angular と@ionic/angularで構築するアプリは、Angular Routerを使用することをお勧めします。これは Angular と Ionic 4 の組み合わせから使うことができます。

Native アクセス

Web テクノロジで構築されたアプリ(Ionic アプリなど)の素晴らしい点は、デスクトップコンピュータ、携帯電話、タブレット、自動車、冷蔵庫など、ほとんどすべてのプラットフォームで実行できることです。Ionic アプリ用のベースとなるコードは、Web 標準とこれらのプラットフォーム間で共有される共通の API に基づいているため、多くのプラットフォームで機能します。

Ionic の最も一般的な使用例の 1 つは、 App StorePlay Store の両方からダウンロードできるアプリを作成することです。iOS と Android の両方のソフトウェア開発キット(SDK)は、完全なネイティブ SDK アクセスを可能にしながら、あらゆる Ionic アプリをレンダリングする Web Views を提供します。

CapacitorCordova などのプロジェクトは、IonicアプリにネイティブSDKへのアクセスを与えるためによく使われています。つまり、開発者は一般的なWeb開発ツールを使ってアプリを素早く構築することができ、かつデバイスの加速度センサー、カメラ、GPSなどのネイティブ機能にアクセスすることができるのです。

テーマ

Ionic Framework はCSSを使って構築されており、CSS プロパティ(変数)が提供する柔軟性を活用できます。これにより、ウェブ標準に従いつつ、見栄えのするアプリを驚くほど簡単にデザインできます。私たちは、開発者がいくつかの素晴らしいデフォルトを持つことができるように色のセットを提供しますが、ブランド、企業、または希望のカラーパレットに一致するデザインを作成するためにそれらを上書きすることをお勧めします。アプリケーションの背景色からテキストの色まで、すべてカスタマイズ可能です。アプリのテーマ設定の詳細については、 Theming を参照してください。

イベント

多くの Ionic コンポーネントは CustomEvent を使用して、コンポーネントの重要な状態変化を開発者に通知します。例えば、 ion-datetime コンポーネントは、選択された日付が変更されると ionChange を発行します。

開発者は通常通り click などの標準的なイベントを使用することができる。しかし、コンポーネントの shadow root 内で発生した多くのイベントは、ホスト要素に retargeted されます。この結果、ユーザーが 1 回しかクリックしなくても、複数の click ハンドラが実行される可能性があります。そのため、開発者は Ionic コンポーネントの状態変化を適切に通知するために、Ionic のイベントに頼る必要があります。Ionic のイベントには、標準的なイベントとの衝突を避けるために ion というプレフィックスが付けられています。各コンポーネントのドキュメントページには、開発者がアプリケーションでリッスンできる利用可能なイベントのリストがあります。

Properties

Properties are JavaScript properties that can be set on Ionic components to configure their behavior and appearance. Properties are defined in each component's API documentation page.

Reactive Properties

Reactive properties automatically update the component when their values change. These are the most common type of property in Ionic components.

<ion-button color="primary">Primary Button</ion-button>

The color property is a reactive property that configures how the button appears. If you change the color value after the initial render, the button will update to reflect the new value.

Virtual Properties

Virtual properties are designed for one-time configuration during component initialization. They do not trigger re-renders when updated.

<ion-button mode="ios">iOS Style Button</ion-button> <ion-button mode="md">Material Design Button</ion-button>

The mode property is a virtual property that determines which platform styles to use for a component. It can be set at the component level or globally through the app configuration. In both cases, it's set once during initialization and doesn't change during the component's lifecycle.

For more information on Ionic modes, read the Platform Styles documentation.