2012年11月20日火曜日

スマホアプリ分析ツール「App Annie」がすばらしい



















ようやくiPhoneアプリをリリースして、

「よし、どのくらいダウンロードされてるかな?」

と思って、iTunes Connectで意気揚々と「Sales & Trend」をクリックしたまではいいが・・・



日ごと、週ごとのダウンロード数やランキングは分かるけど、

合計ダウンロード数が分からない


なんでだ!?と思いつつ検索してると、App Annie というサービスを発見。


アカウント登録してしばし使ってみた所、これはいい


ダウンロード推移やランキング推移がチャートで見やすく表示され、

もちろん合計ダウンロード数も表示される。


iPhone/Androidに対応しているし、無料で使えるし、

スマホアプリ開発者には必須のサービスとなるね。


「Sales & Trend」を見ることは二度とないかも?


2012年11月13日火曜日

「浦和レッズ My Life」 iPhone版リリース

「浦和レッズ My Life」 iPhone版、

先日の申請後、バグにより1回リジェクトされた後、

本日めでたく承認されました!!



このアプリは、

浦和レッズのファン・サポーターのための情報集約アプリ です!


浦和レッズに関係するニュース・ブログの更新情報一覧、試合日程・結果やハイライト動画検索、

順位表やtwitter閲覧の機能があります。





































































2012年シーズンはもう残り3試合ですが、

レッズサポの方は是非ダウンロードして使ってみて下さい~!


ここからダウンロード↓

https://itunes.apple.com/jp/app/pu-herezzu-my-life/id570541514?l=ja&mt=8



2012年10月21日日曜日

2012年10月18日木曜日

iPad mini

もうすぐ発表されるiPad mini。


速攻で予約するよっ!


いや~ようやくだなあ。

Galaxy Tab、Nexus7は我慢して見送ってきたからな。


iPhone5はすごくいいけど、やはりもっと大きく、広く見たい。



そして、、アプリ開発はまた困難が増える・・・のか?

2012年10月15日月曜日

iPhoneアプリ開発

iPhoneアプリ開発は複雑ですね。

開発者登録、証明書、デバイス登録、配布用アーカイビング、iTunes Connectなど、

やることがてんこもり。。

でも70万近くのアプリが公開されていて増え続けている。

ハードルの高さを考えると、このプラットフォームは本当にすごいです。


自分もそのプレイヤーになるべく、浦和レッズ My LifeのiPhone版をTitaniumで作ってます。

あともう少し・・・・

今シーズン中に出すぞ!

2012年9月13日木曜日

TitaniumでUnicodeDecodeError

TitaniumプロジェクトをXcodeでビルドしたらUnicodeDecodeErrorが発生・・

しばらくハマってたが、原因判明。

ソース中のコメント内に、Ti.UI.SIZEとか、Ti.UI.orientationとかがあるとダメらしい。

これは予想外だわ。。気をつけよ。

参考:http://dokuwiki.eniblo.org/doku.php/titanium/imp_issue2

2012年7月12日木曜日

Google App Engine て大変!

Google App Engine に悩まされるこの頃・・・

スピンアップがすごい遅かったり(10秒以上とか)

スピンアップがないのにいきなり意味不明に重くなったり、

次の日にはすごい速くなったり。


業務システムにはちょっと辛いか・・・


他のPaaSはどうなんだろう。

Amazon Beanstalk と Heroku を使ってみたい。

2012年7月5日木曜日

勉強している風エンジニアにならないために


「勉強している風エンジニアにならないために」
http://blog.velc.jp/post/25535319529


「勉強している風」、すごくありがちですね。

こうならないように常に自分にプレッシャーをかけていきたいです。

それにはまずブログで「○○までに○○する!」と宣言するのがいい。


2012年6月28日木曜日

iOSシミュレータが落ちる

Titanium + Android で開発したアプリをリリース後、

iPhone版にとりかかってるわけですが、

iOSシミュレータって何のログも吐かずにいきなり落ちたりする。

それも結構な頻度で・・・


うーん・・・・


2012年6月11日月曜日

「スマートフォンUXの最前線」勉強会レポート

http://b.hatena.ne.jp/articles/201206/8966

この勉強会はとても興味深かったので、詳しいレポートありがたい。

忘れた頃にまた読み返したい。

2012年5月22日火曜日

