Skip to content

Latest commit

 

History

History
60 lines (37 loc) · 3.66 KB

STORY_JP.md

File metadata and controls

60 lines (37 loc) · 3.66 KB

Sler系Javaエンジニアが�作ってみた、Android向けフローティングウィンドウフレームワーク

自己紹介

Androidアプリの開発を趣味で行なっています。

主にSonyのSmall App APIを使ったスモールアプリのブラウザ開発が中心です。

お仕事はSler系の�Javaエンジニアです。

作成した経緯

突如、Xperia Xシリーズ以降からスモールアプリのコアがプリインストールされなくなり、Small App APIもサポートされず更新されない状態となりました。

開発していたスモールアプリのブラウザは、Xperia X�以降から使えなくなりました。

Z5以前は今もプリインストールされ続けているようです。

スモールアプリは便利

個人的には好きなように小さい画面を置いて、スマホでながら作業ができるスモールアプリはとても便利でした。

近年、スマホの画面の大型化も進んでいて需要もあるのでは?と個人的には思いますが、Android標準で分割によるマルチウィンドウが可能になっていますが、裏側の画面が見えないので不便です。

因みに無効ですがAndroid標準でフローティングウィンドウも既に実装されています。

(なぜ、Xperiaは標準のフローティングウィンドウを有効にしないのか・・・)

ChromeOSでAndroidアプリを使う方法もありますが、スマホはありません。

それでもスモールアプリを使いたい

個人的に便利に使いたくて開発していたアプリだったので、新しいXperiaから使えないのは悲しく、不便でしたので、乗り換え先のAPIを探しました。

スモールアプリはVAIO Phone Aでも使えないし・・・

なんか違う

乗り換え先のAPIを探して近いものはありましたが、数も少なく使いたいものはありませんでした。

気になったAPIはキーを申請しましたが、非承認になりました。。。

ならば作ろう!

当初、Andoridの正式言語ではなかったKotlinも気になっていたため、Kotlinでフローティングウィンドウを実現するライブラリを自分で作るすることにしました。

AndroidとKotlinを深く理解することにも繋がるかと思いました。

仕様検討

せっかく自作するならと、Small App APIで不満だった部分を解消しつつ、最初は必要最小限の機能でリリースする見込みで仕様を検討し、検証プログラムを作成しながら検証を繰り返しました。

必要な仕様

  1. WebViewがウィンドウ内に表示できること(内部的にRemoteViewは�使用不可)
  2. マルチウィンドウに関する必要最小限の機能(移動、拡大縮小、切り替え)が出来ること
  3. マルチウィンドウを起動するランチャー(利用可能なアプリ一覧や、起動しているアプリ一覧)を表示して、起動や終了が出来ること
  4. 他アプリ(apk)に実装された処理を読み込んで、プラグイン的にマルチウィンドウアプリを後から追加できること
  5. ウィジェットも追加できること

�制約

どうしても、システムアプリでもなくプリインストールもされてないので、色々な制約が�出ました。

計画中の内容

  1. ランチャーの位置、アプリのウィンドウサイズや位置を保持
  2. 電卓、タイマー、ストップウォッチ、TouchBrock、ActiveClip(MediaProjection API)、ミラーの様なアプリをデフォルトで追加