メイン コンテンツにスキップ

How Capacitor Handles Platform Differences

iOSとAndroidの両方に対応する単一のコードベースを使用して、モバイルアプリ開発を効果的に管理する方法を学びましょう。

How Capacitor Handles Platform Differences

Capacitor Capacitorを用いたプラットフォームの差異を自動的に処理する

  • iOSとAndroid向けのアプリを同じコードベースで開発するのに役立ちます。また、プラットフォーム固有の差異を解決し、ネイティブ機能の統合を簡素化し、パフォーマンスを最適化し、プラットフォームガイドラインへの準拠を保証します。主な機能は次のとおりです。プラットフォーム検出 Capacitor.getPlatform() to apply platform-specific code.
  • プラットフォーム固有の差異を自動的に処理する組み込みプラグイン
  • : カメラ、ストレージ、位置情報などの機能に統一されたAPIを提供します。: Add native code for unique requirements.
  • : 一意の要件に対してネイティブプラグインを追加します。UI調整 : iOSのデザインルールに従います。例えば、SF Symbolsを使用します。、丸いボタン) と Android (例えば、 マテリアル アイコン、左寄せのボタン).
  • 設定:両方のプラットフォームの設定を調整します。 capacitor.config.json ライブ アップデート
  • :__CAPGO_KEEP_0__ Capgo:アプリストアの遅延なしでアップデートを即時デプロイし、24時間以内に95%のユーザーが採用することができます。

クイック コンプレックス

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

Capacitor bridges the gap between web and native app development, making it easier to create cross-platform apps while maintaining platform-specific optimizations.

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

YouTube動画プレイヤー Capacitor 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_1__を管理するツールを提供します。

With Capacitor’s built-in platform API, detecting the current platform is simple. The 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では and Android relies on Fingerprint Authentication. Along with platform detection, Capacitor’s built-in plugins simplify native integration.

を使用し、Androidでは

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__の組み込みプラグインはネイティブ統合を簡素化します。 プラットフォーム固有の機能 __CAPGO_KEEP_0__には、プラットフォーム固有の差異を自動的に処理するためのコアプラグインが付属しています。これらのプラグインは、ネイティブ実装の複雑さを管理しながら、一貫したJavaScriptインターフェイスを提供します:
プラグイン名 AVFoundation カメラ2 API
ストレージ ユーザー設定 共有設定
位置情報 位置情報 位置情報サービス

プラグインをカスタマイズしてプラットフォームを構築する

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

プラグインを定義する

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

    @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. プラットフォームハンドラーの実装

    • iOS (Swift):

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

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

カスタムプラグインは、Native機能へのアクセスを提供しながら、APIの統一性と使いやすさを保ちます。これにより、パフォーマンスと機能性が向上し、開発プロセスが複雑化することなく実現します。

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

iOSとAndroidのデザインルール

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

デザイン要素 iOS Android
ナビゲーション ボトムタブバー、左側の戻るボタン トップナビゲーションドロワー、ボトムナビゲーション
フォント San Francisco フォント Roboto フォント
ボタン 丸角の長方形、中央寄せのテキスト マテリアルデザインボタン、左寄せのテキスト
ヘッダー 大きいタイトル、中央寄せ アプリバー、左寄せ
アイコン 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);
}

Capacitorを使用すると、プラットフォーム固有のUIコンポーネントを統合しながら、機能の統一性を保つことができます。また、システム全体の設定、例えばダークモードやダイナミックタイプの管理も可能です。プロセスを完了するには、プラットフォーム固有のビルド設定がこれらのガイドラインと一致していることを確認してください。

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

プラットフォーム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
Deep Links scheme property androidScheme property
Status Bar statusBar.style statusBar.backgroundColor
Keyboard 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まで
スプラッシュ画面 Storyboardベース レイアウトXMLベース
ビルド出力 .ipa ファイル .aab または .apk ファイル

アップデートアプリケーションに Capgo

Capgo Live Update Dashboard Interface

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

Capgoの機能

機能 説明 プラットフォームの利点
ライブアップデート コンテキスト:ホームページの問題/解決部分。役割:セクションまたはページヘッダー。見られる場所:ページpremium-support.astro。メッセージキー`ps_help_updates_title` (Ps Help Updates Title)。 アプリストアのレビューなしで即時展開
iOSとAndroidで統一された体験を保証 端末間の暗号化 コンテキスト:Capgoのソリューションズマーケティングページ。役割:セクションまたはページヘッダー。見られる場所:ページソリューションズ/フィンテック.astro。メッセージキー`solutions_fintech_cert3_title` (Solutions Fintech Cert3 Title)。|コンテキスト:Capgoのソリューションズマーケティングページ。役割:セクションまたはページヘッダー。見られる場所:ページソリューションズ/フィンテック.astro。メッセージキー`solutions_fintech_sol3_title` (Solutions Fintech Sol3 Title)。|コンテキスト:Capgoのソリューションズマーケティングページ。役割:セクションまたはページヘッダー。見られる場所:ページソリューションズ/ヘルスケア.astro。メッセージキー`solutions_healthcare_sol3_title` (Solutions Healthcare Sol3 Title)。|コンテキスト:Capgoのソリューションズマーケティングページ。役割:短いUIラベルまたはナビゲーションアイテム。見られる場所:ページソリューションズ/フィンテック.astro。メッセージキー`solutions_fintech_badge_e2e` (Solutions Fintech Badge E2e)。|コンテキスト:Capgoのソリューションズマーケティングページ。役割:短いUIラベルまたはナビゲーションアイテム。見られる場所:ページソリューションズ/ヘルスケア.astro。メッセージキー`solutions_healthcare_badge_e2e` (Solutions Healthcare Badge E2e)。
アップデートの配信をセキュア化することによって、両方のプラットフォームのセキュリティ要件を満たすことができます。 プラットフォームの差異を対象とするユーザー グループ ベータ テストとフェーズド リリースをサポート
部分的なアップデート 変更されたコンテンツのみをダウンロード バンド幅を節約し、更新を高速化

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].

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

結論

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

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

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

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

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

次のステップ

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

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

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

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

How Capacitor Handles Platform Differencesから続きます

Capacitorがプラットフォームの差異をどのように扱うか プラットフォームの差異を扱うCapacitorの方法 __CAPGO_KEEP_0__を使用して、ネイティブメディアとインターフェイスの動作を計画し、__CAPGO_KEEP_0__を__CAPGO_KEEP_1__ライブアクティビティと接続する capgo/capacitorライブアクティビティを使用して、capgo/capacitorライブアクティビティのネイティブ機能 capgo/capacitorライブアクティビティを使用して、capgo/capacitorライブアクティビティの実装詳細 capgo/capacitorライブアクティビティ capgo/capacitorライブアクティビティを使用して、capgo/capacitorライブアクティビティのネイティブ機能 capgo/capacitorライブアクティビティ capgo/capacitorライブアクティビティを使用して、capgo/capacitorライブアクティビティの実装詳細 capgo/capacitorビデオプレーヤーを使用して、capgo/capacitorビデオプレーヤーのネイティブ機能 capgo/capacitorビデオプレーヤー capgo/capacitorビデオプレーヤーを使用して、capgo/capacitorビデオプレーヤーの実装詳細、そしてcapgo/capacitorネイティブナビゲーションを使用して CapacitorJSのネイティブ機能のために、@capgo/capacitor-native-navigationを使用します。

Capacitor アプリのライブアップデート

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

マーティンから人間のサポート

スタートする

最新のブログ

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