Submit Search
React native felicaの紹介
2 likes
1,508 views
T
tanaka taro
Nseg 97発表資料
Software
Related topics:
React Native
Read more
1 of 39
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
More Related Content
PDF
ISPネットワーク運用で覗いてるもの
Taiji Tsuchiya
PDF
LibreOffice API について
Kenichi Tatsuhama
PDF
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
PDF
エンジニアのキャリアパスを考える 川村
wakamonog
PDF
IoTデバイスセキュリティ
Kentaro Mitsuyasu
PDF
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Hironobu Isoda
PDF
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
PDF
ChatGPT、 何が「できる」「みえる」ようになってきたのか!
Jingun Jung
ISPネットワーク運用で覗いてるもの
Taiji Tsuchiya
LibreOffice API について
Kenichi Tatsuhama
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
エンジニアのキャリアパスを考える 川村
wakamonog
IoTデバイスセキュリティ
Kentaro Mitsuyasu
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Hironobu Isoda
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
ChatGPT、 何が「できる」「みえる」ようになってきたのか!
Jingun Jung
What's hot
(20)
PDF
セキュアエレメントとIotデバイスセキュリティ2
Kentaro Mitsuyasu
PDF
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
PDF
IIJmio meeting 16 スマートフォンがつながる仕組み
techlog (Internet Initiative Japan Inc.)
PDF
とある情報の超整理術
Masahito Zembutsu
PDF
実践イカパケット解析α
Yuki Mizuno
PDF
IPv4/IPv6 移行・共存技術の動向
Yuya Rin
PDF
ドキュメントを作りたくなってしまう魔法のツールSphinx
Takayuki Shimizukawa
PDF
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Kiyotaka Doumae
PDF
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
PPTX
SageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
tomohiro kato
PDF
LakeTahoe
Yahoo!デベロッパーネットワーク
PDF
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
Shingo Kitayama
PDF
wakamonog6 インターネットの裏側の仕組み
Taiji Tsuchiya
PPTX
JSX 速さの秘密 - 高速なJavaScriptを書く方法
Kazuho Oku
PDF
大規模システムリプレイスへの道
Recruit Lifestyle Co., Ltd.
PDF
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Satoshi Matsumoto
PPTX
技術選択とアーキテクトの役割
Toru Yamaguchi
PDF
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
K Kinzal
PDF
クラウドネイティブトランスフォーメーションのススメ
Hiromasa Oka
セキュアエレメントとIotデバイスセキュリティ2
Kentaro Mitsuyasu
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
IIJmio meeting 16 スマートフォンがつながる仕組み
techlog (Internet Initiative Japan Inc.)
とある情報の超整理術
Masahito Zembutsu
実践イカパケット解析α
Yuki Mizuno
IPv4/IPv6 移行・共存技術の動向
Yuya Rin
ドキュメントを作りたくなってしまう魔法のツールSphinx
Takayuki Shimizukawa
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Kiyotaka Doumae
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
SageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
tomohiro kato
LakeTahoe
Yahoo!デベロッパーネットワーク
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
Shingo Kitayama
wakamonog6 インターネットの裏側の仕組み
Taiji Tsuchiya
JSX 速さの秘密 - 高速なJavaScriptを書く方法
Kazuho Oku
大規模システムリプレイスへの道
Recruit Lifestyle Co., Ltd.
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Satoshi Matsumoto
技術選択とアーキテクトの役割
Toru Yamaguchi
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
K Kinzal
クラウドネイティブトランスフォーメーションのススメ
Hiromasa Oka
Ad
Similar to React native felicaの紹介
(18)
PPTX
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
Masami Yabushita
PDF
AOSPをミラーしてみた
kinneko
PDF
クラスメソッド第4回登壇資料 RxRealm
Daisuke Nagata
PDF
Phoenixを使った案件でリリースまでに起きた問題と対応
ndruger
PDF
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fumiya Sakai
PDF
RxSwift x APIKit
Kosuke Usami
PDF
React Native GUIDE
dcubeio
PPTX
Zealup - React
Masahiro Yanou
PDF
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
UnityTechnologiesJapan002
PDF
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
PPTX
6th oct2012 kobeit_webintents
Kensaku Komatsu
PDF
NoSQL and JavaScript 2013-02-09
WakandaJA
PDF
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
PDF
Mobile + HTML5
Shinobu Okano
KEY
AlfrescoとSolr(中編)
Ashitaba YOSHIOKA
PPTX
Dotnetconf2017
Yoshiyuki Taniguchi
PDF
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
Hikari Fukasawa
PDF
Storybook web-and-circleci
Jesse Katsumata
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
Masami Yabushita
AOSPをミラーしてみた
kinneko
クラスメソッド第4回登壇資料 RxRealm
Daisuke Nagata
Phoenixを使った案件でリリースまでに起きた問題と対応
ndruger
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fumiya Sakai
RxSwift x APIKit
Kosuke Usami
React Native GUIDE
dcubeio
Zealup - React
Masahiro Yanou
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
UnityTechnologiesJapan002
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
6th oct2012 kobeit_webintents
Kensaku Komatsu
NoSQL and JavaScript 2013-02-09
WakandaJA
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
Mobile + HTML5
Shinobu Okano
AlfrescoとSolr(中編)
Ashitaba YOSHIOKA
Dotnetconf2017
Yoshiyuki Taniguchi
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
Hikari Fukasawa
Storybook web-and-circleci
Jesse Katsumata
Ad
React native felicaの紹介
1.
React Native Felicaの紹介 @gogoroya
2.
自己紹介 ・Twitter @gogoroya ・所在 長野市 ・最近やってる事 Node.js、Golang、React、React
Native、Kotlin
3.
React Native Felicaとは
4.
React Native Felica
とは React Native + Felica https://github.com/goroya/react-native-felica React NativeでFelicaを扱うライブラリ(自作)。 ※Androidのみサポート。 昨日リリース。現在も開発中。 何ができる? Felica(ICカード)の読み書き
5.
React Native Felicaをなぜ作った? ・React
NativeでKururu解析しようと思った時、 Felicaを扱えるライブラリがなかったから ・JavaScriptでFelicaの解析ロジックを書きたかったから ・Githubスターほしい。とても欲しい。 https://github.com/goroya/react-native-felica
6.
Felicaについて
7.
Felicaとは? ・ソニーが開発した非接触型ICカードの技術方式 (Wikipediaよ り) ・Suica、ICOCA、KURURU等はFelica方式のICカード ・NFC type-F
通信方式
8.
React Nativeとは
9.
React Nativeとは ・React.jsでAndroid, iOSのアプリを作れるフレームワーク ・UIがネイティブ(WebViewじゃない)実装 =>
パフォーマンスがいい ・ロジックはJavaScript、ネイティブ依存処理はプラットフォーム毎の言語 (Java/Kotlin/Swift/Object-C)で書ける。
10.
React Nativeと類似するフレームワーク ・Cordova, Ionic
-- WebViewベース ・NativeScript -- Angular & Nativeベース ・Weex -- Vue.js & Nativeベース ・Flutter -- Dart & Nativeベース (最近話題) <私見> React NativeはNativeとの連携コードが上記より書きやすい気がする。
11.
なぜReact Nativeを選んだのか? ・React派だから ・サードのライブラリが豊富 ・NativeとJavaScriptとの連携コードが書きやすかったから
12.
React Nativeを使ってみた感想 ・コードの変更が即反映(ライブリロード)されるので快適 (Android Studioみたいにビルドで待たされない) ・UIのコーディングが簡単 (AndroidのAPIを知らなくても大丈夫) ・NativeとJSの連携が書きやすい
13.
JSからNative(Android)関数を呼び出す方法(1) Android側 ※細かいところは省略 Native側(Kotlin) @ReactMethod fun connect(promise:
Promise) { try { if(this.felicaLib != null){ this.felicaLib!!.connect() promise.resolve(null) }else{ promise.reject("connect()", Throwable(“Error”)) } }catch (e: IOException){ promise.reject("connect()", e.message) } }
14.
JSからNative(Android)関数を呼び出す方法(2) JavaScript側 JavaScript側 const { RNFelica
} = NativeModules; (async () => { RNFelica.connect(); })();
15.
React Native Felicaの使い方
16.
React Native Felicaのインストール方法 ・インストール npm
i -save react-native-felica or yarn add react-native-felica ・Native コードの取り込み react-native link react-native-felica
17.
React Native Felica
が提供するAPI ・AndroidのNfcFクラスのAPIのラッパー ・React Nativeが捕捉可能な Androidのライフサイクルイベント ・Felica コマンドに対応するメソッド ・SuicaとKururuの解析メソッド
18.
React Native Felica
API Android NfcF APIラッパー (1) import RNFelica from “react-native-felica”; (async () => { // 例) AndroidにNFCが搭載されているかを取得 const nfcHave =await RNFelica.haveNfc(); // 例) AndroidでNFCが有効になっている事を確認 const nfcEnable = await RNFelica.enableNfc(); })();
19.
React Native Felica
API Android NfcF APIラッパー (2) 例) NFC-TypeFの生コマンドを送信する場合 import RNFelica from “react-native-felica”; (async () => { await RNFelica.connect(); //データ長(先頭)以降の送信データを配列で渡す const data = await RNFelica.tranceive([0x06, 0,1,2,3,4,5,6,7, 1,0x0f,0x09,0x80,0x01 ]); await RNFelica.close(); })();
20.
React Native Felica
API React Nativeが捕捉可能な Androidのライフサイクルイベント (1) コード例) RNFelica.on(RNFelica.EVENT.ANDROID_ON_HOST_RESUME, async () => { console.log(“Hello ANDROID_ON_HOST_RESUME”); }); イベント一覧 ANDROID_ON_NEW_INTENT ANDROID_ON_ACTIVITY_RESULT ANDROID_ON_HOST_RESUME ANDROID_ON_HOST_PAUSE ANDROID_ON_HOST_DESTROY
21.
React Native Felica
API React Nativeが捕捉可能な Androidのライフサイクルイベント (2) <APIの使いどころ> RNFelica.on(RNFelica.EVENT.ANDROID_ON_HOST_RESUME, async () => { // 動作中のアプリが優先してFelica検出のイベントを捕捉する処理 await RNFelica.enableForegroundDispatch(); }); RNFelica.on(RNFelica.EVENT.ANDROID_ON_HOST_PAUSE, async () => { //上記処理による設定の解除 await RNFelica.disableForegroundDispatch(); });
22.
React Native Felica
API Felica コマンドに対応するメソッド Felicaの仕様書で規定しているコマンドを関数化。 コマンドについてはFelicaカードユーザーズマニュアル (https://goo.gl/GxFbWN)参照 import RNFelica from “react-native-felica”; // Felicaを検出するとイベント(FELICA_DISCOVER)が発生 RNFelica.on(RNFelica.EVENT.FELICA_DISCOVER, async () => { await RNFelica.connect(); const polling = await RNFelica.polling(0xFFFF, 0x00, 0); const polling = await RNFelica.requestService(0xFFFF, [0x01]); const polling = await RNFelica.requestResponse([0,1,2,3,4,5,6,7]); const polling = await RNFelica.readWithoutEncryption([0,1,2,3,4,5,6,7], [0], [1]); const polling = await RNFelica.writeWithoutEncryption([0,1,2,3,4,5,6,7], [0], [0], [0]); const polling = await RNFelica.searchService([0,1,2,3,4,5,6,7], 0); const polling = await RNFelica.requestSystemCode([0,1,2,3,4,5,6,7]); await RNFelica.close(); });
23.
React Native Felica
API FelicaとKururuの解析メソッド API使用方法のサンプル実装。 KururuとSuicaの解析ロジックを実装。 RNFelica.on(RNFelica.EVENT.FELICA_DISCOVER, async () => { await RNFelica.connect(); const result= await RNFelica.analyze(); await RNFelica.close(); });
24.
React Native FelicaでKururuを 解析するために やったこと
25.
1.とりあえずKururuをダンプしてみる FilicaAnalyzer(Windows用)を使ってみてKururuをダンプしてみる。 ※http://buttaiya.com/Shop/felica/FelicaAnalyzer.htm
26.
2.履歴らしきところにあたりをつける ここ(サービスコード0x000F) に履歴が入っているっぽい
27.
3.Kururuのデータフォーマットを調べる 解析してくれた人がいた https://blog.atgw.jp/archives/2624
28.
4.バス停留所コードを調べる 停留所コードを公開してくれている方がいた。 http://mackiee.cocolog-nifty.com/re_nagano/2017/12/kur uru-b21f.html
29.
5 React Native
Felicaでデータを読み出す import RNFelica from “react-native-felica”; RNFelica.on(RNFelica.EVENT.FELICA_DISCOVER, async (event) => { await RNFelica.connect(); for (let i = 0; i < 10; i++) { const data= await RNFelica.readWithoutEncryption( event.idm, [ 0x000F ], // サービスコード [RNFelica.makeBlockElement(0, 0, i)] // ブロック番号0~9を指定 ); console.log(data) } await RNFelica.close(); });
30.
デモ
31.
デモのコード https://github.com/goroya/react-native-felic a/tree/master/packages/RNFelicaExample
32.
React Nativeライブラリ を作るのに便利だった ツール
33.
React Native Libraryを作るのに便利だったツール(1) react-native-create-library ライブラリ作成の雛形を作ってくれる https://github.com/frostney/react-native-cre ate-library
34.
React Native Libraryを作るのに便利だったツール(2) Lerna ・monorepo用ツール ・babelで採用されてる ・単一のリポジトリで複数のパッケージ(NPM)を管理できる ・ライブラリとExampleを別々のパッケージで管理するため に使ってる
35.
React Native Libraryを作るのに便利だったツール(3) RubyMine(IntelliJ) ・React
Nativeをサポートしてる ・JSdocによる補完が効く
36.
React Native Libraryを作るのに便利だったツール(4) ESDoc https://esdoc.org/ コード・ドキュメント生成ツール ES6に対応している RXJSとかに採用されてる
37.
React Native Felicaの今後
38.
今後の計画 ・ユニットテスト(Jest)書く ・API ドキュメント書く ・リファクタリング(主にJSの部分) ・型定義ファイル作成(TypeScript) ・Android Native処理の非同期化(Asynctask) ・iOS対応(iOSがFelica関連のAPIを開放したら)
39.
最後に 開発のモチベーション維持の為、 Githubスター、issueください。 お願いします。 https://github.com/goroya/react-native-felica
Download