Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Native Modulesで実現する パスワード入力支援 (技術少なめLT版)
Search
Kouta Imanaka
June 18, 2019
Technology
0
2.1k
Native Modulesで実現する パスワード入力支援 (技術少なめLT版)
Kouta Imanaka
June 18, 2019
Tweet
Share
More Decks by Kouta Imanaka
See All by Kouta Imanaka
FlutterKaigi 2022: ホテルのルームキーをデジタルキー化して得られた気づき
keima
1
820
CI/CD と DX (Developer Experience)
keima
3
1.5k
AmebaアプリでのCI改善
keima
0
870
Other Decks in Technology
See All in Technology
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
140
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
1
240
型システムを知りたい人のための型検査器作成入門
mame
15
3.8k
vLLM meetup Tokyo
jpishikawa
1
220
工具人的一生: 開發很多 AI 工具讓我 慵懶過一生
line_developers_tw
PRO
0
150
TODAY 看世界(?) 是我們在看扣啦!
line_developers_tw
PRO
0
160
Agentic DevOps時代の生存戦略
kkamegawa
0
230
技術職じゃない私がVibe Codingで感じた、AGIが身近になる未来
blueb
0
120
「どこにある?」の解決。生成AI(RAG)で効率化するガバメントクラウド運用
toru_kubota
2
390
生成AIをテストプロセスに活用し"よう"としている話 #jasstnano
makky_tyuyan
0
160
堅牢な認証基盤の実現 TypeScriptで代数的データ型を活用する
kakehashi
PRO
2
220
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg and Trino Usecase in CADDi--
caddi_eng
0
120
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Making Projects Easy
brettharned
116
6.2k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
What's in a price? How to price your products and services
michaelherold
245
12k
Embracing the Ebb and Flow
colly
86
4.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Done Done
chrislema
184
16k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Writing Fast Ruby
sferik
628
61k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Raft: Consensus for Rubyists
vanstee
139
7k
Transcript
Native Modulesで実現する パスワード入力支援 (技術少なめLT版) IMANAKA Kouta 2019/06/18 #RNstartup #5
audiobook.jp オーディオブックは、耳で聴く本。 ナレーターが本を読み上げてくれるので、 目を使わずに読書を楽しめます。 Warning: オトバンクではiOS方面を重点的に見てくださるアプリエンジニアを募集中です! 詳しくは: https://findy-code.io/companies/405/jobs/
ある日の定例MTG
CS担当「パスワード忘 れたって問い合わせ めっちゃくる」
None
人間が忘れることはシ ステムに覚えさせれば いいのでは
None
実装方法
まずライブラリを探してみたが・・・ 都合の良いライブラリは見つからなかった ので自作することにしました
パスワードを覚えさせる仕組み • Android / Smart Lock for Passwords ◦ API
level >= 9 (Android 2.3) ◦ https://developers.google.com/identity/s martlock-passwords/android/ • iOS / Shared Web Credentials ◦ iOS >= 8 ? ◦ https://developer.apple.com/documentati on/security/shared_web_credentials
おまけ: 別のパスワードを覚えさせる仕組み • Android / Autofill Framework ◦ API level
>= 26 (Android 8.0) • iOS / Password AutoFill ◦ iOS >= 11 要求OSバージョンが比較的高めであるが、 RNにおいては TextInput#textContentType を 適切に設定するだけでよい
実装 • Android: Javaで実装 ◦ 当時Kotlin環境が整ってなかった(いまは整備済み) • iOS: Swiftで実装 •
RNとの接続: Native Modules ◦ https://facebook.github.io/react-native/docs/0.59/native-modules-i os ◦ https://facebook.github.io/react-native/docs/0.59/native-modules-a ndroid • 実装の深いところは5分で説明しきれないので省略!
実装でのハマりポイント • Native Modules側のPromiseの扱い ◦ Promise#resolve/rejectし忘れるとロックしてしまう ◦ JS側はasync functionで比較的安全に書けるが Native側はそうではないので気をつけないと抜けが発生する
• iOS/Androidの各実装における ダイアログの表示タイミングが微妙に違う ◦ 妥協したり調整したり...
None
まとめ • パスワードが自動入力される様は魔法のようだ • なにげに開発中のアプリのデバッグが捗る • Native Modulesはそれほど難しくはない ◦ ※Android歴10年目の感想です
◦ とはいえJS/TSから離れるので 言語間のコンテキストスイッチが気になる • 雑に案を投げたら実現してくれた同僚に感謝
「問い合わせどうですか」 「最近は来てないですねー」
✌
「でも最近間違って新しくアカ ウントを作られる利用者さん が増えているようです...」
「でも最近間違って新しくアカ ウントを作られる利用者さん が増えているようです...」 To Be Continued
THANK YOU (自己紹介) • 今中 幸太 • 株式会社オトバンク 所属 ◦
2019/09 ~ ◦ audiobook.jp アプリ (React Native) • Android開発者歴10年目 • カンファレンス誘導員 ◦ DroidKaigi (2015-2019) ◦ iOSDC 2018, Builderscon, etc… • @pside, GitHub: keima