スマホアプリ 開発ブログ

スマホアプリつながらないSNS ilka などのアプリ開発話や使い方等のブログです

アプリの海外での状況雑感

POIは自分で作ったアプリとしては2個目の海外全部リリースをしているんですが、

そちらでは一切レビュー依頼とかしていないため、

まだ全然ダウンロードされていません。

 

ただなぜかわかりませんが、リリース直後からオマーンでDLされています。

中東のオマーンアラビア語なのかと思っていましたが、

もともとイギリス領だったので英語も結構使われるらしいです。

英語のみで、POIはさすがにアラビア語にはしていませんので、

その一部の英語ユーザの方が落としてくれているんでしょうか。

ちなみにアラビア語をユーザネームで入力された場合どうなるのかはわかりません。

たぶん大丈夫だと思うけど。。

 

それにしてもオマーンってiphoneとかちゃんと普及しているんですね。

海外に住んでいたことはありますが、

中東やアフリカは行ったことがないので、

あちらの人たちがどれだけスマホを使っているのかとは想像も付きません。

案外普及はばっちりしてあって、人口も多いのであれば

アプリの市場としては狙い目なのかもしれません。

 

 

 

 

 

POIが使用しているサーバについて

POIはお絵描きメールという性質上画像がバンバン飛び交うサーバです。

そのためある程度きつめの負荷がかかることが予想されるので

(画像のやりとりの部分だけ)

大きく2つのサーバにわけています。

今日はそんなお話でも。

 

1. DBサーバ

友達申請を受けたり画像の受信や送信の状況などは

もちろんデータベースで管理しているわけですが、

それ用に1台さくらのクラウドを借りています。

 

こちらはがっつり負荷がかかっても相当耐えれると思うのと

(ほとんど綺麗なクエリなのでボトルネックになりにくそう)

ピンチになってもクラウドならではのスペック増強で

ある程度しのげるかと思っているため、1台でやっています。

(本当にすごくなってきたらマスタースレーブとかも検討しますが)

 

 

2. 画像配信サーバ

どっちかというとこっちが大変で、

誰かが画像を送信すると、画像をサーバに格納(平均1MBくらい)します。

ハードディスクもそうですが、アップ中ずっと帯域を圧迫しますし、

プロセスも上がりっぱなしなので、

負荷が上がるとここからまず落ちるだろうと想定し、

画像配信サーバについては楽に負荷分散できるような仕組みにしています。

 

といっても大した話ではなく、

負荷がきつくなってきたら2号機を立ち上げると

自動的にそれも使えるとアプリ側で自動的に判断するよう組んであり、

あとはランダムにサーバを選んでアップしているだけです。

これによって負荷が上がってきたらサーバをどんどん立ち上げれば

別にロードバランサを使わなくても負荷分散ができるため

経済的になっています。

(LBは高いんです・・)

 

ちなみにこちらはクラウドではなくVPSでやっています。

やはりさくらのVPSは非常に安いのにパフォーマンスがよくて

使い勝手がいいですね!

 

まとめ

POIの裏側のサーバのお話でした。

アプリで画像サーバをランダムに使用することで

ロードバランサを使わないで負荷分散をしています。(結構頑張りました)

現在2台構成なので、事実上意味ないですししょんぼりなんですが、

これが10台20台と増えていくくらいPOIがDLされるのを夢見ています!

 

 

 

 

 

 

 

 

 

 

 

 

こうやって遊んでほしい

アプリの使い方は見ればわかるレベルで

複雑な事をしてるわけではない・・と思っていますが、

このアプリいつ使うのよ?

って思う人もいるのかなと思ったので、

いくつか事例とか書いてみたいと思います。

 

1. 年配の方向け

これはテストした方の実例なんですが、

年配60~くらいの方はスマホを持っていてもフリックが苦手な方が多いです。

そういう人にPOIを使ってもらうと、POIのほうが楽っていって頂けます。

それはそうですよね。新しい事一つ覚える必要ないんですから。

でも自分も60際~になったらこうなってしまうんでしょうか。

 

2. 子供向け(幼児?)

これはリリースしてからのお話ですが、

3歳くらいのお子さんが描いた絵を送ってお父さんとやり取りする

そんな使い方をしてる方もいらっしゃいます。

きっとお父さんの絵でもいているのかな?

いずれにせよこういうコミュニケーションが出来るのも

お絵描きメールならではだと思います。

 

3. 写真+コメント

基本的に1、2を想定して作っていますが、

それ以外にも例えば今日これ食べてますとか

そういう使い方をされている方もいらっしゃいました。

お昼ご飯+コメント って感じです。

 

まとめ

 POIの使い方をいくつか書いてみました。

自分で作ったアプリがどう使われているかは気になるところなんですが、

テストの方々以外の操作を見ることはできないので、

これ以外にももっといろいろな使い方をしてくれていると

すごいうれしいです!

 

 

 

 

 

 

 

