FlutterJX通信社のアプリエンジニアのぬまっち(@numatch2552)です。普段はAndroidエンジニアをやっています。1年ほど前に技術書ビブリオバトルの記事を書いた者です。早いものであの記事から1年が経ちました。勉強会のメインに選定しようと思いました。新しいプラットフォームでの勉強会って、参加者の環境構築で躓くことが多いですよね。いう自分も経験があります。最初はFlutterのハッカソンを考えていましたが、Flutter未体験の参加者が多い状態なので頭を悩ませました。モブプログラミングでやってみようそこで思いついたのは、モブプログラミングと掛け合わせることでした。モブプログラミングとは下記の記事を参考にさせて頂きました。知見の共有という点ではモブプロが最適に思えました。モブプロも初めての実践でしたが、「やればきっと出来る!」くらいの勢いで挑みました(笑)どこまでを目指すのか社内勉強会は2時間なので、その範囲でどこまで作るのかを事前に考えようと思いました。モブプロ未経験者が集まって進めるので、スピードは上がらないことが予想されます。下記の仕様を考えました。最初の画面(main.dart)画面中央にテキスト・ボタンがあるボタンの押下で2番目の画面に遷移する2番目の画面(second_page.dart)FloatingActionButtonがあるFABが押下されるとリストが描画されるFABが押下される度にリストの項目が増えていく当日イメージしやすいように、事前にこちらで簡単なアプリを作成しておきました。モブプロに入る前に参加者に見て貰うことで、どこまでをゴールにするかが明確に伝わったかなと思います。勉強会当日12人によるモブプログラミング当日、勉強会を開催する時間になると参加者が集まってきました。その数12人!(事前に把握しておけよ、と)経験者を除くと10人が未経験者でした。これでモブプログラミングが成り立つのかと正直焦りましたが、もうやり遂げるしかありません。始めようとしてすぐに問題が発覚です。USキーボードとJISキーボードがあるのです。JX通信社では好きな方のキーボードを選ぶ事ができます。(ちなみに自分の業務用MacBookはUSキーボードです。自分のMacBookをみんなで回していけばモブプログラミング出来るだろう、と考えていましたがJIS派のエンジニアもいるので、頭を抱えました。ここでメンバから「複数のワイヤレスキーボードを接続すればいける」と助言を頂いて助かりました。初っ端から躓きましたが、社内から両方のキーボードを揃えてきてスタートです。最初の画面を作る基本的に経験者はノータッチですが、本当に詰まった時は助言する形で進めました。「とりあえずMaterialAppってのを使うといいみたい!」main関数から最初を画面を呼び出しところから始まり、ツールバーを表示する方法などをみんなで調べながら進めていました。勉強会風景みんなDart言語も初めてなので、コンパイルエラーの解決方法も一苦労です。「何かが足りないってエラー出てますね。」(言語の好みの話題も出てきて、個人的に興味深かったです。)ドライバーを5分交代で次々と変えていきながら、ナビゲーターがサポートする形で進めていきました。StatelessWidgetとScaffoldWidgetを使って最初の画面が形作られます。ButtonWidgetの実装で詰まった時の事が印象的でした。みんなで意見を出し合って仕様を満たすRaisedButtonが選ばれました。経験者がアロー関数で実装する方法を紹介して最初の画面が完成します。使う必要が出てきます。FloatingActionButtonの実装や、表示するList内容の定義まではすんなり迷う事なく進んでいたと思います。Button押下時の実装方法は前の画面で分かってきましたが、中々画面の表示を更新させる方法が分からずにドライバーが交代していきました。経験者が助言しなければ厳しいのではないか、とも思っていました。setState()を組み合わせることでbuildが再度コールされる事に辿り着きました。勉強会風景2画面表示が更新された時、自然と歓声が湧き上がったのがとても印象的でした。ナビゲーターが知見を共有しあって実装の解を見つけ、みんなで進捗を祝う。モブプログラミングの醍醐味を味わえた瞬間だったと思います。2時間という決まった枠組みの中で目標としていた仕様を満たしたアプリが出来上がりました。完成したFlutterアプリ開催してみて正直始まるまでは上手く進行できるのか、決められた枠組みの中で目標としたアプリが出来るのか、不安でいっぱいでした。抜群のチーム開発力を発揮して、みんなでモブプログラミングを進めることが出来て嬉しかったです。終わってみればJXエンジニアのメンバがFlutterに対して興味津々であったことに、非常に助けられたと思います。モブプログラミングとの相性が良いのではないか?と感じる事も出来ました。Flutterの可能性も再発見出来たので、嬉しく感じる勉強会になったと思います。リプレイスします...2021-10-27属人化しがちなR&Dをチーム開発するためのJX通信社での工夫こんにちは!JX通信社でMLエンジニアのファンヨンテです。インターンでお世話になっている、コウゲと申します。Corp.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。