SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi - Ready Study
Sencha & Delphi Ready Study
2017/09/26
Delphi MVP 細川 淳
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi の歴史(日本)
リリース日時 製品名 Win16 Win32 Win64 .NET macOS iOS32 iOS64 Android Linux 無償版
1995/09 Delphi ○
1996/06 Delphi 2 ○
2001/07 Delphi 6 ○ Delphi 6 Personal
2003/11 Delphi 8 ○
2004/11 Delphi 2005 ○ ○
2005/11 Delphi 2006 (※1) Turbo Delphi Explorer
2007/11 Delphi 2007 ○ ○
2011/09 Delphi XE2 ○ ○ ○ ※2
2013/04 Delphi XE4 ○ ○ ○ ○
2013/09 Delphi XE5 ○ ○ ○ ○ ○
2015/04 Delphi XE8 ○ ○ ○ ○ ○ ○
2016/04 Delphi 10.1 Berlin ○ ○ ○ ○ ○ ○ Starter Edition
2017/03 Delphi 10.2 Tokyo ○ ○ ○ ○ ○ ○ ○ Starter Edition
※1 製品名は Borland Develper Studio 2006
※2 Free Pascal による実装で XE4 以降の方式とは異なる
iOS にはエミュレーターを含む
コンパイラバージョンは TurboDelphi 1 から通し番号(Tokyo : VER320)
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Delphi 10.2 Tokyo が対応している OS とコンパイラ
OS Architecture Compiler
Windows x86 32bit DCC32
Windows x64 64bit DCC64
macOS x86 32bit DCCOSX
Linux x64 64bit DCCLINUX64
iOS ARM(Apple A6以前) 32bit DCCIOSARM32
iOS ARM(Apple A7以降) 64bit DCCIOSARM64
iOS シミュレータ x86 32bit DCCIOS32
Android ARM 32bit DCCAARM
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi のライブラリ
• Runtime Library (RTL)
– 名前空間 : System
– VCL / FMX 共通で基礎となるライブラリ
• Visual Component Library (VCL)
– 名前空間 : Vcl
– Windows 専用のライブラリ
– Win32 をラッピングしたものです
– Professional 以降ではソースコードが公開されています。
• FireMonkey (FMX)
– 名前空間 : FMX
– マルチプラットフォーム用のライブラリ
– XE2 で追加されました。
– Professional 以降ではソースコードが公開されています。
• 一部 Object Pascal ではない記述があります (Android Activity 部)
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi で出来ること
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi で出来ること
• Windows, macOS, iOS, Android のネイティブアプリケーション作成
– CPU が直接実行できるバイナリを吐き出します。
• Android でも Java コードではなく ARM のネイティブコードが出力されます
– Linux はコンソールアプリケーションが作成できます。
• FMXLinux というサードパーティーの製品を使うと GUI アプリケーションも作成出来ま
すが…
• FmxLinux Page: http://fmxlinux.com/
• Drag & Drop 形式の GUI 構築
– Delphi 1.0 から続く Delphi を Delphi たらしめる要素
– 現在では VCL, FMX という2つのライブラリがある
• Object Pascal 言語を使った開発
– Pascal が教育用に設計されただけあって綺麗な言語
• 現代的な言語要素もちゃんとあります。
• TIOBE では 9~12 位あたりをうろうろしてます。
– でも C++ を使った開発も出来ないことはない(C++Builder)
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi で出来ること
• API 直接呼び出し
– API をラッピングせずに呼び出せます。
uses
Macapi.ObjectiveC,
Macapi.CocoaTypes,
Macapi.Foundation,
Macapi.AppKit,
FMX.Platform.Mac
procedure SetMinSize(const iForm: TForm; const iMinW, iMin: Integer);
var
Wnd: NSWindow; // OS X 用のクラスがそのまま使えてる
Size: NSSize; // こっちも
begin
Wnd := WindowHandleToPlatform(iForm.Handle).Wnd; // NSWindow を取り出す
Size.width := iMinW;
Size.height := iMinH;
Wnd.setContentMinSize(Size); // そのまま呼び出せる
end;
macOS のコードを呼び出す例
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi で出来ること
• API 直接呼び出し
– Jar リンケージ
• Jar ファイルを追加すると自動的に dex ファイルに組み込まれます。
• Java2OP を使えば Jar ファイルへのブリッジファイルが自動で生成されます。
uses
Androidapi.JNI.JavaTypes,
Androidapi.JNI.GraphicsContentViewText,
FMX.Helpers.Android;
procedure StartIntent;
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent
.setAction(TJIntent.JavaClass.ACTION_VIEW)
.setData(StrToJURI('URLとか'));
try
SharedActivity.startActivity(intent);
except
on E: Exception do
Log.e(E.Message);
end;
end;
Android のコードを呼び出す例
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi で出来ること
• 3D もお手の物です
– なお Delphi が 3D もお手の物だとしても、僕自身はお手の物ではないので、割愛
します…
Delphi で 3D といえば
でおなじみの中山さんの
GitHub リポジトリより
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Drag & Drop 形式の GUI 構築
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
ビジュアル開発
• コンポーネントによるビジュアル開発
コンポーネント(部品)を
D&Dで配置します
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
ビジュアル開発
• 2way-tools
オブジェクトインスペクタで
・プロパティ(部品の属性)の変更
・イベントの生成
ができます
これらは全てコードとして生成されます。
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
ビジュアル開発
置いたコンポーネントが
自動的にクラスの変数に!
イベントがメソッドとして
自動的に宣言される!
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Drag & Drop 形式の GUI 構築
- FireMonkey について
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
FireMonkey の仕組み
• 自分で描画!
– 使う API 群は各 OS のネイティブを使います
• Windows DirectX
• macOS OpenGL
• iOS OpenGL ES
• Android OpenGL ES
– 基本的にベクターグラフィクス
• Bitmap を中に埋め込むこともできます
– 自分で描画しているので何でもあり!
• 全てのコントロールがコンテナになれます!
– IDE は Windows で動いているにも関わらず他の見た目を表示できます!
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
FMX Control
FMX Control
FMX Control
FireMonkey World
Native Layer
各 OS に依存した構造上に自分で描画しています
FMX Control は「絵」!
OS から見ると実体はありません!
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
自分で描画しているので UI すら 3D にできます
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
見た目サンプル
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Style を適用した見た目サンプル
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
マルチプラットフォーム
開発環境について
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Windows の開発
– Windows PC だけで OK !
• macOS の開発
– macOS 実機が必要なので Mac が必要です。
– Xcode も必要です。
• iOS の開発
– macOS 開発で必要なもの(Mac, Xcode)
– iOS Developer License
• Android の開発
– ハードウェアは Windows PC で OK です。
– Android SDK, Android NDK が必要です
• ただし、この2つは Delphi をインストールするとインストールされます。
– インストールしないことも可能です
• Linux の開発
– Ubuntu, Red Had および、それぞれの SDK が必要です
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
マルチプラットフォーム開発を試すには
• まずは Android で。
– Windows PC と Delphi, USB ケーブルだけあれば良い
– お金が掛からない
• Google Play に出すためには有料の開発者登録が必要です。
• Windows のアプリと Android のアプリを同時に作れます。
– FireUI, Style, TMultiView などの機能を使えば UI も1つのコードで作れます。
– つまり、デスクトップアプリケーションとモバイルアプリケーションを同時に作
成可能です。
USB Cable
ADB
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• iOS の場合
Lightning Cable
Network
Windows PC
Mac
iPhone
PAClient
PAServer
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi 6つのメリット
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Delphi のメリット
• Delphi の特徴
– プラットフォーム・フリー
– 解像度フリー
– アスペクト比フリー
– コーディング・フリー
– 言語フリー
– 自然言語フリー(日本語などの方)
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
プラットフォームフリー
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
プラットフォームフリー
• プラットフォーム・フリー
– マルチプラットフォームでの開発の場合、Android / iOS で同じ UI になることも
多いです
• 異なる UI にするための仕組みが必要になります
戻る戻る
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
OSが違うのに
同じ見た目!
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Delphi の場合
– 各プラットフォームに即した見た目になります
• 異なる UI にするための仕組みが標準で備わっています
※ここでは、Android / iOS
ともに Black と呼ばれる
スタイルを使用
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Delphi の場合
Android にはソフトウェアの戻るボタ
ンは必要ないので消すこともできます。
(ここでは説明のために表示)
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• FireUI によって多種多様な OS に対応
– Android の Fragment と同じ機構 (TMultiView) があるので
タブレットとフォンでさえ分ける必要ありません!
標準で Google Glass にも対応!
Add-on で Google Wear(Google Watch)
にも対応!
UI もドロップダウン1つで
非常に簡単に切り替えられる
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Delphi の場合
– Android では Android SDK ではなく、Android NDK と呼ばれる技術で構築され
ます。
– そのため、Nexus では動くのに、Galaxy で動かない!といった OS 間の差異か
ら解放されます。
アプリ完成! Galaxy で動かない!
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
解像度フリー
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• 解像度フリー
– 標準の開発環境でも、その他の環境でも、多種多様な解像度の端末に合わせるの
が非常に苦労します。
iPhone の解像度
また増えたの!?
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Delphi の場合
– 仮想解像度(320 x 480)で UI が作られる
• 自動的に実機に合わせてスケールアップされる
– UI はベクターで描かれる
• スケールアップしても UI がぼやけたりしない
– 多重解像度ビットマップ
• png などのラスタ形式では、複数の解像度の画像を保持できる
• 自動的に最適な解像度の画像が選ばれる
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Android 4 inch
Android 5 inch
Android 7 inch
Android 10 inch
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
アスペクト比フリー
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• アスペクト比フリー
– さまざまな開発環境でターゲットデバイスの
アスペクト比が違う場合、UI の設計を考え直す必要があります。
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Delphi の場合
• Align
• Anchors
– という仕組みで UI の位置を相対的に指定可能です
– 相対指定なので比率が変わってもレイアウトが
崩れません!
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Align プロパティ
– 左寄せ、右寄せ、センタリング、といった配置を指定できます
• 指定可能な配置は全部で20個あります。
• 間を埋める(Client)といった指定もできます。
Button Align = Left Button Align = Right Button Align = Center
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Anchor プロパティ
– Anchor(いかり)を下ろして位置を固定するイメージ
– いかりの位置に引っ張られます
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Anchor を左上に設定 大きくなっても左上を維持
Anchor を右下に設定 大きくなっても右下を維持
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Anchor を左上・右下に設定 大きくなっても左上・右下を維持!
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
コーディング・フリー
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• コーディング・フリー
– Delphi はコンポーネントが「異常」に充実しています(200以上存在)。
これによってほとんどコードを書かずに様々な機能を実現可能です。
たとえば、カメラアプリであれば、コードはたったの1行です。
(TTakePhotoFromCameraAction を使用)
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
procedure TForm1.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);
begin
Image1.Bitmap.Assign(Image);
end;
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Visual LiveBindings
– Delphi では Visual LiveBindings によってコーディング無しでプロパティ値を変
更できます。
PropertyBindSource から ListView の
Text プロパティを自動的に変更している様子
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• エフェクト
– Delphi ではエフェクトをコンポーネント1つ付けるだけで実現できます(60種
類以上)。
ボタンに TGlowEffect を
掛けた様子
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• アニメーション
– アニメーションも非常に簡単に設定できます。
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
Animation コンポーネントには
様々なプロパティが存在します。
たとえば、Trigger プロパティは、
いつアニメーションをスタートするかを
決定できます。
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
言語フリー
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• 言語フリー
– 標準開発環境以外の環境では SDK にアクセスするためには、プラグインや
DLL といった仕組みが必要です。
• SDK とは、OS が提供している機能
OSに直接アクセス
できる
標準の開発環境
ハード
OS
アプリ
途中に VM / FirmWare があって
OSに直接アクセスできない!
そもそも言語が違うからアクセス
できない!
標準ではない開発環境
ハード
OS
VM etc
アプリ
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Delphi の場合
– OS の機能にも、ハードウェアにもアクセスできます
– 言語は Object Pascal のまま Java / Objective-C の機能を呼び出せます
(OCImport / JNIImport)
ハード
ARM ベース
Android iOS
アプリ
ハードウェアに直接アクセスできるため
GPS や加速度センサなどセンサー類や
Bluetooth などを簡単に使用可能です。
(簡単に利用できるようにするために
ラッパークラスが用意されています
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
自然言語フリー
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
アプリ
• 自然言語フリー
– Android / iOS に備わっている多言語対応機能によって標準環境で作られた場
合、自動的に最適な言語が選ばれます。
– 標準ではない環境の場合、この機能に対応していない事も多いです。
ここを押してね
Application
Push hare
Copyright © 2016 SERIALGAMES inc.. All Rights Reserved.
• Delphi の場合
– 言語マネージャによって翻訳済みテキストが自動的に選択されます。
左図を拡大

Más contenido relacionado

La actualidad más candente

Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconDeNA
 
2016/11/21 社内LT Android TV
2016/11/21 社内LT Android TV2016/11/21 社内LT Android TV
2016/11/21 社内LT Android TVJun Hosokawa
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてTatsuhiko Yamamura
 
Play with DockerでDocker学習環境を整えよう!
Play with DockerでDocker学習環境を整えよう!Play with DockerでDocker学習環境を整えよう!
Play with DockerでDocker学習環境を整えよう!Hori Tasuku
 
Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発dena_study
 
消滅都市 Cocos2d-xでの演出・UIあれこれ
消滅都市 Cocos2d-xでの演出・UIあれこれ消滅都市 Cocos2d-xでの演出・UIあれこれ
消滅都市 Cocos2d-xでの演出・UIあれこれShun Noguchi
 
写真で見る Donkey Car の組み立て
写真で見る Donkey Car の組み立て写真で見る Donkey Car の組み立て
写真で見る Donkey Car の組み立てHori Tasuku
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechconDeNA
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platformToru Yamaguchi
 
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
[CEDEC2014] 消滅都市のつくりかた   半年で素敵なゲームをリリースするには -[CEDEC2014] 消滅都市のつくりかた   半年で素敵なゲームをリリースするには -
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -gree_tech
 
FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化dena_study
 
Unityネイティブプラグイン
UnityネイティブプラグインUnityネイティブプラグイン
UnityネイティブプラグインMakotoItoh
 
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!hmimura_embarcadero
 
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」Naoki Yokota
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphonedena_study
 
スマホゲームの小規模開発チームで意外とAdobe AIRが使われている話
スマホゲームの小規模開発チームで意外とAdobe AIRが使われている話スマホゲームの小規模開発チームで意外とAdobe AIRが使われている話
スマホゲームの小規模開発チームで意外とAdobe AIRが使われている話増田 コージ
 
エターナらないゲーム開発
エターナらないゲーム開発エターナらないゲーム開発
エターナらないゲーム開発Kohki Miki
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話Kentaro Matsumae
 
Cedec2015 お客様に驚きを提供する運営 消滅都市の事例から-
Cedec2015 お客様に驚きを提供する運営  消滅都市の事例から-Cedec2015 お客様に驚きを提供する運営  消滅都市の事例から-
Cedec2015 お客様に驚きを提供する運営 消滅都市の事例から-gree_tech
 
FINAL FANTASY Record Keeper の作り方
FINAL FANTASY Record Keeper の作り方FINAL FANTASY Record Keeper の作り方
FINAL FANTASY Record Keeper の作り方dena_study
 

La actualidad más candente (20)

Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
2016/11/21 社内LT Android TV
2016/11/21 社内LT Android TV2016/11/21 社内LT Android TV
2016/11/21 社内LT Android TV
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成について
 
Play with DockerでDocker学習環境を整えよう!
Play with DockerでDocker学習環境を整えよう!Play with DockerでDocker学習環境を整えよう!
Play with DockerでDocker学習環境を整えよう!
 
Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発
 
消滅都市 Cocos2d-xでの演出・UIあれこれ
消滅都市 Cocos2d-xでの演出・UIあれこれ消滅都市 Cocos2d-xでの演出・UIあれこれ
消滅都市 Cocos2d-xでの演出・UIあれこれ
 
写真で見る Donkey Car の組み立て
写真で見る Donkey Car の組み立て写真で見る Donkey Car の組み立て
写真で見る Donkey Car の組み立て
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechcon
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
 
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
[CEDEC2014] 消滅都市のつくりかた   半年で素敵なゲームをリリースするには -[CEDEC2014] 消滅都市のつくりかた   半年で素敵なゲームをリリースするには -
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
 
FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化
 
Unityネイティブプラグイン
UnityネイティブプラグインUnityネイティブプラグイン
Unityネイティブプラグイン
 
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
 
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphone
 
スマホゲームの小規模開発チームで意外とAdobe AIRが使われている話
スマホゲームの小規模開発チームで意外とAdobe AIRが使われている話スマホゲームの小規模開発チームで意外とAdobe AIRが使われている話
スマホゲームの小規模開発チームで意外とAdobe AIRが使われている話
 
エターナらないゲーム開発
エターナらないゲーム開発エターナらないゲーム開発
エターナらないゲーム開発
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
 
Cedec2015 お客様に驚きを提供する運営 消滅都市の事例から-
Cedec2015 お客様に驚きを提供する運営  消滅都市の事例から-Cedec2015 お客様に驚きを提供する運営  消滅都市の事例から-
Cedec2015 お客様に驚きを提供する運営 消滅都市の事例から-
 
FINAL FANTASY Record Keeper の作り方
FINAL FANTASY Record Keeper の作り方FINAL FANTASY Record Keeper の作り方
FINAL FANTASY Record Keeper の作り方
 

Similar a Sencha & Delphi Ready Studiy

【U-22】Delphi / C++Builder / RAD Studio 概要
【U-22】Delphi / C++Builder / RAD Studio 概要【U-22】Delphi / C++Builder / RAD Studio 概要
【U-22】Delphi / C++Builder / RAD Studio 概要Kaz Aiso
 
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」Kaz Aiso
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流Rakuten Group, Inc.
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発hmimura_embarcadero
 
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」 「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」 Embarcadero Technologies
 
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~decode2016
 
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...友太 渡辺
 
Visual Studio を使用した Cordova 開発
Visual Studio を使用した Cordova 開発Visual Studio を使用した Cordova 開発
Visual Studio を使用した Cordova 開発Osamu Monoe
 
PhoneGapでハイブリッド開発 for Firefox OS
PhoneGapでハイブリッド開発 for Firefox OSPhoneGapでハイブリッド開発 for Firefox OS
PhoneGapでハイブリッド開発 for Firefox OSAndy Hall
 
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】schoowebcampus
 
PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発Andy Hall
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介Yoshito Tabuchi
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす Akihiro Suda
 
帰ってきた Delphi
帰ってきた Delphi帰ってきた Delphi
帰ってきた DelphiTakumi Yamada
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来Kazuto Kusama
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Yoshito Tabuchi
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)Akihiro Suda
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 

