SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE1 
Happy Creation, Play the Development! 
FireMonkeyHD 
マルチプラットフォームアプリの作り方 
2014/10/18 
株式会社シリアルゲームズ細川淳
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE2 
Happy Creation, Play the Development! 
アジェンダ 
•2WayTools 
–言語とデザインの融合 
•ちゃんとした言語なのです 
–ドラッグ&ドロップ 
•親子関係 
•コンポーネントとは 
•スタイル機構 
–マルチプラットフォームとはこういうこと! 
•FireUI 
•解像度フリー 
–縦横比率からもフリー
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE3 
Happy Creation, Play the Development! 
2WayTools
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 4 
Happy Creation, Play the Development! 
2WayTools 
• Delphi ではIDE と言語が完全に連携します。 
例えば 
ボタンがクリックされた時 
OnClick 
というイベントが発生します。 
オブジェクトインスペクタのOnClick イベントを 
ダブルクリックすると…
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 5 
Happy Creation, Play the Development! 
2WayTools 
自動的に、イベントハンドラが生成されます。 
で、ここだけ見ると、IDE がないと開発が成り立たないように見えますが…
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 6 
Happy Creation, Play the Development! 
2WayTools 
上にスクロールすると、本当はこんな風にクラスが定義されて、そのメソッドだけ抜粋 
されていただけなのです!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE7 
Happy Creation, Play the Development! 
2WayTools 
•IDE は連携して動作するだけ 
•プログラマは全体を把握できます。 
でも、IDE でイベントと結び ついたメソッドの情報は 
どこにあるの? 
目に見えなくない? 
把握できなく無い!?
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 8 
Happy Creation, Play the Development! 
2WayTools 
その情報はここに!! 
結びついた情報は、リソースとして保存されています。 
※$R はリソースを読み込んで実行ファイルとリンクするためのコンパイラ指令です。
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE9 
Happy Creation, Play the Development! 
2WayTools 
リソース… 
やっぱり目に見えなくない? 
把握できてなく無い!?
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE10 
Happy Creation, Play the Development! 
•fmx ファイルは中身を見れるし、編集もできるので す。 
•というか、そもそもfmx ファイルって何。
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 11 
Happy Creation, Play the Development! 
• fmx ファイルとはフォームの情報を示すファイル 
– フォームとは、コレ 
F12 キーを押すか、エディタの下部にあるタブを押すと 
フォーム⇔コード 
が切り替わります。
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE12 
Happy Creation, Play the Development! 
イベントの情報は 
–フォームに載っているコントロールの情報 
•例えば、ボタンが押されたら○○を呼ぶ 
という情報なのでfmx ファイルに保存されます。
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 13 
Happy Creation, Play the Development! 
• fmx ファイルの中身を見るには… 
コンテキストメニューの 
コレをクリック
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 14 
Happy Creation, Play the Development! 
• fmx ファイルをテキストとして見れます! 
ほら!! 
ここにイベントの情報が!!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE15 
Happy Creation, Play the Development! 
•というわけで、Delphi ではプログラム の全体構造をプログラマが把握できるの です。 
–他のGUI 構築ツールとの大きな差です。 
•フォームデザイナとコードエディタが 「連携」するこの機能を 
•2Way-Toolsといいます。
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE16 
Happy Creation, Play the Development! 
Delphi が生成するファイル 
•Delphi ではプロジェクトを作ると 
–Project1.dpr 
•プロジェクトソース 
–Unit1.pas 
–Unit1.fmx 
•フォームとコード 
•が自動生成されます。 
ペア
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 17 
Happy Creation, Play the Development! 
• dpr は普段プログラマが触る必要はありません。 
• ですが、当然プログラマが把握できるソースになっています。 
dpr の表示
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE18 
Happy Creation, Play the Development! 
この章の締め 
Delphi ってIDE ありきで話すことが多くて、IDE 無いと成り立たない不完全なおもちゃみたいな物と 思われがちですが、ちゃんとした言語なんです。 
–これ判ってない人以外と多い。 
ということで、コレを踏まえて次の章です。
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE19 
Happy Creation, Play the Development! 
ドラッグ&ドロップ UI 構築について
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 20 
Happy Creation, Play the Development! 
• では実際にGUI を組んでみよう! 
• コレ、マジ超簡単なんで!! 
右下のツールパレットから 
コンポーネントを選ぶ! 
僕の環境はカスタマイズ(Classic Undocked) 
しているので画面上部から選びますが…
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 21 
Happy Creation, Play the Development! 
• ドラッグ&ドロップ 
• ダブルクリック 
• 置きたいフォームをクリック 
のどれかをすると、GUI 部品が置けます! 
置けた!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE22 
Happy Creation, Play the Development! 
•ここでGUI 部品について 
–コントロール 
•ユーザーとコミュニケーションを取る物 
•TControl クラスから派生 
–コンポーネント 
•なんか色々ひっくるめて! 
–コントロール、非ビジュアルコンポーネントなど 
•TComponent クラスから派生
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE23 
Happy Creation, Play the Development! 
•TControl 
–ボタンやラベルといったユーザーが触ったり、内 容を読んだりする物 
•名前空間:FMX.Controls.TControl 
–FireMonkey では、TStyledControl から派生した 物を主に使います 
•スタイルが適用できるコントロール 
–スタイルについては後で
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE24 
Happy Creation, Play the Development! 
•TComponent 
–Delphi のGUI を構築する最も基本的なクラス 
•名前空間:System.Classes.TComponent 
–このクラスはVCL でも使われている 
•名前空間がSystem から始まる物はVCL / FireMonkey 両方から使われる 
•VCL = Visual Component Library 
–Windows 専用のGUI ライブラリ 
»もう使わなくていいかな…高解像度にも対応してないし
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 25 
Happy Creation, Play the Development! 
• GUI 構築に戻って… 
– ボタンにエフェクトを追加してみます 
– TBlurEffect をドロップ! 
ドロップしたのに! 
何も起きない!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 26 
Happy Creation, Play the Development! 
• ここで構造ペイン 
• 構造ペインは(フォームデザイン時は)GUI 
の親子関係を示します。 
こいつ 
Form1 の子供として 
BlurEffect1 とButton1 がある 
と言うことを示しています。
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 27 
Happy Creation, Play the Development! 
• で、実はエフェクトを掛けるコンポーネント 
は「親に働く」のです。 
• つまり、さっきの状態だと「フォーム」にか 
けちゃってる! 
• ので、変更します。 
こんな風に、各コンポーネント 
をドラッグ&ドロップして親子 
関係を変更できます 
D&D
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 28 
Happy Creation, Play the Development! 
WOW! 
ブラーかかったよ!!!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE29 
Happy Creation, Play the Development! 
超簡単ですね!! 
ですが、ここで思い出して欲しいのです。 
この画面がフォームデザイナだと言うことに 
つまり、まだ完成したアプリでは無い… 
なのに、エフェクトがかかったりする…
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE30 
Happy Creation, Play the Development! 
Delphi フォームデザイナのスゴいところ 
フォームデザイン中 
コンポーネントは 
実際に動作しているッ!!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 31 
Happy Creation, Play the Development! 
• だから、変更はリアルタイムに反映されます。 
ココを変えたら、コッチも変わった!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE32 
Happy Creation, Play the Development! 
驚くのは、まだまだこれからやで…!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE33 
Happy Creation, Play the Development! 
スタイル機構 マルチプラットフォームってこういうこと
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE34 
Happy Creation, Play the Development! 
•さっきのプログラム実際に動かしてみると… 
え!なにこれ!かっこわる!! 
Windows 丸出しじゃん!! 
マルチプラットフォームなんて 
無理じゃん!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 35 
Happy Creation, Play the Development! 
• ここで、スタイルの登場です。 
• TStyleBook コンポーネントをフォームに 
置いてみるよ! 
これ 
おもむろに 
ダブルクリック!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE36 
Happy Creation, Play the Development! 
•謎の画面開いた…
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 37 
Happy Creation, Play the Development! 
はい!これがスタイルエディタです!! 
って言われても、なんだか判らない! 
とりあえず、スタイルを見せつけます。 
読み込みボタンを押して 
Dark.style を読むよ!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE38 
Happy Creation, Play the Development! 
•なんか構造ペインがスゴいことに!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 39 
Happy Creation, Play the Development! 
• とりあえず「適用して閉じる」
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 40 
Happy Creation, Play the Development! 
なんも変わってなくね!! 
まだ、あわてるような時間じゃ無い
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 41 
Happy Creation, Play the Development! 
Form のStyleBook プロパティ 
にStyleBook を設定する! 
すると…
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 42 
Happy Creation, Play the Development! 
なんか黒くなった!! 
実行してみると… 
キター! 
先ほどとは違う 
黒く引き締まったボディに…!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 43 
Happy Creation, Play the Development! 
こんな感じでスタイルがあるのですが… 
スタイルにはモバイルOS 用のスタイルが用意 
されているのです…! 
iOS だったり 
Android だったり
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE44 
Happy Creation, Play the Development! 
スタイルは自由に何個でも置けます。 
これの意味するところは… 
FireUI !
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 45 
Happy Creation, Play the Development! 
• FireUI とは 
– マルチプラットフォームアプリケーションをデザ 
インする上で必須の機能。 
フォームデザイナの右 
上に注目! 
ココをドロップすると 
こんな物が!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 46 
Happy Creation, Play the Development! 
デザイナが 
Android に!!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE47 
Happy Creation, Play the Development! 
•FireUI とはフォームを継承する仕組み 
マスタフォーム 
継承フォーム 
継承フォーム 
ボタン 
ボタン 
ぼたんや 
コンポーネントは全てのフォームに現れるが 
プロパティ(位置とか色とか全部)は 
別個に設定出来る!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 48 
Happy Creation, Play the Development! 
大きさや 
文字が変わって 
いる!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 49 
Happy Creation, Play the Development! 
プロパティを別個に設定できるという事は… 
プラットフォームに合わせてスタイルを変更できる!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE50 
Happy Creation, Play the Development! 
•FireUI を使うと、Desktop, Tablet とPhone などをいっぺんにデザインできてしまいます。 
•しかも、プロパティを変更できるので 
–Desktop には、このボタンが欲しい 
–Phone には、煩雑だからいらない 
と言うこともできます。 
•Visible プロパティの変更
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE51 
Happy Creation, Play the Development! 
さらにこれらをデザインしやすくする 
TMultiView 
というコンポーネントがあります。 
コレを使うとAndroid のFragmentsと同じ 事ができてしまいます。 
が、さすがに…これ以上聞くのは大変だと思う ので、とりあえず割愛
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE52 
Happy Creation, Play the Development! 
自由な解像度 Android解像度地獄からの脱出
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE53 
Happy Creation, Play the Development! 
•FireMonkey の描画について 
–FireMonkey は全て自分でコントロールを描画し ています。 
OS 
方法 
Windows 
DirectX 
OS X 
OpenGL 
iOS 
OpenGLES 
Android 
OpenGL ES
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE54 
Happy Creation, Play the Development! 
•FireMonkey の描画について 
–この結果、画面解像度(画素密度)に応じて描画 密度を変更しています。 
–しかも、自動で!! 
作ったアプリ 
1024 x 768 
作ったアプリ 
1920 x 1080 
今までは、こんな風に解像度が変わっても 
アプリの大きさは、そのまま 
来たるべき超高解像度時代では 
小さくて使いづらくなっちゃう!!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE55 
Happy Creation, Play the Development! 
•FireMonkey の描画について 
作ったアプリ 
1024 x 768 
FireMonkey では 
解像度が変わっても 
画面比率が変わらない! 
作ったアプリ 
2560 x 1440 
スゴくない!?
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE56 
Happy Creation, Play the Development! 
•解像度からの解放 
–Android のように多くの解像度があったり 
–最近ではiOS も色々な解像度あるし 
–Windows でもIGZO 液晶のノートがあったり 
–OS X だってRetina ディスプレイの物と、そう じゃないないのがあったり… 
FireMonkey を使うと! 
こういった悩みから解放される!!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 57 
Happy Creation, Play the Development! 
そうはいっても比率が変わったらダメだよ 
ねー? 
そうでもない!!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE58 
Happy Creation, Play the Development! 
•FireMonkey のレイアウト戦略 
–FireMonkey では 
•Align 
•Anchors 
–というプロパティでコントロールの位置を相対的 に指定できる!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 59 
Happy Creation, Play the Development! 
• Align プロパティ 
– 左寄せ、右寄せ、センタリング、といった配置を 
指定できる 
• 指定可能な配置はメチャクチャあります
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE60 
Happy Creation, Play the Development! 
•Anchor プロパティ 
–Anchor(いかり)を下ろして位置を固定する 
–いかりの位置に引っ張られる
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE61 
Happy Creation, Play the Development! 
Anchor を左上に設定 
大きくなっても左上を維持 
Anchor を右下に設定 
大きくなっても右下を維持
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE62 
Happy Creation, Play the Development! 
Anchor を左上・右下に設定 
大きくなっても左上・右下を維持!
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE63 
Happy Creation, Play the Development! 
これらのプロパティを上手に使うと比率が変わってもデ ザインが崩壊しません! 
さらに、FireMonkey には 
TScaledLayout 
TGridLayout 
TFlowLayout 
などの多彩なレイアウトコンポーネントもあります。 
これらを使うと自分でAnchor/Align を設定しなくても 自動的に再配置されます。 
とはいえ、これも長くなるので初級編では割愛…
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE64 
Happy Creation, Play the Development! 
素材についてもFireMonkey ならではのアプ ローチがあります。 
TMultiResBitmap多重解像度ビットマップ 
TPathSVG などのベクター画像 
という2つのコンポーネントがあります。 
これらを上手く使う事えば様々な解像度に対応 できます。
Copyright © 2013 SERIALGAMES inc.All Rights Reserved. 
PAGE65 
Happy Creation, Play the Development! 
というわけで、ざっと 
Delphi 
FireMonkeyHD 
を紹介しました。 
メチャクチャ簡単にアプリが作れるってことが、判って 頂けたでしょうか? 
そして、FireMonkeyは、3D も操れるのです! 
それは、FireMonkey3D といいます! 
それはまた別の機会に… 
※勉強会では、このあとFireMonkey3D の話がありました

