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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
990
CI/CD と DX (Developer Experience)
keima
3
1.5k
AmebaアプリでのCI改善
keima
0
910
Other Decks in Technology
See All in Technology
AI時代の「本当の」ハイブリッドクラウド — エージェントが実現した、あの頃の夢
ebibibi
0
100
生成AIの利用とセキュリティ /gen-ai-and-security
mizutani
1
1.7k
AI時代のSaaSとETL
shoe116
1
130
マルチプレーンGPUネットワークを実現するシャッフルアーキテクチャの整理と考察
markunet
2
240
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
1
18k
Claude Code のコード品質がばらつくので AI に品質保証させる仕組みを作った話 / A story about building a mechanism to have AI ensure quality, because the code quality from Claude Code was inconsistent
nrslib
13
7.3k
Claude Codeの進化と各機能の活かし方
oikon48
22
12k
AIエージェント、 社内展開の前に知っておきたいこと
oracle4engineer
PRO
2
120
PMとしての意思決定とAI活用状況について
lycorptech_jp
PRO
0
110
脳内メモリ、思ったより揮発性だった
koutorino
0
320
OCHaCafe S11 #2 コンテナ時代の次の一手:Wasm 最前線
oracle4engineer
PRO
1
120
スクリプトの先へ!AIエージェントと組み合わせる モバイルE2Eテスト
error96num
0
170
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
14k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
470
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
480
Code Reviewing Like a Champion
maltzj
528
40k
Typedesign – Prime Four
hannesfritz
42
3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
190
Navigating Weather and Climate Data
rabernat
0
140
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
120
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