Similar a Sencha & Delphi Ready Studiy (20)

【U-22】Delphi / C++Builder / RAD Studio 概要
【U-22】Delphi / C++Builder / RAD Studio 概要【U-22】Delphi / C++Builder / RAD Studio 概要
【U-22】Delphi / C++Builder / RAD Studio 概要
 
Firefox Mobile
Firefox MobileFirefox Mobile
Firefox Mobile
 
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
 
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」 「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」
 
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
 
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
 
Visual Studio を使用した Cordova 開発
Visual Studio を使用した Cordova 開発Visual Studio を使用した Cordova 開発
Visual Studio を使用した Cordova 開発
 
PhoneGapでハイブリッド開発 for Firefox OS
PhoneGapでハイブリッド開発 for Firefox OSPhoneGapでハイブリッド開発 for Firefox OS
PhoneGapでハイブリッド開発 for Firefox OS
 
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
Unity,Cocos-2dx,AIRを徹底比較!最新クロスプラットフォーム事情、FLASHを使ってiPhone/Androidアプリを作ろう!【とのさまラボ】
 
PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす
 
帰ってきた Delphi
帰ってきた Delphi帰ってきた Delphi
帰ってきた Delphi
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 

Más de Jun Hosokawa

TImageList / TGlyph の使い方
TImageList / TGlyph の使い方TImageList / TGlyph の使い方
TImageList / TGlyph の使い方Jun Hosokawa
 