Más contenido relacionado

La actualidad más candente

Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
historia_Inc
 

La actualidad más candente (20)

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 のご紹介
 
2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk
 
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップRAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
 
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
 
TOSHIBAxGUGEN FlashAirハッカソン-FlashAirでなに作る?
TOSHIBAxGUGEN FlashAirハッカソン-FlashAirでなに作る?TOSHIBAxGUGEN FlashAirハッカソン-FlashAirでなに作る?
TOSHIBAxGUGEN FlashAirハッカソン-FlashAirでなに作る?
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
 
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリにWeb制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリに
 
少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -
少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -
少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -
 
Air for iOS について
Air for iOS についてAir for iOS について
Air for iOS について
 
Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発
 
FlashAir IoT Hubで計測値・イメージをアップロード!
FlashAir IoT Hubで計測値・イメージをアップロード!FlashAir IoT Hubで計測値・イメージをアップロード!
FlashAir IoT Hubで計測値・イメージをアップロード!
 
[FlashAir Developers Summit] FlashAirの紹介
[FlashAir Developers Summit] FlashAirの紹介[FlashAir Developers Summit] FlashAirの紹介
[FlashAir Developers Summit] FlashAirの紹介
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
FlashAirの組み込み機器応用事例@OSC2014 Tokyo/Spring
FlashAirの組み込み機器応用事例@OSC2014 Tokyo/SpringFlashAirの組み込み機器応用事例@OSC2014 Tokyo/Spring
FlashAirの組み込み機器応用事例@OSC2014 Tokyo/Spring
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術
 