浦和レッズ My Life 1ヶ月1000ダウンロード!

4/16に公開したAndroidアプリ、「浦和レッズ My Life」が

公開から1ヶ月を経過して、

1000ダウンロードいただきました!

どのくらいダウンロードされて使われるのか、想像できませんでしたが、

これだけのユーザーが使っていると思うと、嬉しいですね。

twitterやfacebookで少しだけ宣伝しましたが、もっと宣伝していけば

認知度も高まるのでしょうか。。

その辺は今後の課題です。


そして今は、iPhone版の開発にとりかかっています。

なかなか時間を取るのが難しいですが、なるべく早く公開したいと思っています!

2012年5月21日月曜日

GWT-Bootstrapの組み込み方

jarをダウンロードして使う方法と、GithubからPullして使う方法がある。
(開発者のKeisukeさんコメントありがとうございます)

■GWT-Bootstrapのjarダウンロード
https://github.com/gwtbootstrap/gwt-bootstrap/downloads
から、gwt-bootstrap-2.x.x.x-SNAPSHOT-sources.jar
をダウンロードして、プロジェクトのビルドパスに入れる。

または、Gitからソースを取得する↓

■TortoiseGitのインストール
http://code.google.com/p/tortoisegit/downloads/list
※Gitはバージョン管理ツール。TortoiseGitを右クリックメニューに追加して使用

■GWT-Bootstrapのダウンロード(GitでClone)
任意のフォルダ(eclipseのworkspaceがよい)で右クリックしてGit Clone
Urlに、https://github.com/gwtbootstrap/gwt-bootstrap.git を入力してOKクリック

※頻繁に更新されているので、随時最新をゲットする(右クリック→TortoiseGit→Pull)

■Eclipseにインポート
作成されたgwt-bootstrapフォルダをEclipseのプロジェクトとして設定
テストクラスでコンパイルエラーが出るので該当javaファイルを消す

■GWT-Bootstrapを使用したい方のプロジェクトの設定
Eclipseで使用側のプロジェクトのプロパティを開いて「Javaのビルド・パス」→「プロジェクト」→GWT-Bootstrap追加→OK

----------------------------------------------------------------------
以下、GWTへの組み込み方法

■xxxx.gwt.xml
以下を追加
<inherits name='com.github.gwtbootstrap.Bootstrap' />
<set-property name="bootstrap.responsiveDesign" value="true"/><!-- レスポンシブデザイン有効化 -->

■xxx.ui.xml
uiタグにgwtbootstrap(xmlns:b....)を追加
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">

<b:Button ui:field="button" icon="HEART" type="INFO">Testbutton</b:Button>
のようにしてボタンを作成。(GWT標準のButtonクラスとは違う)

その他、http://gwtbootstrap.github.com/やsrc/demo/以下にあるui.xmlを参考にしてウィジェットを使用する。

2012年5月17日木曜日

スマートフォンUXの最前線

先日5/15の勉強会、「スマートフォンUXの最前線」はとても面白かった。 

特にHMDTの木下氏の話には、印象に残るフレーズが多かった。


 ・ユーザのメンタルモデル
 =こうすればこうなる、という直感的な体系を構築しろ!




 ・技術者はNOと言うな。YESと言ってから考えろ!




 ・論理と直感  論理的データ
 →どこかで直感的に切り替える。そこに面白い体験がある!




 ・来たボールはとにかく打ち返せ!




 ・チャンピオンスクリーン
 =アプリを決定づける、1枚のスクリーンショット!




 ・UXデザインの3要素


   Appearance:見ため


   Layout:ボタンをどうやって配置するか


   Behavior:ユーザの操作をどういう感じで部品を動かすか


  スマホではBehaviorが1番重要!!!



 まとめはこちら
  http://d.hatena.ne.jp/absj31/20120515/1337093913

 次にアプリを作る時に参考にしよう。

2012年5月15日火曜日

GWT-Bootstrap

GWT(Google Web Toolkit)でTwitter Bootstrapを使うためのフレームワーク。要注目! http://gwtbootstrap.github.com 今まさに開発中のようで。期待しています(^0^)

2012年5月11日金曜日

Google Cloud SQLの料金について(和訳)


Google Cloud SQLの料金が発表されたので簡単に和訳してみた。

https://developers.google.com/cloud-sql/docs/billing


