「動かして学ぶ!Flutter開発入門」著者のkazutxt様へインタビューしてみた。

2023.06.13

2021年にzenn.devで公開された「Flutter実践入門」が「動かして学ぶ!Flutter開発入門」として翔泳社より出版されました。今回の出版を記念して著者のkazutxt / 掛内一章(NTTコムウェア株式会社)様へインタビューを行いました。


— この度はインタビューにご協力いただきありがとうございます。まずは、kazutxt様の普段の活動についてお聞かせください。 普段からFlutterはよく利用されているんですか??

kazutxt:

直近2~3年はアジャイル開発に力を入れています。自身での開発も行いますが、組織にアジャイル文化を浸透させ、アジャイル開発ができるエンジニアをどう育てていくかなどの、組織や仕組みづくりにも注力しています。

今回の本はFlutterに関する内容になりますが、実は普段の業務ではFlutterを使うことはなく、完全に個人の趣味の範囲だけで使っています(笑)。 業務では、フロントサイドはReact、サーバーサイドはPython、インフラはAWSを使うことが多いですね。

アジャイル開発に力を入れる以前は、スマートシティやIoTの分野で、新規ビジネスの企画やPoC開発や会社間の調整などを行っていました。

プライベートなところでは、エンジニア仲間と一緒に5,6年前から小さな技術者コミュニティを運営しています。月に1回程度、皆で興味のあるテーマを持ち寄り、勉強会のような形で活動を行っています。私は、FlutterやアジャイルやAWS関連の話題を話すことが多いですね。

執筆活動としては、大学時代に情報処理技術者試験の過去問解説のWebサイトを運営していて、これが執筆や情報を整理して公開する活動のはじまりでした。社会人になってからも技術記事を書くことが多く、そのうちの一つが今回の本の執筆に至りました。


興味のある技術領域は生成系AIやブロックチェーン、IoT関連など幅広い技術に関心があります。

— 最近の分野で特に好きな技術や注目している分野などがあれば教えてください。

kazutxt:

直近では、ChatGPTやNovelAIなどの生成系AI、それ以前はPlayToEarnやIoTの分野に注目していました。

ChatGPTなどの登場によって、これまでAIが苦手としていた人間の感覚的な部分や曖昧さも処理可能になってきたと感じています。もともとAIは、特定の分野の課題解決に利用が限定されがちだったと思いますが、課題はありつつもChatGPTはその自由度と汎用性が非常に高く、それが大きな変化をもたらしたと感じています。

生成系AIをより高度に使っていくための、プロンプトエンジニアリングやプロンプトインジェクション対策などをどうやって勉強していこうかという焦りも含みつつ、注目しています。 ChatGPTに関する面白い使い方やAIエンジニアのロードマップなどが整備されたら、記事や解説本などの執筆も行ってみたいと思っています。

また、1年程前からは"PlayToEarn"の分野にも注目しています。現実世界の活動とゲーム性と収益とブロックチェーン技術の融合は非常に面白いと思いました。ただし、これらのバランスを保つのは非常に難しいようにも見えます。さらに、同様の考え方から派生した"MoveToEarn"や"SleepToEarn"、"LearnToEarn"なども今後どのように変化していくのか楽しみにしています。

その他にも、IoT機器を使ってスマートハウスっぽいことをしたり、業務改善の一環で自動化Botを構築したりと、技術に関しては、結構雑食で幅広く何にでも興味を持つタイプですね(笑)


「分かりやすさ」にこだわりをもって執筆したところ500ページ以上のボリュームになりました

— 「動かして学ぶ!Flutter開発入門」が翔泳社様から出版されますが、執筆にあたり力をいれたポイントなどがあれば教えてください。

kazutxt:

今回の執筆にあたって様々なこだわりポイントがありますが、「分かりやすさ」にはかなりこだわりを持って執筆しました。

今回の本も含めて私が執筆するものはすべて、一番の読者は未来の自分だと考えています。今はすべてを覚えていますが、Flutterから離れ5年後などの未来に、再びFlutterを学びなおすことがあったときに、自分自身が迷わずすぐに使える情報にすることを目指しました。

そのため、本に書いてある手順やプログラムをそのまま実行すれば、確実に再現できるように再現性や前提条件を何重にも確認しています。特に、ライブラリやクラウドサービスの更新などで将来動作しなくなる可能性もあるので、留意点をメモや注意として細かく残すことで、読者がこの本の通りに動かせば確実に再現できることを目指して執筆を行いました。 サンプルコードも大量に掲載しているので、初めてFlutterを学ぶ方でも非常に理解しやすいと思います。