UE4モバイルでノンゲームコンテンツ
UE4モバイルでノンゲームコンテンツUE4モバイルでノンゲームコンテンツ
UE4モバイルでノンゲームコンテンツ
 
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
 
Storyboard
StoryboardStoryboard
Storyboard
 
最低限のコードでWebサイトを作成しよう(ADC MEETUP 08)
最低限のコードでWebサイトを作成しよう(ADC MEETUP 08)最低限のコードでWebサイトを作成しよう(ADC MEETUP 08)
最低限のコードでWebサイトを作成しよう(ADC MEETUP 08)
 

Destacado

Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
Shinya Okano
 

Destacado (20)

CROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッションCROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッション
 
「FireMonkeyの仕組み」
「FireMonkeyの仕組み」「FireMonkeyの仕組み」
「FireMonkeyの仕組み」
 
「基礎から学ぶビジュアルAndroidアプリ開発。今日からあなたもAndroidデベロッパー」
「基礎から学ぶビジュアルAndroidアプリ開発。今日からあなたもAndroidデベロッパー」「基礎から学ぶビジュアルAndroidアプリ開発。今日からあなたもAndroidデベロッパー」
「基礎から学ぶビジュアルAndroidアプリ開発。今日からあなたもAndroidデベロッパー」
 
