Upload
shigure
View
745
Download
3
Embed Size (px)
Citation preview
WindowsMobileでのTwitterのはじめかた。~ tmytの場合 スマートフォン勉強会@関西 #9
tmyt
かるく自己紹介
はじめましての方、はじめまして。
tmytっていいます。
大学院生になりました。
スマートフォンはWM派です。
あと、男です。
今日の格好は@Hisumiにやらされました。
おしながき
Azureaの紹介
Twitterのはじめかた。
Twitterのはじめかた – Phase.2
ちょっぴり開発者よりなおはなし
WorldViewしてみたよ!
Azureaってなんだろう
拙作のTwitterクライアント。
WindowsMobileで動きます。
僕が快適に使えるクライア
ントを目指しました。
とある方面にも好評なよう
です。
ついったー楽しいですね
ついったー楽しいです
お外にいるときでもわりとついったーしちゃいますよね
Twitterドラマ(笑)も始まって絶好調ですね
ついったーのはじめかた ~ 普通の人の場合 ~
まずTwitter (http://twitter.com/)へアクセスして
今すぐ登録 ボタンをおして
フォームを記入して
アカウントを作成 押せば登録完了!
これであなたもついったー廃人!
いや、 そんなことはどうでもいいんだ
ついったーのはじめかた ~ tmytの場合 ~
とりあえず登録する。
端末を買う
とりあえずAPI仕様書を読む
とりあえずクライアントを書く
なんてかいてき!
とりあえず端末購入して悩む
i-mate 8502という端末がありました。
なんと製造していた会社が倒産しました。
すると、なんということでしょう。 5,6万する端末がなんと驚き1万3千円。
あれ、手元になにか増えてる。
端末を購入した結果
ストレートQWERTY最高!
QVGAせまい!
EbIRCでTIGもいいけどもっと快適についったーしたい!
アプリ書けばいいじゃん。
結果Azureaを作りました。
TIGでリプライを追う拡張も作ったけど入力めんどい。
もっと快適にリプライおいたい!
そうだツリービューで追えたらかっこいいじゃん!
そんなアプリないのかな。
(約30分後)いいや作ればいいじゃん!
UIの必要条件としたもの
非選択項目は1行で表示される。
全文は項目を選択することで表示する
項目は子アイテムを持つことができる
QWERTYで快適に操作できる
それなりにタッチスクリーンでも使いやすければいいや。
必要条件を満たすコントロール
標準コントロールで使えそうなもの
LISTBOX
SysListview32
SysTreeview32
さてどれなら必要条件を満たすコントロールを作れるでしょうか
では検討してみましょう。
LISTBOXでやってみる
項目の高さをフレキシブルに変更できない。
変更可能なのは項目が追加されたタイミングのみ。
結論:つかいものにならん。
SysListview32でやってみる。
項目の高さをフレキシブルに変更できない。 全部同じ高さ or それぞれ違う高さを設定できる。
しかしどちらも1回しか変更できない。
ツリービュー風味のことはVisualStudioで実装されているがあれは気合いらしい。
結論:つかいものにならん。
SysTreeview32でやってみる。
項目の高さをフレキシブルに変更できない。
リストビューっぽくするにはほとんど全部オーナードローとかしないといけなさそう。
結論:つかいものにならん。
標準がこのざまじゃ… しかたないですね…
リストビューを作ってみよう!
リストビューを作るといってもそんなに難しいことはありません。
どこかに項目情報を持っておいて表示させるだけです。 std::vector<ITEMINFORM>
std::deque<ITEMINFORM>
etc…
あとはコントロールの制御を書いて、ほらできあがり!
リストビューができました
やっぱ全部自作のコントロールはかっこいいですね!
表示がかっこよくなったら次に問題になることがありますね。
挙動
操作した時のみため
etc…
いろいろありますが…
それは 速度 ですね
描画を高速にしましょう
Azureaが高速化のために行っているのは次のようなこと。
計算はできる限りキャッシュする
とくに文字を描画した時の幅とか高さとか
必要な領域以外は描画しない
スクロールする際にはビットマップを保持してスクロールするAPIを利用する
ScrollWindowEx
ScrollDC
速度は問題ない。次は?
パンスクロールを採用したい。
どうする?
気合で実装する
OSにおまかせする
OEM実装のものにおまかせする。
さてどうしよう。
OEM実装のものにおまかせ
OEM実装におまかせ。 つまり端末メーカの独自実装におまかせ。
一番楽。
何もしないで大丈夫。
HTCの場合だとTouchFloの世代からは大丈夫。
スクロールバーがあるとドライバレベルでフックしてスクロールしてくれる。
OEM実装におまかせ(2)
FTouchSLというアプリケーションがあります。
こいつもHTCのキネティックスクロールみたいなことができます。
インストールするだけ。
らくちん。
OSにおまかせ
必要条件
WM6.5 lator
Native Application
WM6.5 DTK
コントロールにスクロールバーがあること
TKSetWindowAutoGesture を呼ぶ
あとはコントロールをはじくとスクロールできます。
らくちんですね。
じゃぁ気合で実装するには?
マウスメッセージをハンドルする。
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_MOUSEMOVE
WM_MOUSEMOVEで前回との変位量をもとにコントロールをスクロールする。
文字に起こすとこれだけ。
意外とらくちん。
でも慣性が…
指を離した後もしばらくスクロールしたい。どうするか。
WM_MOUSEMOVEで移動量と時間から速度と加速度を求める。
求めた値を保存しておいてWM_LBUTTONUPが来た時にタイマーをセット。
あとはタイマーの実行ごとに保存した値をもとにスクロールさせるだけ。
ね?かんたんでしょ?
もっとListViewっぽくしたい。
WM6.5からシステムコントロールのデザインを変更できるようになりました。
リストビューのスタイル情報はレジストリにあります。
HKEY_CURRENT_USER¥Software¥Microsoft¥Today¥ListView
ここに画像のパスとかパディング情報とかがあるので気合でがんばりましょう。
UxThemeも実装されているようです?(未確認)
DEMO
ネイティブコードでいろいろ頑張ると... こういうこともできます。
MARKETPLACEで海外進出!! WORLDVIEWで海外へ!
WorldViewとはなんぞや
Marketplace for Windows Phoneでアプリ
ケーションを翻訳せずに別の国で出品するもの
一切翻訳できません!
もちろん、アプリケーションの紹介も翻訳できません!
でも英語ができればそれでいいんです
とりあえずWorldViewしてみよう
WorldViewする上での注意点
アプリケーションの紹介ページは翻訳されません!
つまり日本語版をWorldViewすると日本以外では化け化けで読めません!
en-USを追加の地域で申請してから、それをWorldViewするといいとおもいます
WorldViewするとこんなにいいことが!
日本とかいうしょーもない規模のマーケットから世界のすばらしいマーケットに進出できます!
日本の4倍~6倍のダウンロードは見込めるんじゃないでしょうか
英語もしくはそれ以外の言語でメールとか飛んできます!怖い!
自分が読み書きできない言語でもロケールファイルを書いてくれる人とかいることがあります!
なんてすばらしいんでしょう!
みなさんWORLDVIEWで世界へ!
ご清聴ありがとうございました