プラットフォームの差異を効果的に管理する方法を学びましょう。

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

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

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

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

コンテンツマーケティング

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

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

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

比較

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

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

クロスプラットフォーム開発: 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は、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では指紋認証を使用します。プラットフォームの検出に加えて、__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__API
StorageUserDefaultsSharedPreferences
位置情報CoreLocationLocationManager

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

デザイン要素iOSAndroid
ナビゲーション下部タブバー、左側の戻るボタン上部ナビゲーションドロワー、下部ナビゲーション
フォント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などのシステム全体の設定を管理するのにも役立ちます。プロセスを完了するには、プラットフォーム固有のビルド設定がこれらのガイドラインと一致していることを確認してください。

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

After managing your platform code, proper configuration is essential to ensure your app runs smoothly on both iOS and 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
  }
}

ここでは、考慮すべき構成オプションを紹介します。

オプションiOSAndroid
Deep Linksscheme __CAPGO_KEEP_0__androidScheme __CAPGO_KEEP_0__
Status BarstatusBar.stylestatusBar.backgroundColor
キーボードkeyboard.resizekeyboard.resize, keyboard.style
Splash ScreensplashScreen.launchShowDurationsplashScreen.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パーミッション
Add entries inDefine in Info.plistアイコン AndroidManifest.xml
__CAPGO_KEEP_0__から1024pxまでのサイズ__CAPGO_KEEP_0__からmdpiまでの密度スプラッシュスクリーン
Storyboardベース__CAPGO_KEEP_0__レイアウト XMLベース
ビルド出力.ipa ファイル.aab または .apk ファイル

iOSおよびAndroid両方で Capgo

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

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

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

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

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

Capgoプラットフォーム管理

Capgoのチャンネルシステムにより、更新の管理が容易になります。開発者はiOS向けの機能をベータユーザーと共有し、Androidの更新を段階的に実行し、パフォーマンスメトリクスをトラッキングできます。

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

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

まとめ

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

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

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

“We practice agile development and @Capgo is mission-critical in delivering continuously to our users!”
開発を継続的に行うためにmission-criticalなツールとして@__CAPGO_KEEP_0__を使用しています! [1]

– Rodrigo Mantica

これらの洞察は、実際の改善につながることをお勧めします。

次のステップ

これらの利点を最大限に活用するには、以下の戦略を実施することを検討してください。アクションアイテム
利点iOSとAndroidのニーズに自動調整
ライブ更新を実装急な修正のためにアプリストアの遅延を回避
分析設定各プラットフォームのパフォーマンスメトリクスを追跡
ロールバックサポートを有効プラットフォーム固有の問題を迅速に解決

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

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

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

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

今すぐ始めましょう

最新のブログ記事

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