「開発者が知りたいDelphi実践テクニック!明日から使えるテクニック集」
「開発者が知りたいDelphi実践テクニック!明日から使えるテクニック集」「開発者が知りたいDelphi実践テクニック!明日から使えるテクニック集」
「開発者が知りたいDelphi実践テクニック!明日から使えるテクニック集」
 
DelphiでWin/Macクロスコンパイル
DelphiでWin/MacクロスコンパイルDelphiでWin/Macクロスコンパイル
DelphiでWin/Macクロスコンパイル
 
TImageList / TGlyph の使い方
TImageList / TGlyph の使い方TImageList / TGlyph の使い方
TImageList / TGlyph の使い方
 
VCL ユーザーのための FireMonkey 入門
VCL ユーザーのための FireMonkey 入門VCL ユーザーのための FireMonkey 入門
VCL ユーザーのための FireMonkey 入門
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
CnPack の紹介
CnPack の紹介CnPack の紹介
CnPack の紹介
 
Dev camp25 lt
Dev camp25 ltDev camp25 lt
Dev camp25 lt
 
知っておいて欲しい Android の基礎知識
知っておいて欲しい Android の基礎知識知っておいて欲しい Android の基礎知識
知っておいて欲しい Android の基礎知識
 
「今さら聞けない!? FireDAC入門 ~ オンメモリーデータベース編」
「今さら聞けない!? FireDAC入門 ~ オンメモリーデータベース編」 「今さら聞けない!? FireDAC入門 ~ オンメモリーデータベース編」
「今さら聞けない!? FireDAC入門 ~ オンメモリーデータベース編」
 