6月12日からGoogle Cloud SQLの使用料金が課金されます。

"Packages" と "Per Use" の二つの料金プランが用意されています。


Packages Billing Plan


TierRAMIncluded StorageIncluded I/O per DayCharge per Day
D10.5GB1GB850K$1.46
D21GB2GB1.7M$2.93
D42GB5GB4M$5.86
D84GB10GB8M$11.71

各データベースインスタンスは、CPUの適切な量に加えて、上記のRAMが割り当てられます。
ストレージは、MySQLデータベースで使用されているファイル·スペースとして測定されます。
課金はデータベースが存在する時の日数に基づいて、毎月適用されます。

スケジュールされたバックアップサービスを使用して作成されたバックアップ用のストレージは、パッケージの制限の一部ではなく、チャージされません。

データベースインスタンスによって行われたストレージへのI/O要求の数は
クエリ、ワークロードおよびデータセットに依存しています。

Cloud SQLは効率的にクエリを処理し、I/O要求の数を最小限に抑えるためにメモリ内のデータをキャッシュします。

ストレージの使用または含まれているクォータを介してI/Oは、毎使用率(ストレージ月額GBあたり0.24ドル、I / O100万回当たり0.10ドル)でご利用いただけます。

現在任意のインスタンスの最大記憶域は10GBです。



Per Use Billing Plan



ResourceCharge
D1 Database Instance (0.5GB RAM)$0.10 per hour
D2 Database Instance  (1GB RAM)$0.19 per hour
D4 Database Instance  (2GB RAM)$0.38 per hour
D8 Database Instance  (4GB RAM)$0.77 per hour
1GB Storage$0.24 per month
I/O$0.10 per Million


データベースインスタンスの使用は(詳細については、FAQを参照してください)​​最も近い時間に切り上げ、連続使用の期間にチャージされます。

ストレージは(データベースがアクティブかどうかに関わらず)時間単位でGBあたりで課金されます。
1時間内の最大バイト数を測定し、最も近いGBに切り上げられます。
スケジュールされたバックアップサービスを使用して作成されたバックアップ用のストレージは、チャージされません。

1インスタンスの最大記憶域は現在10GBです。

データベースインスタンスによって行われたストレージへのI/O要求の数は、
クエリ、ワークロードおよびデータセットに依存しています。

Cloud SQLは効率的にクエリを提供するためにメモリ内のデータをキャッシュし、I/Oの数を最小限に抑えます。 I/Oは、100万に切り上げられます。
ストレージにアクセスしないクエリは、I/O数にカウントされません。


Network Use


ResourceCharge
External Outbound Traffic$0.12 per GB
ネットワークの使用は、Packages、Per Useプランの両方に適用されます。
アウトバウンド外部トラフィックのみ、チャージされます。
コマンドライン、外部のレポートツール、またはGoogleのAPIコンソールでSQLプロンプトを使用した際にチャージされます。

Google App EngineのアプリケーションとCloud SQL間のネットワーク使用量はチャージされません。

2012年5月4日金曜日

Androidアプリ公開後2週間のダウンロード数

4/16に公開したAndroidアプリ「浦和レッズ My Life」、

公開から2週間とちょっと経ちました。

ダウンロード数は思ったよりも順調に伸び、5/3時点で631


特に宣伝していなかった割には、なかなかの数字だと思ってます!

これだけのユーザに使われていると思うと、非常に嬉しいですね。


開発者用画面で各種数値のグラフが見れるわけですが、

これを毎日眺めてしまいます。









さて、このアプリをさらに機能アップしていきつつ、iPhone版も開発していきます。

Android版はTitanium1.7.5で開発したけど、iPhone版は最新の2.0.1で行こうかな。

ソースの共有は最初からあまり考えない方向で。


2012年4月18日水曜日

浦和レッズ My Life Androidアプリ公開

久しぶりの投稿になってしまいましたが、先の投稿で書いた、

浦和レッズ My Life」 というAndroidアプリを公開しました!

↓こちらをクリック
https://play.google.com/store/apps/details?id=org.with.urawa.reds&feature=search_result#?t=W251bGwsMSwyLDEsIm9yZy53aXRoLnVyYXdhLnJlZHMiXQ..

これは


浦和レッズのファン・サポーターのための情報集約アプリ

です。






