「React Native Meetup #7」に参加してきました

Swagger駆動開発と最新のRedux構成

  • andoshin11

API開発の問題点とSwagger

課題

  • 定義書のフォーマットどうする問題
  • 定義書のバージョン管理どうする問題
  • 実装待ちどうする問題
  • これら全部Swaggerでかいけつできる
定義書のフォーマットどうする問題
定義書のバージョン管理どうする問題
  • Git使おう
実装待ちどうする問題
  • スタブサーバ欲しい

Swagger

  • REST APIを作れる
  • json,yamlで定義できる
  • 定義書自動生成される
  • 関連ツールがとにかく多い
SwaggerEditer
  • Swaggerファイルの編集ツール
  • 即時構文チェック
SwaggeCodegen
  • APIスタブ生成ツール
  • SwaggerEditerに組み込まれてる
SwaggerUI
  • ブラウザで動くAPIドキュメント

Swaggerの開発フロー

いけてない運用例

  • SwaggerEditerで定義
  • サーバーをgenerate
  • zip解凍 & yarn install
  • SwaggerUI出力
  • yamlの入出力が手動
    • せっかくgit管理してるのに・・・
  • API更新の度にzipダウンロード解凍起動

もっとスマートに

swagger-editer-live
swagger-codegen

CodePush と Circle CI でリリースを高速に回す

NativeアプリをWebのようにリリースしていこうという話

CodePush

  • OTA(Over the Air)
  • microsoftが作ってる
  • ネットごしにJSコードをアップデートできる
    • nativeのモジュールは更新できない
  • VisualStudioAppCenter

CodePushのセットアップ

  • 公式に書いてある手順で簡単
    • CodePushをアプリに適用
    • CLIインストール
    • AppCenterに登録
    • リリース
  • アップデートのタイミング
    • ポップアップでアップデートするかだしたりとか
  • コマンドでリリースできる
    • RollBackもできる
  • githubと連動して動かせる

ReactNative開発を高速化させる技術

どんなツール使ったかの話

React Nativeで作る色々なジェスチャー

ジェスチャーの作り方

タップ

長押し

ダブルタップ

  • Touchable*系をラップして独自で作る
  • 前回タップとの間隔見て処理する

ドラッグ

  • PanResponder

スワイプ

  • PanResponder
  • 閾値を設定 -閾値を超えたらスワイプ発動

ピンチイン&ピンチアウト

  • PanResponder
  • gesturesStateの中の情報で拾える
  • native開発者視点で

ReactNavigation

  • transitionが違和感
  • 特定のタイミングで処理をはさみたいとかがしづらい

ReactNativeNavigation

  • RNとNativeのハイブリット対応してない

airbnb/native-navigaiton

自前で書いた

  • 自前でもけっこうできちゃう

BLE on React Native

BLEとReactNative

  • BLE
  • ハードウェアと協業
  • 技適取得済みチップを使うこと
  • react-native-ble-manager
    • react-native-bleはメンテされてない
  • セントラル
    • クライアント
  • ペリフェラル
    • サーバ
  • Androidだと処理が遅くてうまくいかないことも
    • 適宜waitすることで対応

メモ

  • pre-commitというnpmモジュール使うとcommitした時にnpm-script動かせる