「Delphiで作るデータベースツール。その開発のポイントは・・」
「Delphiで作るデータベースツール。その開発のポイントは・・」「Delphiで作るデータベースツール。その開発のポイントは・・」
「Delphiで作るデータベースツール。その開発のポイントは・・」
 
Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
 
「Delphiのマイグレーションを行うのであれば、これだけは知っておこう!」
「Delphiのマイグレーションを行うのであれば、これだけは知っておこう!」「Delphiのマイグレーションを行うのであれば、これだけは知っておこう!」
「Delphiのマイグレーションを行うのであれば、これだけは知っておこう!」
 
Titanium 最近の動向 (2016年)
Titanium 最近の動向 (2016年)Titanium 最近の動向 (2016年)
Titanium 最近の動向 (2016年)
 
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
 
Xamarin 概要 @ 2015/1/29 CROSS 2015
Xamarin 概要 @ 2015/1/29 CROSS 2015Xamarin 概要 @ 2015/1/29 CROSS 2015
Xamarin 概要 @ 2015/1/29 CROSS 2015
 
10分でわかる無料になったXamarin
10分でわかる無料になったXamarin10分でわかる無料になったXamarin
10分でわかる無料になったXamarin
 
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
 

Similar a Delphi Debut Tokyo #1 - FireMonkey HD の基本

Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
満徳 関
 
できる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリできる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリ
Masami Yabushita
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
Katsutoshi Makino
 
Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術
kazuya noshiro
 

Similar a Delphi Debut Tokyo #1 - FireMonkey HD の基本 (20)

Delphi Community Edition Meet up !
Delphi Community Edition Meet up !Delphi Community Edition Meet up !
Delphi Community Edition Meet up !
 
20120416 3年後のeラーニング予想大会 中嶋さん
20120416 3年後のeラーニング予想大会 中嶋さん20120416 3年後のeラーニング予想大会 中嶋さん
20120416 3年後のeラーニング予想大会 中嶋さん
 
ソフトウェア開発30年史を振り返りつつ考えるプログラマにとって変わらないもの
ソフトウェア開発30年史を振り返りつつ考えるプログラマにとって変わらないものソフトウェア開発30年史を振り返りつつ考えるプログラマにとって変わらないもの
ソフトウェア開発30年史を振り返りつつ考えるプログラマにとって変わらないもの
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
HTML5 ゲームフレームワーク開発について
HTML5 ゲームフレームワーク開発についてHTML5 ゲームフレームワーク開発について
HTML5 ゲームフレームワーク開発について
 
できる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリできる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリ
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
 
SocialGame 20130130 KnowledgeCommons vol.19
SocialGame 20130130 KnowledgeCommons vol.19SocialGame 20130130 KnowledgeCommons vol.19
SocialGame 20130130 KnowledgeCommons vol.19
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Developmentアジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
 
Inside COLORS
Inside COLORSInside COLORS
Inside COLORS
 
Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術
 
DMM.comラボでの日本語全文検索の利用事例紹介
DMM.comラボでの日本語全文検索の利用事例紹介DMM.comラボでの日本語全文検索の利用事例紹介
DMM.comラボでの日本語全文検索の利用事例紹介
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業について
 
XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
Let’s study unity
Let’s study unityLet’s study unity
Let’s study unity
 

