サイトのトップへ戻る

Multi-OS Engineドキュメント 日本語訳

サイト内検索

Android 端末用と iOS 端末用のHello Worldアプリを作成する

目次:

このトピックは、Multi-OS Engine テクノロジープレビュー版を使って初めてクロスプラットフォームアプリを作成する際に役立ちます。 また、Multi-OS Engineを使ったApple iOSアプリ開発のコンセプトを理解するのにも役立ちます。

ここでは、両方のapp モジュールから使用できる共有の共通ロジックコードを使ってAndroid端末用とiOS 端末用の簡単なHello Worldアプリを作成する方法について説明します。



全体の作業の流れ

./img/overallWorkflow.png

Multi-OS Engineで作成されたアプリは、以下の三つのモジュールで構成されています。:

  • Android モジュール - Android 固有のコードのみが含まれています。
  • iOS モジュール - iOS アプリ用の固有の機能を実装します(そのほとんどはUI)。このコードは、NatJGenという名前の特別なツールによって生成されたObjective-C*/Javaバインディングを介して、ネイティブAPI にアクセスします。 iOS アプリの開発にサードパーティ製のネイティブライブラリを使う方法については、Using Third Party Native Libraries for iOSの項目を参照してください。
  • Common モジュール - Android 部分とiOS 部分で共有される共通ロジックが含まれています。

この手法では、プラットフォーム固有のUIコードと共に共通ロジックコードを使ってアプリを作成します。

Multi-OS Engine アプリを作成する開発の流れには以下の手順があります。:

  1. Android app モジュールを作成する。
  2. 実際のiOS アプリである Multi-OS Engine app モジュールを作成する。
  3. Android部分とiOS 部分で使う共通アプリロジックを保持しているcommon モジュールを作成する。
  4. common モジュールを Android app モジュールと iOS app モジュールの依存関係として追加する。
  5. Gradleスクリプトを設定する。
  6. アプリをビルドして実行する。


Android App モジュールを作成する

  1. Android Studio を起動してAndroid プロジェクトを作成します。 ./img/new_project.png
  2. アプリ名と会社ドメインを入力し、プロジェクトを保存する場所を選びます。注意して、自動生成された仮のパッケージ名(com.mycompany.myfirstapp)を小文字で自由に修正してください。Nextをクリックしてください。
  3. すぐに始めたいのであれば、Nextをクリックして既定の設定まま進んでください。
  4. ターゲット端末と API レベルを設定します。今回のチュートリアルでは、Nextをクリックして既定設定のまま進みます。
  5. Add an activity to Mobile ウィンドウ内で空のアクティビティを選び、Nextをクリックします。
  6. Customize the Activity ウィンドウ内では、設定を変更しないでください。Finish をクリックして既定の設定のままにします。アプリが新規プロジェクトとしてビルドされるのを待ちます。
  7. 完了すると、 Android Studio は新規に Android プロジェクトを作成します。Projectパネル内で、appモジュールを確認してください - このモジュールは Android appです。
  8. これで実際のiOSアプリであるMulti-OS Engineモジュールを追加できます。


Multi-OS Engine App モジュールを作成する

  1. 左側にあるプロジェクトタブ内のどこかを右クリックします。こうしてAndroidプロジェクトのルートにモジュールを作成します。 New 、 Multi-OS Engine Moduleの順に選びます。 ./img/add_module.png
  2. 使用可能なテンプレートは七つあります: ./img/modules.png
    • Master-Detail Application with storyboard のテンプレートでは、Master-Detailアプリの開始点が用意されます。このテンプレートでは項目一覧を表示するナビゲーションコントローラーで構成されたUIを使え、iPad端末上でビューの分割もできます。
    • Page-Based Application のテンプレートでは、ページビューコントローラーを使用したPage-Basedアプリの開始点が用意されます。
    • Page-Based Application with storyboard のテンプレートでは、ページビューコントローラーを使用したPage-Basedアプリの開始点が用意されます。
    • Single-View Application のテンプレートでは、単一のビューを使用したアプリの開始点が用意されます。このテンプレートではビューを管理するためのビューコントローラーと、そのビューを内包したストーリーボードやnibファイルが使えます。
    • Single-View Application with storyboard のテンプレートでは、単一のビューを使用したアプリの開始点が用意されます。このテンプレートではビューを管理するためのビューコントローラーと、そのビューを内包したストーリーボードやnibファイルが使えます。
    • Tabbed Application のテンプレートでは、タブバーを使用するアプリの開始点が用意されます。このテンプレートではタブバーコントローラーで構成されたUIと、タブバーの項目用のビューコントローラーが使用できます。
    • Game のテンプレートでは、ゲームアプリ用の開始点が用意されます。

    これらのテンプレートはiOS用の標準のXcodeテンプレートを反映しており、Xcodeの対応するテンプレートと同じ名前を持っています。 ストーリボードを使用するテンプレートもあれば、.ixml ファイルから生成されたストーリーボードを使用するテンプレートもあります。 これらのテンプレートを使用すると、Apple Objective-CプロジェクトがMulti-OS Engineソリューションへどのように移行されるのかが理解できます。: プラグインは、全てのObjective-Cコンポーネントを可能であれば Java 系に置き換えます。

    あなたの要件に合ったテンプレート(Single-View アプリケーションなど)を選択し、Nextを押します。

  3. 次のウィンドウでは、Xcodeプロジェクトを作成します。 プロジェクトを作成したら、例えばXcodeストーリボードを使ってネイティブのユーザーインタフェースをデザインしたい場合などにXcode上からプロジェクトを開くことができます。 Xcode プロジェクト名、プロダクト名 (アプリ名)、組織名、企業識別子を指定してください。 ./img/xcode_settings.png
  4. Next をクリックして iOS モジュールを設定します。モジュール名を指定し、コンテンツのルート位置とモジュールファイルの位置を確認します。 完了したら Finishをクリックします。 ./img/module.png
  5. これでAndroid Studio上でiOSアプリが作成できました。 Gradle スクリプトの同期をするようAndroid Studio から促された場合は、同期を行ってください。 Multi-OS Engine プラグインが既定の実行設定を自動的に作成します。 既定のシミュレーターでサンプルを実行するには、“run ボタン” をクリックしてください。 デバッグを実行するには “debug” をクリックしてください。


