ラベル Android_10 の投稿を表示しています。 すべての投稿を表示
ラベル Android_10 の投稿を表示しています。 すべての投稿を表示

2020年5月17日日曜日

Overlayを使ったアプリケーションは難しい

仕事ではUIを持ったアプリの開発と持たないアプリの開発、どちらも同じくらいやってるんですが、持たないアプリの開発がここ数年続いていたのもあって、上手く進んでない感じです。
特にフローティングアプリは開発したことがないので、トライアンドエラーを繰り返すしかない。

在宅勤務のため、会社PCに重きを置いたデスクレイアウトになってしまっているので、この辺りにもやりづらさみたいなものが・・・。
しっかりFSをして、そっから設計していかないとダメですね。そのFSでつまづいてますが・・・。

公開するつもりがないものですが、ある程度見映えもいいものにしたいです。

2020年5月12日火曜日

TYPE_APPLICATION_OVERLAYを利用したアプリの開発を再開してみようと思っている話

SYSTEM_ALERT_WINDOWが必要なオーバーレイできる画面を持ったアプリ。
昔はSwipePadというアプリを使っていました。
ホームアプリだけでなく、SystemUIよりも上位のレイヤーにアプリを表示することで、ショートカット起動などを行えるとても便利なアプリです。
しかし現在ではこのアプリはまともに使えません。
SystemUIより上位のレイヤーへの表示はできなくなり、そのレイヤーへの表示をするためにServiceを使いますが、Serviceの起動は画面を持ったコンポーネントからのみ可能に、TYPE_APPLICATION_OVERLAYでも使用には明示的に有効化する必要があります。
まぁなぜかというと、この機能を悪用して画面を操作不能にすることだってできちゃうからです。
ホーム(ランチャー)アプリもしっかり作らないと操作不能になっちゃいますけど、とにかくユーザーが意図して設定したアプリ以外が画面をAndroidのUIよりも強くできるのは良くない!というものです。

上位レイヤーが下位レイヤーに対してイベントをそのまま通知することも出来るので、SwipePadのような便利なアプリもあるのですが・・・。
あるアプリに対して似たようなことを実現したかったのですけど、2週間くらい格闘して諦めてしまっていました。

ところが、Octopusというアプリがやりたいことをほぼ実現できていることを先日知りました。自分がやろうとしていたことと何が違うのか、これがなんとなくですが想像できたので、アプリ開発の再開を決意しました。
とりあえずはとにかく自分が使えるように。出来るようになったとしても公開するかはもちろん未定です。
ただ、もう一度やってみる価値はあるな、と思い至った次第です。

仕事だけだとAndroidアプリそのものの開発は今はそんなでもないので、気晴らしと勉強にって感じですね。
上手くいくと良いのですが。