プラットフォームの差異を効果的に管理する

How Capacitor Handles Platform Differences

iOSとAndroid向けモバイルアプリ開発で、単一のコードベースを使用してプラットフォームの差異を効果的に管理する方法を学びましょう。

マーティン・ドナディュー

マーティン・ドナディュー

コンテンツマーケター

How Capacitor Handles Platform Differences

Capacitor Capgoは、iOSとAndroid向けのアプリを同じコードベースで開発するのに役立つ開発者向けのツールです。プラットフォーム固有の差異を簡素化し、プラットフォームガイドラインへの準拠を保証し、パフォーマンスを最適化します。主な特徴は次のとおりです。

  • プラットフォーム検出: 使用 Capacitor.getPlatform() プラットフォーム固有のcodeを適用する
  • 組み込みプラグイン: カメラ、ストレージ、位置情報などの機能に統一されたAPI
  • カスタムプラグイン: 一意の要件に対してネイティブcodeを追加
  • UI調整: iOS (例えば、 SF Symbols,丸いボタン)とAndroid (例えば、 Material Icons左寄せのボタン。
  • 設定:両方のプラットフォームの設定を調整します。 capacitor.config.json 両方のプラットフォームの設定を調整します。
  • リアルタイムの更新 :Capgo:即時更新を実現し、24時間以内に95%のユーザー採用率を達成します。

比較

機能 iOS Android
ナビゲーション 下部タブバー、左の戻るボタン 上部ナビゲーションドロワー、下部ナビゲーション
タイポグラフィ San Francisco フォント Roboto フォント
プラグイン (例: カメラ) AVFoundation カメラ2 API
ビルド出力 .ipa ファイル .aab または .apk ファイル

Capacitorは、Webアプリとネイティブアプリの開発のギャップを埋め、クロスプラットフォームアプリの作成を容易にし、プラットフォーム固有の最適化を維持します。

クロスプラットフォーム開発: CapacitorJSを…

「どうして」 Capacitor Handles Platform Code

Capacitorフレームワークドキュメントサイト

Capacitor offers tools to manage platform-specific code, allowing developers to create tailored experiences for iOS and Android using a single API.

プラットフォームを検出するCode

CapacitorのプラットフォームAPIを使用すると、現在のプラットフォームを検出することが簡単になります。 Capacitor.getPlatform() メソッドは、実行中の環境を識別し、条件付きロジックを適用することが容易になります。

import { Capacitor } from '@capacitor/core';

const platform = Capacitor.getPlatform();
if (platform === 'ios') {
  // Code specific to iOS
} else if (platform === 'android') {
  // Code specific to Android
}

このアプローチは、特に機能のように「…」のようなものが便利です。 生体認証, iOSではFace IDを、Androidでは指紋認証を使用します。プラットフォームの検出に加えて、__CAPGO_KEEP_0__の組み込みプラグインはネイティブの統合を簡素化します。 プラットフォーム固有の機能 Capacitorには、プラットフォーム固有の差異を自動的に処理するコアプラグインが含まれています。これらのプラグインは、ネイティブの実装の複雑さを管理しながら、統一されたJavaScriptインターフェイスを提供します。

プラグイン

Capacitor comes with a set of core plugins that handle platform-specific differences seamlessly. These plugins manage the complexities of native implementations while providing a consistent JavaScript interface:

Android実装 カメラ AVFoundation
Camera2 __CAPGO_KEEP_0__ Camera2 API
Storage UserDefaults SharedPreferences
Geolocation CoreLocation LocationManager

各プラグインは、プラットフォームのネイティブAPIを自動的に使用するため、Smoothなパフォーマンスと機能性を保証します。

カスタムプラットフォームプラグインの作成

標準のプラグインが必要な場合に満たさない場合、カスタムプラグインを作成して、特定のネイティブAPIにアクセスできます。ここでは、方法を説明します。

  1. プラグインの定義

    @Plugin({
      name: 'CustomFeature',
      platforms: ['ios', 'android']
    })
  2. ネイティブのCodeの追加

    @PluginMethod()
    async customFunction(): Promise<void> {
      if (Capacitor.getPlatform() === 'ios') {
        // Add iOS-specific code
      } else {
        // Add Android-specific code
      }
    }
  3. プラットフォームハンドラの実装

    • iOS (Swift):

      @objc func customFunction(_ call: CAPPluginCall) {
        // Add native iOS functionality
      }
    • Android (Kotlin):

      @PluginMethod
      fun customFunction(call: PluginCall) {
        // Add native Android functionality
      }

カスタム プラグインは、API の一貫性と使いやすさを保ちながら、ネイティブ機能へのアクセスを可能にします。これにより、開発プロセスを複雑にしないまま、パフォーマンスと機能性が保たれます。

プラットフォーム固有のUIガイドライン

iOSとAndroidのデザインルール

iOSとAndroid向けのデザインを行う際には、ネイティブのデザインパターンを遵守することが重要です。各プラットフォームのユーザーは、ナビゲーション、フォント、ボタン、ヘッダー、アイコンなどのことについて、異なる期待をしています。ここでは、それらを比較検討します。

デザイン要素 iOS Android
ナビゲーション 下部タブバー、左側の戻るボタン 上部ナビゲーションドロワー、下部ナビゲーション
フォント San Francisco フォント Roboto フォント
ボタン 丸角の長方形、中央寄せのテキスト Material Design ボタン、左寄せのテキスト
ヘッダー 大きなタイトル、中央寄せ アプリバー
左寄せのテキスト アイコン SF Symbols

クロスプラットフォーム デザイン スタンダード

各プラットフォームには独自のルールがありますが、両方で一貫したブランド イデンティティを維持することは重要です。ここでは、一貫性を確保する方法について説明します。

const sharedStyles = {
  primaryColor: '#007AFF', // iOS blue
  androidPrimaryColor: '#6200EE', // Material Design purple
  borderRadius: Capacitor.getPlatform() === 'ios' ? '10px' : '4px'
};

:root {
  --app-header-height: var(--platform-header-height, 56px);
  --app-safe-area-top: var(--platform-safe-area-top, 0px);
}

Capacitor を使用すると、プラットフォーム固有の UI コンポーネントを統合しながら、機能性を一貫させることができます。また、Dark Mode と Dynamic Type のようなシステム全体の設定を管理することもできます。プロセスを完了するには、プラットフォーム固有のビルド設定がこれらのガイドラインと一致していることを確認してください。

プラットフォーム セットアップと設定

プラットフォーム code を管理した後、両方の iOS と Android でアプリが正常に動作するようにするには、適切な構成が不可欠です。

プラットフォーム設定 capacitor.config.json

プラットフォーム固有の設定を定義するには、以下のファイルを使用してください: capacitor.config.json 以下の構成オプションを考慮してください:

{
  "appId": "com.example.app",
  "appName": "MyApp",
  "ios": {
    "contentInset": "always",
    "backgroundColor": "#ffffff",
    "scheme": "myapp",
    "preferredContentMode": "mobile"
  },
  "android": {
    "backgroundColor": "#FFFFFF",
    "allowMixedContent": true,
    "captureInput": true,
    "webContentsDebuggingEnabled": true
  }
}

オプション

iOS Android Dark Modeの設定を管理するには__CAPGO_KEEP_0__を使用してください。
Deep Links scheme __CAPGO_KEEP_0__ androidScheme __CAPGO_KEEP_0__
Status Bar statusBar.style statusBar.backgroundColor
キーボード keyboard.resize keyboard.resize, keyboard.style
Splash Screen splashScreen.launchShowDuration splashScreen.layoutName

実行環境の設定が完了したら、各プラットフォームのパフォーマンスを向上させるためにビルド設定を調整してください。

プラットフォーム固有のビルド設定

iOSとAndroid用のアプリを最適化するためにビルド設定を微調整してください。

iOSの場合、 Info.plist file:

<key>NSCameraUsageDescription</key>
<string>Required for document scanning</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Required for store locator</string>

Androidの場合、 android/app/build.gradle:

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt')
        }
    }
}

