Flutterを一年触って、エンジニアとして良かったこと
- はじめに
- GitHubで他の人が書いたコードを読む習慣がついた
- APIリファレンスを読むのに抵抗がなくなった
- 言語・フレームワーク(Flutter/Dart)の最新の動向について調べる習慣がついた
- 英語のドキュメントを読む抵抗がなくなった
- iOS/Android両対応のアプリをリリースできた
- 技術記事をそこそこ見ていただけた
- 今後は?
はじめに
2020年5月現在、Flutterを2019年の3月から初めてから1年と少し経ったので、Flutterを触ってきてエンジニアとしてよかったことについてまとめたいと思います。
Flutterが持つ特徴として、以下があると思っています。
- 比較的新しいフレームワークである(React Nativeなどと比較)
- 日本語の情報が少ない
これらは、ちょうど良い制約、またはチャンスとして捉えることができる と思っています。どういった良い制約、チャンスがあったのか、説明していきたいと思います。
GitHubで他の人が書いたコードを読む習慣がついた
特に mono0926 さん や ntaoo さん、kaboc さん、rrousselGit さん のコードを読みました。
正直理解が及ばない部分も多かったのですが、 そもそもあまり今までGitHubでコードを参考にすることがなかったので、良い書き方について多くの点を学べました。サンプルコード全体を読むことで、ディレクトリ構成やクラス、Widgetの切り分け方も学ぶことができました。
Flutterの場合、アーキテクチャ関連のトレンドの変化が速い(ScopedModel -> Provider、BLoC -> ChangeNotifierなど)印象なのですが、 解説記事だけでは(英語の場合が多いということもあり)理解できない部分も多かったため、サンプルコードを読む機会が増えました。これらの努力は時間がかかるという意味で制約ともとれますが、 必要に駆られて今まであまりやれなかったことがやれるようになったという意味では成長につながるよい機会となりました。
また、Flutterは時々バグがあることもあるので、Flutter公式のIssueをみることも多く、英語で書かれたIssueを読む機会も大幅に増えました。
APIリファレンスを読むのに抵抗がなくなった
Flutterを触り始めてから、Dart Docs形式のAPIリファレンスを読むことが増えました。例えば、以下のようなものです。
この手のリファレンスはわかりにくい印象があったので、代わりにわかりやすい日本語の解説があればそちらを読んで、とりあえず使えればOK、というように今までは考えていたのですが、最新のライブラリ(最近ではfreezed, state_notifier)では日本語の解説が少なく、リファレンスを読むことも多々ありました。
しかし慣れてくるとDart Docs形式のAPIリファレンスは割と読みやすく、こちらを読んだ方がわかりやすい場合もあり、かつ一時情報なので安心感もあるという風に思える用になりました。 苦手意識を克服できました。
言語・フレームワーク(Flutter/Dart)の最新の動向について調べる習慣がついた
Flutterは半年に一回ほどのペースでstable版のアップデートがあります。その際にmediumで公式からアナウンスがされるのですが、昨年末に記事が出た時からはこのアナウンス記事をそのまま読むようになりました。
Flutterのアップデートの際には対応するDartのバージョンも上がるため、Dartについても同様のアナウンス記事が出されるのでそれも読んでいます。
今まではこういった言語やフレームワークについての記事は日本語の記事が出てくるまで読んでいなかったのですが、最近では公式の記事をそのまま読むようにしています。
これも今までは抵抗感があり読んでいなかったのですが、 実際に読んでみるとすぐ使える便利な機能も多かった ので、読むのが楽しみになりました。
これは FlutterがUI系のフレームワークでありすぐに試せるものが多い から、ということもあると思います。例えばiOSのアップデートの場合、自分が使わない機能も多く含まれていることが多い印象です(機械学習関連やSiriなど)。
英語のドキュメントを読む抵抗がなくなった
ここまでで同じようなことを書いていますが、調べ物をする際に 英語を読むことを強制される場面も多いので(英語のリソースは良質で読みやすいものが多い のですが)、次第に英語を読むことにも抵抗がなくなりました。
ただし、抵抗がなくなったというだけで別に英語力が上がるわけではないため、読むスピードはそんなに変わっていない気がします(苦笑
それでも読むまでの抵抗がなくなったのは、特に個人開発の際には大きいと感じています。
iOS/Android両対応のアプリをリリースできた
チーム開発ですが、「スタマチ」というアプリをリリースすることができました。詳細は以下の記事にあります。iOS/Android両方のアプリをリリースすることで、今まで使ったことのなかったGoogle Playへのリリースフローも経験することができましたし、より多くのユーザが利用できるアプリとしてリリースできたのが良かったです。
技術記事をそこそこ見ていただけた
2019年は、Qiitaやこのブログにそこそこまとまった分量の技術記事を複数投稿し、40-300いいね(LGTM)ほどもらえています。
記事自体も頑張って書いたのですが、Flutterが比較的新しいフレームワークであり日本語の情報が少ないため、多くの人にみていただけた のではないかと思います。
今後は?
今後は、Flutter関連の有名な方の真似をしていきたいと思っています。
- 新しいライブラリやトレンドに応じたサンプルアプリ制作(最近は state_notifierのサンプルを作りました)
- Flutter公式のGitHubの動向をwatchする
- 得た知識を技術記事としてまとめる(特に最新のもの)
今後もFlutterを通してエンジニアとして成長していきたいです。