Meguro.dev LT大会で「AppSyncを使ったアプリ開発を効率的に進める方法」を話してきました! #meguro_dev

Meguro.dev LT大会で「AppSyncを使ったアプリ開発を効率的に進める方法」を話してきました! #meguro_dev

Clock Icon2018.07.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

「AppSyncを使ったアプリ開発を効率的に進める方法」を話してきました

アマゾンウェブサービスジャパン株式会社様のオフィスにて、Meguro.dev LT大会 が開催されました。私はトップバッターとして「AppSyncを使ったアプリ開発を効率的に進める方法」を発表してきました!その内容をブログでご紹介します。

Meguro.devとは?

Meguro.dev はAWSの各サービスを道具としてアプリケーション開発を行う デベロッパーのための新しいコミュニティ です。

どのようにAWSを使ったアプリケーションを開発するか、具体的にどうコーディングしていくべきかといった主にアプリケーション開発の観点からもくもく会など実際に手を動かす(コードを書く)少人数制の勉強会を定期開催していく予定です(今回は特別回としてLT大会となっています)。

誰かの発表を聞くといった座学だけではなく、実習形式で手を動かして体得することを目的としています。したがって 基本的にコードを書くことを中心とした活動 となります。

もちろんAWS初心者の方も参加可能です。ただし、ハンズオンといったものはありませんのでご注意ください。AWSの人間も参加者として参加するので質問してもらったり一緒に考えることもできます。

今後のテーマや開催内容については有志のコアメンバーにより議論・検討していきます。

過去のイベントの様子は以下のブログを参考ください。

発表スライドはこちら

発表スライドをSpeaker Deckで公開しています。

AppSyncを使ったアプリ開発を効率的に進める方法

弊社のモバイルアプリ向けサービス「カスタマーストーリーモバイル」のメッセージング機能で、AppSyncを採用しました。その開発プロセスの中で分かった「AppSyncを使ったアプリ開発を効率的に進める方法」を発表しました。

スキーマの共有

iOSとAndroidでは、GraphQLで定義したスキーマをアプリ用に加工するまでに、以下のフローが必要になります。

  1. スキーマをAppSyncにデプロイ
  2. schema.graphqlschema.json を共有
  3. schema.graphql を元に mutation / query を作成
  4. 上記ファイルを元に aws-appsync-codegen (Android は Gradle) で生成
  5. 生成したソースコードをプロジェクトに組み込み

スキーマの変更のたびにこのフローが発生するので、スキーマの変更はできるだけ行わないようにしたほうが良いです。いかに堅牢なスキーマ定義をアプリ開発チームに提供する前に作り上げておくか、が重要になります。例えば CloudFormationでまとめておき、スタック(環境)をすぐに作れるようにしておく ようにしておき、事前にしっかりと動作確認をしておく必要があります。

デバッグ方法

AppSyncのデバッグは非常に大変なのが実情です。Management Consoleを使ってやり始めると、具体的には以下のような課題に直面します。

  • Management Consoleのセッションタイムアウトが発生し、ブラウザのリロードが必要になる
  • AppSyncのQueryコンソールに記述したQueryやMutationを他の開発者にシェアできない
  • 認証が入る場合のリクエストが不可能

この解決策としては create-react-app などを使って、JavaScript製クライアントを用意し、簡単にAPIを叩ける環境を用意しておく ことが有効です。手元で簡単にAPIを自由に加工しながらデバッグできる環境の整備が、最終的な開発効率向上に繋がります。

まとめ

私自身もAppSyncはまだ1プロジェクトでしか使っておらず、GraphQL自体も含めまだまだ勉強中です。使い倒してノウハウをどんどんブログでシェアしていきたいと思っておりますので、今後ともぜひ参考にしていただければと思います!

AWS DevDay Tokyo 2018が開催されます

今年はAWSのデベロッパー向けカンファレンスが「AWS DevDay Tokyo 2018」として10月-11月に開催されます!ぜひエントリーしましょう!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.