今日はCliphWeatherのパフォーマンス計測の為、
Androidアプリ用のプロファイラ「traceview」を試してみました。
↓こちらを参考に。
http://labs.techfirm.co.jp/android/iguchi/2262
ちなみに、ここに書いてなくて気をつけないと行けないのが、
て言うぱーみっしょんをマニフェストに書かないと、ランタイムエラーになるってとこ。
これで軽くはまった。。。
で、traceviewで分析したところ、
CliphWeatherは文字関係の処理にパワーを使っている模様。
この辺を中心に改善を検討すればいいのかな?
やっぱり、以前のデザインはちょっと読みにくかったのでPC版のデザインを変更しました。
スマホからは変わらないけど。
すっきりして読みやすくなったかな^^
さて、表題の件、
どうも色々やりすぎてCliphWeatherが重くなってきた気がするので、
(て言うか、そう言うご指摘をちょいちょい頂く様になったので)
パフォーマンス改善に取り組もうと思います。
と言う事で、色々ググって見ました。
Javaプログラミングのダイナミックス 第1回:クラスとクラスのロード処理
throw Life – Dalvik VMのGarbage Collection概要
ほぼandroidでアプリ開発デビューなクリフは、
メモリ管理とか、GCとか何となく分かってるつもりだったけど、
5%くらいしか理解してなかったのが良く分かった。
これで、良くここまでアプリ作ってきたなと逆に誉めてあげたい。(コラ)
上記の偉い方々のエントリを拝見すると、ポイントがいくつか見えてきました。
・android(dalvikVM)のGCは世代管理が無い。
⇒アプリ側でGC自体をなるべく発生させない配慮が必要。
・androidの場合はメモリが厳しめなので出来るだけオブジェクトを作らない方がいい。
⇒オブジェクト指向は捨てろ
・どうしても必要なオブジェクトはSoftReferenceに入れて再利用せよ。
(SoftReference:VMがOutOfMemoryになりそうになると優先的にGCされるので安全にキャッシュできる)
・できるだけインスタンスを作らず、スタティックメソッドを使え。
・getter、setterも使わず、直接フィールドを扱うのも速い。
・traceviewを使ってボトルネックを計測せよ。
・画像を使う場合は描画時リサイズは高コストなので事前リサイズすべし。
・オブジェクトのフィールドを繰り返し参照する場合はローカル変数でキャッシュする。
・定数はfinalで宣言する。
ここに書いた事、はっきり言って、
CliphWeatherはほとんど出来てません(涙)
だからこそ、ここから良くなる余地があるって事だけどね!
何れにしても、これらの対応をコツコツやって行く事で、
・メモリ使用量を節約
↓
・GCの発生を抑制
↓
・パフォーマンス改善(処理自体の高速化も含む)
↓
・バッテリー消費も軽減
となるはず!
ホントはデザインカスタマイズオプションの実装を進めるつもりだったけど、
予定変更。
まずは基礎を固める事にします。
くりふも32歳なんで、そろそろ組織的な仕事が出来ないと行けないぞって、
凄いプレッシャーをかけられてるんです。
あ、ちなみに結構酔ってるので、文体がゆるくてもゆるして下さい。
と言う事で、上に立つ人間になる為にどんな風になるべきか、なりたいか
今の考え、思いをポストしときます。
まずは自己分析から入ると、
くりふは典型的なB型人間なので、熱しやすく冷めやすい、
感情的かつ、飽きっぽい性格です。
でも、これだ!と決めた事には物凄い集中力が発揮できるので、
遊軍的な仕事の仕方がマッチするタイプだと思っています。
ま、良く言えばそう言う事ですが、
逆に言えば、ベースとなる領域を確立できず、フラフラしている根なし草とも言えます。
こんな人間が上に立つってのは迷惑な話です。
なので、もう少し落ち着いて、安定感を出さないと行けないってのも良く分かります。
だから、その努力は惜しまないつもりです。
でも、一方で、
誰にも負けない熱いハートを持っている(ってやたら臭いですが)自負もあって、
それに共感してくれるメンバーとぶつかり合いながら切磋琢磨したいと言う思いも強いです。
そういう意味では、
本当に今の会社の枠の中でこのまま働き続けるのがベストなのか、
悩んだりする事もあります。
社外には、俺なんかよりはるかに熱くて、優秀な人たちがごろごろいるわけです。
そういう人たちと接していると、自分のやっている事が温くて温くて。。。。
とは言え、今の会社のリソースはかなりのものなので、
それを上手く活用すれば、外部のどんな優秀な人よりも凄い事が出来る可能性もあるんです。
なので、取りあえずはここで全力で頑張ろうと思うんですが、
それでも、会社の枠にとらわれず、世の中の優秀な人たち(若い経営者の方々)と同じ目線で、
熱い思いを持って仕事に取り組む姿勢は忘れない様にしようと思うわけです。
その思いと、マネジメントがまだ上手くバランス出来ていないのが、
今のクリフの状態だと思います。
恐らく、内の会社の文化からすると、
俺の発想、思いは先鋭的すぎて、ややもすると”引いて”しまうものの様です。
確かに、「凄いですね」みたいなほめ言葉をかけられる事が結構ある気がしますが、
この「凄いですね」って言う言葉は、割と遠い所にいる人に対して使う言葉に思えます。
今日、上司からもそんな感じのアドバイスをもらったんですけど、
確かにそうだな~と改めて思いました。
なので、今後は自分の思いは内に秘めて、放出せず、
代わりに後輩の思いを引き出してまとめて行く様な事を心掛けて行きたいと思います。
余談ですが、
酔っ払うと結構ブログ書きたくなる傾向がありますね~
毎日ホロ酔いになる様にしたら更新頻度あげられるのかな~^^
今日は久しぶりに、仕事的なお話を。
クリフのお仕事は、
多数の会員さんを保有するBtoCサービス企業の、
ネットビジネス推進担当なわけですが、
昨今のスマートフォンの”急激な”普及には結構あたふたしてます。
個人的にはandroidアプリ作ってたりしている事もあり、
スマートフォン以外の携帯は使いたくないと思うくらい、
スマートフォンを支持しているんですが、
正直、世の中の”一般の方々”がこうもスマートフォンに飛びついてくるとは、
予想だにしていませんでした。。。。
だって、
今年の春ごろはandroidと言う言葉すらだーれも知りませんでしたよ。
ま、未だにiphone信者は多いですが。
余談ですけど、
主観だけでandroidが”iphone”より使いにくいって言う人良くいますけど、
android愛している身としては結構腹立ちますよね。
iphoneと同じくらい使いこんでからものを言えと。
もちろんiphoneは素晴らしい端末だと思いますけど、
それはPCで言う所のMacの素晴らしさと共通するものがあると思うんですよね。
結局、iphoneを提供しているのはappleなんだよな。
その点、androidは悪く言えば烏合の衆。
良く言えば、全世界のあらゆるレイヤーの企業、クリエータを巻き込んで発展する、
オープン、ソーシャルな時代の申し子。
ま、明らかにandroidびいきな私が言っても説得力ありませんけど、
やっぱり、クリフはオープンなスタンスのandroidが好きです。
さて、壮絶に話がそれましたが、
本題に戻りましょう。
要するに、この急激なスマートフォン普及の波に対して、
企業のWEBサイトはどの様に対応して行くべきなのか?
その点についてちょっと意見を述べたいと思います。
スマートフォン対応のアプローチは大きく分けて以下の2つがあります。
- WEBサイトのスマートフォン向け最適化
- スマートフォン用アプリの提供
このどちらから着手すべきかと言う事は、
WEBサイトによって事情が異なると思います。
クリフの会社で言うと、
既にPC、携帯向けにかなりの人数の会員に対してサービスを提供しており、
これらの何割かがスマートフォンユーザになる事が予想されます。
そうすると、こちらから何もアプローチをしなくても、
既存の会員さんは当然の様にスマートフォンで内のサイトにアクセスして来ます。
なので、クリフの会社的にはこれらの会員さんにスマートフォンでも、
今まで同等のサービスを提供する事が喫緊の最重要課題となります。
つまり、サイトのスマートフォン向け最適化を優先して対応します。
一方、
アプリの提供も大きなメリットのある取り組みです。
スマートフォンの場合、WEBサイトアクセスの手順がPCとも携帯とも異なります。
PCの場合大抵の人はまずブラウザを起動し、お気に入りか、検索からお目当てのサイトへアクセスしますし、
携帯の場合も、まずimodeなどの専用メニューを起動し、お気に入りやメニューリスト、検索からサイトへアクセスしますよね?
スマートフォンの場合、もちろんPC同様の手順もとれますが、
それよりもデスクトップ上に配置した、専用アプリやブックマークからアクセスする事が多いんです。
その理由はいくつかあります。
1.入力が面倒くさい
ま、人によると思いますが、スマートフォンの文字入力には慣れが必要で、
できることなら文字を打つ事無く様を済ませたいと言うニーズがあります。
なので、PCの様に検索するのはちょっと面倒だったりするわけです。
2.通信が遅い
専用アプリを使う理由の一つが通信環境の不安定さです。
通常のブラウザでWEBサイトにアクセスして利用する場合、
通信環境によってはDL時間にストレスを感じる事も多いです。
これを解消する為に良く使われるのが、ユーザの操作とは非同期にデータをDLして置き、
ユーザ操作に対してきびきび反応するように工夫したアプリです。
こう言った背景があるので、
スマートフォン向けのWEBサービス展開においては、
アプリの提供が有力な誘導チャネルとなりうるわけです。
なので、
既存サイトの事等あまり気にせず、
スマートフォン向けに特化したサービスを新たに始める様な場合は、
アプリの提供から始めても良いのではないかと思います。
おっと、
これからWEBサイトのスマホ対応についての考察を書こうと思ったんですが、
もうこんな時間ではありませんか・・・(AM1:00)
明日も娘の起床時間(AM7:30・・・)に起きねばならないので、
今日はここまで。
続きは後日書きます。
ではまた^^/
CliphWeaterDesignの文字色編集機能実装を進めてるんですが、
UIがびしっと決まらないんですよねえ~
設定する文字の種類(標準文字、曜日、気温など)選択に
ホントはタブを使いたいんだけど、
タブはページ最上部にしか使えないらしいので、
仕方なくトグルボタンでやって見てるんだけど、
どーもピンとこない。。。
ま、とりあえず機能を実装してからデザインを考えますかね。
ちなみに、
機能Galaxy sをゲットしたので、
次のバージョンからht-03aとGalaxy sの2端末で検証してきます。
しっかし、Galaxy sはスペック高い。
今の所、ストレスらしいストレスを感じて無いもの。
高い金出して、予約待ちまでした甲斐はあったと思う。
先日のエントリーで、「ツイートアカデミー」におけるソーシャルメディアマーケティングに関する議論の感想を述べましたが、
その後トライバルメディア 池田氏と面談する機会があったのでいろいろお話を伺う事が出来ました。
(前回のエントリーはこちら)
それを踏まえた、現在の私の考えをまとめておきます。
まず、基本スタンスとしては私は企業の一従業員として、企業の業績に貢献する事を第一義と考えます。
その為にやるべき事を短期的な事と、中長期的な事の両面で取り組んで行きたいと考えます。
その中でソーシャルメディアがどう絡んでくるかをここで整理したいと思います。
まず、池田氏をはじめ様々な方のお話を総合してソーシャルメディアを特徴を定義します。
・コミュニケーションツールであり、企業-ファンの関係醸成に活用できる。
・広告などに比べリーチは圧倒的に小さく、ファーストタッチチャネルとしては適していない。
・顧客同士が今までよりも大きな規模でつながりやすくなるツールである。
・優れたネタであれば、口コミ伝搬ルートとして機能しうる。
・顧客同士の情報共有を加速し、企業に対する顧客の発言力を向上させる。
・コミュニケーション前提の為、運用に「体力」がかかる。
・顧客を囲わずに、顧客の声を収集するチャネルとして活用できる。
さて、これを踏まえてまずは短期的なマーケティング施策を考えます。
短期的には目標とする売上を達成するために、集客数、CV数を追求します。
その為には顧客との関係構築等ではなく、今買ってもらう為の、顕在顧客へのプロモーションが必要です。
その場合、クリフの会社ではキャンペーンを企画し、会員向けEメールおよび、サイト内バナー等での告知を行います。
また、その際にユーザをセグメントし、セグメントごとに有効な訴求内容でメールを送るなどターゲットマーケティングを実践します。
ここで、ソーシャルメディアが使えるかと言うと、上記のとおり、安定した集客力を発揮できるチャネルでは無い為、向いていません。
もちろん、キャンペーンの内容がよっぽど斬新で、それ自体にバズアビリティーがあるようであれば活用もありですが、そんなネタは早々作れませんし、そこにお金をかけるのもある意味ギャンブルです。
と言う事でメインの訴求チャネルとしてソーシャルメディアに期待するのはやめておきます。
ただし、ほとんど費用がかからないので、ファンの方がそのキャンペーンを訴求してくれるかもしれない程度の目的で、キャンペーンページ、HTMLメール等に「つぶやく」や「いいね!」ボタンを設置します。
もしかすると、このボタン設置によって想像以上の集客が出来るかもしれませんが、
それは現時点で計画には含まないものとします。
さて、一方で中長期的なマーケティング課題としては、潜在顧客の育成、既存顧客ロイヤリティー向上等がありますが、これらは短期的な広告的なプロモーションでは実現が難しいものだと思われます。
ソーシャルメディアの普及で顧客同士の横のパイプが太くなる今後は、企業に対しても対話を求める風潮が強まり、今までのようなマーケティングでロイヤリティを維持するのは難しくなるでしょう。
従って、これに対応する為に、ソーシャルメディアを活用して顧客とのコミュニケーションを継続して行く事になると思います。
コミュニケーションを通じて当社に好意的な「ファン」とのチャネルを作り、口コミの起点、サービス改善の意見収集チャネル、自律的カスタマーサポートの場などとして活用を検討します。
また、Twitterを中心とするオープンソーシャルメディアから当社に関連するキーワードを含む情報を継続して収集し、トレンドや、サイレントマジョリティーの声を把握する取り組みを行います。
何だか、まとまりが無くなってきてしまいましたが、
要するに、
- 短期的なプロモーションにはやはり既存マーケティング手法を徹底する。
その上で、ローコストに出来るソーシャルメディア活用施策は試して見る。 - 中長期的な顧客との関係育成についてはソーシャルメディアを積極的に活用していく。
と言う事だと思います。
皆さんはどの様にお考えでしょうか?
サイバーエージェントさんのビルで開催された、
「ツイートアカデミー vol.2 広告論」というセミナーに参加してきました。
3,000円の有料セミナーだったのですが、120席満席の大盛況。
それもそのはず、
講師が凄い顔ぶれ!
ループス 斉藤氏
アジャイルメディア 徳力氏
トライバルメディア 池田氏
ジャーナリスト 津田氏
と、国内のソーシャルメディア論者として、
5本の指に入る人たちが大集結したんです。
この他にも、
企業アカウントの成功事例の中の人たちが数名講演されました。
全てをまとめる余裕は無いので、
興味のある方は、私のツイートを追って見ると割と雰囲気つかめると思います。
@cliph0304
で、上記講師陣のパネルディスカッションですが、
テーマはマーケティング3.0について。
・マーケティング3.0な世界は本当に来るのか?
・マーケティング3.0は奇麗事にすぎないか?
と言った事について、
各者色んな立ち位置から意見を戦わせていて非常に興味深かったです。
目立ったのは、
ループス斉藤氏のマーケティング3.0に向かっていると言う事を強調するスタンスと、
実際のマーケティングは1.05くらいで止まっていて、企業の販促担当が、
マーケティング3.0なんて気にするのはあまりに時期尚早と言うスタンスのトライバルメディア池田氏の議論。
両者の言っている事は恐らく両方正しいんですが、
新しい世界、マーケティングを探求する斉藤氏のスタンスと、
企業のマーケティング活動の実態に即した発言をする池田氏と言った違いがありました。
確かに、斉藤氏のプレゼンはとても魅力的でその新しい世界の立ち上げに参画したいと思わせる、
「夢」を含んだ内容なのですが、反面、私も含めその夢に踊らされがちな怖さがあります。
一方で、トライバルメディアの池田氏は恐らく様々なバズマーケティングやらに取り組んできて失敗してきた経験からか、
徹底的に、ソーシャルメディアの幻想を打破し、企業の本来の目的を明確にして、その為に必要であればソーシャルメディアを活用する。
と言ったスタンスなので、地に足が付いていると言うか、企業担当としては信頼しやすい印象があります。
ただ、現実的であると言う事は同時に、革新性が乏しいと言う事でもあり、
一緒に何かを作り上げて行こう!と言った思いは斉藤氏の方により強く感じます。
まあ、と言った形で、
図らずも、ほぼ対極のソーシャルメディア論を生で聴く事が出来て本当に勉強になりました。
池田氏の言う、まず目的ありき、ソーシャルメディアは手段である。と言うのは真理だと思いますが、
一方で、実践して見ないと分からない事ってのもたくさんあると思います。
いきなり収益をあげる取り組みが出来ればそれに越したことはありませんが、
そうそう上手くは行きません。それは当り前の事だと思います。
正解は無いんですから。
でも、試行錯誤を繰り返しているうちに、
どう行った施策がヒットするのか、顧客の支持を得られるのか、
顧客の信頼をえる、ファンを獲得すると何が起こるのかと言った事が肌感覚として分かってくるはずです。
それを今、国内のおおくの企業が実践し、ノウハウを蓄積しつつあるフェーズなんだと思います。
だから、我々の現在の取り組みは短期的には間違っていない。
とはいえ、
2,3年タームで見た事業展開の中でソーシャルメディアがどの様に絡んでくるかと言った、
大局的な視野に立った検討も必要なのだと改めて痛感しました。
明日は打ち合わせだらけであんまり時間が取れないんだけど、
また、夜にでも真剣に考える時間を取って見ようかな。
何にしても、
今日のセミナーは有意義だった。次回も開催されるらしいのでぜひ参加したいとおもいます。
よし。
マルチスクリーンサポートの勉強がある程度出来たし、
そろそろ、デザインエクステンションの開発に取り掛かろう。
一応、重要な機能はテスト済みだから、
後は一つ一つ作り上げていくだけなんだけど、
いかんせん、最近忙しいのと、他にもやりたい事があるのとで、
中々集中出来ないんだよね^^;
でもそんな事も言ってられないので、
年内リリースを目指して頑張ろう~!
スクリーン互換性の例
このセクションでは、Androidプラットフォームが基本スクリーン構成(HVGA(320×480)解像度で3.2インチスクリーン)向けに作られたアプリケーションを、互換機能がサポートする全てのサイズ、ピクセル密度で表示する例を解説します。この例は、描画されるスクリーンに対してビルトインのサポートを提供せず、代わりに、プラットフォームに完全に依存するアプリケーションを、プラットフォームがどの様に表示するかを示します。
プラットフォームのスクリーン互換機能は、ユーザに対して、基本スクリーンサイズ・ピクセル密度と同等の物理的表示領域を確保するとともに、その上に仮想的な基本スクリーン環境を提供する様にデザインされています。
複数スクリーンをサポートするように改修されていないレガシーアプリケーションがこの様なアプリケーションの典型です。殆どのケースで、レガシーアプリケーションにも複数スクリーンサポートを追加したアップデートを公開したいでしょう。しかし、それをしない場合、プラットフォームは以下の様に出来る限りあなたのアプリケーションを描画しようとします。
内部的に、プラットフォームが提供する、カレントデバイススクリーンに基づく互換機能があります。
- もし、デバイスのスクリーン密度がmediumでない場合、アプリケーションのレイアウトおよび画像はmedium向けとみなされ、フレームワークがレイアウトと画像(もし、ターゲット密度の画像がない場合)をターゲット密度にフィットさせます。ターゲット密度がhigh(160⇒240 仮想的dpi)の場合1.5倍、low(160→120 仮想的dpi)の場合0.75倍となります。
- デバイススクリーンサイズがsmallの場合、android1.5をそれらのスクリーンで上手く稼働させる為の選択肢は多くありません。従って、AndroidMarketはこれらのスクリーンをサポートしないアプリケーションをフィルタします。
- もし、デバイススクリーンサイズがlargeの場合、アプリケーションのスクリーンをnormalサイズに限定し、アプリケーションの周りは黒く描画にします。例えば、high密度をサポートするが、largeサイズスクリーンをサポートしないアプリケーションの場合、480×720のエリアだけを利用し、残り部分は黒く塗られます。
small、low密度スクリーンにおける、スクリーン互換性の制限について
これらのデバイスはサイズ・解像度ともに小さいので、互換モードで実行時の制限事項が知られています。
QVGA
QVGA(240×320)スクリーンはエリアが狭く、基本スクリーン(240×360でlow密度)よりも密度が低いので、これらのスクリーン上に適切に全てのコンテンツを表示出来ないアプリがあります。結果として、QVGAデバイスに対しては、Android Marketがsmallスクリーンをサポートすると宣言していないアプリケーションをすべてフィルタアウトします。
1pixel画像について
ある画像が高さ、もしくは幅が1pixelの場合、丸め問題により、スクリーンに表示されない事があります。これは十分なサイズがない為、避けられません。
例えば、以下のスクリーンで、メニューの仕切りが、画像の横幅が0に変換されているので、表示されていません。(メニューはフレームワーク内で扱われている為、この個別の問題は解決可能ですが、十分なピクセルがないと言う事ですので、抜本的な解決策はありません。)
androidドキュメント和約「様々なスクリーンのサポートについて」その1
androidドキュメント和約「様々なスクリーンのサポートについて」その2
androidドキュメント和約「様々なスクリーンのサポートについて」その3
androidドキュメント和約「様々なスクリーンのサポートについて」その4
androidドキュメント和約「様々なスクリーンのサポートについて」その5
androidドキュメント和約「様々なスクリーンのサポートについて」その6
androidドキュメント和約「様々なスクリーンのサポートについて」その7
androidドキュメント和約「様々なスクリーンのサポートについて」その8
昨日、あまちゃんさんが主宰した「フェイスブック同時オン会」に参加して見ました。
最終的に700人以上が同会のグループに集まり、掲示板上で活発なコミュニケーションが行われていました。
率直な感想としてとても楽しかったです!
物凄い速さで投稿とコメントが流れていて数百人が今この場にいると言う、
臨場感がひしひしと感じられました。
感覚としてはチャットや2ch、ニコ動と言った日本的な匿名コミュニティーに近いものを感じました。
facebookに対する個人的な整理として、
ビジネス向けの人脈構築、情報共有に最適な割と落ち着いたツールと言うイメージを持っていたのですが、
昨夜の数時間でこの考え方がfacebookの一面しかとらえていないものである事を痛感しました。
facebookはストック型のコミュニティーで、リアルタイム性ではTwitterの方が優れていると言った解説を良く目にしますが、
多分、そんな事無いです。
facebookもリアルタイムコミュニケーションに適したツールです。
twitterとの違いは、実名主義である事と、投稿に対するコメントが分かりやすいと事によって、
より親密なコミュニケーションが取れると言う事。
(逆に言えば、twitterの方がより気軽に参加できる)
ちなみに、今回のオン会はfacebookのグループと言う機能を使って行われました。
これは、いくら友達とは言え、ともだち全員が同じ分野に興味を持っている訳ではないので、
テーマごとにグループを設定し、コアな話題はそのグループ内だけでしましょうと言った使い方が出来るものです。
これを上手く活用した事も今回のオン会の面白い所だったように思います。
たぶん、これをやらないと、
参加していない人たちが迷惑したと思います(笑)
何れにしても、
企業がFacebookのファンページを活用する上で、
今回の様な「オン会」を上手く活用する事も視野に入れるべきなのは間違いないでしょう。
また、今回のオン会はかなりラフな雑談会だったので、
もっとビジネスライクな議論をするオン会に参加してみたいです。
looopsさんあたり企画してくれないかなあ~