浦和レッズに関係するニュース・ブログの更新情報一覧

試合日程・結果ハイライト動画検索順位表twitter閲覧の機能があります。


全ては浦和レッズに関係する情報のみです。

自分がJリーグ開幕以来の浦和レッズLOVERなので、自分で使いたいものを作りました。


今後はユーザーの声を受けて、メンテナンスや新機能の追加をしていきます。


浦和レッズのファン・サポーターの皆さん、


よろしくお願いします~!!

2012年2月21日火曜日

Titaniumアプリ、「Urawa Reds My Life」の紹介

さて、開発中のアプリについて、そろそろ書いておきます。


アプリ名は、UrawaReds MyLife



浦和レッズ情報を集約したアプリです。

ハイ、自分、浦和レッズの大ファンなわけで、自分が使いたいアプリを作ってます。


機能は大きく分けて4つ。




1.NEWS
  浦和レッズ関連のニュース・ブログの更新情報を表示。(一覧・詳細)


2.日程・結果
  試合日程一覧とスコアの表示。
  終了済みの試合は、試合詳細リンク(浦和オフィシャル)と動画リンク(Youtube)あり。


3.順位表
  勝ち点、勝利数、敗北数、引き分け数の表示。
  ランドスケープでは得点、失点、得失点差を表示。


4.Twitter
  #urawaredsタグのツイート一覧を表示。




浦和レッズサポーターが毎日使うようなアプリになることを目指します!

リリースは、Jリーグが開幕してからにしようかと思ってます。


2012年2月20日月曜日

スプラッシュイメージの表示時間を指定したい

今作っているAndroidアプリで、スプラッシュイメージが一瞬しか表示されない。

表示時間を指定したいけど、方法を検索してもこれといった方法は見つからない。。

さてどうしよう。

2012年2月13日月曜日

Titaniumで動くJSONDBライクなDB、TaffyDB

Titaniumで動くJSONDBライクなDB、TaffyDB。

Titanium MobileではSQLiteが標準のDBだけど、大量データを扱うと

かなり重いという噂。

で、JSONDBという有料モジュールがあるわけですが、

それに似た感じで、フリーで使えるDBということで、TaffyDB。

要注目です!

http://www.isgoodstuff.com/2012/02/11/titanium-appcelerator-taffydb-flatfile-mod-local-jsondb/

2012年2月6日月曜日

2012年2月1日水曜日

Titanium SDK1.8.1リリース

Titanium SDK1.8.1がリリースされた。

以下は1.7.5からのAPI数の変遷。

■1.7.5 API数
Modules: 35
Objects: 95
Methods: 915
Properties: 2880
http://developer.appcelerator.com/apidoc/mobile/1.7.5/

■1.8.0.1 API数
Modules: 35
Objects: 112
Methods: 5178
Properties: 2847
http://developer.appcelerator.com/apidoc/mobile/1.8.0.1/

■1.8.1 API数

Modules: 35
Objects: 114
Methods: 5457
Properties: 3030


変更リストは、こちら。

2012年1月27日金曜日

ネットワーク接続チェック on Titanium

忘れがちだけど必須。

if(!Ti.Network.online) {
  var dialog = Ti.UI.createAlertDialog({
    message : 'ネットワークに接続されていません。接続後に再度お試しください。',
    buttonNames : ["OK"]
  });
  dialog.show();
  return;
}
//以降、ネットワークに接続する処理・・・

2012年1月22日日曜日

Androidエミュレータで画像が表示されない問題の対策


Titaniumで作ったアプリをAndroidエミュレータで実行すると、画像が表示さない問題がある。
(Windowsのみという噂)


tiapp.xmlに、下記を記述する事で、画像が表示されるようになる。


<property name="ti.android.fastdev" type="bool">false</property>


ただ、FastDev(ソースの修正をエミュレータ再起動なしに即座に反映する仕組み)が

使えなくなってしまうというTitaniumのバグがある。


SDカードを使用できないようにする事で、

FastDevを有効にしたままエミュレータで画像を表示できるようになる。

ただし、ローカルファイルのみ。(リモートファイルは表示されなくなる)


SDカードを使用できないようにする設定は下記の通り。

1. 目的のエミュレータが起動中の場合は一旦終了。

2. Android SDK Managerを起動。

3. Virtual Device一覧で対象のAVD Nameを選択してEditクリック。

