Smartphone workshop kansai #9

Post on 26-May-2015

745 views 3 download

Transcript of Smartphone workshop kansai #9

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で世界へ!

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