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

Capacitorのプラットフォーム差異の取り扱い

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

Capacitorのプラットフォーム差異の取り扱い

Capacitor 開発者は、同じコードベースを使用してiOSとAndroid向けのアプリを構築し、プラットフォーム固有の差異を対処することができます。Capgoは、ネイティブ機能の統合を簡素化し、プラットフォームガイドラインへの準拠を保証し、パフォーマンスを最適化します。主な特徴は次のとおりです。

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

リアルタイムの更新

__CAPGO_KEEP_0__ :即時更新を実現し、アプリストアの遅延を回避して、24時間以内に95%のユーザーが採用することができます。 比較
機能名 ボトム タブ バー、左の戻るボタン トップ ナビゲーション ドロワー、ボトム ナビ
タイポグラフィ San Francisco フォント Roboto フォント
プラグイン (例: カメラ) AVFoundation カメラ2 API
ビルド アウトプット .ipa ファイル .aab または .apk ファイル

Capacitor

クロスプラットフォーム開発: 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

With Capacitor’s built-in platform API, detecting the current platform is simple. The Capacitor.getPlatform() __CAPGO_KEEP_2__

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

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

__CAPGO_KEEP_0__でプラットフォームを検出する 生体認証, 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
カメラ2 __CAPGO_KEEP_0__ Camera2 __CAPGO_KEEP_0__ Camera2 API
ストレージ UserDefaults SharedPreferences
位置情報 CoreLocation LocationManager

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

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

必要な機能が組み込まれたプラグインが見つからない場合、特定のネイティブ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 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')
        }
    }
}

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

アスペクト iOS Android
パーミッション Add entries in Info.plist Define in AndroidManifest.xml
アイコン サイズは20pxから1024pxまで 密度はmdpiからxxxhdpiまで
スプラッシュスクリーン Storyboardベース レイアウト XMLベース
ビルド出力 .ipa ファイル .aab または .apk 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はクロスプラットフォーム開発を向上させる。プラットフォームの検出と設定のための組み込みツールを備えているため、開発者はiOSとAndroid両方に対してSmoothなエクスペリエンスを提供し、各プラットフォームの独自のデザインスタンダードと機能を尊重することができる。

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

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

これらの洞察は、実際の改善を導くことができる。

次のステップ

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

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

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

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

「Capacitorがプラットフォームの差異をどのように処理するか」の続き

「__CAPGO_KEEP_0__がプラットフォームの差異をどのように処理するか」を使用している場合 「Capacitorがプラットフォームの差異をどのように処理するか」の続き プラットフォームの差異を処理するCapacitorの方法 使用する@capgo/capacitor-live-activities for the native capability in Using @capgo/capacitor-live-activities, 使用する@capgo/capacitor-live-activities @capgo/capacitor-live-activities Using @capgo/capacitor-video-player 使用する@capgo/capacitor-live-activities @capgo/capacitor-live-activities for the implementation detail in @capgo/capacitor-video-player, and 使用する@capgo/capacitor-video-player for the native capability in Using @capgo/capacitor-native-navigation.

Live updates for Capacitor apps

Capgoはウェブ層のバグが生じた場合、Capgoを通じて修正を配信し、数日間待つ必要のあるアプリストアの承認を待つのではなく、ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路を通じて保持される。

マーティンから人間のサポートを受けます。

スタートしてください。

最新のブログ記事

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