4. HardwareのNewをクリックし、「SD Card support」を選択してOK。

5. 「SD Card support」のValueを「no」に変更して「Edit AVD」をクリック。

6. エミュレータを起動して確認。



SQLiteより圧倒的に速いJSONDB on Titanium

Titaniumでの速度がSQLiteより100倍くらい速いという話もあるJSONDB。

DBをバリバリ使うアプリでは是非。

http://ruilog.sakura.ne.jp/blog/2012/01/253/

Titaniumにおける関数リテラルのパフォーマンス

メモ。

http://imthinker.net/?p=147

2012年1月20日金曜日

Android Application Award 2012

挑戦してみるか~。

http://itpro.nikkeibp.co.jp/android/aaa2012/index.html

Titanium/Interface Builderとの連携

XCodeに付属するInterface Builderでグラフィカルに画面を作成し、

Titanium用ソースコードを出力する方法。

Titanium/Interface Builderとの連携


ForgedUIと違ってTitanium Studioと統合されてはいないが、面白そう。

2012年1月18日水曜日

Titaniumのビジュアルエディタ、ForgedUI

Titanium Mobileのビジュアルエディタ、ForgedUI。

まだあまり情報がないが、この動画を見ればだいたい分かる。

GUIでラベルやボタン、TableViewなどのオブジェクトを貼りつけてプロパティを設定していき、

ボタン1つでソースを出力してくれる。




非常にスピーディにアプリ開発ができるTitanium Mobileだけど、

このForgedUIを使うことで、さらに爆速で開発ができるかも!?


$99.00 one time paymentとのこと。 数千円程度なら、払ってもいいね。

とりあえずTrial使ってみよう。

2012年1月16日月曜日

モバイルアプリの未来


モバイルアプリ開発という仕事は今後どうなるか?

最近、各企業や芸能人の公式アプリというのが出てきているが、

数年後、企業が公式WEBサイトを持っているのが当たり前なように、

公式アプリを持っている時代が来ると思う。


そうなると、アプリ開発者が大きく不足する状況が生まれるだろう。

「短期間で高品質、iOS/Android、スマートフォン/タブレット」

の全てに対応する開発者が求められる。

Titanium Mobileの重要性もどんどん高まり、より洗練された技術になっていく。


また、iOS、Androidが家電へ進出していく流れが始まっているが、

家電向けアプリ開発はどうなるか?


例えばTV向けアプリを自分で作れるようになると、すごく面白いと思う。


さらについ先日、「サムスン、窓で使える透明タッチスクリーンを披露」というニュースが出ていた。

この動画を見ると、まさに「人々の生活が変わる」というのを実感する。

そこに自分が関わっていければ幸せだ。 いや、必ず関わっていくんだっ。


2012年1月13日金曜日

Titanium MobileでGoogle Analyticsを利用する

これはやっておきたい。

Titanium MobileでGoogle Analyticsを利用する - box box box:

Titanium Studio+SVNのエラー回避

SVNでソース管理しているTitaniumプロジェクトを
実機転送やDistributeしようとすると、エラーが発生して転送できない。

※Androidしか試してないけど、iPhoneだとどうかな。

で、ビルド用スクリプトを修正して対応する方法は下記の通り。(SDK1.7.5の場合)


まず、C:\Users\ユーザ名\AppData\Roaming\Titanium\mobilesdk\win32\1.7.5\android\builder.py
をエディタで開き、「fileset = []」という記述を探す。

そのすぐ下の部分で、下記のように追記する。

オリジナル:
for root, dirs, files in os.walk(os.path.join(self.top_dir, "Resources")):
        for f in files:
            path = os.path.join(root, f)
            if is_resource_drawable(path) and f != 'default.png':
                fileset.append(path)
下記のように追加(2行目、3行目、5行目):
for root, dirs, files in os.walk(os.path.join(self.top_dir, "Resources")):
        for name in ignoreDirs:
            if name in dirs: dirs.remove(name)
        for f in files:
            if f in ignoreFiles: continue
            path = os.path.join(root, f)
            if is_resource_drawable(path) and f != 'default.png':
                fileset.append(path)


これで、無事にエラーなく実機転送できた!


gitを使えばいいのだろうけど、なんだか難しくてよく分からず・・・・
慣れたSVNの方がいい♡