はてなから「DroidKaigi 2019」に2名のエンジニアが登壇します!

こんにちは、 id:yutailang0119 です。
開催目前の DroidKaigi 2019 に、はてなから id:takuji31id:funnelbit が登壇しますので、トーク概要のご紹介と登壇者の2人からコメントをもらってきました!

クロスプラットフォーム開発3種の神器 React Native / TypeScript / GraphQL - DroidKaigi 2019

概要

はてなではこれまで、Webサービスと連携するスマートフォンアプリをいくつも開発・メンテナンスしてきました。このようなアプリは、サービスをグロースさせるために、Webアプリと歩調を合わせて開発していく必要があります。Android / iOSの二つのプラットフォームで展開するアプリを改善していくのは途方もないことです。
継続的にアプリを改善していくために、私たちは新たにReact Nativeの採用を決めました。開発言語には当然ながらTypeScriptを選び、また新規にGraphQL APIも開発しています。
React Nativeはただクロスプラットフォームのコードを書けるだけではなく、ReactというWeb業界で進化を遂げてきたライブラリの、先進的なパラダイムを利用できるところにも大きなメリットがあります。また型による恩恵を受けるためにTypeScriptを利用しています。
長い期間スマートフォンアプリを開発していると、REST likeなAPIが徐々に腐敗していくことにも課題感を感じていました。これを解決するためにGraphQLを採用することにしました。アプリを改善する過程で表示要素の増減がある場合でも、GraphQLであれば小さな変更で対応でき、メンテナンス性も維持できます。
React Native + TypeScript + GraphQLのシナジーは、アプリの開発に大きな変化をもたらしました。Apolloライブラリを利用することで、ReactからGraphQLを効果的に利用でき、またGraphQLのクエリからTypeScriptの型を生成することもできます。これらの効果によって、クライアントサイドで必要な情報をクエリに記述していちどに取得し、型で保護されたまま一気にUIへと流し込むことができました。
いいことづくめのようですが、苦労した部分もあります。パラダイムがすっかり変わってしまったため、設計もいちから考え直す必要に迫られました。またネイティブコードとReact Nativeのハイブリッドで開発するために、コードの棲み分けや連携に気を遣う必要がありました。さらにReactで高いパフォーマンスを発揮させるために必要だったこともあります。
ReactNative及びGraphQLの台頭によって、今、我々スマートフォンアプリエンジニアの開発が大きく変わろうとしているのかもしれません。本セッションでは、React Native + TypeScript + GraphQLを実際に既存のアプリに取り入れたことで知り得たアプリケーション構成方法について、皆さんにノウハウを共有したいと思います。

受講対象者

  • React Nativeを使ってAndroid/iOSアプリを素早く開発したい人
  • React Nativeのプロダクション導入を検討している人
  • GraphQLの導入に興味がある人
https://droidkaigi.jp/2019/timetable/70695
id:takuji31 コメント

はてなのスマートフォンアプリエンジニアはこれまでKotlinを導入したり、はてなブックマークAndroidアプリをリノベーションしたりなど数々のことに挑戦してきました。
今回発表するReact Nativeの導入はこれまでの「一つのプラットフォームでの開発効率やメンテナンス性の向上」というアプローチとは打って変わって「複数のプラットフォームをまたがって素早くアプリを開発する」点に的を置きました。
またプログラミング言語としては、はてなではなじみのあるTypeScriptを採用しAPIにもGraphQLを用いました。
時間の都合上全てをお伝えすることはできませんが、その中でも特筆すべきポイントをセッションで皆さんにお伝えできればと思っています。

id:funnelbitコメント

はてなではこれまで、アプリ開発において様々な挑戦を行ってきました。その中でも今回の取り組みは一際大きな挑戦です。既存のプラットフォームにて用意されたフレームワークによる開発のみならず、React Native、TypeScript、 そして GraphQL という、既存の開発とは根本的に異なるパラダイムをハイブリッドアプリという形で取り入れたのです。全てが新しい挑戦であり、やってみないとわからない様々な困難がありましたが、同時にメリットも多く有りました。今回の発表にて、どのようにアプリを作成したのかを共有し、また懇親会等においてぜひ皆さんとお話できたらなと期待に胸を膨らませています。どうぞよろしくお願い致します。

おわりに

はてなでは、Android技術コミュニティの発展に貢献したいという思いから、昨年に引き続き、本年も DroidKaigi の スポンサー をしています!
DroidKaig 2019 には登壇する2名の他にも社員が参加する予定です!

f:id:takuji31:20190205155205j:plain


会場でみなさまとお会いできることを楽しみにしています!