駆け出しエンジニアが、独学でFlutterを学び、個人アプリをリリースしてみたので振り返ってみる

※2020年10月末追記
最近経歴詐称がトレンドになっているので一応書いておきます。

10月中旬にAndroidアプリの方はリリースできたものの、iOSの方は審査がなかなか通らず(iPadで起動できないとかなんとか)・・・
今後のマーケティング等を考えると、自分で作ったアプリとはいえ気が乗らなくなり、それに拍車をかけるように新アプリのアイデアが浮かんだので、iOSの審査は諦め、Androidもリリース停止しました。
なので、この記事はリリース後の運用やマーケティングに関して有益な情報はなにもないので、予めご了承ください。

↓ということで、ここから本題

こんにちは、きたじまです。

地方サービス業から、未経験で都内の自社開発企業にエンジニアとして転職し、現在はエンジニア1年生です。

未経験からの転職について、以前こんな記事↓を書いたのですが、今回は、転職後の活動についてお話ししたいと思います。

テーマはタイトルの通り、Flutterを学んだことについてなのですが、Flutterの技術的内容というより、開発→リリースを経験して得られたメリットについて書いていきたいと思います。

エンジニアスタートと同時に、Flutterの個人開発を始める

冒頭でも書いた通り、僕は未経験からRuby on Railsをメインに勉強し、エンジニアに転職しました。

本業では、今のところ既存サービスの運用・保守がメイン、ちょこっと新規機能の追加をやる程度で、バリバリコードを書いているというわけではありません。

爆速で成長している!という実感はないのですが、会社が安定している&フルリモートワークのおかげで、良くも悪くもストレスフリーな生活を送っています。

まだ1年目ということで、業務負荷も軽く、業務に関することは業務時間を使って学習できるため、プライベートを削って勉強しないと追いつかないということもありません。

そんな状況の中、友人の勧めでFlutterを使ったスマホアプリの開発を始めてみました。

幸いプライベートな時間は十分あったため、エンジニアとして入社したタイミングとほぼ同時に、個人開発をスタートしました。

開発スタート時点でのスキルレベル

「個人でスマホアプリ作ってます」と聞くとなんだかできるエンジニアっぽいですが、開発を始めた頃の僕は

・Railsでサービスは作ったが、複雑なロジックはかけない
・HTML、CSS使いこなせない(デザインがダサい)
・JavaScript? JQueryを一応使ったことあるけど正直よくわからん

というように、よくエンジニアになれたなというレベルでした(今も大したことない)。

スマホアプリ開発では、バックエンドはFirebaseに任せて、フロントをメインで作りました。(もちろん最初はFirebaseって何?状態)

転職活動でRailsのポートフォリオを作った際に、フロント部分の苦手意識があったため、スマホアプリ開発を通して、少しでもそこを改善できればと考えたわけです。

Flutterを始めてみて

Flutterでの開発を始めてみて感じたのが、まず楽しいということです。

Railsと比べるとQiita等の情報は少ないですが、公式ドキュメントが充実しており、それを参考に割とスムーズに開発を進めることができました。

ちなみに、公式ドキュメントは英語ですが、サンプルコードと見本のデザインがあり、英語苦手でも参考になります。(僕は英語が苦手なので、ほぼGoogle翻訳にもお世話になっています)

また、Firebaseがとても優秀&ライブラリが豊富なので、特に苦労せず機能を追加することもできました。

Flutterが楽しすぎて、開発したくて仕方がない!というほどではないのですが、途中で挫折することもなく、アプリリリースまで続けることができました。

もちろん、リリースしたからといって非の打ちどころがない完璧なサービスというわけではありませんが、アプリを世の中に出すという経験ができ、自分の中では多少の達成感を感じています。

Flutter開発で得られたもの

さて、自分でイチからアプリを開発して、というかFlutterを使ってみて得られたメリットですが、

1. Flutter&Firebaseに関する知見が深まった
2. 単純にコードを書くことで、プログラミングに関する理解が深まった
3. JavaScriptも書けるようになった

1については、まあそうだろという感じですし、本記事のテーマから逸れるので特に深堀りはしません。

大事なのは、2、3なのですが、やはり自分でコードを書くことで、エンジニアとしてのスキルは向上すると感じました。

もちろん、主に公式ドキュメントのコードを参考にして書くのですが、自分のアプリに適用するためには、まるまるコピペするわけにもいきません。

自分のアプリで動作するように修正する作業を通して、いろいろな発見や、新たな学びがありました。

また、Flutterで使用されるプログラミング言語であるDartは、JavaScriptに似ているため、いつの間にかJavaScriptもまあまあ書けるようになっていました。

JavaScriptのフレームワークである、Vue.jsを使ってWebサイトを作るなんてことも、割と簡単にできるようになっていたのです。

Firebaseを使うことで、フロントエンドとバックエンドの分業イメージもできた

近年では、Web開発=RubyやPHP、Pythonのサーバーサイド言語のみの開発ではなく、フロントエンドはVue.jsやReactといったJavaScriptのフレームワークを使用し、バックエンドと分けて開発するというスタイルが主流になっています。

僕自身、転職活動時からそのことを知ってはいたのですが、いまいち理解できておらず、ポートフォリオはRails(Ruby)のみで開発しました。

しかし今回、実際にバックエンドをFirebaseに任せてアプリ開発をすることで、フロントエンドとバックエンドの切り分けのイメージが掴めました。

バックエンドをFirebaseに丸投げする=勉強にならないと思っていましたが、そうでもなかったみたいです。

もはやモダンな開発のメジャーともいえるこの手法を、今更とはいえ理解できたのは、大きな収穫だったと思います。

これはメリットかどうかわからないけど

ちなみにもう一つ、アプリのリリース作業は結構大変ということも身を以て学びました。

ガイドラインが英語ということもあり、細かい部分まで事前に目が届いておらず、何度もフィードバックをいただきました。

また、開発中にiOS14がリリースされたこともあり、Xcodeをアップグレードしたり、Flutterをアップグレードしたり、Firebase関連のライブラリをアップグレードしたり・・・と、とにかくアップグレードの作業が面倒でした。

これから運用やマーケィングのフェーズに入っていくので、さらに色々と経験し、学びになればと思います。

最後に

さて、ここまでFlutter&Firebaseを使って開発してみて良かったよ!という話だったのですが、未経験からの転職という視点で見ると、Flutterがベストな選択とは言い難いかと思います。

・日本語の情報が少なめ
・求人もあんまり多くない

というデメリットもありますが、徐々に伸びてきている技術でもあります。

また、Web support for FlutterというWebアプリ用のフレームワークもあるため、将来的には需要が高まるかも?という感じです。

Flutter一択 !今すぐやれ!とは言えませんが、オススメではあるので、触ってみてはいかがでしょうか?

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
8
大学中退→地方サービス業→都内WEBエンジニア Flutter×Firebaseで個人アプリも作っています。 技術的な記事はQiitaで→https://qiita.com/yusuke_vp Twitter→https://twitter.com/yusuke_vp
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。