今回は自分がスマホアプリを作った話を記事にしたいと思います。
作ろうと思った背景
自分は文系大学生なのですが、ゼミに入っておらずその関係で卒論を書かなくても卒業ができます。(イージー大学生)
2021年3月に卒業予定で、夏あたりから周りの友達が「卒論やばい〜😂」、「卒論どうしよう〜😅」と騒ぎ始めました。「俺は楽だぜっ!!」って思いつつも、自分の大学4年間の成果ってなんだろうってモヤモヤしてました。
学問自体は好きで面白かったのですが、通学に1時間半かかるのと授業がつまらなかったので行く気が起きず、効率よく単位をとることだけを考えて授業を受けていました。その代わりに1年生の終わりから興味のあったことを色々勉強して、効率(お金と時間)という観点からゼミには入らなかった次第です。(入ったんですけど、お金がかなりかかるゼミでやめました。そんな余裕のある家庭でもないので。)
色々勉強した中で一番ハマったのがプログラミングで途中だるくなったりもしましたが、独学期間2年、インターンも半年経験させて頂きました。また就活では、そんな経験も評価されて第一志望のIT企業に就職することもできました。
上記のような背景もあり、卒論の代わりに自分の大学生最後の成果物を作ろうと思った次第です。
使用技術とその理由
- flutter
- firebase
自分はWebのバックエンドが好きでwebアプリを大学2年生の時とかから作っていました。インターンの時もPHPでWebのバックエンド担当でした。
しかしながら、**「せっかくわざわざ思い立ってやるのに今までと同じことするのも違うんじゃないかな」、「どうせならこの際に知識を増やそう」**となんとなく思いまして、スマホアプリをやることにしました。
加えて、新しいものが好きなのでネイティブコードではなくflutter&firebaseに触れてみようと思ったしだいです。両OSで作れるのも魅力ですね。
アプリ概要
作ったアプリを一言でまとめると筋トレ記録アプリになります。
自分は筋トレが趣味で、この1年間は週4でジムにいくことを継続していました。重量の記録を伸ばす上で「過去と現状の自分を正しく理解することが重要だな」とトレーニングしていて感じたので、それを達成できるようなアプリにしました。
上記のスクリーンショットに加えてタイマー機能、ストップウォッチ機能を備えています。
flutter✖️firebaseで作ってよかったところ
両OSで起動するアプリを作れる点
当然ですが、クロスプラットフォームなので両方のOSで起動します。これはリソースが少ない時にはメリットになるでしょう。ちなみに開発はぼく1人で、二ヶ月で行いました。ただ、公開する時の作業が二倍なのはそれはそれでめんどくさいです。
学習コストが少ない
これは人によって分かれるところかと思いますが、dartの言語仕様やflutterの仕組み自体はすごくわかりやすいと個人的に思いました。少しでもプログラミングをやったことがある人は挫折せずにできるかと思います。
flutter✖️firebaseで作って難しかったところ
英語と格闘しなければいけない
英語が苦手な人は難しいかもしれません。色々実装する上で、ドキュメントは言わずもがな海外のtech系のyoutubeまで見ました。まだまだ日本語の情報は他の言語と比較すると少ないです。
内部でどう動いているのか理解するのに時間がかかる
自分が書いたコードではなく、flutter内部のレンダリングにおけるエラーが起きることがありました。その際は自分は二日間溶かしてエラーを解消しましたが、そういった部分の文献がまだ少ないのも事実です。
使ったライブラリ
状態管理にはproviderを使いました。
firebase_core
provider
firebase_analytics
firebase_auth
cloud_firestore
cupertino_icons
google_sign_in
intl
flutter_signin_button
gradient_app_bar
numberpicker
flutter_launcher_icons
flutter_native_splash
最後に
大学生活、webでもスマホでもアプリを作る経験をしたのでとても有意義なものになりましたが、裏を返せば専門性がないとも言えます。
なので今後は自分のフィールドを作ってもいいのかなと思いました。
社会人がんばるぞい!!(笑)