Android側 と iOS側で使える共通モジュールを作成する

この項目では、アプリの内部ロジックを保持するCommon モジュールを作成し、それをiOSモジュールとAndroid モジュールへの依存関係として追加する方法について説明します。

それでは、一からCommon モジュールを作成してみましょう。 プロジェクトタブの左側で右クリックして、Android プロジェクトのルートフォルダーにモジュールを作成します。 そして “New” 、“Module”の順で選びます。

./img/common_module.png

モジュール一覧から“Java Library”を選び、 “Next”をクリックします。各項目を入力して “Finish”ボタンをクリックします。

./img/common_module2.png

新規のモジュールが作成されてGradle同期されるまで待ってください。

これで、共通モジュールをiOS モジュールとAndroid モジュールの依存関係として追加することができます。



iOS モジュール用の依存関係を追加する:

iOS モジュールを右クリックし、 “Open Module Settings”を選びます。Project Structure ウィンドウ内で“iOS”モジュールを選びます。 “+”” をクリックして “Module dependency”を選びます。

./img/common_ios.png

モジュール一覧の中から common モジュールをクリックし、それをiOS モジュールの依存関係として追加します。

./img/common_module3.png



Android モジュール用の依存関係として追加する:

この手順は前回のiOS モジュール用の手順と似ています。唯一の違いは、 Project Structureウィンドウ内で “Dependencies”タブを選ぶ必要があるということです。

./img/common_module4.png

Multi-OS Engine アプリの実行でデバッグを行う

Multi-OS Engine で作成されたアプリはシミュレーター上や実機上で実行できます。 これを行うには、実行するプラットフォーム用の実行/デバッグ設定を作成してください。

実行/デバッグ設定の作成:

Apple iOS app モジュールを作成する時、Multi-OS Engine プラグインは既定の実行構成一覧を自動的に作成します。 Run/Debug 構成をクリックして “Edit Configurations...”を選び、既定のMulti-OS Engine 構成のいずれかに基づいたプラットフォーム固有の構成を作成します。

./img/rundebug1.png

“+” をクリックして “Multi-OS Engine iOS Application”を選びます

./img/rundebug2.png

構成名を指定します。また:

使用可能なiOS SDKなージョンを選びます。 実行するためのシミュレーター端末の種類、もしくは接続された端末を選びます。 デバッグポートを選びます。

実機の場合:

./img/rundebug3.png

シミュレーターの場合:

./img/rundebug4.png

Multi-OS Engine アプリの実行とデバッグをする

シミュレーター上もしくは実機上で(接続および設定されている場合は)、Run をクリックして実行するかDebug をクリックしてアプリコードをデバッグしてください。

./img/run.png



IPA をビルドして、アプリを AppStoreへ配信する

現在、IPA のビルドはGradleを使ってコマンドラインから可能です。 Multi-OS Engine モジュールで、以下のコマンドを実行してください:

./gradlew moeIpaBuild

IPA ファイルはbuild/ フォルダーに作成されます。

Multi-OS Engine Gradle プラグインの詳細情報については、プラグインのドキュメントを参照してください。