以下の重要なビルドの考慮事項があります:

アスペクト iOS Android
パーミッション Add entries in Info.plist Define in AndroidManifest.xml
アイコン 20pxから1024pxまでのサイズ mdpiからxxxhdpiまでの密度
Splash Screen Storyboard-based レイアウト XMLベース
ビルド出力 .ipa ファイル .aab または .apk ファイル

iOSおよびAndroid両方で Capgo

Capgo ライブアップデートダッシュボードインターフェイス

両方のプラットフォームのガイドラインに沿ったライブアップデートシステムを提供するために、 Capacitor Capgo

iOSおよびAndroid両方で効率的にアプリを更新することは重要です。Capgoは、両方のプラットフォームのガイドラインに沿ったライブアップデートシステムを提供します。

機能 説明 プラットフォームの利点
ライブ更新 即時配布、App Storeのレビューなし iOSとAndroidで統一された体験を保証
端末間の暗号化 更新配布のセキュリティを確保 両方のプラットフォームのセキュリティ要件を満たす
チャネルシステム 特定のユーザーグループをターゲット ベータテストとフェーズドロールアウトをサポート
Partial Updates ダウンロードのみ変更されたコンテンツ バンド幅を節約し、更新を速める

Capgoは、24時間以内に95%のアクティブユーザーが更新を実行した23.5万の更新を実行しました [1]. これらの機能は 更新管理 プラットフォーム間で滑らかで効率的な更新を実現します。