Delphi Debut Tokyo #1 - FireMonkey HD の基本

  • 1. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE1 Happy Creation, Play the Development! FireMonkeyHD マルチプラットフォームアプリの作り方 2014/10/18 株式会社シリアルゲームズ細川淳
  • 2. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE2 Happy Creation, Play the Development! アジェンダ •2WayTools –言語とデザインの融合 •ちゃんとした言語なのです –ドラッグ&ドロップ •親子関係 •コンポーネントとは •スタイル機構 –マルチプラットフォームとはこういうこと! •FireUI •解像度フリー –縦横比率からもフリー
  • 3. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE3 Happy Creation, Play the Development! 2WayTools
  • 4. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 4 Happy Creation, Play the Development! 2WayTools • Delphi ではIDE と言語が完全に連携します。 例えば ボタンがクリックされた時 OnClick というイベントが発生します。 オブジェクトインスペクタのOnClick イベントを ダブルクリックすると…
  • 5. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 5 Happy Creation, Play the Development! 2WayTools 自動的に、イベントハンドラが生成されます。 で、ここだけ見ると、IDE がないと開発が成り立たないように見えますが…
  • 6. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 6 Happy Creation, Play the Development! 2WayTools 上にスクロールすると、本当はこんな風にクラスが定義されて、そのメソッドだけ抜粋 されていただけなのです!
  • 7. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE7 Happy Creation, Play the Development! 2WayTools •IDE は連携して動作するだけ •プログラマは全体を把握できます。 でも、IDE でイベントと結び ついたメソッドの情報は どこにあるの? 目に見えなくない? 把握できなく無い!?
  • 8. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 8 Happy Creation, Play the Development! 2WayTools その情報はここに!! 結びついた情報は、リソースとして保存されています。 ※$R はリソースを読み込んで実行ファイルとリンクするためのコンパイラ指令です。
  • 9. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE9 Happy Creation, Play the Development! 2WayTools リソース… やっぱり目に見えなくない? 把握できてなく無い!?
  • 10. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE10 Happy Creation, Play the Development! •fmx ファイルは中身を見れるし、編集もできるので す。 •というか、そもそもfmx ファイルって何。
  • 11. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 11 Happy Creation, Play the Development! • fmx ファイルとはフォームの情報を示すファイル – フォームとは、コレ F12 キーを押すか、エディタの下部にあるタブを押すと フォーム⇔コード が切り替わります。
  • 12. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE12 Happy Creation, Play the Development! イベントの情報は –フォームに載っているコントロールの情報 •例えば、ボタンが押されたら○○を呼ぶ という情報なのでfmx ファイルに保存されます。
  • 13. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 13 Happy Creation, Play the Development! • fmx ファイルの中身を見るには… コンテキストメニューの コレをクリック
  • 14. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 14 Happy Creation, Play the Development! • fmx ファイルをテキストとして見れます! ほら!! ここにイベントの情報が!!
  • 15. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE15 Happy Creation, Play the Development! •というわけで、Delphi ではプログラム の全体構造をプログラマが把握できるの です。 –他のGUI 構築ツールとの大きな差です。 •フォームデザイナとコードエディタが 「連携」するこの機能を •2Way-Toolsといいます。
  • 16. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE16 Happy Creation, Play the Development! Delphi が生成するファイル •Delphi ではプロジェクトを作ると –Project1.dpr •プロジェクトソース –Unit1.pas –Unit1.fmx •フォームとコード •が自動生成されます。 ペア
  • 17. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 17 Happy Creation, Play the Development! • dpr は普段プログラマが触る必要はありません。 • ですが、当然プログラマが把握できるソースになっています。 dpr の表示
  • 18. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE18 Happy Creation, Play the Development! この章の締め Delphi ってIDE ありきで話すことが多くて、IDE 無いと成り立たない不完全なおもちゃみたいな物と 思われがちですが、ちゃんとした言語なんです。 –これ判ってない人以外と多い。 ということで、コレを踏まえて次の章です。
  • 19. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE19 Happy Creation, Play the Development! ドラッグ&ドロップ UI 構築について
  • 20. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 20 Happy Creation, Play the Development! • では実際にGUI を組んでみよう! • コレ、マジ超簡単なんで!! 右下のツールパレットから コンポーネントを選ぶ! 僕の環境はカスタマイズ(Classic Undocked) しているので画面上部から選びますが…
  • 21. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 21 Happy Creation, Play the Development! • ドラッグ&ドロップ • ダブルクリック • 置きたいフォームをクリック のどれかをすると、GUI 部品が置けます! 置けた!
  • 22. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE22 Happy Creation, Play the Development! •ここでGUI 部品について –コントロール •ユーザーとコミュニケーションを取る物 •TControl クラスから派生 –コンポーネント •なんか色々ひっくるめて! –コントロール、非ビジュアルコンポーネントなど •TComponent クラスから派生
  • 23. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE23 Happy Creation, Play the Development! •TControl –ボタンやラベルといったユーザーが触ったり、内 容を読んだりする物 •名前空間:FMX.Controls.TControl –FireMonkey では、TStyledControl から派生した 物を主に使います •スタイルが適用できるコントロール –スタイルについては後で
  • 24. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE24 Happy Creation, Play the Development! •TComponent –Delphi のGUI を構築する最も基本的なクラス •名前空間:System.Classes.TComponent –このクラスはVCL でも使われている •名前空間がSystem から始まる物はVCL / FireMonkey 両方から使われる •VCL = Visual Component Library –Windows 専用のGUI ライブラリ »もう使わなくていいかな…高解像度にも対応してないし
  • 25. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 25 Happy Creation, Play the Development! • GUI 構築に戻って… – ボタンにエフェクトを追加してみます – TBlurEffect をドロップ! ドロップしたのに! 何も起きない!
  • 26. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 26 Happy Creation, Play the Development! • ここで構造ペイン • 構造ペインは(フォームデザイン時は)GUI の親子関係を示します。 こいつ Form1 の子供として BlurEffect1 とButton1 がある と言うことを示しています。
  • 27. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 27 Happy Creation, Play the Development! • で、実はエフェクトを掛けるコンポーネント は「親に働く」のです。 • つまり、さっきの状態だと「フォーム」にか けちゃってる! • ので、変更します。 こんな風に、各コンポーネント をドラッグ&ドロップして親子 関係を変更できます D&D
  • 28. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 28 Happy Creation, Play the Development! WOW! ブラーかかったよ!!!
  • 29. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE29 Happy Creation, Play the Development! 超簡単ですね!! ですが、ここで思い出して欲しいのです。 この画面がフォームデザイナだと言うことに つまり、まだ完成したアプリでは無い… なのに、エフェクトがかかったりする…
  • 30. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE30 Happy Creation, Play the Development! Delphi フォームデザイナのスゴいところ フォームデザイン中 コンポーネントは 実際に動作しているッ!!
  • 31. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 31 Happy Creation, Play the Development! • だから、変更はリアルタイムに反映されます。 ココを変えたら、コッチも変わった!
  • 32. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE32 Happy Creation, Play the Development! 驚くのは、まだまだこれからやで…!
  • 33. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE33 Happy Creation, Play the Development! スタイル機構 マルチプラットフォームってこういうこと
  • 34. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE34 Happy Creation, Play the Development! •さっきのプログラム実際に動かしてみると… え!なにこれ!かっこわる!! Windows 丸出しじゃん!! マルチプラットフォームなんて 無理じゃん!
  • 35. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 35 Happy Creation, Play the Development! • ここで、スタイルの登場です。 • TStyleBook コンポーネントをフォームに 置いてみるよ! これ おもむろに ダブルクリック!
  • 36. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE36 Happy Creation, Play the Development! •謎の画面開いた…
  • 37. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 37 Happy Creation, Play the Development! はい!これがスタイルエディタです!! って言われても、なんだか判らない! とりあえず、スタイルを見せつけます。 読み込みボタンを押して Dark.style を読むよ!
  • 38. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE38 Happy Creation, Play the Development! •なんか構造ペインがスゴいことに!
  • 39. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 39 Happy Creation, Play the Development! • とりあえず「適用して閉じる」
  • 40. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 40 Happy Creation, Play the Development! なんも変わってなくね!! まだ、あわてるような時間じゃ無い
  • 41. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 41 Happy Creation, Play the Development! Form のStyleBook プロパティ にStyleBook を設定する! すると…
  • 42. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 42 Happy Creation, Play the Development! なんか黒くなった!! 実行してみると… キター! 先ほどとは違う 黒く引き締まったボディに…!
  • 43. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 43 Happy Creation, Play the Development! こんな感じでスタイルがあるのですが… スタイルにはモバイルOS 用のスタイルが用意 されているのです…! iOS だったり Android だったり
  • 44. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE44 Happy Creation, Play the Development! スタイルは自由に何個でも置けます。 これの意味するところは… FireUI !
  • 45. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 45 Happy Creation, Play the Development! • FireUI とは – マルチプラットフォームアプリケーションをデザ インする上で必須の機能。 フォームデザイナの右 上に注目! ココをドロップすると こんな物が!
  • 46. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 46 Happy Creation, Play the Development! デザイナが Android に!!
  • 47. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE47 Happy Creation, Play the Development! •FireUI とはフォームを継承する仕組み マスタフォーム 継承フォーム 継承フォーム ボタン ボタン ぼたんや コンポーネントは全てのフォームに現れるが プロパティ(位置とか色とか全部)は 別個に設定出来る!
  • 48. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 48 Happy Creation, Play the Development! 大きさや 文字が変わって いる!
  • 49. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 49 Happy Creation, Play the Development! プロパティを別個に設定できるという事は… プラットフォームに合わせてスタイルを変更できる!
  • 50. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE50 Happy Creation, Play the Development! •FireUI を使うと、Desktop, Tablet とPhone などをいっぺんにデザインできてしまいます。 •しかも、プロパティを変更できるので –Desktop には、このボタンが欲しい –Phone には、煩雑だからいらない と言うこともできます。 •Visible プロパティの変更
  • 51. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE51 Happy Creation, Play the Development! さらにこれらをデザインしやすくする TMultiView というコンポーネントがあります。 コレを使うとAndroid のFragmentsと同じ 事ができてしまいます。 が、さすがに…これ以上聞くのは大変だと思う ので、とりあえず割愛
  • 52. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE52 Happy Creation, Play the Development! 自由な解像度 Android解像度地獄からの脱出
  • 53. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE53 Happy Creation, Play the Development! •FireMonkey の描画について –FireMonkey は全て自分でコントロールを描画し ています。 OS 方法 Windows DirectX OS X OpenGL iOS OpenGLES Android OpenGL ES
  • 54. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE54 Happy Creation, Play the Development! •FireMonkey の描画について –この結果、画面解像度(画素密度)に応じて描画 密度を変更しています。 –しかも、自動で!! 作ったアプリ 1024 x 768 作ったアプリ 1920 x 1080 今までは、こんな風に解像度が変わっても アプリの大きさは、そのまま 来たるべき超高解像度時代では 小さくて使いづらくなっちゃう!!
  • 55. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE55 Happy Creation, Play the Development! •FireMonkey の描画について 作ったアプリ 1024 x 768 FireMonkey では 解像度が変わっても 画面比率が変わらない! 作ったアプリ 2560 x 1440 スゴくない!?
  • 56. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE56 Happy Creation, Play the Development! •解像度からの解放 –Android のように多くの解像度があったり –最近ではiOS も色々な解像度あるし –Windows でもIGZO 液晶のノートがあったり –OS X だってRetina ディスプレイの物と、そう じゃないないのがあったり… FireMonkey を使うと! こういった悩みから解放される!!
  • 57. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 57 Happy Creation, Play the Development! そうはいっても比率が変わったらダメだよ ねー? そうでもない!!
  • 58. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE58 Happy Creation, Play the Development! •FireMonkey のレイアウト戦略 –FireMonkey では •Align •Anchors –というプロパティでコントロールの位置を相対的 に指定できる!
  • 59. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 59 Happy Creation, Play the Development! • Align プロパティ – 左寄せ、右寄せ、センタリング、といった配置を 指定できる • 指定可能な配置はメチャクチャあります
  • 60. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE60 Happy Creation, Play the Development! •Anchor プロパティ –Anchor(いかり)を下ろして位置を固定する –いかりの位置に引っ張られる
  • 61. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE61 Happy Creation, Play the Development! Anchor を左上に設定 大きくなっても左上を維持 Anchor を右下に設定 大きくなっても右下を維持
  • 62. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE62 Happy Creation, Play the Development! Anchor を左上・右下に設定 大きくなっても左上・右下を維持!
  • 63. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE63 Happy Creation, Play the Development! これらのプロパティを上手に使うと比率が変わってもデ ザインが崩壊しません! さらに、FireMonkey には TScaledLayout TGridLayout TFlowLayout などの多彩なレイアウトコンポーネントもあります。 これらを使うと自分でAnchor/Align を設定しなくても 自動的に再配置されます。 とはいえ、これも長くなるので初級編では割愛…
  • 64. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE64 Happy Creation, Play the Development! 素材についてもFireMonkey ならではのアプ ローチがあります。 TMultiResBitmap多重解像度ビットマップ TPathSVG などのベクター画像 という2つのコンポーネントがあります。 これらを上手く使う事えば様々な解像度に対応 できます。
  • 65. Copyright © 2013 SERIALGAMES inc.All Rights Reserved. PAGE65 Happy Creation, Play the Development! というわけで、ざっと Delphi FireMonkeyHD を紹介しました。 メチャクチャ簡単にアプリが作れるってことが、判って 頂けたでしょうか? そして、FireMonkeyは、3D も操れるのです! それは、FireMonkey3D といいます! それはまた別の機会に… ※勉強会では、このあとFireMonkey3D の話がありました