AniCre公式アプリ
AniCre公式アプリはAniCreとAniCreのアプリを起動するのに最も効率的なアプリです。
アプリを開くとすぐに、AniCreを見る事が出来ます。
AniApps
スワイプすると、Aniappsが開く事が出来ます。
ここではクリックするだけでAniCreのアプリを起動する事が出来ます。
(アプリをインストール済みの場合)
公式アプリ制作までの仕組み
実はこの公式アプリ、最初はTo doリスト機能もセットで導入するつもりでした。
しかし、このアプリはタブ選択に、フラグメントを用いており
その結果フラグメントのライフスタイル上、不可能であるという事を理解出来ました。
実際には、フラグメントからメインアクティビティに情報を渡す事でそれを解決する事が出来るのですが、今回は後回しにしました。
Andorid studioのフラグメントにて他アプリ、AniTimeと連携する方法
実はこのアプリを制作するに当たり、AniTimeのアプリを更新しました。
メインアクティビティから他アプリと連携するのは比較的容易ですが
フラグメントから他アプリ(AniCre)に対応するのは少し時間を取りました。(1時間程度)
android studio fragmentにて
@ override
public void onCreated
が使えず、
この場合、onViewCreateに訂正する事で制作可能になります。
当然といれば、当然ですがコードでエラーをたたき出してMain acitivyと勘違いを引き起こしました。
本当はフラグメントから次のセカンドアクティビティに移行したかったです。
方法はあります。
方法としてはフラグメントを終了させ、メインアクティビティに戻りそこから
セカンドアクティビティに起動する方法がありますが、それは明らかに非効率ですし
そもそもセカンドアクティビティに移行する事でアプリを重くしたくなかったのがあります。
AniTimeを更新した理由として、
次回のURLスチームに対応させる為です。
URLをスチームを用いた最も簡単なアプリ連携
インターネット上で調べてもフラグメントから他アプリを起動する方法が一切書かれておらず、
あるサイトでは不可能であるとまで書いてありました。
しかしながら、単純な話URLをスチームを用いる事で解決しました。
A = (ImageButton) view.findViewById(R.id.Button);
A.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
gotoUrl("");
}
});
B = (ImageButton) view.findViewById(R.id.Button1);
B.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
gotoUrl("");
}
});
}
private void gotoUrl(String s) {
Uri uri =Uri.parse(s);
startActivity(new Intent(Intent.ACTION_VIEW,uri) );
}
}
多くの人はAとかBで定義しませんが、AniCreはコードをシンプルにするのが好きで、
xmlと連携するにあたって、その際に後から見やすいように定義するのでfragmentには単純な
コードにこだわります。
スチームの都合上、一部コードを省略しています。理由はURLが分かってしまうと
AniCreアプリの連携がうまくいかなくなるからです。(詳細は省略)
カラー対応になってたAniCreアプリ画像
黒からオレンジ、緑と変えてみました。
AniCreの次のアプリ
アプリを作るごとにAniCreはフレームワークを使えるようになるので
制作までの時間が効率化します。
AniCreは更にweb appの制作にも力を今後入れていきたいです。