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.2k
Native Modulesで実現する パスワード入力支援 (技術少なめLT版)
Kouta Imanaka
June 18, 2019
Tweet
Share
More Decks by Kouta Imanaka
See All by Kouta Imanaka
FlutterKaigi 2022: ホテルのルームキーをデジタルキー化して得られた気づき
keima
1
980
CI/CD と DX (Developer Experience)
keima
3
1.5k
AmebaアプリでのCI改善
keima
0
910
Other Decks in Technology
See All in Technology
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
200
Claude Cowork Plugins を読む - Skills駆動型業務エージェント設計の実像と構造
knishioka
0
290
聲の形にみるアクセシビリティ
tomokusaba
0
140
Eight Engineering Unit 紹介資料
sansan33
PRO
1
6.9k
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
380
Serverless Agent Architecture on Azure / serverless-agent-on-azure
miyake
1
160
AWS DevOps Agent vs SRE俺 / AWS DevOps Agent vs me, the SRE
sms_tech
3
330
20260305_【白金鉱業】分析者が地理情報を武器にするための軽量なアドホック分析環境
yucho147
1
190
ビズリーチにおける検索・推薦の取り組み / DEIM2026
visional_engineering_and_design
1
110
オレ達はAWS管理をやりたいんじゃない!開発の生産性を爆アゲしたいんだ!!
wkm2
3
370
EMからICへ、二周目人材としてAI全振りのプロダクト開発で見つけた武器
yug1224
5
470
Ultra Ethernet (UEC) v1.0 仕様概説
markunet
3
220
Featured
See All Featured
Thoughts on Productivity
jonyablonski
75
5.1k
The Curse of the Amulet
leimatthew05
1
9.7k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
330
Code Review Best Practice
trishagee
74
20k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
130
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Unsuck your backbone
ammeep
672
58k
Visualization
eitanlees
150
17k
Facilitating Awesome Meetings
lara
57
6.8k
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