25th Developer Camp

Similar documents
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」

Windows開発者のためのFireMonkeyモバイル開発入門

25th Developer Camp

25th Developer Camp

「基礎から学ぶビジュアルAndroidアプリ開発 今日からあなたもAndroidデベロッパー」

20th Embarcadero Developer Camp

新バージョンDelphi/400 XE7ご紹介 - マルチデバイスデザイナ機能で開発効率アップ! -

24th Embarcadero Developer Camp

Java, Delphi, C++Builderユーザのためのメモリリーク, ボトルネックの検出手順

Windowsユーザでも 手軽に作れるiPhoneアプリ

21st Embarcadero Developer Camp T9

1 シミュレーションとは何か?

初 めての ios アプリケーション iphone Form TLabel TButton. 図. コントロールの 配 置 Button OnClick Button. 00

f5

Delphi/400 テクニック公開 Windows7に最適化した アプリ開発・運用テクニック

開発者が知りたい実践プログラミングテクニック!

Microsoft Word - プリンター登録_Windows XP Professional.doc

Android アプリを作るための環境設定 Android アプリを作るのに必要なものは Android SDK と Java 開発環境の Eclipse です 環境設定作業の概要はまず Android SDK と Eclipse をそれぞれインストールします その後 Eclipse を起動し An

インテル(R) Visual Fortran コンパイラ 10.0

テクニカルセミナーベストセレクション

PowerPoint Presentation

Embarcadero Developer Camp

Delphi/400開発ノウハウお教えします 情報を守ろう!安全性を高めたWebシステムの構築

6 接続の使用準備ができました 画面が表示されます 閉じる をクリックします 認証に事前共有キーを使う の キー に リモートアクセス接続用シークレットキー を入力後 OK をクリックします 今すぐ接続します はクリックしません. アダプターの設定 (Window 7) コントロールパネル - ネッ

自宅でJava言語の開発環境を作る方法

PowerPoint プレゼンテーション

Microsoft PowerPoint - DELPHI�礔.ppt

Microsoft PowerPoint - はじめてのDataSnapアプリケーション_

PowerPoint Presentation

·

Red Hat Enterprise Linux 6 Portable SUSE Linux Enterprise Server 9 Portable SUSE Linux Enterprise Server 10 Portable SUSE Linux Enterprise Server 11 P

WPF アプリケーションの 多言語切替

10th Developer Camp - B5

Microsoft PowerPoint - Skype for business の概要.pptx

Microsoft Word JA_revH.doc

「DataSnapユースケース研究」 多層技術の概要と最適化、実践テクニック

607HW ユーザーガイド

ios 12, Android 9 時代の 今からでも始められるモバイル開発入門 第 36 回エンバカデロ デベロッパーキャンプ 株式会社シリアルゲームズ取締役 / AppDiv3 マネージャー細川淳 本文書の一部または全部の転載を禁止します 本文書の著作権は 著作者に帰属します

2. 生田仮想デスクトップ PC の接続方法 生田仮想デスクトップ PC に接続する方法は 次の 2 通りです 1. HTML アクセス Internet Explorer や Safari などのブラウザを用います PC に特別なソフトウェアをインストールす る必要が無いので 管理者権限をもってい

