20201227_アウトプット(SNS認証によるログイン機能の実装・ユーザーインタビュー)
今日行ったこと 8時間30分
SNS認証によるログイン機能の実装 5時間30分
👉今日からスタート、60%進むユーザーインタビュー(2人にインタビュー)
👉インタビュー総時間:40分
👉インタビュー内容をまとめ・オリジナルアプリの練り直し:2時間20分
(ペルソナ・要件定義について練る・実装方法の検索)
新しい発見
SNS認証によるログイン機能の実装について(Facebook・Googleアカウント)
omniauth
(オムニオース)というGemを使うCSRF脆弱性(ログインしたままの状態を狙われて攻撃される)を対策するため、
omniauth-rails_csrf_protection
というGemも使う「env」は「environment(インバイラメント)」の略と知る。(「環境」という意味。そのままだ😅)
SNSによるユーザー認証を行うということは、入力すると、アプリケーションを通して、APIに対して「教えて」とリクエストする。
「教えて」の返事として、こちらが欲しいユーザーの個人情報と共に、「uidとprovider」が送られてくる。(Facebookの識別子何番のお客さんの情報どうぞ)
そのレスポンスが返ってくるタイミングと、ユーザー情報を保存するタイミングは異なるため、「uidとprovider」を保存するための別モデルを作成することを学んだ。(今回は、SnsCredentialモデル)
オリジナルアプリの構想について
ユーザーインタビューについて
いろんな方の「良い習慣」や「悪い習慣」などを聞いて視点が広がったのはもちろんのこと、以下のことに新しく気がつけた!
どんなユーザーに対して届けたいか(ペルソナ)と機能のずれ
自分が「ここまでやった✨」と上手にバランスを保てている人は、記録していなくても継続出来ている
👉「付けたい機能盛り沢山」な状態になりつつあったことを反省😅
👉ユーザーが解決したい問題はなんだろうか、それを実現するための機能は何か
👉途中、この機能ってどうやって実装するんだろう(Gem等あるのかな)と脱線
感想
今日までで合計9人にインタビューすることが出来た。(本当にありがとうございました)
機能をシンプルにする、というのが難しい。目的がぶれているとも感じた。(ペルソナの2年前の自分と今の自分、欲しいものがごっちゃ)
今日の反省としては、色々機能に夢が広がり、どんな風に実装するんだろう😍と、調べたこと。目的から逆算して、必要な機能を検索するのではなく、目的が曖昧なまま、「こんな機能あったら良いな」を色々調べていたため進まなかった。
必要な機能を実装したアプリはもちろんのこと、デザインパターンのようなルールに沿ったアプリを作りたい。(開発者にとっても良い→コードの再現性、見やすさ→改善がしやすいので後々ユーザーに還元)
予定の立て方、無理あったので方向修正しよう。
嬉しかったこととしては、「GitHubを使いながら、アプリを開発環境と本番環境で作っていくこと」について上達したこと。今まではその都度、カリキュラムを見直して「えっと、、次はこのコマンド」ってやっていたけれど、「自分がよく使うコマンド」メモを作り、「次はこれだな」と頭の整理が出来てきたこと。(なるべく手間を省きたい&綺麗に作りたいため、GitHubのプルリクのフォーマットなども「自分がよく使うコマンド」メモに貼り付けている)
覚書
ミニアプリ(目的:知識の引き出しを増やす)
コメント機能の実装
複雑な検索機能の実装
タグ付機能の実装
パンくず機能の実装
クレジットカード決済機能(ユーザーに紐付け)
エラーメッセージの日本語化(チャットアプリに追加実装)
プレビュー機能の実装・複数枚の画像投稿の実装
優先順位
(1)ミニアプリの作成(実装方法の理解)・個人アプリのためのインタビュー・DB設計等
👉12月29日(火)締め切り
(2)個人アプリの作成。
👉1月11日(月)締め切り(基本実装)
(3)(1)で学んだことを「フリマアプリ」あるいは「個人アプリ」に反映。
👉1月17日(日)締め切り
追加:(1)(2)(3)と同時並行で、PHPについても学ぶ。
身に付ける力(直近)
PHP7
ドメイン駆動開発
Docker
身に付ける力(ゆくゆく・覚書)
環境構築
環境変数などのOS知識
バージョン対応力
データベースをインポートする力・エクスポートする
GitHubActions×OpenAPIGenerator(APICilent)