投稿

10月, 2018の投稿を表示しています

ぐぐたくが事あるごとに Android と Google サービスをオススメする理由

イメージ
普段から Twitter やその他いろんなところで私と関わりがある人ならわかるかもしれませんが、私、事あるごとに Android や Google サービスをオススメするんです。今回は私が Google を推しまくる理由と、推したい Google サービスについて熱く語ろうと思います。よろしくお願いします。

1. Google サービスをオススメする理由 1-1. Google サービスって具体的に何  Google は検索で有名な企業ですが、実は検索以外にも色々すごいことをやっています。例えば「OK Google」って最近よくテレビの CM で見ませんか?

 これも Google サービスの 1 つ「Google アシスタント (Google Assistant)」です。検索以外にも Google っていろんなもの作ってるんですね。

 じゃあ一体どんなもの作ってるのか、そしてそれって実際普段の生活に役に立つのか、というところご説明してまいりましょう。今回は目的に合わせてサービスを幾つかの種類に分類してみました!...の前に、Google サービス全部に共通する "強み" についてお話します。

 Google のサービスはほぼ全て「クラウド」に基づいたものです。あらゆるデータは PC やスマホ本体ではなくクラウド (簡単に言うとインターネット, 詳しくはぐぐってください) に保存され、自分のアカウントでログインしている端末からはいつでも同じデータが利用できる。また、リアルタイムに他人と共有・共同作業をすることもできる。これが Google サービスの理念であり強みです。

 このあと詳しく説明する Google ドライブを使えば、USB メモリに移動させてから友達に渡す必要がなくなりますし、Google フォトを使えばスマホが急に壊れても写真や動画がなくなることはありません。

 データがクラウドにある≒手元にない → 不安!!となる方もいるかと思いますが、一応ネットにつながっていなくてもある程度のことはできますし、セキュリティも万全です。一度使い始めたら抜けられないし、もっと使いたくなるはずです!

 ということでどんな Google サービスがあるのかご紹介していきます!
 各サービスの詳細な説明は後々投稿しますので、概要のみ示しています。Go…

JavaScript での EMR スタイラスペンの筆圧検知と指との識別

イメージ
以前「【祝】Chromebook Spin 11 での筆圧検知のやり方がわかったぞ!!」という記事で、JavaScript で筆圧検知を行う方法をご紹介しました。この筆圧検知のコードなんですが、iPad の Apple Pencil と同じコードで実装できるため非常に便利なんですが、一点問題がありました。

 それは、iPad + Apple Pencil では指で触ったときに筆圧が null になるのに対し、Chromebook Spin 11 (に限らずたぶん EMR ペン端末は) 指で触ったときにも筆圧を検知してしまうんです (Android に関してはおそらく触れている面積から擬似的に筆圧を定義している)。これの何が困るかというと、指の場合も EMR ペンの場合も筆圧を検知しているので、指で触っているのかペンで描いているのかが判別できないということで、お絵かきアプリを自作しても指で描いた線にも太さの強弱が反映されてしまうんです。

 でも Chrome アプリ版の Google Keep や Android アプリの Adobe Draw なんかは何故か Chromebook Spin 11 でも指とペンを判別していたんです。どこを見れば判別できるんだろう...と悩み続けて 7 ヶ月 (放置してただけですが)、ついに判別方法を見つけました!!

 ということで早速ご紹介しましょう!


答えは Touch オブジェクトにあった
 タッチの開始・移動時に発火されるイベント touchstarttouchmove において与えられる TouchEvent オブジェクトには、そのタイミングで触られた画面上の点に関する情報を含む Touch オブジェクトを格納した TouchList オブジェクトが touches プロパティに格納されています。
document.body.addEventListener("touchstart",e=>{ // e ... TouchEvent オブジェクト let touches = e.touches // touches ... TouchList オブジェクト }
 さてこの TouchList オブジェクトから for なりなんなりでそれぞれの Touch オブジェクトを取り出しましょう。T…