XPLATFORM Hybridアプリの開発及び実行

UX-Studioは、アプリを作るための直接的な開発方法を提供することではありません。従って、アプリは Android、iOSで提供する開発環境を使用して作る必要があり、一般的なアプリの開発手順に従ってください。

アプリ開発環境設定

Android

Android用アプリは、Eclipse、Android SDKを利用して開発し、その方法は一般的なアプリを作る方法と同じです。Eclipseと Android SDKをインストールするためのダウンロード及び説明を提供するGoogle Androidウェブページは、http://developer.android.com/sdk/installing.htmlです。Eclipse及び Android SDKは、最新バージョン最新版の更新サイクルが早いので上記のウェブページのリンクを使用して、最新の開発環境にインストールする必要があります。インストールの詳細については、Eclipse/ ADT/ Android SDKのバージョンが更新されるたびに少しずつ変更されるため、該当部分のご案内ウェブページを参照してください。

Android 開発環境は、基本的に次のような手順に進みます。

  1. Eclipseインストール

  2. ADT Pluginインストール

  3. Android SDKインストール

iOS

iOS用アプリは、XCode、iOS SDKを利用して開発し、その方法は一般的なアプリを作る方法と同じです。XCode、iOS SDKは、Macでのみ駆動可能のため、最新バージョンの OS Xが搭載可能な Macが必要です。端末機で実行するためには Apple開発者アカウントが必須です。

iOS開発環境は基本的に次のような手順によって構成され、詳細は XCode/ iOS SDKバージョンがアップデートされるたびに少しずつ変更されるため、 該当部分のご案内ウェブページを参照してください。
(参照 : http://developer.apple.com/devcenter/ios/index.action )
  1. Apple開発者アカウント生成

iOSは、テスト時にも開発者アカウントに登録された端末機でのみテストが可能です。従って、Androidとは異なり、配布時だけでなく、開発時にも、開発者アカウントが必ず必要です。iOS アプリの開発のためのAppleの開発者アカウントは、以下のウェブページで生成します。
http://developer.apple.com/devcenter/ios/index.action
アカウント生成後、証明書生成(開発用/配布用)、テスト端末機登録、アプリIDの生成、プロビジョニング生成(開発用/配布用)を進める必要があります。
上記のウェブページで生成されたアカウントでログイン後、右側のiOS Developer ProgramでiOS Provisioning Portalに進入して、設定に必要な項目を確認して生成することができます。

  1. 開発環境 XCodeインストール

XCodeは、Apple開発者ウェブページまたは Mac AppStoreを利用してダウンロード/インストールすることができます。MacのOS X Snow Leopardでは、App Storeが基本的に搭載されています。
ここで XCodeをダウンロードしてインストールすることができます。

上記の Mac App Storeがなければ、OS Xを最新バージョンにアップデートする必要があります。OS Xソフトウェアアップデートは、画面の左上段のAppleのロゴの形のボタンをクリックすると、メニューから実行することができます。

Mac App Storeで、XCodeに検索し、インストールボタンをクリックすると XCodeと共に iOS SDKもインストールされます。

アプリプロジェクト開発

各 OSに合うアプリ開発ツールで、アプリプロジェクトを開発します。

Android

Eclipseで、下記のような手順によって Android用アプリプロジェクトを開発します。

  1. アプリプロジェクトを生成します。

  1. XPLATFORM.jarを参照するようにプロジェクトに追加します。

  1. Resourceを追加します。

    XPLATFORM Hybridのサポートのために必要なリソースを、次のようにプロジェクトに追加します。UX-Studioで生成された hybrid_typedef.xmlも追加される必要があります。

  1. 生成された Activityが XPLATFORM Activityを継承するように修正して、インストールイメージとhybrid_typedef.xmlを指定するコードを挿入します。

package com.tobesoft.TestTobe;

// [XPLATFORM] XPLATFORM Main Activity import
import com.tobesoft.xplatform.loader.Main;
import android.app.Activity;
import android.os.Bundle;

// [XPLATFORM] XPLATFORM Main Activity 상속 
public class TestTobeActivity extends Main/*Activity*/ {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}
}
  1. Android Manifestを整理します。

    XPLATFORM Hybridで動作する Activity、Receiverの設定のため Android Manifestの Applicationタグの中に下記の情報を入力します。

