24th embarcadero developer campedn.embarcadero.com/jp/article/images/42758/atrack.pdf · •...
Post on 26-May-2020
11 Views
Preview:
TRANSCRIPT
1
17Th Developer Camp
「HTML5によるモバイル/タブレットアプリケーション開発」
エンバカデロ・テクノロジーズ エヴァンジェリスト 高橋智宏
【A1】HTML5チュートリアルセッション
2
モバイル開発の需要
• モバイル/タブレット開発の需要が増えている
• 例えば… – 既存のWebシステムをタブ
レット端末向けにしたい – 新規でモバイル/タブレット用
の業務アプリ開発の依頼が増えている
– さまざまなデバイスに対応しなければいけない
など
出典:(株) MM総研 [ 東京・港 ]
モバイル開発にも対応可能なHTML5に期待が集まっている。
3
HTML5なら…
• PC向けのWebアプリをそのまま利用
操作性に難 • ネイティブ開発の場合
デバイスごとに別の開発環境で開発 工数の増大 再利用が困難
従来のモバイル開発 HTML5を採用した場合
• CSS3/JavaScriptが使える • デスクトップに匹敵する
アプリが作れる • モバイル向けに最適化 • UIを統一できる • ネイティブ化にも対応
4
HTML5入門
• HTML5 = HTML5 + CSS3 + JavaScript • <!DOCTYPE html> • <meta charset="UTF-8"> • フィールドの型&検証
– <input type="text" required> – <input type="text" pattern="..."> – <input type="email"> – <input type="date">
• Canvas(2D), Audio, Video, WebGL(3D), AppCache • ブラウザのサポートレベルを判定してくれるWebサイト
– http://html5test.com/index.html
5
HTML5によるモバイル開発
• たいてい必要なもの – エディタ – Google Chrome
• WebKitベース – http://www.webkit.org/
– シミュレータ/エミュレータ – 各種実機 – 各種ライブラリ・フレームワーク
• jQuery/jQuery Mobile • ThemeRoller for jQuery Mobile • PhoneGap(オプショナル)
– Webサーバー • PHPエンジン(オプショナル)
6
ひとつの解決策: HTML5 Builder
• オールインワン – HTML5、CSS3、JavaScriptの開発をサポート – サーバーサイドのPHP開発も可能 – Webサーバー、Webブラウザを統合 – モバイル向け開発フレームワークも統合済 – エディタ、デバッガ、プロファイラも統合
• ビジュアル – モバイル向けのビジュアルデザイナでドラッグ&ドロップ開発
– コンポーネントによりカプセル化 • プロパティ & イベントハンドラ
HTML5 Builder
7
17Th Developer Camp
HTML5 Builder
8
HTML+CSS+JavaScript+エディタ+プレビュー etc. • [新規作成] | [HTML5 Builderプロジェクト] | [クライアント モバイル アプリケーション]
9
実際に作ってみよう(その1)
10
実際に作ってみよう(その2)
13
17Th Developer Camp
Q & A
17Th
Developer Camp
【A2】Delphi / C++Builder テクニカルセッション
“FireMonkey が得意とする
ビジネスアプリ” の考察
【A2】Delphi / C++Builder テクニカルセッション
ビジネスアプリ の考察
有限会社エイブル有限会社エイブル富永英明
1
17Th
Developer Camp
はじめに1 はじめ1
2
今回は?
• 前回 (21th 【T4】) は 右も左もわからない状態からのFireMonkey ファ ストインプレッションでしたFireMonkey ファーストインプレッションでした。
• それなりに FireMonkey アプリケーションの作り方が解ってきたので、"向き / 不向き" もなんとなく判ってきました。
• でも、まだまだ FireMonkey 初心者です。...でも、まだまだ FireMonkey 初心者です。
• 技術論というより、方向性の話です。
• 漠然と 「~に向いてますよ」 と言うのでは説得力がないので、FM(2) の機能を検証しながら向き / 不向きを考えてみたいと思います。FM( ) の機能を検証しながら向き / 不向きを考えてみたいと思います。
• 3D 成分は少なめですのでご安心を。
3
ビジネスアプリと FireMonkey
• ここで言うビジネスアプリとは業務に特化したアプリケーション。
• 装飾とかはできればやるけど、予算的にも納期的にもあまり凝った事はできない (アイコン作るのでさえ面倒なのに)。あ り凝 事 ( 倒 )。
• 3D と...誰がモデルデータを作るの?
• FireMonkey にはアニメーションがあるけれど、3D 使うのでなければ積極的に使おうという気にはならないかも?3D 使うのでなければ積極的に使おうという気にはならないかも?
• LiveBinding は 「スゴい!」 と思う反面、挙動が一見しただけではわからないのでついついコードで書いちゃう。
4※意見には個人差があります。
ビジネスアプリを FireMonkey で作るための条件
• VCL アプリの時と同等とまでは言わないが、開発速度が落ちない事。
• 見栄えを気にする顧客も居るけれど、あまりにも負担が大きすぎるのはちょっと...。あ り 負 す 。
• 「Mac OS X でも動くように」 と言われた場合には選択の余地がない。
• ...がマルチプラットフォームなのであれば、Web アプリ以上の操作性や独自性がなければ、ネイティブアプリケーションであるという存在意義が独自性がなければ、ネイティブアプリケ ションであるという存在意義が薄れてしまう。
プ• 要は VCL アプリでは実現できない事や、FireMonkey アプリだと比較的楽に実現できる事があるのなら、FireMonkey を使ってビジネスアプリを作ってみたい!
5
y
※意見には個人差があります。
17Th
Developer Camp
FireMonkey のおさらい2 y のおさら2
6
FireMonkey って?
• XE2 以降で追加された、VCL とはまた別のフレームワーク。
• マルチプラットフォーム (Windows / Mac OS X) である。(XE2 では iOS アプリケーションも作成可能)
• PA Server を使って実機によるリモートデバッグが可能。
• HD (2D) アプリケーションと 3D アプリケーションが作れる。
• レイヤーを入れ子にできるので、HD / 3D のどちらか片方しか作れないという訳ではない。
• 基本的に VCL とは併用できない。RTL は FireMonkey からも利用可能。
XE3 の Fi M k は FM2 と呼ばれている
7
• XE3 の FireMonkey は FM2 と呼ばれている。
FireMonkey アプリケーションの動作環境
• Windows は XP以降で動作する。以降で動作する。
• DirectX 9.0 相当を必要とする必要とする。
• Direct2D はVista 以降
• OS X は 10 6• OS X は 10.6 以降で動作する。
なら• Intel Mac なら、少なくとも 10.6 は必ず動作する。
8
前回のあらすじ
• VCL アプリケーションと違って何でも親子関係になるよ。(やっても意味のない親子関係があるにはあるよ)(やっても意味のない親子関係があるにはあるよ)
• 常に [構造ビュー] を出しておかないとワケワカメになるよ。[構 ] を 。
• カスタムスタイルでコントロールの外観等を変更できるよ。
• コントロールそのものを回転したり拡大 / 縮小できるよ。
9
FM2 で追加されたものと削除されたもの (1)
• [3D Layers]TSolidLayer3D / TSplitter3DTSolidLayer3D / TSplitter3D
• [3D Shapes]TSelectionPoint3D (削除)
• [Additional][Additional]TMediaPlayer / TMediaPlayerControl
[dbE ]• [dbExpress]TSQLMonitor
• [Effects]TSwipeTransitionEffect
10
FM2 で追加されたものと削除されたもの (2)
• [Gestures]TGesutureManagerTGesutureManager
• [Layouts][ y ]TFlowLayout / TFlowLayoutBreak / THorzScrollBox
• [LiveBinding]• [LiveBinding]TBindSourceDB / TBindSourceDBX / TPrototypeBindSource
※ TBindSourceDB は XE2 だと TBindScopeDB です。
• [LiveBinding Misc]TDataGeneratorAdapter / TAdapterBindScope
• [Materials]TColorMaterialSource / TTextureMaterialSource /
11
TLightMaterialSource
FM2 で追加されたものと削除されたもの (3)
• [Metropolis UI]TLiveTileTLiveTile
• [Sensors]TLocationSensor / TMotionSensor
• [Standard][Standard]TPopup (XE2: コンポーネントとしては存在しない)
FMX Pl tf Pl tf 変数 (削除)• FMX.Platform.Platform 変数 (削除)
• TabOrder プロパティ (削除)( )
• スクリーンキーボード呼び出し
12• Anchors プロパティ
17Th
Developer Camp
FireMonkey が得意とするものと苦手とするもの3 ものと苦手とするもの3
13
○ 外観 (カスタムスタイル)
• FireMonkey はスタイルを変更する事でコントロールの外観を変更可能。
??
14「...VCL にも "VCL スタイル" あるじゃん?」
○ アニメーション
• FireMonkey は アニメーションを使ってコントロールに動きを付けられる。
??
15「何で動きを付ける必要があるの?」
○ センサー&ロケーション (FM2)
• FireMonkey では簡単に センサー& ロケーションを扱える。
??
16「...VCL からも使えるって言ってなかった?」
△ キーボード入力の多いフォーム
• FireMonkey は入力コントロールの多いフォームがちょっと苦手。
......
17「バリバリキーボード入力するのなら VCL のほうがいいかも」
× BDE とか ActiveX
• FireMonkey では BDE や ActiveX は使えない。
......
dbGo (ADO) は( )Windows プラットフォーム
専用だが利用可能。
18「マルチプラットフォームだしね...」
○ DBX4 とか IBX とか DataSnap とか
• DBX4 / IBX / DataSnap はマルチプラットフォーム&64bit で利用可能。
DB 操作方法は VCL と全く同じなので ビジネスロジ クでは苦労しない• DB 操作方法は VCL と全く同じなので、ビジネスロジックでは苦労しない。
!!
19「詳しくは DH山本さんの 【A5】 セッションで! (丸投)」
○ 3D S
• FireMonkey は 3D アプリケーションも作れる。
!!
20「全部自前でやれって言われたら涙目」
○ マルチプラットフォーム S
• FireMonkey は OS X アプリケーション開発に対応している。(画像はハメコミ合成ではありません)(画像はハメコミ合成ではありません)
!!
「ウリの だしね
21
「ウリの一つだしね」
※ {$RTTI EXPLICIT } 指令は使わないほうが無難。
○ 高解像度アプリケーション対応 S
• FireMonkey は スケール変更 / 回転が実用的。
スケ リング対応にするには フ ムに TS l dL t を貼り• スケーリング対応にするには、フォームに TScaledLayout を貼り、その上にコントロールを置くだけでいい (Alignment は alFit 系で)。
!!
22「Windows 8 でフォームが崩れて困ったな、そういや」
17Th
Developer Camp
FireMonkey に向いているビジネスアプリは?4 ビジネスアプリは?4
23
ここまでの前提条件を踏まえて。
...では何が FireMonkey に...では何が FireMonkey に向いているのか?
24
FireMonkey に向いているビジネスアプリ (1)
• Mac OS X 上で動作するアプリケーション
Wi d 版と M 版で "ほぼ同等の操作性のアプリ" が必要な場合• Windows 版と Mac 版で "ほぼ同等の操作性のアプリ" が必要な場合。
• 理由理由
選択の余地がない
Windows と Mac で別の開発ツールを使うのは効率が悪い。
25
FireMonkey に向いているビジネスアプリ (2)
• スレート PC (タブレット PC) で動作するアプリケーション
タ チパネルで操作するアプリケ シ ン• タッチパネルで操作するアプリケーション
• 理由理由
センサーが使える
FireMonkey では、回転 / 拡大縮小の処理が簡単
26
キーボード入力が殆どない
FireMonkey に向いているビジネスアプリ (3) S
• 視覚的に訴えるアプリケーション (3D 含む)動きのあるアプリケ シ ン• 動きのあるアプリケーション
右の画像は の物体の右の画像は 2 つの物体のサイズを比較するだけのアプリケーションです。
機能はシンプルですが、単に数値が並んでいるより、
サイズを具体的にイメージできます
• 理由
サイズを具体的にイメージできます。
理由
VCL で同等のことを行うのは不可能ではないが大変
DirectX や OpenGL の知識がなくともそれなりの事ができる。
27
FireMonkey に向いているビジネスアプリ (4-1)
• ...実は普通のビジネスアプリケーション。
4 34:3(1024x768) 5:4
(1280 1024)(1280x1024)
実 が同
• 理由
実 DPI が同一でインチサイズが異なる場合
理由
Windows 8 では画面の DPI が調整される = 96DPI ではない
今後、高解像度対応のアプリケーションが必要になってくる。
28
FireMonkey に向いているビジネスアプリ (4-2)
• リサイズ可能でフォームサイズと情報量が比例するのならばいいのだが?
イ イズが
• 理由
インチサイズが同一で実 DPI が異なる場合
理由
スケール固定でないと画面のレイアウトが崩れる (VCL アプリ)。 スケール固定だと相対的にフォームサイズが小さくなってしまう。
29
17Th
Developer Camp
役に立つかもしれない&ヒントになるかもしれない5 Tips5
30
タブ順序をどうにかしたい
• FM2には TabOrder が存在しない。タブ順序はコントロール作成順となる。
• 並べ替えたい順にフォームデザイナでコントロールを選択し、Ctrl+X で切り取って Ctrl+V で貼り付けるとタブオーダーが変わる。(VCL フォームアプリケーションでも同じ)
• 複数選択時に FMX のフォームデザイナが言う事を聞かない場合には、複数選択時に FMX のフォ ムデザイナが言う事を聞かない場合には、一つづつ並べ替えたい順にコントロールを切り取り、テキストエディタに順に貼り付ける。そして全選択してフォームデザイナに貼り付ける。
• 一旦、[構造] ビューでコントロールを複数選択するとうまくいくかも。それでもダメならメインメニューの [編集] からコピーとか。
• 並び替えるのをやめて (あきらめて)、フォーカスを持つコントロールをリスト (或いは動的配列) に突っ込んで管理する
31
リスト (或いは動的配列) に突っ込んで管理する。
※現在、スマートな解決方法を模索中です。
IM(E) モードをどうにかしたい (暫定) S
• コントロールの ImeMode プロパティは動作しない。
O E t / O E it で無理矢理 IM(E) を変更する• OnEnter / OnExit で無理矢理 IM(E) を変更する。
• Windows なら、VCL の SetImeMode() を呼び出す。
• OS X は IM の制御方法がよくわからなかったのでOS X は...IM の制御方法がよくわからなかったので、"ことえり" のショートカットのキーコードを送信したが、それなりに動いた。
constkVK ANSI J $26kVK_ANSI_J = $26;
varSrc: CGEventSourceRef;EventUp, EventDown: CGEventRef;
begin// Ctrl + Shift + J のキーイベントを生成 (ことえりのひらがなモードショートカット)// ( )Src := CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);EventDown := CGEventCreateKeyboardEvent(Src, kVK_ANSI_J, Integer(True));CGEventSetFlags(EventDown, kCGEventFlagMaskControl or kCGEventFlagMaskShift);EventUp := CGEventCreateKeyboardEvent(Src, kVK_ANSI_J, Integer(False));CGEventSetFlags(EventUp, kCGEventFlagMaskControl or kCGEventFlagMaskShift);CGEventPost(kCGSessionEventTap EventDown);CGEventPost(kCGSessionEventTap, EventDown);CGEventPost(kCGSessionEventTap, EventUp );CFRelease(EventUp );CFRelease(EventDown);CFRelease(Src);
end;
32※現在、スマートな解決方法を模索中です。
レポートツールはどうするの?
• FastReports の FMX 版が発売されている。
C/S とか三層デ タベ スアプリなら• C/S とか三層データベースアプリなら...
VCL で印刷サーバを作り、Indy 等で帳票の種類やパラメータを通信してパラメータを通信して
印刷する。
印刷専用• プリンタ設定が一回で済む
33
印刷専用アプリ
• OS によって印刷結果が異なるのを回避できる。
Microsoft Office との連携はどうするの?
• *.docx / *.xlsx / *.pptx は ZIP で固められた XML ファイル。
と を使えば• System.Zip.TZipFile と Xml.XMLDoc.TXMLDocument を使えば、自在に加工する事ができる (VCL でもできるという事なのですが...)。
• [TXMLDocument の使い方 (DocWiki)]http://docwiki.embarcadero.com/RADStudio/ja/TXMLDocument_%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9
• [Office (2007) Open XML ファイル形式の概要]http://msdn.microsoft.com/ja-jp/library/aa338205%28office.12%29.aspx
• [Office Open XML File Formats]
34
http://www.ecma-international.org/publications/standards/Ecma-376.htm
埋め込みブラウザは? S
• Delphi Chromium Embedded Framework (DCEF) が使える。
新版の DCEF3 (htt // d l / /d f3/) は• 新版の DCEF3 (http://code.google.com/p/dcef3/) は、現在 VCL 専用。
• DCEF1 (http://code.google.com/p/delphichromiumembedded/) は、( p g g p p ) 、そのままでは XE3 に対応しない。
• XE3 で DCEF1 を使うには、以下の URL にあるパッチが必要となる。https://groups google com/forum/?fromgroups=#!topic/delphichromiuhttps://groups.google.com/forum/?fromgroups=#!topic/delphichromiumembedded/rLt4wgRDy0c
ロケーションコンポーネントと組 合わ 例 す組み合わせた例です
35※但し、64bit / OS X 用はまだ存在しない。
センサー&ロケーション (FM2)
• PC にセンサーが付いているのなら使わないテはない。
Wi Fi が使えれば 仮想 GPS センサ を利用可能 (Wi d 7)• Wi-Fi が使えれば、仮想 GPS センサーを利用可能 (Windows 7)。(Geosense for Windows: http://geosenseforwindows.com/)
• Windows 8 ならば、仮想 GPS センサーなしでも Wi-Fi データ等から、仮 等三角測量を行う...らしい。
36※センサーコンポーネントは、あと 7 個増やせます。
ドライバによる画面回転とソフトウェアによる回転 S
• ドライバが持つ画面回転機能は全般的に遅い。
画面の書き換え過程が見えてしまう (描画をロ クしたとしても)• 画面の書き換え過程が見えてしまう (描画をロックしたとしても)。• ドキュメントの類は縦画面で読んだほうが視認性がいい事がある。
横 大横 大
フィット
フィット
37
とりあえずスタイルを変更してみる。
• 用意されているスタイルへ変更するだけでも随分と印象が変わる。
手間が掛からないのでや て損はない• 手間が掛からないのでやって損はない。
• 利用できるスタイルは $(BDS)¥Redist¥styles¥Fmx にある。
スタイルについての詳細は
第23回デベロッパーキャンプ【B2】見た目で楽しい
プ グラミ グDelphiプログラミング
セッション資料を参考にしてくださいしてください。
38
タイリングな背景 S
• TImage を alClient で貼り、WrapMode プロパティ を iwTile にしただけ。
Fi M k には簡単機能が用意されているものが少なくない• FirewMonkey には簡単機能が用意されているものが少なくない。
• ...探すのが大変ですが (^^;A
39
動く (企業) ロゴ S
• 画像をレイヤー状に配置してアニメーションさせれば動くロゴが作れる。
メインフ ムやスプラ シ ウ ンドウに配置するとインパクトあるかも• メインフォームやスプラッシュウィンドウに配置するとインパクトあるかも。
40
TPopup でアラート (FM2) S
• TPopup を使ったアラート (ダイアログ)複数のフ ムではなく単 のフ ムで画面遷移する場合に• 複数のフォームではなく単一のフォームで画面遷移する場合に。
• OS 標準のダイアログではできない事 / 不都合な事がある。
41
FireMonkey が機能不足で VCL の機能が必要な場合 (1)
• 初にお断りしますが非推奨です。
• VCL アプリケーションを作り、そこへ TPanel を貼って、TPanel に FMX フォームを割り当てる。
• [VCLフォーム内にFireMonkeyフォーム - ただし互換性が無いので…]http://blogs.embarcadero.com/teamj/2011/09/12/2387/p g j
• [Delphi XE2 - heating up the hype: playing the matchmaker for VCL and FMX]http://delphisorcery.blogspot.jp/2011/09/delphi-xe2-heating-up-hype-p p y g p jp p g p ypplaying.html
• DSharp Windows FMXAdapter pas は FM2に対応していないDSharp.Windows.FMXAdapter.pas は FM に対応していない。
• MonkeyMixer の作者はブログを閉じてしまった (現在 DL 不可)。
42
FireMonkey が機能不足で VCL の機能が必要な場合 (2)
FireMonkey 用のフォームはここで作る
VCL 用のフォームはここで作る
プロジェクトのみ。フォームはここに追加
(作成はしない)
43
(作成はしな )
※FMX プロジェクト上では VCL フォームは新規作成できない。逆も然り。
FireMonkey が機能不足で VCL の機能が必要な場合 (3) S
procedure TfrmContainer.FormCreate(Sender: TObject);// フォ ム作成時
コード例:
FMX フォーム用パネル// フォーム作成時begin
// FMX フォームを生成frmuMain := TfrmMain.Create(nil);
end;
(コンテナ)
procedure TfrmContainer.FormDestroy(Sender: TObject);// フォーム破棄時begin
// FMX フォームを破棄frmuMain.Free;
end;
procedure TfrmContainer.Button1Click(Sender: TObject);// ボタン押下時begin
// FMX フォ ムをパネルに埋め込む// FMX フォームをパネルに埋め込むpnlContainer.Form := frmuMain;
end;
マルチプラットフォームにしなければならない可能性が
僅かでも残るのであれば
44
僅かでも残るのであればこの手法を採るべきではない。
VCL でタッチ対応アプリケーションを作った時の苦労話(1)
• フルHD デスクトップのタッチアプリケーションと画面回転可能なスレ トPCで動作する同じ機能のアプリケ ション画面回転可能なスレートPCで動作する同じ機能のアプリケーション。
• 工場向け (図面閲覧や工程管理用)• タッチディスプレイは 21.5 インチ。B4 サイズの用紙が実寸で収まる。。 用紙 実 。
• スレート PC は 11.6 インチ。図面を閲覧したりするので、拡大/縮小機能があったとしてもそれなりの大きさを必要とする。
キ ボ ド / マウスレス• キーボード / マウスレス。
• バーコードリーダとタッチディスプレイですべての操作を行う。
• PC に不慣れな (キーボード操作 / マウス操作がおぼつかない) 方でもPC に不慣れな (キ ボ ド操作 / マウス操作がおぼつかない) 方でも使い方は1 日で覚えてしまう。
• スワイプ等の一見して解らない操作方法は極力排除。
• UI は何らかのボタンという形で画面上に見えている。
• 将来的には障碍者の方の雇用に結びつくようなアプリにしたいとの事。
• 月に1~2度 他社の視察を受けている模様
45
• 月に1~2度、他社の視察を受けている模様。
VCL でタッチ対応アプリケーションを作った時の苦労話(2)
• 開発スタートは XE2 発売の半年程前。
Fi M k の情報は事前に判 ていたが間に合わなか た• FireMonkey の情報は事前に判っていたが間に合わなかった。
• ボタンをすべて自前で描いた (通常 / 押下 / 無効を 1 セットで)。• スレート PC の回転機能はドライバによる回転なのでスレ ト PC の回転機能はドライバによる回転なので、
どうやってもチラつく&遅い (未解決)• デスクトップでは収まるものがスレート PC では収まらなかったりするが、
同じ機能のアプリケ シ ンを 2 つ別に作る余裕はなか た同じ機能のアプリケーションを 2 つ別に作る余裕はなかった。
• 解像度が異なるので、違いを意識させる事のない操作性にするのが難しかった (実 DPI の考慮)。( )
• スレート PC のセンサー (3軸加速度センサー) を検出するのが厄介だったので諦めた (回転の検出は解像度変更の検出で代替)。UI に関しても 工数の関係で簡素化してしま たものがある• UI に関しても、工数の関係で簡素化してしまったものがある。
• 一部 Direct2D を使っている。
• OS のダイアログは一切使えない (タッチ操作できたものではないので)。
46
OS のダイアログは 切使えない (タッチ操作できたものではないので)。
VCL でタッチ対応アプリケーションを作った時の苦労話(3)
• スレート PC は Atom プロセッサなので非力。
予算が潤沢にあるのなら C 系のスレ ト PC を採用するのもアリだが• 予算が潤沢にあるのなら Core 系のスレート PC を採用するのもアリだが、工場のように台数を必要とするトコロではそうもいかない。
• FireMoneky アプリがストレスのない速度で動作するのは確認済。y 度 動 す 確認済。(流石は Delphi...以下略)
• 現在の FireMonkey に足りないと思うのはインプレースなタッチ (仮想) キーボードタッチ (仮想) キーボード。
• OS が持つスクリーンキーボードはオーバーラップするので使い勝手が悪い&OS 毎に操作性が異なる。
• "スレート PC プログラミング (ONKYO TW317A5)" はhttp://ht-deko.minim.ne.jp/tw317/#05(FireMonkey を知った後では) ある意味バッドノウハウのオンパレード。(FireMonkey を知った後では) ある意味バッドノウハウのオンパレ ド。
• FireMonkey があれば、もっと簡単に作れたのに...。
47
17Th
Developer Camp
まとめ66
48
FireMonkey をビジネスアプリで活用するために
• 「VCL アプリケーションを捨てろ!」 なんて事は言っていないし言わない。
• しかしながら VCL アプリケーションでは工数とメンテに時間が掛かるものが確かに存在する。
• "FireMonkey をビジネスアプリで活用する" には、FireMonkey で何がやれるか、何がやれないかを見極める必要がある。FireMonkey で何がやれるか、何がやれないかを見極める必要がある。
• マルチプラットフォームなら、RIA (Rich Internet Applications) よりも操作性の面で優れている必要がある。RIA と同等またはそれ以下ならばデスクトップアプリケーションである必然性がない。
• 安価なもので構わないので、スレート PC を仕入れて触ってみる。センサー、マルチタッチ、縦横回転など、従来のアプリケーションとは異な た考え方のアプリケ シ ンを提案できるかもしれない
49
異なった考え方のアプリケーションを提案できるかもしれない。
システムのスケーラビリティ (業務アプリの展開方法)
• 初は Windows のみの C/S でスタート
マルチプラ トフ ムとして M を追加• マルチプラットフォームとして Mac を追加
• 外部からのアクセスを可能にするため、DataSnap で三層化 (Ent)• DataSnap モバイルコネクタを利用して iPhone や Android 対応 (Ent)DataSnap モバイルコネクタを利用して iPhone や Android 対応 (Ent)
予算や納期に合わせて無理のないシステム拡張を
行うことが可能になる。う
RAD Studio も、その規模に合わせてその規模に合わせて
アップグレードすればいい。
50Step1 Step2 Step3 Step4
具体的に何が向いているのか?
• 受付業務全般(フロントでお客さんが操作するようなもの)(フロントでお客さんが操作するようなもの)
• 工場系のワーカーさんへの作業指示&フィードバック場系 業指(ペーパレスが実現できる / 手が汚れていても肘などで操作可)
医療系の高精細な画像を扱うアプリケ シ ン• 医療系の高精細な画像を扱うアプリケーション(高解像度ディスプレイを使ってもフォームが破綻しない)
• フィールドワーク / 営業さん用(GPS とローカル DB があれば、通信できないような場所でも OK)
• エライヒトまたは視察 (おもてなし) 用のハッタリアプリケーション(見た目で納得しちゃう方が少なからずいらっしゃいます...)
51
( )
17Th
Developer Camp
資料資料
52
関連情報 &資料1
• [FireMonkey アプリケーション プラットフォーム (DocWiki)]http://docwiki embarcadero com/RADStudio/ja/FireMonkey アプリケーション プラットフォームhttp://docwiki.embarcadero.com/RADStudio/ja/FireMonkey_アプリケーション_プラットフォーム
• [デベロッパーキャンプアーカイブ (Embarcadero)] - 過去のデブキャン資料ですhttp://www.embarcadero.com/jp/developer-camp-japan/archivep jp p p j p
• [Devices (ロケーション/センサー API) (MSDN)]http://msdn.microsoft.com/en-us/library/ee663267%28VS.85%29.aspx
• [デバイスの概念とアーキテクチャ (Windows)]http://msdn.microsoft.com/ja-jp/library/windows/apps/hh750300.aspx
• [高 DPI 対応の Win32 アプリケーションを記述する] - 悩んでしまうかもしれません(Windows デベロッパー センター)http://msdn.microsoft.com/ja-jp/windows/dd630126.aspxp j jp p
53
関連情報 &資料2
• [Microsoft Serface with Windows 8 Pro (Microsoft)]http://www.microsoft.com/Surface/en-US/surface-with-windows-8-pro/homep p
• [Lenovo Thinkpad Tablet 2]http://shopap.lenovo.com/jp/products/tablets/thinkpad2/
• [Mac OS X 10.6 Snow Leopard (Apple Store)] - ¥1,700 で再販中...orzhttp://store.apple.com/jp/product/MC573J/A/mac-os-x-10.6-snow-leopard
• [FireMonkey (Stack Overflow)]http://stackoverflow.com/questions/tagged/firemonkey
• [Delphi (FireMonkey) によるテクニック&アルゴリズム]http://ht-deko.minim.ne.jp/techalgof.html
[FMX S E ] FM2 のセンサ コンポ ネントを 7 個増やせます• [FMX.SensorsEx] - FM2 のセンサーコンポーネントを 7 個増やせますhttp://ht-deko.minim.ne.jp/software/fmx_sensorsex.zip
• [DTween (全力わはー)] - VCL でもアニメーションできます
54
[DTween (全力わは )] VCL でもアニメ ションできますhttp://d.hatena.ne.jp/tales/archive?word=*[DTween]
第24回 エンバカデロ・デベロッパーキャンプ
John “JT" Thomas 製品担当ディレクター john.thomas@embarcadero.com Twitter: @FireMonkeyPM
新井 正広 Manager, Doc & Localization masahiro.arai@embarcadero.com Twitter: @arai_masahiro
開発者に関する世界的統計
• 年間 520 億行ものコード
• コード 1 行当たり平均 28 米ドル
• ソース コードの開発にかかる費用は、全世界で年間 1.5 兆ドル
全世界で1,600 万人のソフトウエア開発者 (Evans Data 社調べ)
エンバカデロの顧客
• 年間 97 億 行のコード
• 年間 480 億行のコードを節約
• 必要なコードは 80% 削減
• 1 コード行当たり実質 5.60 ドル(1
行あたり28米ドルではなく)
• 年間2,200億ドルの開発費用を節約
300 万人の Delphi/C++開発者がコーディング
しかし、それは氷山の一角にすぎない。
1999 年のエンタープライズ環境
Windows
2005 年のエンタープライズ環境
Windows Web
2012 年のエンタープライズ環境
Windows Mac モバイル Web
開発者にとって前例のない規模の マルチプラットフォーム開発機会
6,500 万台 10 億台 10 億台 20 億人
$$$$$ $$$$$ $$$$$ $$$$$ + + +
$
単一ソースコードのネイティブ クロスプラットフォーム環境で、 デスクトップからモバイルまでを サポート
$ $
DataSnap と HTML5 Builder を 使用する Web クライアントを追加 する場合
ネイティブ プラットフォームと Web を ターゲットにしたプロジェクトの例
50,000 行のコード 140 万ドルのプロジェクト費用 184 人月の工数 LOC 当たり実質 28.31 ドル
2,000 行のコード 11.3 万ドルのプロジェクト費用 15 人月の工数 LOC 当たり実質 2.26 ドル
vs
現在のソリューション
RAD Studio XE3
Windows 8
Visual LiveBinding
Metropolis UI Delphi
HTML5
Mac OS X Mountain Lion
FM2
Mobile
The Developer Force Multiplier
本日の発表
64-bit C++Builder for Windows
VCL および FireMonkey
Dinkumware STL for C++11/C99
Boost 1.5
高度に最適化されたコード生成
将来のためのアーキテクチャ RAD(Rapid Application Development) マルチデバイス
ARM
INTEL PME & RTTI
IRエンジン
コード生成 エンジン
言語 エンジン
標準 互換性 ライブラリ C99, C++98, C++11 Borland C++
C++Builder, CLANG STL, Boost, Loki, ACE
製品出荷予定 12月10日 よりダウンロード開始
XE3 のアップデートとしても提供
新版を再インストール
XE3 とバイナリ互換
モバイル開発の現在
現代の Web 技術を使ったRADビジュアル開発
Web、iOS、Android、BlackBerry、 Windows Phone をターゲットに
HTML5 Builder
• HTML5、CSS3、JavaScript でのフロ
ントエンドの開発
• PHP でのサーバー側の開発
• モバイル デバイス UI スタイル設定
• CSS3 によるスタイル設定および
アニメーション
• 豊富なビジュアル コンポーネント
• ビデオ、オーディオ、GPS、カメラ、
加速度センサなど
• Web および AppStore への配置
HTML5 かネイティブか? ネイティブの利点 HTML5 の利点
複雑な UI 単純な UI
低レイテンシ UX 高レイテンシ環境でも OK
高度な処理要件 ブラウザによる配置
データをデバイスで生成 Web データをクラウドで生成
UI データ入力 フォーム データ入力
プレゼンテーション / アプリケーション / データ層 プレゼンテーション層
将来のモバイルソリューション
免責事項: 以下の情報はエンバカデロにおける現時点での製品の一般的な方向性を記述したもので、ライセンスに関する決定を行う際に判断のよりどころにはしないでください。機能の今後の開発、リリース、価格設定、スケジュールは、予告なしにいつでも変更される可能性があります。このロードマップは、お客様が翌年のモバイル プロジェクトを立案する際に、ソフトウェア保証サブスクリプションの役に立つことを目的としています。
開発中の機能 • ネイティブ ARM ツール チェーンを統合
• Delphi および C++
• コンパイラ、リンカ、デバッガ
• ネイティブ iOS および Android プラットフォームのサポート(RTL、FireMonkey、ネイティブ API)
• FireMonkey モバイル フレームワーク
• モバイル フォーム デザイナ
• モバイル センサ サポート(GPS、カメラ、加速度、ジャイロ)
• ネイティブ UX とネイティブ UI スタイル
• カスタム UX とデザイナー仕様のスタイル
• 組み込みデータベースとエンタープライズ データベースのサポート
• DataSnap ミドルウェアのサポート
開発中の機能
• XE3 Windows/Mac 版 FM2 との互換性
• HD および 3D
• Retina/高解像度の自動処理
• 設計、開発、シミュレーション、デバッグ、配置の統合
• アドホック配布および AppStore 経由の配布
開発中の機能
ロードマップ 2013 年
iOS - 2013 年上半期(予定)
Android - 2013 年中期(予定)
* リリース時期は、エンジニアリングの現在のスケジュールと進捗に基づいて見積もったものです。実際のリリース時期はロードマップと異なる場合があります。
Mobile Demo
免責事項: この情報はエンバカデロにおける現時点での製品の一般的な方向性を記述したもので、ライセンスに関する決定を行う際に判断のよりどころにはしないでください。機能の今後の開発、リリース、価格設定、スケジュールは当社の裁量に委ねられており、予告なしにいつでも変更される可能性があります。
Powering Today’s Applications and Data
17Th
Developer Camp
【A4】 テクニカルセッション
「RAD Studio XE3 によるWindows 8 開発」
【A4】 テクニカルセッション
Windows 8 開発」
Embarcadero Technologies IncEmbarcadero Technologies, Inc. Manager, Documentation and Localization
新井正広
1
17Th
Developer Camp
Windows 811
2
Windows 8
• 10⽉26⽇発売
3
http://windows.microsoft.com/ja-JP/windows-8/new-look
Windows 8
• 今後発売される「Windows 8対応PC」の多くは、タッチ対応
http://windows.microsoft.com/ja-JP/windows-8/new-pcs
4
http://windows.microsoft.com/ja JP/windows 8/new pcs
デスクトップアプリと、Windows ストアアプリ
• デスクトップと、ストアアプリは異なるランタイムの上で動作
デスクトップアプリ Windows ストアアプリデスクトップアプリ Windows ストアアプリ
Win32 API Windows Runtime
Windows 8 Windows RT
Intel x86 / x64 ARM5
Windows ストアアプリ
• Windows ストアアプリ– 従来の Win32 アプリは動作しない
Windows ストアからダウンロ ド 購⼊– Windows ストアからダウンロード、購⼊• Microsoft の審査後に公開• 不適切なAPI 法律 約款への違反が無いかチェック• 不適切なAPI、法律、約款への違反が無いかチェック
– 社内向けアプリはストアを経由せずに配布可能• Windows 8 Enterprise + ドメイン参加が必須
6
Windows ストアアプリ
• 共通の⼿順を使⽤したアプリ間の連携をサポート– 検索– 共有
• ライブタイルアプリケ シ ンのステ タスをリアルタイムで表⽰– アプリケーションのステータスをリアルタイムで表⽰
• アプリケーションの販売・トライアルアプリケ ションの販売 トライアル– 容易な配布、更新
7
デスクトップ アプリ
• Windows RT / ARM 環境では動作しない• Windows 8 / Intel 環境でのみ動作
• Windows 7 に対応できているのであれば、特に問題は無い– データベースドライバなどの対応は、ベンダーによって異なるデ タ スドライバなど 対応は、 ンダ よ て異なる
• VCL, FireMonkey, Win32 API を利⽤して開発
8
17Th
Developer Camp
タブレット、タッチに対応2 タブレット、タッチに対応2
9
タッチ向けアプリケーションを構築する。そのまえに
• たくさんの要素をひとつの画⾯に配置しない– 細かいUIはそもそも選択できない– 凹凸のあるキーボードですら、19mmピッチが⼀般的
– 重要な選択肢ほど⼤きく表⽰• 間違って選択することを避ける
– 重要ではない選択肢は⼩さめでも可• レビュー⽤の「★★★☆☆」
– 可能な限り、そもそも UI 要素を省く
10
タッチ向けアプリケーションを構築する。そのまえに
• ユースケース・シナリオを単純にする– 機能を増やすほど UI は複雑化する
• ヘルプ ドキュメントを⾒なくてもよい UI を設計する• ヘルプ・ドキュメントを⾒なくてもよい UI を設計する– フローが単純であること結果を予測できること– 結果を予測できること
– 元に戻れること
• Windows 8 ストアアプリ向けデザインガイドは「よい指針」– 数多くのユースケースが詳細に検討されている数多くのユ スケ スが詳細に検討されている
11
⼩さな要素は選択できない
12
⼩さな要素は選択できない
• 「タッチモード」で画⾯を少し⼤きくしてみた例
13
画⾯の⼤きさの違い
14
ソフトウエアキーボードの使⽤
15
タブレット、タッチへの対応
• 既存の UI をそのままタッチ向けに移⾏するのは、⾮現実的– TMainMenu– TPopupMenu– TTreeView
異なるデバイスへの対応が必要• 異なるデバイスへの対応が必要– ディスプレイ(画⾯の⼤きさ)⼊⼒デバイス(キ ボ ド マウス タ チ ペン)– ⼊⼒デバイス(キーボード、マウス、タッチ、ペン)
• 複雑な階層メニューを作成することは、ほぼ不可能複雑な階層メニュ を作成することは、ほぼ不可能
• ⼊⼒系のコンポーネントは、⼤きさ、配置を再考する
16
17Th
Developer Camp
RAD St di XE3 をRAD Studio XE3 を利⽤したタブレット・タッチ3 利⽤したタブレット タッチへの対応
3
17
デスクトップアプリと、Windows ストアアプリ
Metropolis UI Embarcadero Prism
デスクトップアプリ Windows ストアアプリ
p
デスクトップアプリ Windows ストアアプリ
Win32 API Windows Runtime
Windows 8 Windows RT
Intel x86 / x64 ARM18
Metropolis UI
• デスクトップアプリとして動作– Windows 8 スタイルのアプリ
• 利⽤環境はWindows 8 に限らない• Windows 7, Vista, XP でも動作
– キーボード、マウス、タッチを操作をサポート可能– 既存の VCL, FireMonkey, Win32資産を活かしつつ、タブレット、タッチデバイス向けのアプリを作成
• サポートするフレームワーク– FireMonkey– FireMonkey– VCL
19
Metropolis UI
• ⾃動⽣成されるテンプレート– 空⽩のプロジェクト、または– グリッド形式のインデックス/詳細ページ– Esc キー、または画⾯下からのスワイプで表⽰される AppBar
• Windows 8 「スタイル」のコンポーネント
20
Metropolis UI
• Windows 8 スタイルのコンポーネント– TEdit
• 標準的な操作に対するグリフ表⽰とアクションを追加– TListBox
• イメージとタイトルをボックスに表⽰– TComboBox– アイコンライブラリ– ツールチップ– フライアウト
21
異なる画⾯サイズ、向きへの対応
• 画⾯をスクロールして、残りのコンテンツを表⽰する– Windows 8 ストアアプリのスタイル– 最初からすべてを表⽰することを期待しない
22
異なる画⾯サイズ、向きへの対応(FireMonkey)
• FormFactor プロパティを使⽤する– 事前に、複数の画⾯サイズ、向きのフォームを定義
Application.CreateForm(TLargeForm, LargeForm);A li ti C t F (TS llF S llF )Application.CreateForm(TSmallForm, SmallForm);
Application.RegisterFormFamily('DetailView',[TLargeForm, TSmallForm]);
– 実⾏時に、デバイスにあわせてフォームを選択
[ g , ]);
procedure TGridViewForm.ItemClick(Sender: TObject);varForm: TCommonCustomForm;
beginForm := Application.GetDeviceForm('DetailView');if Assigned(Form) thenForm Show;
23
Form.Show;end;
ジェスチャを利⽤する
• 対話型ジェスチャ– ズーム、回転など
• InteractiveGesture を選択• OnGesture イベントを実装• ジェスチャを⾏っている間、イベントが発⽣し続ける
• 標準ジェスチャ– 上、下、矩形など
• TGestureManager, TActionList コンポーネントを利⽤• 個別のジェスチャが「認識されたとき」に、アクションを実⾏
24
Metropolis UI
• VCL と FireMonkey のどちらを選ぶべきか– VCL
• 過去のコードとの互換性は⾼い– 特にデータベースアクセス
• TTouckKeyboard が提供されている(Win XP にも対応)Fi M k– FireMonkey
• 異なる画⾯サイズへの対応は容易Z (S l )– Zoom (Scale)
– FormFactor
25
Metropolis UI
• ライブタイルのサポート(Windows 8 のみ)– アプリケーションからの最新情報をタイルに表⽰可能– ビルド済みの Windows Runtimeで動くアプリ– TLiveTile コンポーネントを通じて、タイル上のアプリと連携
26
ライブタイルの配布
• 配布可能な環境– Windows 8 Enterprise– ドメインへの参加
• 配布すべきモジュール– 作成したデスクトップアプリケーション– プロジェクトフォルダにある .appx ファイル– <BDS>¥bin¥livetile 以下にあるバイナリ⼀式
• Embarcadero.Metropolis.LaunchAgentHost.exe を実⾏• サービスを登録(InstallTileSvc.bat)
• .appx ファイルは適切な署名が必要27
pp
17Th
Developer Camp
E b d P i をEmbarcadero Prismを使⽤した3 使⽤したWindows ストアアプリ3
28
Windows Store アプリの基本
• XAML & コードビハインド(.pas)で構成– アプリケーション
• Windows.UI.Xaml.Application クラスを拡張– ページ
• Windows.UI.Xaml.Control.Page クラスを拡張– イベントハンドラをパーシャルクラスを使⽤して実装
29
Windows Store アプリの基本
• サンドボックスモデルを使⽤している– アプリケーションが使⽤する機能を宣⾔、ユーザーが承認
• ドキュメントへのアクセス• 位置情報• ネットワークアクセス
b カメラ• Web カメラ
30
Windows 8 で提供されているサービスを利⽤する
• どのコントラクトを使⽤するかを宣⾔
• コントラクトに対するイベントを記述• コントラクトに対するイベントを記述
31
17Th
Developer Camp
Windows ストアアプリの配布3 配布3
32
アプリケーションの配布
• 基本的に、Windows Store で配布する• 社内アプリの場合には
– Windows 8 Enterprise + ドメイン参加が必須p– 事前に署名する(配布先で、そのまま署名が確認できる)– ドメイン管理者が必須アプリとして配布するシナリオ
• PowerShell Script を使⽤する
33
17Th
Developer Camp
Q & AQ &
34
17Th
Developer Camp
【A5】 Delphiテクニカルセッション
「Delphi+Visual LiveBindingによる
データベースアプリケーション開発」
【A5】 Delphiテクニカルセッション
デ タベ スアプリケ ション開発」
株式会社ドリームハイブ株式会社ドリ ムハイブ
代表取締役 ITコンサルタント
山本 悟
1
自己紹介
• 名前:山本 悟 (やまもと さとる)代表取締役 & ITコンサルタント– 代表取締役 & ITコンサルタント
• 会社:株式会社ドリームハイブ会社 株式会社 リ– 会社URL :http://www.dreamhive.co.jp/– フリーソフトなどを配信 :http://dhive.jp/
山本のブログ :http://dhive jp/blog/yama/– 山本のブログ :http://dhive.jp/blog/yama/– facebook :http://www.facebook.com/kryu2
• 山本はこんな人:– 17歳からIT業界へ
Delphi は1 0からの親友– Delphi は1.0からの親友– ドリームハイブの経営、ITコンサルティング、
システム開発、スピーカーなどが主な仕事
22
本日の流れ
• VCLとFMとVisual LiveBinding
• 接続の基本のデモ
• 双方向の接続のデモ
• フィールドを利用した接続のデモ
• DataSourceと接続のデモ
• 他の形式のデータと接続のデモ
• まとめ
このセッションは、テクニカル・セッションです
RAD StudioでLiveBindingを用いたアプリケーションの構築方法について、g 築
私の主観と経験に基づいてお話しいたします
あなたにとって最適解では無いかもしれませんが、参考になると思います
33
VCLとFireMonkey
• RAD Studio XE2からフレームワークにVCLとFireMonkey(XE3では FM2)が追加されました
4
LiveBindingとは
• VCL/FMのどちらにもLiveBindingがありますが、FMはクロスプラットフォームです
• LiveBindingの概要– バインディング式と呼ばれる、
単方向にも双方向にもできる関係式に基づいているLi Bi di は伝播する– LiveBinding は伝播する
– コントロール オブジェクトとソースオブジェクト
• バインディングの作り方• バインディングの作り方– LiveBindingデザイナかLiveBindingウィザード
• クイックバインディングのみ作成できる
– LiveBindingコンポーネントの利用g• バインディング式などを指定できる
– 注意• 1つのコントロールを2つのコンポーネントプロパティにリンクすることはできない• コントロールと両方のコンポーネントプロパティを1つのフィールドにリンクすることは可• コントロールと両方のコンポーネントプロパティを1つのフィールドにリンクすることは可
能
• と言う事で、本日はLiveBindingについて話します
5
LiveBindingのための設定
• オプション設定右クリックメニューにLiveBindingウィザードを表示
6
接続の基本
• LiveBindingはコンポーネントのプロパティを動的に結びつける
– EditとLabelを結びつけるなどの基本のデモ01
7
双方向の接続
• 双方向に繋げることも
– EditとEditを接続するデモ02
• キーワード
– BindingsList1.Notify()
– Direction := dirBidirectional
8
フィールドを利用した接続1
• PrototypeBindSourceとは
– PrototypeBindSourceとは、アプリケーションのテストのために様々なフォーマットのサンプルデータを提供する機能をも ンポ ネントです能をもつコンポーネントです。
9
フィールドを利用した接続2
– PrototypeBindSourceを使い、フィールドを経由して様々な ポ ネ トを クするデ 03なコンポーネントをリンクするデモ03
10
フィールドを利用した接続3
– Generatorを使ったサンプルデータを利用するデモ04
11
フィールドを利用した接続4
– PrototypeBindSourceのデータをド 書き換えるデ 05コードで書き換えるデモ05
12
DataSourceと接続1
• LiveBindingはDataSourceにも繋がります
– DataSourceとGridを接続するデモ06
• 注意
– LinkGridToDataSourceのColumnsを弄るときはAutoActivateをFalseに
13
DataSourceと接続2
• DataSnapを利用すればネットワーク経由の接続もOK
– DataSnap経由でGridを表示するデモ07
DataSnapサーバーDataSnapクライアント DataSnapサーバーDataSnapクライアント
biolife.cds
14
他の形式のデータと接続1
• アダプタ使えば自作クラスとやりとりもできます
– 自作クラスをTAdapterBindSource経由でリンクさせるデモ08
自作クラス:EmployeeAdaptee.pas
15
p y p p
EmployeeAdaptee.pasunit EmployeeAdaptee;
interface
typeTEmployee = class(TObject)private
FFirstName: String; iFLastName: String;
FAge: Byte;public
constructor Create(const AFirstName, ALastName: String; const AAge: Byte); overload;property FirstName: String read FFirstName write FFirstName;property LastName: String read FLastName write FLastName;property LastName: String read FLastName write FLastName;property Age: Byte read FAge write FAge;
end;
implementation
constructor TEmployee.Create(const AFirstName, ALastName: String; const AAge: Byte);begininherited Create;
FFirstName := AFirstName;FFirstName := AFirstName;FLastName := ALastName;FAge := AAge;
end;
end.
16
end.
まとめ
• VCL+DBコンポーネントからFireMonkey + Visual LiveBinding に移行することで
Windows / Mac のクロス環境で実行可能
高品質なグラフィック / UIを利用可能
表現力豊かなコンポーネントを使用可能
コンポーネントの選択肢が広がる(DBコンポーネントだけに限定されない)
タブレットなどでも利用しやすいスタイルを選択可能
将来的にモバイルなど追加のプラットフォームでも利用可能(iOS / A d idが予定され る)利用可能(iOS / Androidが予定されている)
RDBMSだけでなく任意のデータ / オブジェクトを扱える
17
17Th
Developer Camp
Q & AQ &
18
終わりに
ご静聴いただきありがとうございました
メルマガもご登録ください(※期間限定)↓↓↓
http://www.dreamhive.co.jp/24thDC/
パスワード:24thDC
19
top related