VCL ユーザーのための FireMonkey 入門
VCL ユーザーのための FireMonkey 入門VCL ユーザーのための FireMonkey 入門
VCL ユーザーのための FireMonkey 入門Jun Hosokawa
 
Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)Jun Hosokawa
 
Delphi のダメな所
Delphi のダメな所Delphi のダメな所
Delphi のダメな所Jun Hosokawa
 
知っておいて欲しい Android の基礎知識
知っておいて欲しい Android の基礎知識知っておいて欲しい Android の基礎知識
知っておいて欲しい Android の基礎知識Jun Hosokawa
 
Developer Summit 2014, 13-C-4 セッション
Developer Summit 2014, 13-C-4 セッションDeveloper Summit 2014, 13-C-4 セッション
Developer Summit 2014, 13-C-4 セッションJun Hosokawa
 
CROSS 2014 - 言語CROSS:Delphi のご紹介
CROSS 2014 - 言語CROSS:Delphi のご紹介CROSS 2014 - 言語CROSS:Delphi のご紹介
CROSS 2014 - 言語CROSS:Delphi のご紹介Jun Hosokawa
 
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)Jun Hosokawa
 

Más de Jun Hosokawa (11)

31st DevCamp Eve
31st DevCamp Eve31st DevCamp Eve
31st DevCamp Eve
 