PoiはTitaniumで作りました

タイトル通りなんですが、

自分はめんどくさがりなのでPoiに限らず作るアプリは

ほぼ全部Titaniumで作っています。

理由は簡単で1コードで(ほぼ)済むからです。

内部的に条件分岐をあまり使わない書き方には ちょっとコツがあって

Titaniumの良い所を消したりしながらの開発になるので

万人にお勧めするわけではないですが、

ツール系のアプリを作るのであればTitaniumは強力な武器だと感じています。

今回はそこらへんのコツの一部を書いてみたいと思います。

 

オレオレフレームワークでやっています

アイタタと言われる事も多いオレオレフレームワークですが、

自分の場合alloy等が出るまえから触っていた事もあって、

せめてMVCで分けるくらいしないと並列にjsファイルが並んでしまって

大変カオスになっていました。

 

そんなわけで、当時オレオレフレームワークを作ったわけですが、

コンセプトはこんな感じです。

 

Android(Phone) / Android(Tablet) / Iphone / Ipad の条件分岐を出来るだけ書かない

MVCっぽくわかりやすいフォルダ構成

CSSのようにVIEWの設定ファイルは専用ファイルで書き出し

 

この3つを行うためにこんなフォルダ構成になっています。

 Resources /

    android/(既定の画像フォルダ)

    iphone/(既定の画像フォルダ

    settings/

        model/

        controller/

            iphone/

            android/

            ipad/

            tablet/

        style/

            iphone/

            android/

            ipad/

            tablet/

 

こんなフォルダ構成で、

MVCっぽく(Vないですが)書いていきます。

 Titaniumのクセでiphoneがなんでもうまくいきやすいので、

デフォルトの処理を全てiphoneフォルダにファイルを置いてそこに書きます。

その上でメソッドごとにandroidは専用の書き方が必要な物などは

androidフォルダにファイルを作ってあげるとそれで自動で上書きする仕組みです。

 

またstyleフォルダも同様で、

デフォルトをiphoneに書いておいて、

書く端末ごとに必要な処理(ipadだともっと広くするとか)

そういうのは対象のフォルダにファイルを作れば自動で上書きします。

 

こんな感じで、条件分岐は使わず、os判定だけ一番最初にして

それに合わせてrequireしていくフレームワークを作って開発しています。

 

 

なるべく専用メソッドを使わない

 Titaniumにはたくさん Ti.UI.iPhone.*** みたいに端末専用のメソッドがあって、

それらはもちろん専用なのでandroidではクラッシュ!みたいなことになります。

そのため、これらをなるべく使わないようにするのが一番楽になります。

ちょっとめんどくさいですが、

・ヘッダーとかフッターのメニューは自作する(最前面にViewを張り付けるだけ)

AndroidのToastとかも自作する(単にViewをフェードアウトさせるだけですが)

 

等は自分は必ずやっています。

 

 

なるべくアニメーションは使わない

Titaniumはどうしてもandroidでの動作がイマイチです。

その中でもアニメーションは本当にめんどくさく、

ちょっと古いですが、


Titanium Androidのアニメーションについて(3.1.3以前) - Umi Uyuraのブログ

 

こんな感じで一昔前まではandroidでアニメーションしようとすると

アニメーション専用のViewを一枚かましてそこにメインのデータを入れていく等

工夫が随所に必要でした。

 

幸いなことに自分はあまりアニメーションを必要としていないので

そこまでがっつりハマった事はないですが、

下手にiphoneでは動いてしまうため原因も分かりづらく、

なるべく使わないに越した事は有りません。

 

 

最後に

Titaniumでなるべくソースコードを共有してIphone Android の両方で動く

アプリの開発方法の注意点でした。

ここまで気にしないといけないならいっそ・・・と思いがちなんですが、

少なくともツール系に限って言えば上記のようなものを

うまく肌感覚で会得すれば一発で両方同時リリースが可能なのは大きいです。

皆さんも是非チャレンジしてみてください。

 

 

 

 

 

はじめました

こんにちわ。
日中はWEB系のエンジニアをやりつつ、
オフでアプリ開発をチマチマやっているjakkrokkといいます。

本ブログは昨年半年かけて作った

お絵描きメールpoi というタイトル通りのアプリのブログとなります。

 

お絵かきメール - POI

お絵かきメール - POI

  • Jakkrokk
  • エンターテインメント
  • 無料

※Android版はこちら

 

本当はLPとか作りたかったんですが、
案の定というか燃え尽きてしまって・・・(個人開発者あるある)
ここでは開発の裏側とかお問い合わせ、LPとまではいきませんが、
説明も兼ねたブログにしたいと思っています。

 

ほとんどは開発のお話、アプリの使い方のお話とかしたいと思いますが、
後お問い合わせが着たらそれの返答とかもできたらいいんですが。
※ユーザが増えてきてもお問い合わせが増えるとは限らないですし。

 

ということで宜しくお願いします。