初稿でコンテンツを確定させた後は、文章をわかりやすくするための推敲作業にもかなり力をいれました。日々、文章を推敲し「文章に曖昧さがないか」や「もっと伝わりやすい表現はないか」を検討し、「てにをは」の使い方など細部まで何度も見直しました。 全体で約30万文字と約450枚の画像があり、1周通して確認するだけでも大変な作業なのですが、最終版の提出までに20-30周程度の推敲を行いましたので、非常に分かりやすい内容にできたと思っています。

ページ数としても560ページほどあるため、辞書ぐらいの厚さになっています。振り返ってみるとかなり大ボリュームな本になりましたね(笑)

日常的に「教えることは教わること」だと思っています。本や記事の執筆では、読者へ情報を伝えると同時に、自分自身への学びも多くあると感じています。


— すごいこだわりですね! 執筆にもかなり時間がかかったのではないでしょうか?

kazutxt:

執筆にはかなりの時間がかかりました。普段はエンジニアとして働いていますが、平日は仕事が終わってから3~4時間、週末は半日強ぐらいの時間を執筆にあてていました。

Zenn Bookでの公開前後の半年程度と、翔泳社様からお話を頂いてから出版するまでの1年弱は、プライベートの時間はほぼ全てこの本の執筆に使っていました。

元々は「Flutterでモバイルアプリを作りたい」というモチベーションで勉強をはじめたことがきっかけでしたが、「こんなに簡単にモバイルアプリを作れるんだ!」ということに感動して、この感動を他の人にも伝えたいというモチベーションが強く生まれたので、出版まで高い熱量を持って執筆することができました。


これから初めてモバイルアプリを作ってみたい方やエンジニアリングを学んでみたい方にもFlutterはおすすめです。

— Flutterを学ぶ方には初学者の方もいらっしゃるかと思います。その方たちに向けたアドバイスとかはありますか?

kazutxt:

この本を読んで頂ければと思います(笑)。

実は私はもともと、モバイルアプリ開発で挫折したことがある人間です。かなり前になりますが、Flutterがリリースされる前にJavaでAndroidアプリを開発しようとしました。

その当時は、世の中に情報が少なかったことなどもあり、環境構築やAPI仕様の理解が難しく挫折しました。そんな私でも簡単にモバイルアプリを作れたのがFlutterなので、モバイルアプリに興味がある方は、気軽に挑戦して頂きたいと思っています。

環境構築は1~2時間程度でできるような内容なので、身構えることなく、軽く遊んでみようという感覚で初めてみてください。

Flutterは、一種類の言語(Dart)だけでAndroid/iOS/Web/デスクトップアプリが一度に開発できるという素晴らしいメリットがあるので、是非、この便利さを実感して頂けたらと思います。


— ありがとうございます!Flutterはこれからはじめて開発をはじめてみたいような初学者の方が多く学ばれる言語かと思います。ITエンジニアをこれから目指す人に対して、なにか学び方のおすすめ方法などはありますか?

kazutxt:

Flutterに限らず、まずは自分が興味を持てることを探してみるのがよいと思います。面白いと思うことを見つけて、「どういうものなんだろう?」、「どんな仕組みになっているんだろう?」、「ここを変えたらどうなるんだろう?」というエンジニアの基本的な好奇心をもつことが大切だと思っています。

そして、何か具体的なアウトプットを作ることも大切だと思います。個人的な活動であれば、仕事に関係のない自己満足であっても良いと思いますので、自分の学んだことや作ったものを社外やインターネット上に公開して、どのように受け取られるかを知ることも学びになると思います。Zenn Bookや記事を執筆してみることもおすすめです。

アウトプットを公開することに抵抗を感じる方もいらっしゃるかもしれませんが、個人情報や秘密情報を秘匿した上で、情報源と内容の根拠を細かく記載して公開すればトラブルになることはないので、是非挑戦して頂きたいです。


— 私もFlutterにチャレンジしてみたくなりました(笑)読者の方へ、最後に一言お願いします!

kazutxt:

プログラミングが好きでモバイルアプリを作ってみたいという方は、一度Flutterを触ってみると楽しい経験ができると思います。

環境構築に時間はかからず、無料ではじめることができるので「つまらなかったらやめればいい」というぐらいの気軽な気持ちでやってみて頂きたいです。

エンジニアが根源的に求める「わかった・できた・楽しい」という達成感・満足感を味わいたい方は、Flutterで遊んでみてはいかがでしょうか。