メモ2ブログ

メモtoウェブログ。旧ブログはこちら。 http://sakebook.blogspot.jp/

ニッチなアプリ「Screen Scanner」を作った

スマホに表示されているバーコードを読み取るアプリを作りました。画像を渡して読み取ることもできます。カメラで読み取る機能は現状つけていません。

play.google.com

動機(1年半前)

今から1年半ほど前の話です。

スマホのサイト上に表示されたQRコードを読み取りたいことがあったのですが、スマホが1台しかなく、それを読み取る手段がありませんでした。そこに不便を覚えたので、作ろうと思いました。

バーコード読み取りには、Zxing(ゼブラクロッシング)というOSSがあることを知っていたので、それを使おうと思いました。 画面にバーコードを置いて動かすことはできたので、画面を透過して対象のバーコードの上に載っければ行けるかなーと思っていたら、 アプリからキャプチャできるのは自身だけ のようで、透過部分が真っ暗になりました。 解消するにはルート権限を取るしかない(実は後述の方法はあった)ようで、それは辛いと思いこのアイディアは頓挫しました。。

動機(現在)

エンジニアからしたらちょっと試して駄目だった。なんてのは日常茶飯事で、自分が試してだめだったものや途中のものを眺めていました。

これもなんで駄目だったんだっけ?と動かしてみて、調べなおしてみたら、Android5.0からルート権限不要で画面のキャプチャが取れるAPIがあることを知りました。 そして、Android7.0からクイック設定に、アプリがタイルを置けることも知ったので、これは相性が良さそう!思い再び作り始めることにしました。

f:id:sakebook:20170122211820p:plain 動き始めたコミットログ

作ってみて

本当は年内に作り上げたかったのですが、意外とやることが多かったです。QRコードっていろんな情報詰められるんですね。。wifiとかイベント情報とか知らなかったです。 初めの想定だと使いにくいので修正や、追加で使ってみたい機能などがでてきて、思った以上に時間がかかってしまいました。

以下の技術(?)を使いました。それぞれハマったところや気づきがあったので追々個別に記事にできればなと思います。アプリを触ってみると、どんな風に使われてるのかわかると思います。

まとめ

昔は技術的制約で駄目だったものも、今ならできるようになっていたり、別の実現方法ができていたりします。 初めて触る技術は自分の想像以上のことができたりして楽しいです。逆もあったりするけど。

参考

QRコード / Wikipedia

zxing/zxing / GitHub

ANDROID 5.0 アプリからスクリーンショットを撮影する / techbooster

Android 7.0 Nougatでクイック設定(Quick Setting)を追加する / techium