license)に基づいて翻訳・編集しています。PWA(プログレッシブウェブアプリ)のデザイナーと開発者にとってのチャレンジは、Googleがサイトをアプリ的に動作させることは素晴らしいことだと押し続けているってことだよね。いうのも、アプリには、特にモバイルデバイスでアクセスできるAPIが多くあるから。実際はそれを実現するのはとても難しいことで、参入障壁そのものが実に高い。アプリ的に動作するものみたいな話があったけど、そこで考えることは、人々はアプリにどのようなものを求めているんだろうってこと。通常、1秒あたり60フレームくらいで構成されているものを見ているわけで、何もかもがとにかく瞬時に表示されているように感じる。タップすれば、すぐに表示され、データがその場でアップデートされるような感じだ。Firebaseは、何かひとつアップデートすると、すぐさま別のデバイスでもアップデートされるようなデータベースになっている。クラウドといったあらゆるものに適用できて、ひとつ変更が加えられたら、すぐに連携している全てのデバイスが同期されるということ。いうことが、アプリ的な動作の要素であり、情報が即座に変更され、自分のデータが手持ちのディバイス全てからアクセス可能なユビキタス状態にあるということだと思う。アプリのように、オフラインであってもそのユビキタス状態が保たれることが求められるということになる。アプリをインストールすれば、ほとんどの部分にアクセスできる状態になる。Firebaseは同じことをしていて、何か変更を加えたら、その情報が実際そのデバイスに保存される。オフラインになると、例えば、僕はカメラのPWAの構築をしたことがあるんだけど、僕が構築できるオンラインで使用する場合と同じことを、オフラインでもできるようなものとはどういうもので、その中に「即時性」を見つけ出そうと必死だったんだ。オンライン上だけで作業をするなら、ノートアプリみたいにその場で変更が同期されるのがわかる。カメラアプリの場合、ウェブ・ユーザーメディア・API、そして小型カメラを搭載させ、写真をとる、そこからその写真を保存して、写真フィードができる。何がいいかというと、飛行機に乗っていても写真を撮ることができて、それをそのデバイスに保存しておけば、ネットワークに接続すると同期が始まる。自分の所有するデータベースやサーバーをインストールするとか、IndexededDBみたいなものを設定する必要もないということなんだ。Firebaseライブラリー的なものを使って、そこからそれぞれの機能を手に入れて、それを作動させていくみたいな感じで、自分のアプリを構築していくことだけに集中しているんだ。オフライン作業はどのように動作するかとか、データ連携はどのように動作するかといったことは気にせずに、むしろ自分の作業そのものに集中するようにしているよ。使用するという点において、アレックス・ラッセルとも話してきたことのひとつが、どのツールを採用するかは、ディベロッパーもしくはデザイナーのやりやすさ次第だということなんだ。WordPressはインストールさえすれば、はい完成という感じだよね。5分間インストールしたら、はい。PHPやWordPressを忌み嫌うのがトレンドみたいな感じになっているとは言え、そういったものも、100種類を超えるいろいろなライブラリをインストールすることなしに、やりたい仕事を円滑にスタートさせ進めるためにデザインされたものだよね。いう点では非常に上手くいっている。Firebaseはおそらく同じような考え方のもとにあると思うんだけど、セットアップがとてもシンプルになっている。Hostingの立ち上げをしようとしていた頃なんだけど、その時の僕の仕事はただひたすらユーザー研究のミーティングに時間を費やしていたんだ。その頃は、この会社に入って、リアルタイムデータベースやJavaScriptライブラリを構築すると思っていたから、「よし、腕まくりして1日中コードを書きまくるぞ」といった感じだった。ほとんどの時間をユーザー研究に費やしていることに衝撃を受けたね。座って二重ガラス式の窓越しに眺めている感じ。文字通りそうしていたわけではないけど、そう感じたよ。そこで、ユーザーを見てみると、彼らはセットアップそのものに苦戦しているんだ。自分は次にそのユーザーが何をすればいいのか正確にわかっている。そのボタンをクリックするんだ!頼むからそのボタンをクリックしてくれ!ってね。こっちを見て「どうすればいいの?」っていう表情を見せてきても、こっちとしては「何もできないんだ」となるだけ。使い方が理解できていないユーザーを見ることで、自分自身の反省点を知ることができる。初期の段階から、僕たちはユーザー研究にフォーカスしていたんだ。5分以内に立ち上げて作動させることができないのなら、それは機能していないということ。ユーザーを見るということの最も重要なポイントは、自分たちが成し遂げようとしているものの全体図を描くことにある。初めに、JavaScriptライブラリを採用しようということになった。現在のリアルタイムで連携するアプリになった。何のセットアップも必要なくなったんだ。次に、証明に関する部分を発展させた。GoogleアカウントやEメールパスワードのような様々なタイプのプロバイダーのユーザー情報でログインできるようにしたいということを可能にしたんだ。サーバーを起動させたり、JavaScriptライブラリに余計な情報を追加したりしたくないという場合でも、このアプリがあればそれが解消される。ホスティングに関しても、どれだけの速度でインターネット上に存在していないサイトをCDN上でSSL化し、高速動作をデフォルトのようにできるか、というのと同じことなんだ。いったこと全てが僕たちの血として常に流れていて、一番の指針のようなものなっている。導入の障壁を低くして、5分以内にスタートさせ、起動できるということ。僕が、僕みたいにウェブデザイナーで、技術的に詳しいことがわからない人間が、独自ドメインでサイトを立ち上げたいとなって...。僕は実際に個人で「Davidea.st」というドメインを所有していて、とっても誇らしく思ってるんだ。Hostingを使うと、どこのドメインプロバイダーのものでもいいんだけど、例えばGoogleドメインを使うのなら、とても簡単だよ。いうのもGoogleと連携したサービスを提供したことがあるから。Hosting上で展開が可能で、プロジェクトネームとか何であれ、その「プロジェクトネーム.firebaseapp.com」というドメインが入手できる。その状態で、SSL化やout-of-boxも有効になっていて、グリーンロックが自動的に表示されるようになる。それと、WebUIのような機能もあって、そこで独自ドメインを設定したいとなると、基本的にFirebaseは「了解、必要事項をドメインレジストリに登録して、このボタンをクリックすれば、そのドメインがすでに存在しているかどうか確認します」という流れになり、それが完了したら、はい以上。希望のドメイン名が一瞬でセットアップできる。Firebaseに対しての批判もいくつかあるよね。その多くはスピードに関するものだよ。いうのも、常に使用するJavaScriptを何とか減らそうとしていて、基本的で最小限にして、3秒以内でできる限り素早く画面を立ち上げさせようとしているから。批評で言われているのは、Firebaseはかなり大きなボリュームを使用していることだ。それは僕からすると、2つの相反することだなと思う。僕が思うに、ウェブというのはおかしなところにきているんだ。ウェブ上でかなり多くのことをしようとしていて、要はさっきも話に出ていたアプリ的な動きをさせたいとなっている。ここでいうアプリ的というのは、インストール時間にして50メガバイトのライブラリを有していて、WiFi環境かどうか問題ない状態だけど、ウェブとなると、そういったことはありえないことで、ウェブ上で50メガバイトのものなんて絶対にありえない。多くの機能を有しながら、読み込み速度という基本原理を損なわない、という衝突と対峙している状態なんだ。そこで、僕がやっているのは「読み込むためにまず最初にする必要があることは何か?」ということを考えるということ。すると、アプリにとって最低限の実行可能な部分が必要になることがわかる。実際、Firestoreのライブラリは、一般的なものに比べると容量が大きい。それはその分機能が多いからだ。要は、ブラウザ上に自分用のデータベースがあるみたいなものだから。データベースとしては、それでもかなりサイズが小さいものだと思う。いや、そんなものは必要ない、例えばコンテンツをユーザーに提供していて、そんなライブラリをクリティカルパスに置きたくないというのであれば、HTMLをサーバー上で使用すれば、JavaScriptのようにHTMLやCSSだけの必要最小限のレイヤーをレンダリングすることができる。僕が気付いたのは、Firestoreのようなものを実行すると、アプリ上の機能が強化され、読み込みが始まると、リアルタイムでオフラインでも作動するということになる。アプリを設計するということは、ユーザーが利用を続ければ、それだけ機能は強化されるということ。「はい、このアプリは単一のデバイスごとに1回だけ使用可能です」なんて言いたくないわけで、プログレッシブブートストラッピングがアプリには求められることになる。ウェブの特徴を兼ね備えたパフォーマンスを求めるのであれば。自分が初めて思いついたことだと思ったんだけど、もうやり切ったなと思ったら、他にやった人はいなかったかを確認するものなんだ。したら、すでに実践されていて、名前までついていたよ。プログレッシブブートストラッピングとは、ひとつの考え方を指している。アプリ構築に必要最小限なものは、HTMLやCSSだけだった。それがあれば、かなりのことが実行可能になる。それに加えるレイヤーとしてJavaScriptを使うことで、ReactやPreact、Angularなどのフレームワークを使うなどすることで、HTMLやCSSに加えた拡張になる場合がある。その点では、このアプリがあればデータを受信するたびに作動し、ネットワークから何かを受け取ったら、画面が変化して、ユーザーがそれに反応する。アプリ上のものがよりダイナミックになるんだ。データそのものがどこから届くかは全く関係なくて、アプリ自体はそういうことに依存しないものということ。遅延読み込みをFirestoreで使用したとすると、Firestoreでの読み込み準備が整ったら、時間をかけて読み込みを行うという機能が作動することになり、リアルタイムで表示されるような感じで、突然ページ上で何かが動き出すような状態になる。オフラインになると、そのデータはデバイス上にキャッシュとして残る。歴史的にもそうだけど、今まで僕らは一気に全てを読み込めるページをデザインし開発してきたわけだけど、それってあまり意味がないように思うんだ。今までの話からすると、必要としているときに、必要としているように作動する機能だけ使える状態にすれば良くて、必要でなければ全てのデータベースを読み込まなくていいということだと思うんだけど。splitting)が今の話のケースには使えると思う。アプリを別のルートに分配する場合、自分のホームページのプロファイルコードを読み込みたくないわけだよ。そんなの意味がないからね。必要ないものを含まないことでパフォーマンスを向上させることができるんだ。今の話はそういうことだと思う。Firestoreは必要なんだけど、すぐに必要というわけではない。いうときに、もし自分のクリティカルパスにFirestoreのJavaScriptを含めてしまうと、アプリそのものを読み込むための時間が長くなってしまう。それを楽にする方法を見つけようとなる。そこで、段階的にそのブラウザーが処理できるものを読み込ませる。HTMLとCSSから始めよう。それを強化するものとしてJavaScriptを加える。すれば、とても簡単な話になる。いうことで、僕たちは全ての要素についてこのやり方を目指しているんだ。何か問題が生じてJavaScriptを読み込まなくなっても、それに対応したコンテンツをユーザーが利用できるようになっている。接続がかなり遅い状態にあったとしても、初期コンテンツやJavaScriptフレームワークがある。その場合、Firestoreが読み込むのに時間がかかってしまい、タイムアウトが起きたり、読み込みができなかったりということもあり得る。アプリそのものは、それぞれのフォームにおいて利用可能だ。そこで、僕たちはページ上にこれら3つ全てを取り入れておきたいと考えている。3つのうちの1つに到達しさえすればもう大丈夫という脱出口みたいなものを設けようとしているんだ。待って、よし心拍は問題ないけど、雑音があるな。それってただ芝刈り機を使っているだけかもしれないね。license)に基づいて編集しています。共感いただけましたら、いいね!シェアいただけますと幸いです。(アソボデザイン)へようこそ!デザインの制作に関わることは何でもご相談ください。ロゴマーク・パッケージデザインまで幅広いグラフィック・広告デザインに対応いたします。デザイン制作だけでなく、印刷から納品まで一貫して対応(※)しており、展示会・キャンペーン・販促宣伝活動等に貢献致します。黒の在り方を感じる様々なカードデザイン参考例2020年1月24日バラ苗専門店のフェア開催DMデザインを作成しました。専門学校のセレモニー(葬儀)をイメージしたハガキデザインを作成しました。専門学校のエアラインをイメージしたハガキデザインを作成しました。専門学校のブライダル(結婚式)をイメージしたハガキデザインを作成しました。銀行振り込みの他、各種クレジットカードでのお支払いにも対応しています。ロゴデザイン作成例DVD・CDジャケット作成例ウェルカムボード作成例ピックアップNEWS書籍「実用的!折りチラシデザイン」に作成したチラシが掲載されました。書籍「タイトルまわりのデザイン表現」にチラシデザインが掲載されました。書籍「実用的なチラシデザイン」にデザインが掲載されました。デザイン総合情報誌「MdN」にWEBサイトが掲載されました。インディーズCDの制作ガイドに、デザイナーとしてのインタビュー記事が掲載されました。内にデザインが掲載されました。制作デザインが展示されました。ご利用規約お問い合わせ平日11時〜18時は電話でのお問い合わせも承ります。電話は問い合わせ専用となります。見積もり・具体的な依頼の進行は全てメールでのやり取りとなりますので、予めご了承ください。】タイミングによっては営業時間内でも応対が出来ない場合もございます。その際はお問い合わせフォームをご利用ください。長期休業期間につきましても対応外となります。