38
Delphi で ででででで iOS で Android

RAD Studio Delphi XE5 iOS For beginners Haruyuk Mohri

Embed Size (px)

DESCRIPTION

RAD Studio Delphi XE5 iOS For beginners Haruyuk Mohri

Citation preview

Page 1: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Delphi で、はじめての iOS と Android

Page 2: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

自己紹介 • なまえ 毛利 ( モウリ )• 職業 カラオケシステム と東京で店舗• Twitter @haruyuk• Facebook haruyuk• 趣味 ドラムやったりギターやったり

Page 3: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

iPhone のアプリを Delphi で組む!

メリットってなんでしょ。。。Delphi で組むんだったら iPhone と Android両方同じソースで組むのがメリットだと思います

iOS(iPhone) だけで良いなら xcode で組むのも大差ないです

Page 4: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

必要な物• iPhone もしくは iPad(mini)• Mac (Mac OS X) Mavericks, Mountain Lion• Windows• xcode 最新• iOS Developer Program 登録 (8 千円弱? )• RAD Studio( もしくは Delphi) XE5 以上

Page 5: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Mac で xcode が動いてデバッグできる環境を作る

• xcode のインストールは App Store からできるので簡単です

• xcode インストール後 Command Line Toolsも忘れずインストール

Page 6: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Windows に RAD Studio XE5(6) をインストールする

• 普通に SetUp から

Page 7: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

接続構成

Windows

RAD Studio( Delphi)

Mac OS

Paserver XE5(6)

xcode

iPhone5(S)

Command Line ToolsTCP/IP

Page 8: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Mac OS 上で PAServer を起動する

ターミナル上で /Application/RAD PAServer XE5(6).app/Contents/MacOS/paserver

Windows(RAD Studio) 側からこの TCP ポートで接続します

Page 9: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

RAD Studio(Delphi) でプロジェクト作る

Page 10: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

こんな画面です

Page 11: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

デフォルトは Android になってます

Page 12: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

ターゲットを iPhone に変更します

Page 13: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Hellow Word はたったこれだけ

画面ダブルクリックで下記の method が作られるので 実行したい内容を記述するだけです

なんですが。。。。

Page 14: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Hellow world だけなら xcode でも Code 数は変わらないww

Button のタッチイベント

iPhone アプリを Delphi で作るメリットは?

Page 15: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

UI も xcode そっくり

xcode 開発環境 RAD Studio(Delphi) 開発環境

Page 16: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Android ターゲットで Delphi プログラム

Page 17: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

開発に必要な物• Windows 7 以降の端末• Android 端末 (USB ケーブル含む )• JDK( たぶん 7)

Android 用の SDK はとくに 無くても RAD Studio の中にはいってます気になる方は 最新の SDK とってきてください

Page 18: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Android 開発環境• Android 端末は機器やバージョンで 開発接

続までの環境が様々です• 通常の ADB などの開発環境で端末認識し

ている状態でしたら RAD Studio でも動作します

Page 19: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

こんな感じでデバイスマネージャーから見えていれば 接続できます

たまたま接続した Android 端末名

Page 20: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Windows 上で認識できていればRAD Studio でも認識できている

こんな感じに見えてたら接続できています

Page 21: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

RAD Studio(Delphi) の IDE 操作感は変わりません

Button1 をダブルクリックでイベント作成

Page 22: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

UI がカスタマイズできます!RAD Studio なら部品はそのままで見た目のデザイン変更できます

TStyleBook を使ってカスタマイズ

Page 23: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

RAD Studio でカスタマイズされた UI を使いつつ xcode のライブラリも使いた

い• RAD Studio は画面デザインを簡単にカスタ

マイズできます• 視覚的に 3D アプリを作りたい

• でも中身はやっぱり Objective-C で書きたい

ここからが本題

Page 24: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

xcode で作ったライブラリをRAD Studio(Delphi) で利用する

Page 25: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

NSObject で簡単なクラスオブジェクトを作ってみる

• NSObject クラスから自分用のライブラリを作ってみる ( 慣れた人はどって事無い作業 )

この辺にクラスつくるテンプレートがあります

Page 26: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Next

NSObject 継承して勝手にできます今のところ他の Object は試してませんイケるクラスはイケると思います

Delphi で言う Tobject みたいなもの?

Page 27: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

適当に Objective-C の Method 作ります

ヘッダーに追加 実態側にコード記述i1 に 10 足して return

⌘B でビルドすると *.a ファイルができます

Page 28: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

ビルドするとこんな感じで *.a ファイルができました

Page 29: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

mohri_obj : NSObject の中身

mohri_obj クラス

aaa(int i1) Method

これだけしかしないクラスの完成!

Page 30: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

mohri_obj : NSObject を Delphi で呼ぶ準備

• xcode でビルドするとヘッダファイルも自動で吐き出すのですがこれは Delphi では使えません

• Delphi のコードでヘッダを作る必要があります

Page 31: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

別 .pas で作ろうと思ったんですが

• 同一のプロジェクトフォーム側の TYPE 宣言に追加する事にしました

• RAD Studio(Delphi) を起動します

Page 32: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

[ 新規 ]Fire Monkey モバイルアプリケーションプロジェクト

入力 BOX2 つとボタンを配置します

Page 33: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Delphi Type 宣言に追加

NSObject をインターフェースした mohri_obj の宣言をする

Delphi のクラスで呼び出せるように NSObjectClass を作成しTOCGenericImport で関係性を作る

上記のような物理的に DLL 呼ぶときのような処理も必要です全部メインフォーム上に記述しても OK です別のユニット作っても OK です

Page 34: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

Button イベントを作成し mohri_obj を使ってみます

Page 35: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

実行すると

Page 36: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

NSLog が使いたい場合xcode でいつも使っている Log を出す方法を Delphi でも利用したい場合

xcode のオーガナイザー画面で出力が可能です

Page 37: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

おまけ• Android での開発の場合 Java で作ったクラ

スも Delphi で呼べます• 僕の場合は JNI を使いますが他にも方法が

いくつかあります• TJNIResolver.GetJavaMethodID を使う方法が

楽でした

Page 38: RAD Studio Delphi XE5 iOS  For beginners Haruyuk Mohri

まとめ• iPhone のプログラムを Delphi で組むには

xcode の知識もあった方が何かと便利

• Delphi も xcode も同じような画面が作れる(Fire Monkey は部品をカスタマイズできる )

• Delphi と xcode 両方の良い点を理解して組合わせてみるとできなかった事ができたりするかもしれない