TImageList / TGlyph の使い方
TImageList / TGlyph の使い方TImageList / TGlyph の使い方
TImageList / TGlyph の使い方
 
VCL ユーザーのための FireMonkey 入門
VCL ユーザーのための FireMonkey 入門VCL ユーザーのための FireMonkey 入門
VCL ユーザーのための FireMonkey 入門
 
CnPack の紹介
CnPack の紹介CnPack の紹介
CnPack の紹介
 
Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)
 
Delphi のダメな所
Delphi のダメな所Delphi のダメな所
Delphi のダメな所
 
知っておいて欲しい Android の基礎知識
知っておいて欲しい Android の基礎知識知っておいて欲しい Android の基礎知識
知っておいて欲しい Android の基礎知識
 
Developer Summit 2014, 13-C-4 セッション
Developer Summit 2014, 13-C-4 セッションDeveloper Summit 2014, 13-C-4 セッション
Developer Summit 2014, 13-C-4 セッション
 
CROSS 2014 - 言語CROSS:Delphi のご紹介
CROSS 2014 - 言語CROSS:Delphi のご紹介CROSS 2014 - 言語CROSS:Delphi のご紹介
CROSS 2014 - 言語CROSS:Delphi のご紹介
 
Dev camp25 lt
Dev camp25 ltDev camp25 lt
Dev camp25 lt
 
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
 