Install / Protect / Monetize InstallShield 全機能 データシート プロフェッショナルなインストールの作成 PREMIER PROFESSIONAL EXPRESS MSIX パッケージ サポート フレームワークをサポート Windows Installer(

PowerPoint プレゼンテーション

Chart3D for WPF/Silverlight

Microsoft PowerPoint - install_NGSsokushu_windows(ver2.1).pptx

[PPD ファイルの生成 ] ダイアログボックスが表示されます 保存先を指定します ( 図では PPD フォルダをHD 直下に事前に作成し指定 ) [PPD の種類 :] の設定は Mac に設定します [OK] ボタンをクリックすると PPD ファイルが 生成されます 指定した保存先に PMP65

Micro Focus Enterprise Developer チュートリアル メインフレーム COBOL 開発 : MQ メッセージ連携 1. 目的 本チュートリアルでは CICS から入力したメッセージを MQ へ連携する方法の習得を目的としています 2. 前提 使用した OS : Red H

KDDI Smart Mobile Safety Manager ios キッティングマニュアル 最終更新日 2018 年 12 月 13 日 Document ver1.0 (Web サイト ver.9.5.0)

PowerPoint プレゼンテーション

「C++Builderでモバイル開発にトライ! ベータ評価レポート」

PowerPoint プレゼンテーション

Visual Studio with Cordova クロスプラットフォーム開発の全貌

機密性 2 [AFFRIT 登録利用者限り ] 農林水産研究情報総合センタークライアント証明書発行基盤 利用者マニュアル 第 1.4 版 2016 年 3 月 28 日作成 2019 年 3 月 18 日改訂 農林水産研究情報総合センター

home-unit2_quickguide_ras_v1.1

14th Developer Camp

ミガロ.製品 最新情報

Magic Desktop


4. 環境変数の設定実行にあたり 次のように環境変数を設定する必要があります 1)SJIS ロケールの指定コマンド例 )export LANG=ja_JP.sjis 2)MQ 環境の指定コマンド例 ). /opt/mqm/bin/setmqenv s 3)COBOL 実行環境の指定コマンド例 ).

4-7.コネクト2.0_電話操作マニュアル(ZoiperFree)_v1.1.0

ArcGIS Pro 1.1 SDK for .NET インストール ガイド

Notesアプリが iPadで動くDomino Mobile Apps ご紹介

リモートアクセス Smart Device VPN ユーザマニュアル [ マネージドイントラネット Smart Device VPN 利用者さま向け ] 2015 年 10 月 20 日 Version 1.6 bit- drive Version 1.6 リモートアクセス S

Presentation Arial Narrow 28 pt

セットアップガイド

REX-USB56 「FAX送信」編 第6.0版

Transcription:

C1 Delphi/iOS チュートリアルセッション エンバカデロ テクノロジーズエヴァンジェリスト高橋智宏

アジェンダ OS X 側の準備 Windows 側の準備 画面の作り方 ( メインフォームとサブフォームム ) デバッグの基礎 ( ログの出力と確認 ) デバイスの回転に対応するには? iphone, ipad への対応方法 アプリのローカライズ手順 Delphi 言語の変更点 ( モバイル向け )

OS X 側の準備

モバイルアプリ実行 & デバッグの仕組み ローカル or リモート Windows or Mac 実行 & デバッグ用ブリッジ (RAD PAServer XE4) Windows 上の IDE ios シミュレータ ios 実機 ios5.1 以降 Android エミュレータ Android 実機

Mac マシン OS X 10.8 (Mountain Lion) または 10.7 (Lion) Xcode 4.6.1 ios 61SDK& 6.1 シミュレータ Command Line Tools ( 実機向けコード署名 )

ブリッジ RAD PAServer XE4 を OS Xにインストール RAD Studio 11.0 PAServer RADPAServerXE4.pkg をMacにコピーしてインストールを行う アプリケーション RAD PAServer XE4.app をダブルクリックして Enterキーを押す OS X 側のファイアウォールは切っておく

実機の準備 ios 51x 5.1.x 61x 6.1.x の iphone 4 5, ipod touch 4 5 ios 5.1.x 6.1.x の ipad 2 4, ipad mini ios Developer [Enterprise] Program https://developer.apple.com/jp/support/ios/enrollment.html アプリを実機に転送するための証明書 アプリケーション キーチェーンアクセス.app で作成 ios Provisioning Portal に登録 アプリケーション キーチェーンアクセス.app に登録 実機のUDIDをiOS Provisioning Portal に登録 実機を Xcode の Organizer に認識させる

Windows 側の準備

Windows OS の準備 Vista, Windows 7 または Windows 8 32bit または 64bit 物理マシンまたは仮想 OS OS X 向けの VM 製品を使う場合には VMware Fusion 4 または 5 http://www.vmware.com/jp/products/desktop_virtualization/fusion / Parallels l Desktop 7 または 8 for Mac http://www.parallels.com/jp/products/desktop/ Oracle VirtualBox 4.x for OS X https://www.virtualbox.org