<application android:icon="@drawable/ic_launcher" 
	android:label="@string/app_name" 
	android:hardwareAccelerated="true">
	<activity android:label="@string/app_name" 
		android:name=".TestTobeActivity" 
		android:configChanges="keyboardHidden|orientation" 
		android:screenOrientation="sensor">
	<activity android:name="com.tobesoft.xplatform.deviceAPI.CameraListener" 	
		android:screenOrientation="landscape">
		<intent-filter>
			<category android:name="android.intent.category.LAUNCHER" />
		</intent-filter>
	</activity>

	<activity android:name="com.tobesoft.xplatform.deviceAPI.SmsSend" >
		<intent-filter>
			<category android:name="android.intent.category.LAUNCHER" />
		</intent-filter>
	</activity>

	<activity android:name="com.tobesoft.xplatform.deviceAPI.FileDialogActivity" 
		android:screenOrientation="sensor">
		<intent-filter>
			<category android:name="android.intent.category.LAUNCHER" />
		</intent-filter>
	</activity>

	<receiver android:name="com.tobesoft.xplatform.deviceAPI.SmsRecv"> 
		<intent-filter> 
			<action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
		</intent-filter> 
	</receiver>

	<receiver android:name="com.tobesoft.xplatform.deviceAPI.SmsRecv"> 
		<intent-filter> 
			<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" /> 
			<data android:mimeType="application/vnd.wap.mms-message" />
		</intent-filter> 
	</receiver>
  1. XPLATFORM Hybridで提供する MobileAPIを使用するために、下記の permissionも Android Manifestに追加します。

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.SEND_SMS" /> 
<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.READ_SMS" /> 
<uses-permission android:name="android.permission.WRITE_SMS" /> 
<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH" /> 
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.GET_TASKS" />

iOS

XCodeで下記のような手順によって iOS用アプリプロジェクトを開発します。

  1. アプリプロジェクトを生成します。

  1. XPLATFORM.frameworkを参照するようにプロジェクトに追加します。(iOS frameworkも追加)

frameworkを全部追加すると、次のような構成になります。

  1. インストールイメージを指定するためのイメージリソースを追加します。

インストールイメージの詳細は次のようです。

プロジェクトナビゲータでプロジェクトを選択すると、Summaryタブが表示されるが、その中でLaunch Images項目を検索して下記の図のようにインストールイメージを指定します。設定後、Defaultで始まるイメージが自動的に作成されますが、XCodeで自動的に生成して管理するため、名前を変更しないでください。

次は、自動的に適用されるデフォルトイメージの詳細です。

  1. UX-Studioで生成されたhybrid_typedex.xmlファイルをプロジェクトのすぐ下のdataフォルダに追加します。hybrid_typedef.xmlファイルは、以下のように構成されています。(追加/1015)

<?xml version="1.0" encoding="utf-8"?>
<TypeDefinition>
<Update>
<Item systemtype="XP-HybridApp" url="http://127.0.0.1:8080/hybridtest">
<Os type="default" url="./HBDeviceTest">
	<Device type="all" url="./">
		<Resource type="Theme" file="default.zip" targetpath="/_theme_"/>
		<Resource type="Engine" file="Component.zip" targetpath="/" />
		<Resource type="Engine" file="Run.zip" targetpath="/" />
		<Resource type="File" file="Arcive00.xzip" targetpath="/" />
	</Device>
</Os>
<!--
<Os type="Android" url="./Android">
	<Device type="default" url="./">
		<Resource type="Theme" file="default.zip" targetpath="/" />
	</Device>
</Os>
<Os type="IPhone" url="./IPhone">
	<Device type="default" url="./">
		<Resource type="Theme" file="default.zip" targetpath="/" />
	</Device>
</Os>
-->
</Item>
</Update>
</TypeDefinition>

プロジェクトを選択し、コンテキストメニューから「Add files to (project)」項目を選択して、dataフォルダを参照するように設定します。

  1. 下記のような手順でエラーメッセージを設定します。(追加/1015)

各言語別「Localizable.strings」ファイルにエラーメッセージを追加します。エラーメッセージファイルは、配布されているXPLATFORMモジュールの[Engine>errordefile>iOS]にUTF8ファイル形式のテキストファイルとして提供されます。

  1. 生成された AppDelegateが XPLATFORM AppDelegateを継承するように修正します。

    AppDelegate.h/mファイルを次のように修正して XPLATFORM.frameworkが動作できるようにします。

#import <UIKit/UIKit.h>
#import <XPlatform/XPlatformAppDelegate.h> // [XPLATFORM]

@interface AppDelegate : XPlatformAppDelegate <UIApplicationDelegate>
// クラス内部のコードは全て削除します。
@end
#import "AppDelegate.h"

@implementation AppDelegate
// クラス内部のコードは全て削除します。
@end
#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char *argv[])
{
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
	int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
	[pool release];
	return retVal;
}
  1. プロジェクトの設定を整理します。

    XPLATFORM.frameworkが使用するiOS frameworkにより、次の設定をBuild Settingsに追加する必要があります。

アプリ生成及び実行

Android

  1. Android端末機を PCに USBで接続します。

  2. Eclipseで Runを実行します。Eclipseの Runは APKを生成、及び端末機にインストールして実行までできる機能です。

次の図のようにポップアップメニューを利用して実行することもできます。

iOS

  1. iOS端末機を Macに USBで接続します。

  2. XCodeで Runを実行します。XCodeの Runは APKを生成、及び端末機にインストールして実行までできる機能です。