投稿履歴: プログラム

Androidの電話帳

最近無性に自分好みの電話帳を作りたい!
と思います。

私今は、電話帳R plusを購入して利用しているのですが、
電話帳R自体は利用しやすく私はとても好きです。

ただ、人間というのは強欲なもので、どんどん欲求がわいてしまいます。。

私は電話帳に電話帳Rを、そして、AnimatedWidgetというのを使って
よく電話を掛ける人はウィジェットとして設置していたのですが、
AnimatedWidgetもいろいろと不満が出てきて、結局今は
電話帳Rだけを使ってます。

じゃぁどんな電話帳を作りたいかっていうと
コンセプトは電話帳Rみたいに軽くてなおかつグループに特化したもの。
なおかつ極力タップ数を減らした画面にしたい。

フューチャーフォンを使っていた頃って発話ボタンがあったので、
基本的に、電話帳→対象の人を見つける→発話ボタンだったんですね。

それがどの電話帳でも必ずその人をタップしてから電話番号をタップする仕組みになっています。
これを下の画像にも付けましたがこんな感じにしたい。
人の名前の横に電話アイコンとメールアイコンがあって、それをタップすると電話がかかったり、メーラーが起動するかんじ。

この写真自体は、Xperia arcに搭載されている電話帳の発着信履歴なのですが
これはこれで非常にいい機能で私気に入ってます♪

こんな細かいところですが、作ってみたいなーと思いながらも
電話帳ってデータの同期とか、端末固有の問題とか多いので正直二の足踏んでます。

最近Rの方もバージョンアップされているので、併せて様子見ですね。

なんちゃってActionbar – ICS対応をしてみる

最近ActionBar関連でぽちぽちとポストしていますが
いろいろ調べてたらAndroidのLayout規約じゃないけどLayou的に良しとされてるのって
ActionBarを使おう!
ActionBarは上部!
っていうのが基本っぽいですね、

ってことで、自分が使いやすいかなーと思ってタイトルバーを下部に設置してみたけど、
設定で上部と下部を切り替えられるようにした。

下記にイメージ付けてます。
テーマ自体はNoTitleで作って、自作Viewを流し込んでます。

一応こんな感じでActivity継承してます
Activity-BaseActivity(ライブラリ)-AppActivity(アプリの元となるActivity)これを継承して
各Activityを作ってます。

共通のとこはBaseActivityに作ってて、AppActivityでアプリ固有の処理を入れてます。

ソースはこんな感じ(これはAppActivityの処理です)
汚いのはご容赦を(笑)

気を付けないといけないのが各レイアウトを作るときにlayout_weightを1にしておくとかいろいろあるけど
これを使ったら、各ユーザが使いやすいように上と下を切り替えられると思う。
広告表示についても切り替えられるのでいい感じです。
PopupViewについてもそれっぽくできたので、とりあえずこれでICS対応とすることとします。

ってかこれフラグメント使った方がうまくできんじゃ。。ってのはなしで(笑)
なんとなくSupportlibrary入れるのが嫌というか、なんというか。
これでICSまでは何とか持つかなーと思います。
その次のバージョンが出るときはそこまでアプリ使われているかななんて。。。

さてこれを公開した時に使いにくいとなるのか使いやすいとなるのかは、お楽しみです。
(まぁ2系の場合はメニューボタンの方が使いやすいような気はしますけど
これはICSと統一ということでご容赦を!!)

ICSのエミュレータで動かしたところ同じUIとなりました。
ほんとは4.0のカッコイイUIを使いたいいところですが、まぁそれは置いといて…
めでたしめでたし。

/** タイトルのサイズ dp */
private final int titlebarSize = 50;