IDE の [ 環境オプション ] の設定 [ 自動保存の設定 ] [ エディタファイル ] を ON [ 接続プロファイルマネージャ ] [ 追加...] プラットフォーム : OS X [SDK マネージャ ] [ 追加 ] プラットフォーム : ios デバイス 接続するプロファイル : 上で作成したもの SDK バージョン : iphoneos 6.1 ios シミュレータ向けの SDK 設定は不要!!

モバイルプロジェクト プロジェクト名 ( 英数字のみ ) Project1.dproj アプリ名 ( 日本語も OK) バージョン情報の CFBundleDisplayName で設定 ターゲットプラットフォーム ios デバイス (iosdevice) ios シミュレータ (iossimulator) ビルド構成 Debug Release

画面の作り方 ( メインフォームとサブフォーム )

フォーム (TForm) の基礎 常に ios の全領域 ( ステータスバーを除く ) を覆う サイズ (Width x Height) は 3 種類 フォーム自体にスクロール機能は無い ScrollBox 系のコンポーネントを利用する Font プロパティは無い 各コンポーネントはデフォルトで ios のシステムフォントを利用

Show/ShowModal メインフォームとは 最初に生成される TForm iphone と ipad で別個のフォームを用意するか否か? それ以外のフォーム (TForm) を表示するには? subform1.show(); モードレス subform1.showmodal(); モーダル やはり iosの画面全体を覆ってしまう ダイアログボックス的な表示は出来ない TFormのTransparencyプロパティは使えない!? TPanelやフレーム (TFrame) を使う!!

InputQuery/ShowMesage InputQuery ユーザーに入力を求める ShowMessage メッセージを表示する procedure TForm1.Button1Click(Sender: TObject); var result: string; begin if InputQuery(' タイトル ', ' メッセージ ', result) then begin ShowMessage(result); end; end; ios 標準のダイアログボックスを使用

デバッグの基礎 ( ログの出力と確認 )

ログの出力 ios API を使用すると uses iosapi.foundation; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; f: Single; e: Extended; // Double begin i := Random(100); f := 123.456; e := Random; NSLog(TNSString.OCClass.stringWithString(NSSTR('%@:%d:%f:%f')), TNSString.OCClass.stringWithString(NSSTR(' これはログメッセージ!')), i, f, e); end;

ログの出力 Delphi のライブラリを使用しましょう!! uses FMX.Platform; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; f: Single; e: Extended; // Double log: IFMXLoggingService; i begin i := Random(100); f := 123.456; e := Random; log := TPlatformServices.Current.GetPlatformService(IFMXLoggingService) as IFMXLoggingService; log.log('%s:%d:%f:%f', [' これはログメッセージ!', i, f, e]); end;

iosシミュレータ アプリケーション ユーティリティ コンソール.app

ios 実機 Xcode Window Organizer DEVICES 実機 Xcode Window Organizer DEVICES 実機 Console

デバイスの回転に対応するには?

デバイスの向き ( 縦 横 ) とイベント 表示される前に TForm.OnResize イベントが発生 ただし Screen.ActiveForm のみ TForm.Width/Height が縦 横に応じて変化 Screen.Size.Width/Height は縦向きで固定 向きは 4 種類 uses FMX.Platform, System.TypInfo; procedure TForm1.FormResize(Sender: TObject); Var screen: IFMXScreenService; ori: TScreenOrientation; begin screen := TPlatformServices.Current.GetPlatformService(IFMXScreenService) as IFMXScreenService; ori := screen.getscreenorientation; log.log('%s', [GetEnumName(TypeInfo(TScreenOrientation), Integer(ori))]); end;

デバイスの向きを固定するには? [ プロジェクトオプション ] [ アプリケーション ] [ 向き ] カスタムの向きを ON にして 4 種類から選択

iphone, ipad への対応方法

ユニバーサルアプリ 単体で iphone(ipod touch) と ipad の両方に対応しているアプリのこと iphone(ipod touch) のみ対応のアプリも可 ipad にインストールすると 等倍または 2 倍で表示される ipad のみ対応のアプリも可 [ プロジェクトオプション ] [ バージョン情報 ] で指定 UIDeviceFamily iphone & ipad

