45
無料環境で Windows Mobile アプリ開 七誌

無料環境でWindows Mobileアプリ開発

  • Upload
    7shi

  • View
    12.458

  • Download
    2

Embed Size (px)

DESCRIPTION

VC# ExpressでWindows Mobile開発

Citation preview

Page 1: 無料環境でWindows Mobileアプリ開発

無料環境でWindows Mobile アプリ開

七誌

Page 2: 無料環境でWindows Mobileアプリ開発

はじめに

Page 3: 無料環境でWindows Mobileアプリ開発

公式には以下の環境が必要

• Visual Studio 2005 Standard 以上

• Visual Studio 2008 Professional 以上

• Visual Studio 2010 Professional 以上(予定)

Page 4: 無料環境でWindows Mobileアプリ開発

Pro が必要だと

• 趣味で気軽に開発できない• アプリ開発を人に勧められない

• オープンソースにしても開発者が集まらない

Page 5: 無料環境でWindows Mobileアプリ開発

そこであえて

• 無料の Express Edition でやってみよう!(無保証)

Page 6: 無料環境でWindows Mobileアプリ開発

ただし

• Professional の機能が使えるようになる裏技ではありません

• Express でも可能な範囲でやりくりするだけ

• いわゆるバッドノウハウ• できないこともあります

Page 7: 無料環境でWindows Mobileアプリ開発

でも、がんばれば

• 最近発売されたWindows Mobile本のコードはほとんど利用可能

• 一部 Express では不可能な機能も、別の手法で代替可能

Page 8: 無料環境でWindows Mobileアプリ開発

何ができるの?

Page 9: 無料環境でWindows Mobileアプリ開発

用語について

• PCWindows XP/Vista/7 が動くパソコン

• WMWindows Mobile が動く携帯

• EXE ファイルアプリケーションの本体

Page 10: 無料環境でWindows Mobileアプリ開発

PC と WM で同じ EXE が動く※ただし条件付き

Page 11: 無料環境でWindows Mobileアプリ開発

これを利用して

• PC 用アプリを作る

• WM で動かす

• 結果的に WM アプリになる

• この方法なら無料で可能!

Page 12: 無料環境でWindows Mobileアプリ開発

だけど

• PC と WM の共通機能しか使うことができない

• 使用言語は C#• 起動が遅い

–起動後の体感速度は工夫次第–エフェクトの裏で重い処理など

Page 13: 無料環境でWindows Mobileアプリ開発

こういうものなら作れる

• ゲーム–あまり動きが激しくないもの

–3D バリバリはきつい

• ネットワーククライアント

–2 ちゃんねるや Twitter のような特定のサイトに特化したもの

Page 14: 無料環境でWindows Mobileアプリ開発

Pro を買わないと厳しいもの

• 電話や GPS などモバイル機能に依存したもの

• Today など C# だけで作れないもの

• 起動高速化のため C/C++ を使いたいとき

• モバイルっぽいものばかり!

Page 15: 無料環境でWindows Mobileアプリ開発

どうやって動くの?

Page 16: 無料環境でWindows Mobileアプリ開発

通常の EXE は CPU に依存

x86 ARM

Page 17: 無料環境でWindows Mobileアプリ開発

C# の EXE は CPU 非依存

• x86 でも ARMでもない CIL

• 各 CPU 用に変換して実行

• 変換のため起動が遅くなる

• JIT という仕組み x86 ARM

変換

実行

CIL

x86 ARM

Page 18: 無料環境でWindows Mobileアプリ開発

ライブラリ

• 言語だけでは何もできない• ライブラリが各種機能を提供–GUI や画像を表示

–ファイルを読み書き–ネットワークで通信–その他いろいろ

Page 19: 無料環境でWindows Mobileアプリ開発

参照

• ライブラリを使うことを参照と呼ぶ

• ライブラリの実体は DLL ファイル

EXE参照

DLL

Page 20: 無料環境でWindows Mobileアプリ開発

.NET Framework

• PC 用に以下をまとめたもの

•C#•VB.NET•C++/CLI•F#•など

言語 ライブラリ

各種機能•入出力•通信•GUI•など

VM

実行エンジン•JIT•メモリ管理•API 呼出•など

Page 21: 無料環境でWindows Mobileアプリ開発

.NET Compact Framework

• WM 用の .NET Framework• PC 用と比べて機能が少ない

–だからコンパクト

• WM 特有の機能を追加

• 長いので以下 CF と省略

