ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2016年2月4日木曜日

CalcNote Part05

実はCalcNoteのv1.0.11から無料版にのみGoogle Analyticsを導入してます。
CalcNoteはただの電卓で画面遷移などない単純なアプリなので、あまり分析するようなことも無いのですが、実際導入してみるとどの国でアクティブに使われているかや、端末の画面のサイズなど、GooglePlayのコンソールからでは分からない情報が結構取れて面白いです。


AccessMenuBarApps 3

アクティブユーザーが多いのは多い順に日本、インド、アメリカ、中国です。やはりインドは数学大国なので電卓の需要が高いのかもしれません。ちなみに中国にはGooglePlayが無いはずでダウンロードできないはずなのに何故だと思って調べたらcoolapkというサイトでCalcNoteが配布されていましたw
レビューの評価は3.9と辛口ですがダウンロード数はGooglePlay本家と同じ1000+です。中国市場の強大さは恐るべしですね。。。
このサイトの掲載基準はわかりませんが、ダウンロードできるapkはきちんと広告の表示されるapkで会社の中国の同僚に聞いたかぎりでは中国でも普通にAdmobの広告は表示されるようです。Pro版の売上には貢献しませんが隠れユーザー数が増えるのは嬉しい限りです。
しかもこのサイト、アプリをアップデートすると翌日ぐらいには、きちんとバージョンアップされます。しかもアプリをフォローできるらしく、おそらく更新があったことがフォロワーに通知される仕組みなようです。さすがは中国、GooglePlayが無くてもうまく工夫してやっているようです。

2016年2月3日水曜日

CalcNote Part04

久しぶりのブログ更新になってしまいましたが、CalcNoteのダウンロード数がやっと1000を超えました。リリースから約3ヶ月もかかってしまいました。やはりアプリの世界は厳しいですですね。有料で出した広告無しバージョンのCalcNote Proですが、こちらは39件の売上です。無料バージョンとの比率で考えれば悪くない数字かもしれませんが、やはりもう少し売りたいところです。
当初、Proバージョンという形ではなくアプリ内課金で広告を削除できるようにしようと考えていたのですが、いろいろメリット、デメリットを比較して最終的には別アプリとしてリリースすることを選択しました。一番大きなメリットはマーケティングの幅が広がるという点です。割引セールなどで注目を集めたりできますし、Proバージョンとして別にアンドロイダーさんなどに掲載してもらうことができました。


AccessMenuBarApps

AccessMenuBarApps 1

また、アプリのアイコンを一新して、クラウドワークスでプロの方に作成してもらったアイコンを採用しました。


Icon color blue 96

やはりプロが作ると一味も二味も違いますね。10,800円でこのクオリティーのアイコンを作ってもらえるなんて素晴らしいです。
今回、初めてクラウドワークスを使ったのですが、気づいた点をまとめると。

  1. 10,000円の依頼でもかなりの数の提案があります。今回は5日(通常2週間)ほど早く応募を締め切ったのですが、16名のデザイナーさんから計35件の提案をいただくことができました。
  2. 文字の説明では希望するイメージを伝えられないので、参考にするアイコンなどを伝えたほうが良いです。私の場合、良いと思う競合する電卓アプリのアイコンのリンクを提示したことで、よりよい提案を貰えた気がします。
  3. おそらくコンペの公開設定は公開を選んだほうが良いです。私は非公開にしてしまったため、他のデザーナーさんが提案してくれた内容を他の人が見れない状況でした。このため気に入った提案に星をつけても、他のデザイナーさんには見えないので、私が望んでるデザインのイメージを伝えるチャンスを失ったことになります。設定は後から変えられないので注意が必要です。


今回はたまたま私の希望しているイメージに合致したアイコンを作成してもらうことができましたが、もしそのデザイナーさんが応募してくれなかったら、他の応募の中からアイコンを選ぶのは難しかったように思えます。やはり自分の中で好みがあるので、自分のイメージに完璧に合致したアイコンというのは、なかなか難しいのかもしれません。

2015年12月13日日曜日

CalcNote Part03

昨日、CalcNoteのv1.0.7をリリースしました。細かなデザインの修正とバグフィックス、あと結果をタップすると16進数、2進数、税込、税別を表示できるようになりました。
肝心のダウンロード数ですが、相変わらず伸び悩んでいます。。。まだ評価数は少ないですが、高評価を維持できているのがせめてもの救いです。


