無料環境でwindows mobileアプリ開発
DESCRIPTION
VC# ExpressでWindows Mobile開発TRANSCRIPT
![Page 1: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/1.jpg)
無料環境でWindows Mobile アプリ開
発
七誌
![Page 2: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/2.jpg)
はじめに
![Page 3: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/3.jpg)
公式には以下の環境が必要
• Visual Studio 2005 Standard 以上
• Visual Studio 2008 Professional 以上
• Visual Studio 2010 Professional 以上(予定)
![Page 4: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/4.jpg)
Pro が必要だと
• 趣味で気軽に開発できない• アプリ開発を人に勧められない
• オープンソースにしても開発者が集まらない
![Page 5: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/5.jpg)
そこであえて
• 無料の Express Edition でやってみよう!(無保証)
![Page 6: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/6.jpg)
ただし
• Professional の機能が使えるようになる裏技ではありません
• Express でも可能な範囲でやりくりするだけ
• いわゆるバッドノウハウ• できないこともあります
![Page 7: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/7.jpg)
でも、がんばれば
• 最近発売されたWindows Mobile本のコードはほとんど利用可能
• 一部 Express では不可能な機能も、別の手法で代替可能
![Page 8: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/8.jpg)
何ができるの?
![Page 9: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/9.jpg)
用語について
• PCWindows XP/Vista/7 が動くパソコン
• WMWindows Mobile が動く携帯
• EXE ファイルアプリケーションの本体
![Page 10: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/10.jpg)
PC と WM で同じ EXE が動く※ただし条件付き
![Page 11: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/11.jpg)
これを利用して
• PC 用アプリを作る
• WM で動かす
• 結果的に WM アプリになる
• この方法なら無料で可能!
![Page 12: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/12.jpg)
だけど
• PC と WM の共通機能しか使うことができない
• 使用言語は C#• 起動が遅い
–起動後の体感速度は工夫次第–エフェクトの裏で重い処理など
![Page 13: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/13.jpg)
こういうものなら作れる
• ゲーム–あまり動きが激しくないもの
–3D バリバリはきつい
• ネットワーククライアント
–2 ちゃんねるや Twitter のような特定のサイトに特化したもの
![Page 14: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/14.jpg)
Pro を買わないと厳しいもの
• 電話や GPS などモバイル機能に依存したもの
• Today など C# だけで作れないもの
• 起動高速化のため C/C++ を使いたいとき
• モバイルっぽいものばかり!
![Page 15: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/15.jpg)
どうやって動くの?
![Page 16: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/16.jpg)
通常の EXE は CPU に依存
x86 ARM
![Page 17: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/17.jpg)
C# の EXE は CPU 非依存
• x86 でも ARMでもない CIL
• 各 CPU 用に変換して実行
• 変換のため起動が遅くなる
• JIT という仕組み x86 ARM
変換
実行
CIL
x86 ARM
![Page 18: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/18.jpg)
ライブラリ
• 言語だけでは何もできない• ライブラリが各種機能を提供–GUI や画像を表示
–ファイルを読み書き–ネットワークで通信–その他いろいろ
![Page 19: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/19.jpg)
参照
• ライブラリを使うことを参照と呼ぶ
• ライブラリの実体は DLL ファイル
EXE参照
DLL
![Page 20: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/20.jpg)
.NET Framework
• PC 用に以下をまとめたもの
•C#•VB.NET•C++/CLI•F#•など
言語 ライブラリ
各種機能•入出力•通信•GUI•など
VM
実行エンジン•JIT•メモリ管理•API 呼出•など
![Page 21: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/21.jpg)
.NET Compact Framework
• WM 用の .NET Framework• PC 用と比べて機能が少ない
–だからコンパクト
• WM 特有の機能を追加
• 長いので以下 CF と省略
![Page 22: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/22.jpg)
つまり• CF で PC と WM 共通の機能だけを使えば、どちらでも動く
WM 用
共通
PC 用
![Page 23: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/23.jpg)
VC# を使ってみる
![Page 24: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/24.jpg)
C# ファイルから EXE を作成
EXE(CIL)
プロジェクト
ビルド
![Page 25: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/25.jpg)
開発の流れ
• プロジェクトを作成
• CF の DLL を参照
• プログラムを書く
• PC で動作確認
• WM で動作確認 ← 区切りで
繰り返し
![Page 26: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/26.jpg)
プロジェクトを作成
![Page 27: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/27.jpg)
プロジェクトを作成
![Page 28: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/28.jpg)
プロジェクトを作成
![Page 29: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/29.jpg)
プロジェクトを作成
![Page 30: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/30.jpg)
CF の DLL を参照
![Page 31: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/31.jpg)
CF の DLL を参照
削除 参照の追加
![Page 32: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/32.jpg)
ビルドエラーを消す
![Page 33: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/33.jpg)
PC と WM で動く EXE 出現
![Page 34: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/34.jpg)
あとは
• 使える機能が少なかったり、 GUI のデザインが面倒なだけで、普通の C# プログラミング
• C# に慣れるまでは、 PC 用のプログラミングから始めて、機能を削って WM で動かすのを推奨
![Page 35: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/35.jpg)
注意事項
• Express は CF 用の機能がない
• GUI デザイナーは使えない–コードで GUI を作成
• エミュレーターと連携できない–手動で動作確認
• インストーラーが作成できない–手動で作成
![Page 36: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/36.jpg)
PC と WM の違い
![Page 37: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/37.jpg)
ウィンドウ
• 最大化ボタンがない
• × を終了手段として使えない
• 最小化を無効にすると OK が出現
<PC
K OKWM なし
最小化 最大化 閉じる
![Page 38: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/38.jpg)
ウィンドウのバー
• メニューがなければ IME の状態は表示されない機種が多い
• 最大化指定でタイトルバーが消える
![Page 39: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/39.jpg)
画面の解像度
• 画面はドット(点)の集まり• 画面のドット数を解像度と呼ぶ
• 「横 ×縦」で表す
9×8 8
9
![Page 40: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/40.jpg)
表示の細かさ
• 1 インチに含まれるドット数をドット密度と呼び、単位 dpi で表す
• 同じドット数の場合、画面が小さいほど表示が細かくなり、 dpiの値が大きくなる• 2 インチに 100 ドット → 50dpi• 1 インチに 100 ドット → 100dpi
![Page 41: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/41.jpg)
PC の解像度
• 画面の解像度に関係なくドット密度は一定として扱う(通常 96dpi )
• 解像度が上がれば大画面化する
1024
1280
VGA96dpi SXGA
96dpi
640
480
![Page 42: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/42.jpg)
WM の解像度• 画面の解像度に関係なく画面のサイズは一定として扱う–あまり巨大化すると携帯できなくなるため
• 解像度が上がれば表示が細かくなる
QVGA96dpi
240
320 VGA192dpi
480
640
![Page 43: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/43.jpg)
サイズ調整
• VGA では画像や文字のサイズをQVGA の倍にしないと、細かすぎてまともに読めない
• WM では縦横を回転できるため、横長と縦長の両方を考慮
• GUI のレイアウトではサイズと位置をコードで調整する必要がある
![Page 44: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/44.jpg)
その他
• カレントディレクトリの概念がない–相対パス指定ができない– EXE ファイルのパスを取得して合成
• α ブレンド(半透明画像合成)ができない–自前描画は遅いので諦めるのが得策?
• サウンドの合成ができる– CF 3.5 が必要
– PC ではできない
– WM の方が高性能な唯一の例?
![Page 45: 無料環境でWindows Mobileアプリ開発](https://reader034.vdocuments.mx/reader034/viewer/2022052508/5598152d1a28ab5a1d8b4631/html5/thumbnails/45.jpg)
ご清聴ありがとうございました