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 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にアクセスするためのカスタムプラグインを作成できます。ここではその方法を説明します。
-
プラグインの定義
@Plugin({ name: 'CustomFeature', platforms: ['ios', 'android'] }) -
ネイティブのCodeの追加
@PluginMethod() async customFunction(): Promise<void> { if (Capacitor.getPlatform() === 'ios') { // Add iOS-specific code } else { // Add Android-specific code } } -
プラットフォームハンドラーの実装
-
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

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.