Sencha & Delphi Ready Studiy

  • 1. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi - Ready Study Sencha & Delphi Ready Study 2017/09/26 Delphi MVP 細川 淳
  • 2. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi の歴史(日本) リリース日時 製品名 Win16 Win32 Win64 .NET macOS iOS32 iOS64 Android Linux 無償版 1995/09 Delphi ○ 1996/06 Delphi 2 ○ 2001/07 Delphi 6 ○ Delphi 6 Personal 2003/11 Delphi 8 ○ 2004/11 Delphi 2005 ○ ○ 2005/11 Delphi 2006 (※1) Turbo Delphi Explorer 2007/11 Delphi 2007 ○ ○ 2011/09 Delphi XE2 ○ ○ ○ ※2 2013/04 Delphi XE4 ○ ○ ○ ○ 2013/09 Delphi XE5 ○ ○ ○ ○ ○ 2015/04 Delphi XE8 ○ ○ ○ ○ ○ ○ 2016/04 Delphi 10.1 Berlin ○ ○ ○ ○ ○ ○ Starter Edition 2017/03 Delphi 10.2 Tokyo ○ ○ ○ ○ ○ ○ ○ Starter Edition ※1 製品名は Borland Develper Studio 2006 ※2 Free Pascal による実装で XE4 以降の方式とは異なる iOS にはエミュレーターを含む コンパイラバージョンは TurboDelphi 1 から通し番号(Tokyo : VER320)
  • 3. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Delphi 10.2 Tokyo が対応している OS とコンパイラ OS Architecture Compiler Windows x86 32bit DCC32 Windows x64 64bit DCC64 macOS x86 32bit DCCOSX Linux x64 64bit DCCLINUX64 iOS ARM(Apple A6以前) 32bit DCCIOSARM32 iOS ARM(Apple A7以降) 64bit DCCIOSARM64 iOS シミュレータ x86 32bit DCCIOS32 Android ARM 32bit DCCAARM
  • 4. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi のライブラリ • Runtime Library (RTL) – 名前空間 : System – VCL / FMX 共通で基礎となるライブラリ • Visual Component Library (VCL) – 名前空間 : Vcl – Windows 専用のライブラリ – Win32 をラッピングしたものです – Professional 以降ではソースコードが公開されています。 • FireMonkey (FMX) – 名前空間 : FMX – マルチプラットフォーム用のライブラリ – XE2 で追加されました。 – Professional 以降ではソースコードが公開されています。 • 一部 Object Pascal ではない記述があります (Android Activity 部)
  • 5. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi で出来ること
  • 6. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi で出来ること • Windows, macOS, iOS, Android のネイティブアプリケーション作成 – CPU が直接実行できるバイナリを吐き出します。 • Android でも Java コードではなく ARM のネイティブコードが出力されます – Linux はコンソールアプリケーションが作成できます。 • FMXLinux というサードパーティーの製品を使うと GUI アプリケーションも作成出来ま すが… • FmxLinux Page: http://fmxlinux.com/ • Drag & Drop 形式の GUI 構築 – Delphi 1.0 から続く Delphi を Delphi たらしめる要素 – 現在では VCL, FMX という2つのライブラリがある • Object Pascal 言語を使った開発 – Pascal が教育用に設計されただけあって綺麗な言語 • 現代的な言語要素もちゃんとあります。 • TIOBE では 9~12 位あたりをうろうろしてます。 – でも C++ を使った開発も出来ないことはない(C++Builder)
  • 7. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi で出来ること • API 直接呼び出し – API をラッピングせずに呼び出せます。 uses Macapi.ObjectiveC, Macapi.CocoaTypes, Macapi.Foundation, Macapi.AppKit, FMX.Platform.Mac procedure SetMinSize(const iForm: TForm; const iMinW, iMin: Integer); var Wnd: NSWindow; // OS X 用のクラスがそのまま使えてる Size: NSSize; // こっちも begin Wnd := WindowHandleToPlatform(iForm.Handle).Wnd; // NSWindow を取り出す Size.width := iMinW; Size.height := iMinH; Wnd.setContentMinSize(Size); // そのまま呼び出せる end; macOS のコードを呼び出す例
  • 8. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi で出来ること • API 直接呼び出し – Jar リンケージ • Jar ファイルを追加すると自動的に dex ファイルに組み込まれます。 • Java2OP を使えば Jar ファイルへのブリッジファイルが自動で生成されます。 uses Androidapi.JNI.JavaTypes, Androidapi.JNI.GraphicsContentViewText, FMX.Helpers.Android; procedure StartIntent; var Intent: JIntent; begin Intent := TJIntent.Create; Intent .setAction(TJIntent.JavaClass.ACTION_VIEW) .setData(StrToJURI('URLとか')); try SharedActivity.startActivity(intent); except on E: Exception do Log.e(E.Message); end; end; Android のコードを呼び出す例
  • 9. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi で出来ること • 3D もお手の物です – なお Delphi が 3D もお手の物だとしても、僕自身はお手の物ではないので、割愛 します… Delphi で 3D といえば でおなじみの中山さんの GitHub リポジトリより
  • 10. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Drag & Drop 形式の GUI 構築
  • 11. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. ビジュアル開発 • コンポーネントによるビジュアル開発 コンポーネント(部品)を D&Dで配置します
  • 12. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. ビジュアル開発 • 2way-tools オブジェクトインスペクタで ・プロパティ(部品の属性)の変更 ・イベントの生成 ができます これらは全てコードとして生成されます。
  • 13. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. ビジュアル開発 置いたコンポーネントが 自動的にクラスの変数に! イベントがメソッドとして 自動的に宣言される!
  • 14. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Drag & Drop 形式の GUI 構築 - FireMonkey について
  • 15. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. FireMonkey の仕組み • 自分で描画! – 使う API 群は各 OS のネイティブを使います • Windows DirectX • macOS OpenGL • iOS OpenGL ES • Android OpenGL ES – 基本的にベクターグラフィクス • Bitmap を中に埋め込むこともできます – 自分で描画しているので何でもあり! • 全てのコントロールがコンテナになれます! – IDE は Windows で動いているにも関わらず他の見た目を表示できます!
  • 16. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. FMX Control FMX Control FMX Control FireMonkey World Native Layer 各 OS に依存した構造上に自分で描画しています FMX Control は「絵」! OS から見ると実体はありません!
  • 17. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. 自分で描画しているので UI すら 3D にできます
  • 18. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. 見た目サンプル
  • 19. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Style を適用した見た目サンプル
  • 20. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. マルチプラットフォーム 開発環境について
  • 21. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Windows の開発 – Windows PC だけで OK ! • macOS の開発 – macOS 実機が必要なので Mac が必要です。 – Xcode も必要です。 • iOS の開発 – macOS 開発で必要なもの(Mac, Xcode) – iOS Developer License • Android の開発 – ハードウェアは Windows PC で OK です。 – Android SDK, Android NDK が必要です • ただし、この2つは Delphi をインストールするとインストールされます。 – インストールしないことも可能です • Linux の開発 – Ubuntu, Red Had および、それぞれの SDK が必要です
  • 22. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. マルチプラットフォーム開発を試すには • まずは Android で。 – Windows PC と Delphi, USB ケーブルだけあれば良い – お金が掛からない • Google Play に出すためには有料の開発者登録が必要です。 • Windows のアプリと Android のアプリを同時に作れます。 – FireUI, Style, TMultiView などの機能を使えば UI も1つのコードで作れます。 – つまり、デスクトップアプリケーションとモバイルアプリケーションを同時に作 成可能です。 USB Cable ADB
  • 23. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • iOS の場合 Lightning Cable Network Windows PC Mac iPhone PAClient PAServer
  • 24. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi 6つのメリット
  • 25. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Delphi のメリット • Delphi の特徴 – プラットフォーム・フリー – 解像度フリー – アスペクト比フリー – コーディング・フリー – 言語フリー – 自然言語フリー(日本語などの方)
  • 26. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. プラットフォームフリー
  • 27. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. プラットフォームフリー • プラットフォーム・フリー – マルチプラットフォームでの開発の場合、Android / iOS で同じ UI になることも 多いです • 異なる UI にするための仕組みが必要になります 戻る戻る - - - - - - - - - - - - - - - - - - - - - - - - OSが違うのに 同じ見た目!
  • 28. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Delphi の場合 – 各プラットフォームに即した見た目になります • 異なる UI にするための仕組みが標準で備わっています ※ここでは、Android / iOS ともに Black と呼ばれる スタイルを使用
  • 29. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Delphi の場合 Android にはソフトウェアの戻るボタ ンは必要ないので消すこともできます。 (ここでは説明のために表示)
  • 30. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • FireUI によって多種多様な OS に対応 – Android の Fragment と同じ機構 (TMultiView) があるので タブレットとフォンでさえ分ける必要ありません! 標準で Google Glass にも対応! Add-on で Google Wear(Google Watch) にも対応! UI もドロップダウン1つで 非常に簡単に切り替えられる
  • 31. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Delphi の場合 – Android では Android SDK ではなく、Android NDK と呼ばれる技術で構築され ます。 – そのため、Nexus では動くのに、Galaxy で動かない!といった OS 間の差異か ら解放されます。 アプリ完成! Galaxy で動かない!
  • 32. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. 解像度フリー
  • 33. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • 解像度フリー – 標準の開発環境でも、その他の環境でも、多種多様な解像度の端末に合わせるの が非常に苦労します。 iPhone の解像度 また増えたの!?
  • 34. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Delphi の場合 – 仮想解像度(320 x 480)で UI が作られる • 自動的に実機に合わせてスケールアップされる – UI はベクターで描かれる • スケールアップしても UI がぼやけたりしない – 多重解像度ビットマップ • png などのラスタ形式では、複数の解像度の画像を保持できる • 自動的に最適な解像度の画像が選ばれる
  • 35. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Android 4 inch Android 5 inch Android 7 inch Android 10 inch
  • 36. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. アスペクト比フリー
  • 37. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • アスペクト比フリー – さまざまな開発環境でターゲットデバイスの アスペクト比が違う場合、UI の設計を考え直す必要があります。
  • 38. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Delphi の場合 • Align • Anchors – という仕組みで UI の位置を相対的に指定可能です – 相対指定なので比率が変わってもレイアウトが 崩れません!
  • 39. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Align プロパティ – 左寄せ、右寄せ、センタリング、といった配置を指定できます • 指定可能な配置は全部で20個あります。 • 間を埋める(Client)といった指定もできます。 Button Align = Left Button Align = Right Button Align = Center
  • 40. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Anchor プロパティ – Anchor(いかり)を下ろして位置を固定するイメージ – いかりの位置に引っ張られます
  • 41. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Anchor を左上に設定 大きくなっても左上を維持 Anchor を右下に設定 大きくなっても右下を維持
  • 42. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Anchor を左上・右下に設定 大きくなっても左上・右下を維持!
  • 43. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. コーディング・フリー
  • 44. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • コーディング・フリー – Delphi はコンポーネントが「異常」に充実しています(200以上存在)。 これによってほとんどコードを書かずに様々な機能を実現可能です。 たとえば、カメラアプリであれば、コードはたったの1行です。 (TTakePhotoFromCameraAction を使用)
  • 45. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. procedure TForm1.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap); begin Image1.Bitmap.Assign(Image); end;
  • 46. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Visual LiveBindings – Delphi では Visual LiveBindings によってコーディング無しでプロパティ値を変 更できます。 PropertyBindSource から ListView の Text プロパティを自動的に変更している様子
  • 47. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • エフェクト – Delphi ではエフェクトをコンポーネント1つ付けるだけで実現できます(60種 類以上)。 ボタンに TGlowEffect を 掛けた様子
  • 48. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • アニメーション – アニメーションも非常に簡単に設定できます。
  • 49. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. Animation コンポーネントには 様々なプロパティが存在します。 たとえば、Trigger プロパティは、 いつアニメーションをスタートするかを 決定できます。
  • 50. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. 言語フリー
  • 51. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • 言語フリー – 標準開発環境以外の環境では SDK にアクセスするためには、プラグインや DLL といった仕組みが必要です。 • SDK とは、OS が提供している機能 OSに直接アクセス できる 標準の開発環境 ハード OS アプリ 途中に VM / FirmWare があって OSに直接アクセスできない! そもそも言語が違うからアクセス できない! 標準ではない開発環境 ハード OS VM etc アプリ
  • 52. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Delphi の場合 – OS の機能にも、ハードウェアにもアクセスできます – 言語は Object Pascal のまま Java / Objective-C の機能を呼び出せます (OCImport / JNIImport) ハード ARM ベース Android iOS アプリ ハードウェアに直接アクセスできるため GPS や加速度センサなどセンサー類や Bluetooth などを簡単に使用可能です。 (簡単に利用できるようにするために ラッパークラスが用意されています
  • 53. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. 自然言語フリー
  • 54. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. アプリ • 自然言語フリー – Android / iOS に備わっている多言語対応機能によって標準環境で作られた場 合、自動的に最適な言語が選ばれます。 – 標準ではない環境の場合、この機能に対応していない事も多いです。 ここを押してね Application Push hare
  • 55. Copyright © 2016 SERIALGAMES inc.. All Rights Reserved. • Delphi の場合 – 言語マネージャによって翻訳済みテキストが自動的に選択されます。 左図を拡大