Upload
mohri-haruyuk
View
592
Download
5
Embed Size (px)
DESCRIPTION
RAD Studio Delphi XE5 iOS For beginners Haruyuk Mohri
Citation preview
Delphi で、はじめての iOS と Android
自己紹介 • なまえ 毛利 ( モウリ )• 職業 カラオケシステム と東京で店舗• Twitter @haruyuk• Facebook haruyuk• 趣味 ドラムやったりギターやったり
iPhone のアプリを Delphi で組む!
メリットってなんでしょ。。。Delphi で組むんだったら iPhone と Android両方同じソースで組むのがメリットだと思います
iOS(iPhone) だけで良いなら xcode で組むのも大差ないです
必要な物• iPhone もしくは iPad(mini)• Mac (Mac OS X) Mavericks, Mountain Lion• Windows• xcode 最新• iOS Developer Program 登録 (8 千円弱? )• RAD Studio( もしくは Delphi) XE5 以上
Mac で xcode が動いてデバッグできる環境を作る
• xcode のインストールは App Store からできるので簡単です
• xcode インストール後 Command Line Toolsも忘れずインストール
Windows に RAD Studio XE5(6) をインストールする
• 普通に SetUp から
接続構成
Windows
RAD Studio( Delphi)
Mac OS
Paserver XE5(6)
xcode
iPhone5(S)
Command Line ToolsTCP/IP
Mac OS 上で PAServer を起動する
ターミナル上で /Application/RAD PAServer XE5(6).app/Contents/MacOS/paserver
Windows(RAD Studio) 側からこの TCP ポートで接続します
RAD Studio(Delphi) でプロジェクト作る
こんな画面です
デフォルトは Android になってます
ターゲットを iPhone に変更します
Hellow Word はたったこれだけ
画面ダブルクリックで下記の method が作られるので 実行したい内容を記述するだけです
なんですが。。。。
Hellow world だけなら xcode でも Code 数は変わらないww
Button のタッチイベント
iPhone アプリを Delphi で作るメリットは?
UI も xcode そっくり
xcode 開発環境 RAD Studio(Delphi) 開発環境
Android ターゲットで Delphi プログラム
開発に必要な物• Windows 7 以降の端末• Android 端末 (USB ケーブル含む )• JDK( たぶん 7)
Android 用の SDK はとくに 無くても RAD Studio の中にはいってます気になる方は 最新の SDK とってきてください
Android 開発環境• Android 端末は機器やバージョンで 開発接
続までの環境が様々です• 通常の ADB などの開発環境で端末認識し
ている状態でしたら RAD Studio でも動作します
こんな感じでデバイスマネージャーから見えていれば 接続できます
たまたま接続した Android 端末名
Windows 上で認識できていればRAD Studio でも認識できている
こんな感じに見えてたら接続できています
RAD Studio(Delphi) の IDE 操作感は変わりません
Button1 をダブルクリックでイベント作成
UI がカスタマイズできます!RAD Studio なら部品はそのままで見た目のデザイン変更できます
TStyleBook を使ってカスタマイズ
RAD Studio でカスタマイズされた UI を使いつつ xcode のライブラリも使いた
い• RAD Studio は画面デザインを簡単にカスタ
マイズできます• 視覚的に 3D アプリを作りたい
• でも中身はやっぱり Objective-C で書きたい
ここからが本題
xcode で作ったライブラリをRAD Studio(Delphi) で利用する
NSObject で簡単なクラスオブジェクトを作ってみる
• NSObject クラスから自分用のライブラリを作ってみる ( 慣れた人はどって事無い作業 )
この辺にクラスつくるテンプレートがあります
Next
NSObject 継承して勝手にできます今のところ他の Object は試してませんイケるクラスはイケると思います
Delphi で言う Tobject みたいなもの?
適当に Objective-C の Method 作ります
ヘッダーに追加 実態側にコード記述i1 に 10 足して return
⌘B でビルドすると *.a ファイルができます
ビルドするとこんな感じで *.a ファイルができました
mohri_obj : NSObject の中身
mohri_obj クラス
aaa(int i1) Method
これだけしかしないクラスの完成!
mohri_obj : NSObject を Delphi で呼ぶ準備
• xcode でビルドするとヘッダファイルも自動で吐き出すのですがこれは Delphi では使えません
• Delphi のコードでヘッダを作る必要があります
別 .pas で作ろうと思ったんですが
• 同一のプロジェクトフォーム側の TYPE 宣言に追加する事にしました
• RAD Studio(Delphi) を起動します
[ 新規 ]Fire Monkey モバイルアプリケーションプロジェクト
入力 BOX2 つとボタンを配置します
Delphi Type 宣言に追加
NSObject をインターフェースした mohri_obj の宣言をする
Delphi のクラスで呼び出せるように NSObjectClass を作成しTOCGenericImport で関係性を作る
上記のような物理的に DLL 呼ぶときのような処理も必要です全部メインフォーム上に記述しても OK です別のユニット作っても OK です
Button イベントを作成し mohri_obj を使ってみます
実行すると
NSLog が使いたい場合xcode でいつも使っている Log を出す方法を Delphi でも利用したい場合
xcode のオーガナイザー画面で出力が可能です
おまけ• Android での開発の場合 Java で作ったクラ
スも Delphi で呼べます• 僕の場合は JNI を使いますが他にも方法が
いくつかあります• TJNIResolver.GetJavaMethodID を使う方法が
楽でした
まとめ• iPhone のプログラムを Delphi で組むには
xcode の知識もあった方が何かと便利
• Delphi も xcode も同じような画面が作れる(Fire Monkey は部品をカスタマイズできる )
• Delphi と xcode 両方の良い点を理解して組合わせてみるとできなかった事ができたりするかもしれない