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
830
CI/CD と DX (Developer Experience)
keima
3
1.5k
AmebaアプリでのCI改善
keima
0
870
Other Decks in Technology
See All in Technology
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
340
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
1
220
フィンテック養成勉強会#54
finengine
0
180
5min GuardDuty Extended Threat Detection EKS
takakuni
0
160
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
620
怖くない!はじめてのClaude Code
shinya337
0
240
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
140
rubygem開発で鍛える設計力
joker1007
2
220
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
220
SalesforceArchitectGroupOsaka#20_CNX'25_Report
atomica7sei
0
250
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
220
asken AI勉強会(Android)
tadashi_sato
0
110
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Typedesign – Prime Four
hannesfritz
42
2.7k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Statistics for Hackers
jakevdp
799
220k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Become a Pro
speakerdeck
PRO
28
5.4k
Making Projects Easy
brettharned
116
6.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Speed Design
sergeychernyshev
32
1k
Designing for humans not robots
tammielis
253
25k
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