AccessMenuBarApps 1

AccessMenuBarApps 3

実はリリースから一ヶ月をすぎる前あたりにAdmobに広告を出してみました。予算は1キャンペーンにつき1000円/日でクリック単価一律2円、「日本」、「アメリカ・インド」、「その他の英語を使ってる国」の3パターンです。アメリカとインドを別にしたのは、たまたまダウロードしてくれているユーザがいたからです。


AccessMenuBarApps

結果はこんな感じで、まずクリック単価2円だと日本では広告は表示されません。。。インド、アメリカは最初の数日は表示されたものの、それ以降は全く表示されませんでした。他のブログでも最初だけブーストがかかって広告が表示されやすいという記事がありましが、噂は本当のようです。またその他の英語を使ってる国では、楽勝で1日の予算を使い切ります。
今回の実験ではコンバージョン単価68円(1ダウンロードしてもらうのに68円)ということになりましたが、これが良い数字なのか判断が難しいです。少なくとも小遣い制のサラリーマンの私には広告にかけられる予算は限られてるので最低でも50円以下にしたいところです。
ということで一旦広告を出すのは止めて、コンバージョン率を上げるべくGooglePlayの見た目や説明文などを改善することにしました。またクラウドワークスでアイコンのコンペを開催して、プロの方にアイコンを作ってもらうことにしました。既にかなり良さげなアイコンも提案していただいてるので、これだけでもかなり見た目が良くなると思います。アプリにも改善を加えて年明けあたりに再度Admobにチャレンジしたいと思ってます。
あと、Admobに広告を出して気づいた点をまとめると

  1. Admobのコンソールに結果が反映されるのは1日1回
  2. クリック数やコンバージョン数は別々に反映される(最初クリック数1000でコンバージョン0件で焦りましたが、あとからコンバージョン数が計上されました)
  3. 予算はピッタリにはならないで、多少オーバーする。
  4. 1日の予算が1000円以上だとGoogleの営業から電話がかかってくる。(希望すれば無料でコンサルしてくれるそうです)
  5. 日本はクリック単価高め(いくらが妥当なのか不明だが、Googleの営業さん曰く最初はクリック単価の上限をかなり高めに設定して様子見るのが良いそうです)


ダウンロード数を増やす道のりはなかなか険しいですが、少しづつ実験しながらやっていこうと思います。年が明けたらComicCafeもまた実装する予定なのでご安心を。

2015年11月23日月曜日

CalcNote Part01

2015/11/07にCalcNoteのv1.0.0をリリースしてから2週間ちょっと経ちましたが、ダウンロード数が全く伸びませんorz


AccessMenuBarApps

AccessMenuBarApps 1

11/21現在、ダウンロード数はたったの35で、そのうち15は既にアンインストールしています。ComicCafeとは違って誰もが使うツール系のアプリなので、もっと楽観的に考えていたのですがやはりアプリの世界は厳しいです。この2週間で試した宣伝方法は放課後アプリ部というサイトに登録したぐらいです。アンドロイダーにも公認アプリ申請済みなので、そのうち掲載されると思いますが、どのくらい効果があるかは未知数です。
とりあえず、地道にバージョンアップして改善していき、ダウンロード数が伸びるのを待つしかないですね。
ちなみにComicCafeの 現在のインストール数/総インストール数 はたったの16%です。ほとんどの人がインストールしてみるもののアンインストールしているという悲しい現実です。まぁComicCafeはサーバーの設定など導入に壁があるので仕方が無いと諦めていますが、CalcNoteは50%以上はキープしたいところです。

2015年11月9日月曜日

CalcNoteをリリースしました

本日、CalcNoteをリリースしました。
ComicCafeと違って、事前準備もいらない簡単なアプリなので、是非ともダウンロードしていただければと思います。
gitのログを見ると作り始めてちょうど3週間でのリリースになりました。これからComicCafeと平行して開発を続けていきたいと思っています。とりあえずは機能よりも見た目を改善しないとダウンロード数が伸びなそうですねorz 頑張ります!!


Get it on Google Play

2015年11月6日金曜日

CalcNote