Page 22: 無料環境でWindows Mobileアプリ開発

つまり• CF で PC と WM 共通の機能だけを使えば、どちらでも動く

WM 用

共通

PC 用

Page 23: 無料環境でWindows Mobileアプリ開発

VC# を使ってみる

Page 24: 無料環境でWindows Mobileアプリ開発

C# ファイルから EXE を作成

EXE(CIL)

プロジェクト

ビルド

Page 25: 無料環境でWindows Mobileアプリ開発

開発の流れ

• プロジェクトを作成

• CF の DLL を参照

• プログラムを書く

• PC で動作確認

• WM で動作確認 ← 区切りで

繰り返し

Page 26: 無料環境でWindows Mobileアプリ開発

プロジェクトを作成

Page 27: 無料環境でWindows Mobileアプリ開発

プロジェクトを作成

Page 28: 無料環境でWindows Mobileアプリ開発

プロジェクトを作成

Page 29: 無料環境でWindows Mobileアプリ開発

プロジェクトを作成

Page 30: 無料環境でWindows Mobileアプリ開発

CF の DLL を参照

Page 31: 無料環境でWindows Mobileアプリ開発

CF の DLL を参照

削除 参照の追加

Page 32: 無料環境でWindows Mobileアプリ開発

ビルドエラーを消す

Page 33: 無料環境でWindows Mobileアプリ開発

PC と WM で動く EXE 出現

Page 34: 無料環境でWindows Mobileアプリ開発

あとは

• 使える機能が少なかったり、 GUI のデザインが面倒なだけで、普通の C# プログラミング

• C# に慣れるまでは、 PC 用のプログラミングから始めて、機能を削って WM で動かすのを推奨

Page 35: 無料環境でWindows Mobileアプリ開発

注意事項

• Express は CF 用の機能がない

• GUI デザイナーは使えない–コードで GUI を作成

• エミュレーターと連携できない–手動で動作確認

• インストーラーが作成できない–手動で作成

Page 36: 無料環境でWindows Mobileアプリ開発

PC と WM の違い

Page 37: 無料環境でWindows Mobileアプリ開発

ウィンドウ

• 最大化ボタンがない

• × を終了手段として使えない

• 最小化を無効にすると OK が出現

<PC

K OKWM なし

最小化 最大化 閉じる

Page 38: 無料環境でWindows Mobileアプリ開発

ウィンドウのバー

• メニューがなければ IME の状態は表示されない機種が多い

• 最大化指定でタイトルバーが消える

Page 39: 無料環境でWindows Mobileアプリ開発

画面の解像度

• 画面はドット(点)の集まり• 画面のドット数を解像度と呼ぶ

• 「横 ×縦」で表す

9×8 8

9

Page 40: 無料環境でWindows Mobileアプリ開発

表示の細かさ

• 1 インチに含まれるドット数をドット密度と呼び、単位 dpi で表す

• 同じドット数の場合、画面が小さいほど表示が細かくなり、 dpiの値が大きくなる• 2 インチに 100 ドット → 50dpi• 1 インチに 100 ドット → 100dpi

Page 41: 無料環境でWindows Mobileアプリ開発

PC の解像度

• 画面の解像度に関係なくドット密度は一定として扱う(通常 96dpi )

• 解像度が上がれば大画面化する

1024

1280

VGA96dpi SXGA

96dpi

640

480

Page 42: 無料環境でWindows Mobileアプリ開発

WM の解像度• 画面の解像度に関係なく画面のサイズは一定として扱う–あまり巨大化すると携帯できなくなるため

• 解像度が上がれば表示が細かくなる

QVGA96dpi

240

320 VGA192dpi

480

640

Page 43: 無料環境でWindows Mobileアプリ開発

サイズ調整

• VGA では画像や文字のサイズをQVGA の倍にしないと、細かすぎてまともに読めない

• WM では縦横を回転できるため、横長と縦長の両方を考慮

• GUI のレイアウトではサイズと位置をコードで調整する必要がある

Page 44: 無料環境でWindows Mobileアプリ開発

その他

• カレントディレクトリの概念がない–相対パス指定ができない– EXE ファイルのパスを取得して合成

• α ブレンド(半透明画像合成)ができない–自前描画は遅いので諦めるのが得策?

• サウンドの合成ができる– CF 3.5 が必要

– PC ではできない

– WM の方が高性能な唯一の例?

Page 45: 無料環境でWindows Mobileアプリ開発

ご清聴ありがとうございました