ランタイムパーミッションの対応をするとActivityがマッチョになるのなんとかならんかな

Last Update: 2019-08-22

Android6.0からアプリのインストール時ではなく、パーミッションを必要となる操作を行う前に許可を求める形式になった。これ自体はとてもよいこと。インストール時にやたら権限を要求するアプリがなんだか怖くてインストールすらしなかったのが、これのおかげでとりあえず試して見れるようになったのはとてもよい。

開発者目線だと、とりあえずManifestにパーミッション書いておけばよかったものが、いちいち機能を使う前にパーミッションが付与されているか調べて、許可されてなければ許可を求めるダイアログを出して、その結果許可されたかどうかを確認して・・・という感じでやることが増えて面倒くさい。

実際に対応してみれば、なんだ大したことはやってないんだなって思えるのだけど、それでもやっぱり複雑。

そんな中で、パーミッションにまつわる管理ロジックがActivityに入り込むのが個人的になんだかなぁと思っている。単純にActivityの処理がわけわからなくなるのだ。いわゆるマッチョなActivityになっていく。

いや、私が作るActivityなど大した行数にはならないので、この程度でマッチョと言っていてはいけないのかもしれない。

単に経験値の問題なのかもしれない。始めたての頃はライフサイクルメソッドだけでも意味が分かっていなかったような気がするから、これもそのうち慣れるのかもしれない。なれたら気にならないのかもしれない。

それでもやっぱり、なんかもっといい実装方法はないものかと考えてしまう。

パーミッションを必要とする処理を行うActivityで許可を求めるダイアログ出したりせず、別途パーミッションの許可を求めるだけのActivityを作って、パーミッションの管理はそいつに任せてしまえばいいのかもしれない。権限を必要とする操作をするActivityは、権限が付与されてるかどうかだけチェックしてやるとか。ああ、そうすると見通しが良くなるかもしれないなぁ。

なるほど、分ければいいのか。どうしたらいいのかと思って書き始めたけど、なんだか自己解決してしまった。

解決してるのかどうかは分からんけども、少なくとも自分の中ではすっきり行きそうな気がした。