突然ですが、ひょんなことから現在、Android向けに電卓アプリを作ってます。
ComicCafe以外でGooglePlayにリリースしているアプリは無いので、このアプリが記念すべき2作目ということになります。
ComicCafeは大量の自炊ファイルを扱うことから、99.999%の一般の方には不要なアプリで、正直なかなかダウンロード数が伸びません。その半面、使ってくれる方はリテラシーの高い方が多いので、理不尽なレーティングも少なく4.38というとても良い評価をキープできています。(評価数自体が少ないというのもありますが。。。)
今回のCalcNoteは電卓アプリということで老若男女全てのユーザーが使えるアプリです。リリース後にどのような評価を貰えるか非常に楽しみであり怖いです。
残り3件のバグを修正したらリリースする予定なので、ComicCafeをお使いの方は是非、ダウンロードしていただけると嬉しいです。ちなみにスクリーンショットはこんな感じになります。


Screenshot 1

計算式を入力すると右ペインに答えがリアルタイムで表示されて、式はテキストエディタみたいに修正可能です。数値の入力パッドをスワイプすると関数電卓用の入力パッドに切り替わります。昔、Windows時代に便利に使わせてもらっていたiMemoってソフトに似た感じです。もちろん無料ですが今回は広告を入れてみました。
移動時間や就寝前などの空き時間を使って2週間ぐらいで実装したのですが、作っててちょっとハマったことをメモとして書きたいと思います。


1. AndroidStudioの謎のエラー表示
LayoutファイルでLinearLayoutにxmlで作成したdrawableをandroid:backgroundに設定したいたのですが、AndroidStudioで見るとエラー表示になります。

AccessMenuBarApps1

普通に実行できて問題は発生しないので放置していたのですが、原因は単にAndroidStudioがリソースファイルを表示できないってだけでした。通常、画像ファイルなどを指定すると、AndroidStudioはその画像を表示してくれます。

AccessMenuBarApps2

しかしxmlで記述したdrawableファイルは表示できないようで、あの赤いエラーマークみたいなのを代わりに表示しているとのこと。表示できないなら素直に何も表示しないで欲しかった。。。


2. Buttonを継承するとマテリアルデザインが適用されない
電卓のボタンでロンタップするとPopupWindowで関連する機能のボタンを表示しているのですが、そのロングタップできることを伝えるために、ボタンに三点リーダを表示しています。


Screenshot 4

この三点リーダを描画するためにButtonクラスを継承してonDrawで書こうと思ったのですが、Buttonを継承しただけでButtonのデザインがマテリアルデザインではなく普通のボタンになってしまいます。調査するとSuppot Libraryは内部で独自にLayoutInflaterを使っていて、もはやButtonでは無いViewに差し替えてButtonらしきものを表示しているらしいです。結局FrameLayoutでButtonとTextViewを重ねて対応しましたが、調査にかなり時間を取られましたorz


3. Android5、Android6だとFrameLayoutで重ねたViewが表示されない
これも先ほどの話と関連してるのですが、せっかくFrameLayoutで解決した三点リーダがAndroid5以上だと表示されなくなりました。Android4の端末しか持ってないので、エミュレータで確認していたバグなので当初はエミュレータのバグだと決めつけてました。同僚に実機を借りて試したところ見事に問題が再現してエミュレータの凄さを実感しました。原因はAndroid5から仕様が変わったらしく、前面に表示したいViewにandroid:translationZ=100dpと指定して解決しました。


ComicCafeのv0.6.37はテスト中なので、CalcNoteのほうが先にリリースすると思います。是非とも、よろしくお願いします。

2015年9月25日金曜日

Android Serverの実装 Part01

以前、ルーターを超えてWOLを実現すべく購入したAndoer MK808B プラス HD ですが、現在、Androidアプリを開発中でWOLのマジックパケットをブロードキャストIPアドレス宛に送る機能とSSHで接続して任意のコマンドを送る機能を実装しました。これを利用してNASの起動と停止を外から制御できるようになりました。
そして今日、注文していたIrdroid USB IR Transceiverが届きました。これを使って外らかエアコンを制御する機能を実装しようと思ってます。勢いで注文したものの技術的な調査は全くやってないので、これから少しづつ調べながら実装できたらと思います。日本語の情報は皆無なので、実装方法については詳しく書きたいと思ってます。


おそらくロシアあたりから届いたようです。ちなみに日本円で送料込みで4,726円でした。

IMG 0559

マニュアルはロシア語じゃなくて英語でした。

IMG 0560

基盤が見えてて作りは安っぽいです。

IMG 0561

IMG 0562

Andoer MK808B プラス HDに接続したところ。ただこれだと接続部分が電源と干渉してしまいます。

