rad studio勉強会@大阪 20141206 delphi
TRANSCRIPT
新世代の開発環境
毛利春幸
とつぜんなんですが。。。
Delphi / C++Builder以外の事ってみなさんご興味あったり何かビジネスで使われたりされているでしょうか?
今回はそんな感じのお話をしようと思ってます
「RAD Studio」 なんでも実現できる開発環境!なんですが
• 数年前まで
3Dこんな感じで見せたら
おーーーってなっていたんですが
今では
• で?とか言われるかもです。
• WebGLやHTML5でも出来ますよね?
• WPFApplicationで出来ますよ
• Unity今タダですけど
世間の開発環境凄いです
• 僕達が想像しているより遥かに今の開発環境は凄いことになってます。
• 僕の中で VC++6時代が最新のVCだったのですがまったく別物と思うほどになってます
RAD Studio以外の事も知った上で
• RAD Studio以外の開発環境を知った上でRAD Studioを使うとまた違った見え方ができます
• 他社に営業プレゼンする時にもきっと役立つかもです。。。たぶん。。。
世間の目も肥えてきてます
そんな中他社開発言語の事情
• Unity C#, JavaScriptなどproject内で混在可能です
• HTML5 JavaScript, CSS
• WPFApplication C#
• Xamarin C#
• Unrealengine C++
こう見ると やはりC#強いですそれに若者は圧倒的にC#が多いように思いますその理由として⇒
金額面で大きな差があります
• Unity今タダで使えたりします
• Unreal Engine月額2000円ぐらいです
• WPFApplication VisualStudioなので今Community版無料です
• HTML5頑張って書けばタダです
• Xamarin 。。。。。。?
今の時代のこの環境で
• RAD Studio Delphi / C++Builderはどう乗りきれるのか
• 「どの方面を得意とする言語なのか」とか言ってる時代では無いと思ってます
Unity とVisualStudioを例にあげてRAD Studioと比較してみたいと思います
Unity
• 起動すると
いきなりサンプルプログラムがアピり出します。
Unityはサンプルで遊べますw
• Unity実行した画面一部です
サンプルすごいよく出来てて遊べます
Assetと言うObjectの組み合わせでできてます
• プレーヤーAssetにはアニメーションや画像やモデルが1つの部品となります
サンプルの実行コード
• Unityのサンプル実行コードは
いろんなデバイス対応してます
Unity以外にもゲームフレームワークにcocos2d-xというのもあります
cocos2d-xの特徴
• C++で書きます
• Mac OS, Win, Androidマルチデバイス対応です
• オープンソースです
• これも同じく良くできてます
C++のライブラリだけなので
• XCODEで動きます
• 試してないですが VisualStudioでも動きます
Microsoftの勢いすごくないですか?
• 最近Microsoftの勢いすごくないですか?
• タブレットサイズのOSが無料になったり
• VisualStudio Community版出したり
↓タブレットに関しては、ひょっとしたらAndroid抜くかもですよ!
でも僕達にはDelphiがある!
• MicrosoftのタブレットOS無料の勢いが凄い中DelphiはWindowsが得意中の得意だ!
• メトロUIもだせるよー
安心して無いですか?
• 無料版のWindowsOSは旧来のアプリ動かないバージョンがあります!
Windows 8.1 RTです
Microsoftのページでもバージョンの違いを確認できます!
Windows RTの製品は凄い増えると思います
• なぜなら
• C#ユーザーが多いのでRT版のストアアプリが作れるからです
• 更にVS Community版は無料だからです
• XAMLがブームだからです
Windowsタブレットが流行ると思った理由
• 僕毎週新幹線乗ってますがサラリーマンのおじさんがみんなノートPCでカタカタターーンででかい音でリターンKeyを押してるしょーじき言ってあれうるさい!
• 場所わきまえて欲しい早くタブレットの世の中にならないかな?
• Android。。。んーあのおじさんたちに使えるわけない。
Windowsタブレットが流行ると思った理由
• 過去の遺産と自分を守る為のネットワーク管理者が多いのでセキュリティうんぬんかぬんのせいにして Androidタブレットを社内システ
ムに取り入れるようなイケてる管理者なんで1/1000だろうw
• ネットワーク管理者の事や新幹線のおじさんを想像するとこれはWindowsタブレットの時代だと思ったんですw
ストアアプリ作るにはXAMLなんです
• XAMLって何?
• どうやってつくるの?
• 言語は何?
XAMLって何?
XAMLで何か作ってみます
• Visual Studioで作ります
• XAMLってのは画面を定義しているだけでFireMonkyで言うfmxみたいなものです
• 中身は C#やC++で書く事ができます
XAML貼ってみます
• XAMLコード例です<Page
x:Class="App4.MainPage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="using:App4"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"><Button x:Name="b1" Content="Button" HorizontalAlignment="Left"
Margin="64,58,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Width="196"><Button.RenderTransform>
<CompositeTransform Rotation="0"/></Button.RenderTransform>
</Button>
</Grid></Page>
Delphiのfmx貼ってみます
object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 480ClientWidth = 640FormFactor.Width = 320FormFactor.Height = 480FormFactor.Devices = [Desktop]DesignerMasterStyle = 0object Button1: TButtonPosition.X = 24.000000000000000000Position.Y = 40.000000000000000000TabOrder = 1Text = 'Button1'
endend
ボタンにClickイベントをつけてみます
• XAMLの場合<Button x:Name="b1" Content="Button" HorizontalAlignment="Left"
Margin="64,58,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Width="196" Click="b1_Click"></Button>
• FireMonkyの場合object Button1: TButton
Position.X = 24.000000000000000000Position.Y = 40.000000000000000000TabOrder = 1Text = 'Button1'OnClick = Button1Click
end
Click=“b1_Click”がコードとリンクされます
[MainPage.xaml.h]ファイル
void b1_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
てか(;・∀・)なんだこれ?
Object^⇒Delphiか!
ちなみにMFCでプロジェクト作ってみましたCMFCApplication1Dlg(CWnd* pParent = NULL);ちゃんとポインターでしたw
XAMLもFireMonkyもMVVM向きなんですよ
• 表示側とプログラム側を分離する事でデザイナが表示側を組みながら中身の実装はプログラマが行う
• XAMLから*.fmxファイル変換とかあったら最高なんですが。。。
Visual Studio 2013にはBlendがあります
• これでデザイナさんが画面デザインします
Delphiもカスタムを作れば良いのです
• Delphiも同じようにカスタムをデザイナさんがデザインする事ができます
これObjectはPanel1だけなのにボタンやラジオボタンありますよね
ちなみにこれがBlendの画面です
VisualStudio 2014からはこのBlendと本体とが統合されるような事を聞きました
WPFApplicationは3Dも書けます
• WPFってなんでしょう?
• C#でプロジェクトを作ります
• これもXAMLです
• みた感じ同じなんですがタグが<Window />なんです
• System.Windows.Media.Media3D;があります
WPFApplicationでDelphiみたいな3D書いてみましたw
• XAMLのGridタグの中にViewport3Dタグが埋めれるんですよw
• てことは3D空間ですよね
• てことは今までDelphiを使う皆様の想像できる自由なコントロールが可能なんですよw
WPFApplicationその2
• こんな感じに動かせます
WPFApplicationその2
• 現在はWPFだけですがストアアプリにも実装されそうだしマルチデバイス対応にもなりそう
WPFApplicationその2
• 僕がこのWPFで3DサクッてかけちゃったのはやはりRAD Studioの3Dが理解しやすかったのが多いと思います
• RAD Studioで3Dを覚えてWPFApplicationで3D実装するのがWPFを覚える上でのショートカットになります
まとめ
• 僕が待ってた時代がようやく来た感じです