2015年5月27日水曜日

「しまりす タネがブー!」を公開しました!



シマリスにひまわりの種を食べさせては出させる、非常に際どいアプリを開発しました。

しまりす タネがブー!」といいます。


遊び方は簡単。

1.しまりすのお口に種をスワイプして食べさせてあげます。
2.膨らんだほっぺをタッチします。
3.ぶーと吹き出します。



↓下記からダウンロード↓
https://play.google.com/store/apps/details?id=another.mrt.gmail.com.chipmunkandseeds

2015年5月16日土曜日

DialogFragmentの中にあるボタンから呼び出し元Fragmentにコールバックを渡したい

今回は技術の話です。

表題の件について、案外ハマりました。

もう少し詳しく書くと、こんな感じです。
・ダイアログを出す
・ダイアログの中にはListViewがある
・ListViewの中にはボタンがある
・ボタンを押したら、呼び出し元のfragmentでUI変更をしたい

メンドクサポイントは以下の二点です。
・ダイアログの中のリストの中のボタンのイベント処理(深いわ!)
・ダイアログのコールバック処理

ネットで調べまくると、やはりみんな苦戦しているようで、case by caseで対応の仕方も変わります。

ふと思ったのは、このUI設計自体、推奨されないのではないかと。
ダイアログはパソコン世代にはお馴染みのUIですが、ここで何か色々するということ自体が、スマートフォンなどデバイスでは、俗っぽい言い方をすると「イケてない」のではないかと思うのです。

さて、
私の場合は条件がシンプルで、解決したものをまとめるとこんな感じ。
例としてダイアログを出して、閉じるという処理を紹介します。

○MainFragment

1.宣言しとく

private FooDialogFragment FooDialogFragment;

2.呼び出す(onCreateView内とか)
    setTargetFragmentの引数一番目は、戻ってくるfragment。二番目は識別用に任意のリクエストコードを指定します。
Button FooButton = (Button) rootView.findViewById(R.id.btn_foo);
FooButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        if(FooDialogFragment== null){
            FooDialogFragment= new FooDialogFragment();
        }
        FooDialogFragment.setTargetFragment(MainFragment.this,1234);
        FooDialogFragment.show(getFragmentManager(), "dialog");
    }
});
3.onActivityResultで受け取る
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == 1234) {
        if(resultCode == Activity.RESULT_OK) {
            FooDialogFragment.dismiss();
        } else if (resultCode == Activity.RESULT_CANCELED){
        }
    }
}

○FooDialogFragment

//該当部分のみですが
ListView listView = (ListView) dialog.findViewById(R.id.list);
listView.setAdapter(customAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        if(view.getId() == R.id.inner_button){
            Intent result = new Intent();
            result.putExtra("foo","name");
            if (getTargetFragment() != null) {
                getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, result);
            } else {
                PendingIntent pi = getActivity().createPendingResult(getTargetRequestCode(), result, PendingIntent.FLAG_ONE_SHOT);
                try {
                    pi.send();
                } catch (PendingIntent.CanceledException ex) {
                }
            }
        }
    }
});

2015年3月19日木曜日

新アプリ「おみくじ しゃんしゃん」公開

はい、しゃんしゃん!

新しいおみくじアプリ、5時間で爆誕です。



神棚アプリのおみくじ機能と同様、末小吉より良い結果しか出ません!

だって良い結果出たほうがいいじゃん!!
世の中がどんどん良くなっているのに、どんどん幸せになっているのに、凶とか出たって嬉しくない!ってわけです。

というわけで、いつもいい結果が出るおみくじアプリおみくじ しゃんしゃんをよろしくお願いします^_^

2015年2月22日日曜日

神棚アプリのアップデート(1.5.x)

神棚にライフタイマー機能が付きました。


これは、指定した日までの残り日数をウィジェット上に表示するというものです。

使い方としては例えば、「○歳の誕生日まであと何日」とか、「もう○日寝るとお正月」とか、日付をカウントダウンさせるために使います。


なぜこの機能を付けたか?

神棚にはセルフ・コーチング的な役割があるのではないかと思っています。

一日の始まりに誓いを立て、懸命に生きるので見守って頂きたいという気持ちであったり、また今日一日過ごせたことに感謝をする気持ちは、深層心理で人生をより良く歩んでいく効果があるのではないかと認識しています。

そこで、お供えを変えた時にメッセージを表示する機能に加え、この度、より具体的な目標を達成する用途向けにライフタイマーを実装しました。

これによって、人生の中でいつまでに何を成し遂げたいのかを強く意識することができるようになります。


システムで多くの人が幸せになれば本望です。


【開運】 神棚 【商売繁盛】 - Google Play の Android アプリ

2015年2月16日月曜日

神棚アプリのアップデート(1.4.0)

神棚アプリ、たぶん、アップデート版(1.4.0)が配信されると思います。

今回の内容
 ・内部処理の最適化
  →サービスを介した処理を全廃。

 ・お供え、お榊交換時のビジュアル変更
  →ボタンを押して画面に変化が出るようになりました。


ビジュアル強化は今後の課題です。


【開運】 神棚 【商売繁盛】 - Google Play の Android アプリ