メインコンテンツにジャンプ

How Capacitor Handles Platform Differences

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

How Capacitor Handles Platform Differences

Capacitor Capacitorが開発者にiOSとAndroid向けのアプリを同じコードベースで作成するのに役立ちます。Capacitorはプラットフォーム固有の差異を解決し、ネイティブ機能の統合を簡素化し、プラットフォームガイドラインへの準拠を保証し、パフォーマンスを最適化します。主な特徴は次のとおりです。

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

:Capgoにプルリクエストを送信する

:即時更新で、App Storeの遅延なしで、24時間以内に95%のユーザーが採用することができます。 比較 機能
iOS Bottom tab bars, back button left Top navigation drawer, bottom nav
Typography San Francisco font Roboto font
プラグイン (例:カメラ) AVFoundation カメラ2 API
ビルド出力 .ipa ファイル .aab または .apk ファイル

Capacitorは、Webアプリとネイティブアプリの開発を結び付ける橋となり、クロスプラットフォームアプリの開発を容易にし、プラットフォーム固有の最適化を維持します。

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

How 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は、iOSとAndroid向けに独自の体験を提供するために、開発者が単一の__CAPGO_KEEP_2__で管理するプラットフォーム固有の__CAPGO_KEEP_1__を提供します。

With Capacitor’s built-in platform API, detecting the current platform is simple. The Capacitor.getPlatform() __CAPGO_KEEP_0__の組み込みプラットフォーム__CAPGO_KEEP_1__を使用すると、現在のプラットフォームを検出することが簡単になります。このメソッドは、実行中の環境を識別し、条件付きロジックを適用するのを容易にします:

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では指紋認証を使用します。 Face ID and Android relies on Fingerprint Authentication. Along with platform detection, Capacitor’s built-in plugins simplify native integration.

プラットフォームの差異を簡単に処理するために、__CAPGO_KEEP_0__の組み込みプラグインを使用します。

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:

__CAPGO_KEEP_0__には、プラットフォーム固有の差異を自動的に処理するためのコアプラグインが含まれています。これらのプラグインは、ネイティブ実装の複雑さを管理し、統一されたJavaScriptインターフェイスを提供します。 プラグイン iOS実装
Android実装 カメラ Camera2 API
__CAPGO_KEEP_0__ ストレージ UserDefaults
SharedPreferences 位置情報 CoreLocation

位置情報管理

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

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

  1. 必要な機能が組み込まれたプラグインが見つからない場合、特定のネイティブAPIにアクセスするためのカスタムプラグインを作成できます。ここではその方法を説明します。

    @Plugin({
      name: 'CustomFeature',
      platforms: ['ios', 'android']
    })
  2. Add Native Code

    @PluginMethod()
    async customFunction(): Promise<void> {
      if (Capacitor.getPlatform() === 'ios') {
        // Add iOS-specific code
      } else {
        // Add Android-specific code
      }
    }
  3. ネイティブの__CAPGO_KEEP_0__の追加

    • 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 Material Icons

クロスプラットフォーム設計基準

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

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);
}

Using Capacitor, you can integrate platform-specific UI components while keeping functionality consistent. It also helps manage system-wide settings like Dark Mode and Dynamic Type. To complete the process, make sure your platform-specific build settings align with these guidelines.

プラットフォーム設定と構成

After managing your platform code, proper configuration is essential to ensure your app runs smoothly on both iOS and Android.

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

Capacitorを使用して 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
Deep Links scheme プロパティ androidScheme プロパティ
ステータス バー statusBar.style statusBar.backgroundColor
キーボード keyboard.resize keyboard.resize, keyboard.style
スプラッシュ画面 splashScreen.launchShowDuration splashScreen.layoutName

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

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

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

iOSの場合、 Info.plist ファイル:

<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')
        }
    }
}

Capacitorは以下の重要なビルドの考慮事項を取り扱っています:

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

Capacitorのファイル Capgo

Capgo Live Update Dashboard Interface

Capacitorの Capacitor apps updated efficiently for both iOS and Android is crucial. Capgo offers a live update system that aligns with the guidelines of both platforms.

Capgo Features

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

Capgo has delivered 23.5 million updates, achieving a 95% active user update rate within 24 hours [1]これらの機能により 更新管理 プラットフォーム間で滑らかで効率的な更新

Capgo Platform Management

Capgo’s channel system makes updates easier to manage. Developers can test iOS-specific features with beta users, roll out Android updates in stages, and track performance metrics seamlessly.

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

Currently, 750 production apps rely on Capgo, maintaining an 82% global update success rate [1]CI/CD統合により、デプロイが簡素化され、ロールバック機能により、問題が発生した場合に前のバージョンに戻すことができます。リアルタイムの分析により、更新のパフォーマンスとアプリの安定性を維持するための洞察が得られます。

Conclusion

Platform Management Benefits

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

開発チームが更新を迅速にリリースし、ユーザーの満足度を向上させることができるようにするには、適切なプラットフォーム管理に焦点を当てましょう。Capgoなどのツールは、一貫したプラットフォームハンドリングが更新成功率の向上とユーザー エクスペリエンスの向上につながることを示しています。 [1].

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

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

次のステップ

プラットフォームの検出を有効にする

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

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

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

How Capacitorがプラットフォームの差異を処理する方法については続きます

__CAPGO_KEEP_0__を使用している場合 How Capacitorがプラットフォームの差異を処理する方法について プラットフォームの差異を処理するCapacitorの方法 ライブ活動用に@capgo/capacitor-live-activitiesを使用 ライブ活動用のネイティブ機能のために@capgo/capacitor-live-activitiesを使用 @capgo/capacitor-live-activities ライブ活動用の実装詳細のために@capgo/capacitor-live-activitiesを使用 ライブ活動用に@capgo/capacitor-video-playerを使用 ネイティブ機能としてライブ活動用の@capgo/capacitor-video-playerを使用 @capgo/capacitor-video-player ライブ活動用の実装詳細として@capgo/capacitor-video-playerを使用 ネイティブナビゲーション用に@capgo/capacitor-native-navigationを使用 ネイティブ機能としてライブ活動用の@capgo/capacitor-native-navigationを使用

Capacitorアプリのリアルタイム更新

ウェブ層のバグが実行中の場合、Capgo を通じて修正を配信し、App Storeの承認待ちの日数を待たずに。ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路で残る。

マーティンによる人間のサポート

今すぐ始めよう

最新のブログ記事

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