Capgoプラットフォーム管理

Capgoのチャンネルシステムは、iOS用の機能をベータユーザーとテストする、Androidの更新を段階的に展開する、パフォーマンスメトリクスをトラッキングすることができるようにします。

プラットフォームはAppleとGoogleのオーバー・ザ・エア更新要件に準拠しています [1].

現在、750の製品アプリがCapgoに依存しており、82%のグローバル更新成功率を維持しています [1]. CI/CD統合はデプロイを簡素化し、ロールバック機能は、問題が発生した場合に前のバージョンに戻すことができるように開発者を支援します。リアルタイム分析は、更新パフォーマンスに関する洞察を提供し、アプリの安定性を維持するのに役立ちます。

まとめ

プラットフォーム管理の利点

プラットフォームの違いを効果的に管理することで、Capacitorはクロスプラットフォーム開発を強化します。プラットフォームの検出と設定のための組み込みツールを備えているため、iOSとAndroid両方でSmoothなエクスペリエンスを提供することができ、各プラットフォームの独自のデザインスタンダードと機能を尊重することができます。

プラットフォーム管理に重点を置くことで、開発チームは更新を迅速にリリースし、ユーザーの満足度を向上させることができます。ツールとしてはCapgoが、一貫したプラットフォームの扱いが更新の成功率を高め、ユーザーのエクスペリエンスを向上させることを示しています。 [1].

“アジャイル開発を実践しており、@Capgoはユーザーに継続的に提供するmission-criticalなツールです!”
– Rodrigo Mantica [1]

これらの洞察は、実践的な改善を導くことができます。

次のステップ

これらの利点を最大限に活かすには、以下の戦略を実施することを検討してください。

アクションアイテム 利点
プラットフォーム検出を有効化 iOSとAndroidのニーズに自動的に調整
ライブ更新を実装 急な修正のためにアプリストアの遅延を回避
分析設定 各プラットフォームのパフォーマンスメトリクスを追跡
ロールバックサポートを有効 プラットフォーム固有の問題を迅速に解決

開発者がワークフローを改善するために使用するツールとして、Capgoのようなツールはプロセスを簡素化できます。エンドツーエンド暗号化やCI/CD統合などの機能は、チームが一貫性を維持し、効率的に更新を展開するのに役立ちます。

プラットフォーム管理の成功は、適切なツールを使用し、プラットフォーム固有のガイドラインに従うことによって達成されます。強力な検出と管理戦略に焦点を当てると、開発者はiOSとAndroid両方でアプリが平滑に動作することを保証できます。

Capacitorがプラットフォームの差異をどのように処理するかについては、続きます

__CAPGO_KEEP_0__を使用している場合 Capacitorがプラットフォームの差異をどのように処理するかについては、続きます nativeメディアとインターフェイスの動作を計画し、接続する @capgo/capacitor-live-activitiesを使用する @capgo/capacitor-live-activitiesのnative機能を使用する @capgo/capacitor-live-activities @capgo/capacitor-live-activitiesの実装詳細を使用する @capgo/capacitor-video-playerを使用する @capgo/capacitor-video-playerのnative機能を使用する @capgo/capacitor-video-player @capgo/capacitor-video-playerの実装詳細を使用する。さらに @capgo/capacitor-video-playerを使用する @capgo/capacitor-video-playerのnative機能を使用する

リアルタイム更新が可能な Capacitor アプリ

Capgoのバグが実際に生じた場合、Capgoを使用して修正を配信するのではなく、数日間待ってアプリストアの承認を待つ必要があります。ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビューのパスを通します。

Get Started Now

Latest from our Blog

Capgoは、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を提供します。