/**
* タイトルバーの追加
* 必ずBaseInitializeの処理の前に呼ぶこと
*/
public void addTitleBar(boolean isAdDisplay){
View v = this.getLayoutInflater().inflate(R.layout.app_titlebar, null);

View adView = this.getLayoutInflater().inflate(R.layout.adview, null);

android.widget.LinearLayout layout = (android.widget.LinearLayout)findViewById(R.id.rootLayout);

// Convert the dips to pixels
final float scale = getResources().getDisplayMetrics().density;
int pixel = (int) (titlebarSize * scale + 0.5f);


SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

//設定が上部になっている場合はタイトルバーをINDEX0に追加させる
//下部の場合はそのまま追加
if(StringUtility.compare(pref.getString(getString(R.string.keyPrefTitleBarPosition), “0”),”0″)){
layout.addView(v,0,new LayoutParams(LayoutParams.MATCH_PARENT,pixel));

if(isAdDisplay)
layout.addView(adView,new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
}
else{
layout.addView(v,new LayoutParams(LayoutParams.MATCH_PARENT,pixel));

if(isAdDisplay)
layout.addView(adView,0,new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
}


タイトルバーのカスタマイズ(荒業)

Androidで4.0以降に対応するために、既存のメニューはActionBarに統合するようにとの書き込みを
見たこと&自身が対応してみたかったこともあり、作ってみた

まだ、背景イメージとか、アイコンとか変更したいところはあるが目的の表示位置に設置

これ作るのに1日かかりました。。。

もともとはカスタムタイトルバーで対応しようと思って、作ってたんですけど少し前の投稿のように上にアイテムがあるのは
携帯の持ち方を考えると使い悪すぎる!!
ってことで、したにwrap_contentで追加です。(TitleはNoTitleテーマにしました)

仕組みは単純で、ActivityのonCreate内でをsetcontentViewをした後にrootViewを取得してそこにaddViewをしているだけ、
そこのボタンの設置とかはsuperclass側にメソッドを用意してうまく呼び出ししてセットしてます。
メニューボタンはpopupWindowを使って、いちばん右のメニューボタンを押したら表示する仕組み。

これで何とか、それなりに思っている形になった。

これで、おそらく4.0も2.x系も同じレイアウトで表示できる!ハズ…

In-app billingを使うメリット

いろいろあると思うんですけど、私の考えるところは以下です。

 1.アプリを有料と無料に分ける必要がない!
   ソースの統一化を図れますね!(やりようによっては2つでも大丈夫。だけどめんどくさい)

 2.アプリの統一化によってダウンロード数が一つになります
   2つに分けると必然的にダウンロード数もわかれてしまう

 3.後で追加機能を有料提供できる
   まぁこれは当たり前ですかね。

他にもいっぱいあると思うのですが、そんな感じです。

じゃぁデメリットはというと…
とにかく実装がややこしい(力不足 >__< )
ってことですかね。

ファッションメモリー/in app billing

実装してます。

クラック対策のためにほんとはリモートサイトにDeveloperKeyを置いたり、いろいろしないといけないと思うのですが、そこまでしてまでただで使いたいと思うようなアプリでもないので(笑)
Greeとかのアプリだったらここら辺はほんとに死活問題なのできっちりしないといけないのでしょうね。
(たぶんSPモードメールバックアップplus SMSもクラックしようと思えば簡単にライセンス認証を抜けられるような気がする…)

というわけでファッションメモリーにInAppBillingを組み込もうと日々奮闘中です。
その他の要望もたんまりあるので次回は大型アップデートになる予感です。

広告もAdvisionのSDKのせいで起動時落ちるようになったし、これも入れ替えるようにします。

Admobも切ってちょっとお誘いいただいたアドネットワークに切り替えます。

ですので次回は権限を含めて大きく見直しです。

Android for NFC

仕事で、Android(タブレット)の開発をすることになったので、
機種をいろいろ探していたのですが、今回NFCを使いたいので
NFCリーダー搭載の端末を探してみたのですが、ないものですね。。。
一つ・二つ企業向けのがありましたが、国産だしサポートを考えると不安。

とりあえずNFCなしで、後からUSBアクセサリの機能で使えるようなUSBリーダーが出ることを期待するかな。。。

私自身もタブレットを使ってみたいので、今年はICSのタブレットを買いたいなぁと思ってます。

ASUSのTF700かICONIA TAB A510かなぁ。

SONYあたりがものすごいデザインのいいTegra3のタブレットだしてくれたら、それはそれでまた考えるかも。

でも実際タブレットを利用しているユーザってどれぐらいいるのかなぁと
マーケットの統計情報を見てみたら(ジャンルごとなので正確ではない)
やっぱり全体の5%以下なんですよね。

5%以下の為にタブレット対応するか?っていうとそれはいかがなもんでしょう。パワーがいる(レイアウトとか)のに見返りすくなーって感じです。

私が欲している理由は、家でものを調べるときとかスマートフォンだと画面が小さく、かといってPCを起動するのもめんどくさーって時があるので、そういうときのタブレットっていいですよね。
開発中もPCとタブレット2画面で情報を見られるっていうのもいいし。

Actionbar

ファッションメモリーのタイトルをカスタマイズしてActionBarっぽくしようかと考えていたのですが、
こちらの記事を読むと、なんだかなーって感じ。確かに納得のことが書いてある。


上部にあるボタンって押しにくいですよね。
携帯の持ち方って必然的に下部を持つことが多いので、確かにこの理論で行くと
上部によくある操作があるっていうのは使いにくい。
入力とかするものでも基本上から下に流れて行くから最後は下部ですもの。

下部だけにActionBarっていうのが実は一番使いやすいかも
でもそれができないんですよねー。

下に、それっぽいViewを用意してLayout_waitとかを用意したほうが
よっぽど使いやすそう。

ICSのデータの保存先

2.x系のSDカード内のデータ保存先って
/mnt/sdcard/Android/data/パッケージ名だったんだけど、
ICSってどうなってる??

SDへ書き込みしようとしたらフォルダがない(DDMSでも確認したけどない)
でもアプリを見るとちゃんとSDへ移動している。
詳細を見ると 合計、アプリ、USBストレージアプリ、データ、SDカードってあるけど
どういうことだろう。。。
移動したらUSBストレージアプリの容量が増えるんだけど、これってどこだ???
わからん。

ICS対応・・・更新

来年春ごろからはICS端末も増えてくるだろうということで、ICS対応をしたい。
ICS対応といっても対応するのは結局デザイン部分(FlagmentやActionBar)になるので、ファッションメモリーだけICS対応するかもしれません。
SPモードメールバックアップについては、メインの処理はバックアップサービスだからICSといってもActionBarぐらいかもしれません。

でも2.x系と4.x系で動かすにはandroid compatibility libraryがいるのかな?
よくわからないのでまだまだ調べる必要がありそう。

でも2月3月は仕事が忙しいんですよね…
どうするかなー。。

更新・・
android compatibility library試してみました(今はsupport Library?)
ソース等々見ると、ActionBarの処理とか2.x系の処理を見るとややこしくて、後々の管理面を考えると使いたくないなぁということで
とりあえず、今のままいこうと思います。
(あまりメリットもないし)

Androidは後方互換性が保たれているから、基本的には動作する。
デザイン部分でタブレットやICSの大型端末などで出すことを想定して、フラグメントでレイアウトを変えていくことは今後考えてみることとします。

さらに更新・・・
 いろいろ調べてたらタイトルバーってカスタマイズできるんですねー。
 それで十分ActionBarっぽく使いやすくできそう!

Spinnerって

textColor対応していないのね。。。。

レイアウトを変えようと思って、いじってたら
textColor反応しない!!
ってことで、仕方がなくTextViewをスピナーっぽく見せることで
解消するしかないな。。。

4 / 41234