デバイス情報を取得 モデル名とバージョン番号 Delphi RTL 版 uses FMX.Platform; procedure TForm1.Button1Click(Sender: TObject); var device: IFMXDeviceService; os: TOSVersion; begin device := TPlatformServices.Current.GetPlatformService(IFMXDeviceService) as IFMXDeviceService; ShowMessage(device.GetModel +': + IntToStr(os.Major)+'.'+IntToStr(os.Minor)); end; バージョン番号は 2 つの整数値 ( メジャー & マイナー ) 例 : iphone:6.1

デバイス情報を取得 ( 続き ) モデル名とバージョン番号 ios API 版 uses iosapi.uikit; procedure TForm1.Button1Click(Sender: TObject); var device: UIDevice; model: string; version: string; begin device := TUIDevice.Wrap(TUIDevice.OCClass.currentDevice); model := UTF8ToString(device.model.UTF8String); version := UTF8ToString(device.systemVersion.UTF8String); ShowMessage(model + ':' + version); end; バージョン番号は文字列 例 : ipad:5.1.1

メインフオームを切り替える メインフォームは Project 名.dpr のコードで決定される FormFamily で FireMonkey に自動選択させる方法もあり program Project1; uses System.StartUpCopy, FMX.Forms, FMX.Platform, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} var device: IFMXDeviceService; begin Application.Initialize; device := TPlatformServices.Current.GetPlatformService(IFMXDeviceService) as IFMXDeviceService; if Pos('iPad', device.getmodel) > 0 then Application.CreateForm(TForm2, Form2) // ipad else Application.CreateForm(TForm1, Form1); // iphone,ipod touch Application.Run; end.

アプリのローカライズ手順

TLangコンポーネント 各言語向けの翻訳リストを管理 GUI の文字列プロパティなどを動的に自動置換 procedure TForm1.Button1Click(Sender: TObject); var msg: string; begin msg := 'test'; ShowMessage(msg); // てすと (ja) end;

ロケールの取得 iosのロケール一覧 (ja, en など ) uses iosapi.foundation, iosapi.uikit; var la: NSArray; i: Integer; lname: NSString; begin la := TNSLocale.OCClass.preferredLanguages; for i := 0 to la.count-1 do begin lname := TNSString.Wrap(la.objectAtIndex(i)); ListBox1.Items.Add(UTF8ToString(lname.UTF8String)); end; end; 選択されている言語 (ja, en など ) uses FMX.Platform; var locale: IFMXLocaleService; begin locale := TPlatformServices.Current.GetPlatformService(IFMXLocaleService) as IFMXLocaleService; ShowMessage(locale.GetCurrentLangID); end;

Delphi 言語の変更点 ( モバイル向け )

文字列 型 UTF-16 の string(unicodestring) のみ ポインタ PChar(PWideChar) のみ 文字へのアクセス インデックスは 0 から始まる var device: string; begin device := 'My iphone Simulator'; ShowMessage(device[4]); // P(iOS) ShowMessage(device[Pos('iPhone' iphone, device)]); // P(iOS) ShowMessage(device[3]); // i(ios) ShowMessage(device[device.IndexOf('iPhone')]); // i(ios) end;

ARC(Automatic Reference Counting) NSAutoRelasePool の GC でもなく Objective-C の ARC でもない Delphi 独自の ARC Delphi 言語のオブジェクトの解放は不要 type TMyClass = class public constructor Create; destructor Destroy; override; end; procedure TForm1.Button1Click(Sender: TObject); var obj: TMyClass; begin obj := TMyClass.Create; // obj.free; // FreeAndNil(obj); // obj := nil; end;

ヘルプ & 資料 多くのサンプルプロジェクト C: Users Public Documents RAD Studio 11.0 Samples FireMonkeyMobile 日本語のヘルプ & チュートリアル 製品付属のヘルプ & オンラインの docwiki ホワイトペーパー The Delphi Language for Mobile Development マルコ カントゥ著 参考書籍 Delphi でかんたん ios アプリプログラミング 著者 : 細川淳 ( ほそかわ じゅん ) 出版 : カットシステム http://www.cutt.co.jp/book/978 co jp/book/978-4-87783-310-7 87783 310 7.html