Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
© 2021 iktakahiro Argon2 を用いたハッシュ生成機能を提供するライブラリを pub.dev に公開した話 2021.08.11 - Takahiro Ikeuchi Flutter Tokyo Meetup #16
Slide 2
Slide 2 text
© 2021 iktakahiro 池内 孝啓(いけうち たかひろ) 株式会社Hakali 取締役CTO ● @iktakahiro ● https://github.com/iktakahiro Flutter 歴2.5年, Go, TypeScript, Python
Slide 3
Slide 3 text
© 2021 iktakahiro おしながき 1. Argon 2 とは 2. fargon2 の概要 3. MethodChannel を活かしたパッケージづくりにまつわる Tips 4. 課題と困っていること ※ 本日のスライドはLT後にシェアいたします
Slide 4
Slide 4 text
© 2021 iktakahiro 20時間くらい前に公開しました! https://pub.dev/packages/fargon2 ※ LT駆動開発
Slide 5
Slide 5 text
© 2021 iktakahiro 動機 1. AES のための鍵導出関数が欲しかった(リサーチ目的) 2. 既存パッケージが欲しいものと違った 3. MethodChannel を使ったプラグイン開発をしてみたかった
Slide 6
Slide 6 text
© 2021 iktakahiro Argon2 とは? ● あるごん・つー ● 鍵導出(Key Derivation)関数の1つ ● 2015年に開催された Password Hash Competition にて優勝 ● パスワードハッシュの生成や、AES で用いる key の生成に利用できる ● https://github.com/P-H-C/phc-winner-argon2 ※ Argon2 そのものの解説ではないので、詳細は割愛!
Slide 7
Slide 7 text
© 2021 iktakahiro 今回つくったもの : fargon2 とは? ● ふぁるごん・つー ● Argon2 のハッシュ生成関数を Flutter アプリ上で気軽に扱えるように したもの ● 以下の2つのライブラリの Wrapper ○ Swift 実装 : CatCrypto ○ Kotlin 実装 : argon2kt ● Platform Specific なコードを実行するために MethodChannel を利用
Slide 8
Slide 8 text
© 2021 iktakahiro MethodChannel とは? ● Writing custom platform-specific code ● Flutter, Dart コードをつうじて iOS / Android ネイティブなコードや機能を 呼び出す仕組み ※ 概要については解説が多いので本日は割愛!
Slide 9
Slide 9 text
© 2021 iktakahiro MethodChannel を利用したプラグインを実装する流れ 1. プラグイン用に Flutter プロジェクトを作成 2. Dart のコードを書く 3. Android 用のコードを書く(今回は Kotlin) 4. iOS 用のコードを書く(今回は Swift) 5. 公開!
Slide 10
Slide 10 text
© 2021 iktakahiro 1. プラグイン用に Flutter プロジェクトを作成 template オプションを plugin に指定すること これで大体雛形ができる
Slide 11
Slide 11 text
© 2021 iktakahiro 2. Dart のコードを書く ※ コードは一部抜粋です
Slide 12
Slide 12 text
© 2021 iktakahiro 3-1. Android 用 Kotlin のコードを書く
Slide 13
Slide 13 text
© 2021 iktakahiro 3-2. Android 向けに依存関係を解決 build.gradle にパッケージ情報を追加
Slide 14
Slide 14 text
© 2021 iktakahiro 4-1. iOS 用 Swift のコードを書く
Slide 15
Slide 15 text
© 2021 iktakahiro 4-2. iOS 向けに依存関係を解決 .podspec にパッケージ情報を追加
Slide 16
Slide 16 text
© 2021 iktakahiro 簡単!! と思いきや 1. example ディレクトリのコードを iOS 向けにビルドするには example/ios/Podfile の編集が必要 2. テストが難しい(後述)
Slide 17
Slide 17 text
© 2021 iktakahiro 5. 公開! ● dart pub publish !! ● コードコメントや example の 有無などで PUB POINTS が変動
Slide 18
Slide 18 text
© 2021 iktakahiro How to use fargon2
Slide 19
Slide 19 text
© 2021 iktakahiro 課題と困っていること ● テストが書けない ○ そんな馬鹿なと思ったけど、書けない ○ setMockMethodCallHandler() のコレジャナイ感 ● Xcode のプロジェクトファイルがないので、Xcode で書けない ○ そんな馬鹿なと思ったけど、書けない 解決策求む!!
Slide 20
Slide 20 text
© 2021 iktakahiro 告知タイム
Slide 21
Slide 21 text
https://www.awarefy.app ありのままの自分を理解し、 ストレスと上手に付き合う
Slide 22
Slide 22 text
We’re Hiring!! ● UI デザイナ(採用強化中!) ● Web デザイナ ● アプリ開発エンジニア ● カスタマーサクセス https://hakali.co.jp/contact @iktakahiro