IMG 0563

なので、使うときはこんな感じになると思います。ちょっとカッコ悪いですね。。。

IMG 0564

2015年9月12日土曜日

NASの自作 Part35

前回発覚した外からWOL(Wake-on-LAN)でNASサーバーを起動できない問題ですが、無事に解決することができました。
今回の問題をあらためて整理すると
  1. WOLでPCを起動するにはブロードキャストアドレス宛にMagicPacketを送る必要がる。PCが起動してないということは当然IPも割り振られていない状態なので特定のIPを指定してMagicPacketは送ることはできない。よってブロードキャストアドレス宛(LAN内の全てのデバイス)にMagicPacketを送らないとダメ。
  2. 同じLANに参加しているMac book airからWOLでNASを起動することはできる。Mac book airはブロードキャストアドレス宛にMagicPacket送っているので何の問題も無い
  3. 携帯の4G回線等、LANの外からWOLを利用する場合、ルーターを経由する必要がある。ルーターでポートフォワーディングの設定を行い、特定のポートにアクセスがあったらIP XXXに転送するみたいな設定をするのだが、ルーター(AirMac)ではその転送する宛先をブロードキャストアドレス宛に設定できない。基本的にブロードキャストはネットワークに負荷がかかる処理なので、セキュリティ的にこの振る舞いは妥当と言うこともできる。

そして、この問題を解決する方法は2つです。
  1. ブロードキャストアドレス宛へのポートフォワーディングをサポートしているルーターを購入する。
  2. LAN内に常時起動させておくマシンを用意して、そのマシンからブロードキャストアドレス宛にMagicPacketを送ってもらう。
1の方法はそこそこハイスペックな安定したルーターが必要で、予算的に厳しいと判断し今回は2の方法を選択しました。
次に問題になるのは常時起動しておくマシンの選定です。今回の用途では単にパケットの送受信ができれば良いのでハイスペックである必要は全くありません。求められるのは低価格、コンパクト、低消費電力、プログラミングの容易性、の4つぐらいのものです。当初、最近流行ってるRaspberry Piにしようと思ったのですが、調べてみると本体以外にケースやらSDカードやら初期導入コストが結構かかるようで合計で1万円弱ってところでしょうか。技術的には興味深いのですがちょっと高い気がします。結局いろいろ悩んだはてに選択したのはスティックタイプのAndroid端末です。Andoer MK808B プラス HD お値段4840円ぽっきりです。Androidなので開発するのも簡単です。


IMG 0547

IMG 0548

数あるスティックタイプのAndroid端末からこれを選んだ理由は、HDMI端子が出っ張ってないからです。今回の用途では電源だけ常に供給してディスプレイには繋がないのでHDMI端子の出っ張りは邪魔なだけです。
この端末を使ってみて気づいたことは
  1. GooglePlayが標準で使える
  2. USBマウスとUSBキーボードで操作可能なのでスマホ向けのアプリも普通に使用可能
  3. PCと接続してもデバッグすることはできない。Mac book airと接続しても電源すら入らなかった。。。
  4. 野良apkはメール経由でインストール可能
  5. 本体は結構発熱する。
発熱はちょっと気になりますが、今回の用途にはうってつけの端末ですねこれは。サーバーアプリはRestletを使って6時間ぐらいでベータ版が完成しました。
HTTPサーバーとして動作してるので、サーバーに対して以下の様なリクエストを投げると、MagicPacketを指定したブロードキャストアドレス宛に投げてくれます。このHTTPリクエストを投げられるのであれば、クライアントはWindows、Android、iOSでもなんでもOKです。
# 宛先はAirMacのグローバルアドレス。9998ポートはポートフォワーディングの設定でAndoer MK808Bにマッピング
curl -v -X POST http://xxx.xxx.xxx.xxx:9998/wol \
-d '{
        "target_ip":"10.0.1.255",          # ブロードキャストアドレス
        "target_port_no":"7",              # WOLはUDP 7か9らしいです。
        "mac_address":"XX:XX:XX:XX:XX:XX"  # NASのマックアドレス
    }'
上記リクエストを投げるクライアント用のAndroidアプリを開発したら、サーバーアプリとセットでGooglePlayに公開しようかと考えています。あと時間があったらこれを買って外出先から家のエアコンを操作できるようにしたいです。S.M.A.R.TでHDDの温度の異常を検知したら、外からエアコンの起動するみたいな