はじめに
自己紹介をします。
現在、IT企業で働く若手エンジニアです。
しかし、エンジニアと言っても、プログラムは大学で画像処理をやっていた程度のため、
システム開発などの知識はほとんどありません。
一応、この記事を読む人がいるかもしれないので、どのようなレベルかをお伝えするためにスキルについて簡単に列挙します。
- 国立大学の修士卒
- 大学時代にはC言語でopencvを主に用いて画像処理を経験
- 応用情報資格試験取得(逆にそれ以外は特になし)
- アプリ開発経験はインターンでAndroid Studioは使用したことがある程度
経緯
そもそも、なぜ表題のようなことを始めようかと思ったのか。
それは話すと長くなるので簡単に。
職場でもモバイル開発において、Flutterというクロスプラットフォームでの開発を行ったこと。
その際に、CI/CDの仕組みに非常に助けられたことから、それを自分でもできるようになりたいと考えました。
自分の将来のキャリア的に本当に必要になるか分からないスキルですが、鉄は熱いうちに打てということで、MacBookProを購入して開発に乗り切った次第です。
目的
表題にもある通り、自作のアプリを作成して、その作成の過程においてCI/CDを学んで行こうという流れになっています。
具体的なアプリの機能としては、ラーメンレビューアプリを構想しています。
と言っても大勢の人で共有するのではなく、
- ラーメンを食べたらアプリを起動
- 写真をアップロード
- レビューを記載
- 「完了」したら、自分のGoogleスプレッドシートに写真とレビューと位置情報が載る
のような構想をしています。
そして、CI/CDの構想としては
- MRをあげる際にはCI(UTとE2E)が走るようにする
- MRが通った際には、Slackに通知がいく
- tagをPushするとその時点でのapk/ipaが作成される
とします。まだ具体的ではないですが、後々詰めていきましょう。
開発方法
Flutterの勉強として、以下の書籍を一通り勉強してからアプリの作成に移ろうと思います。
https://book.mynavi.jp/ec/products/detail/id=108125
上にアプリの機能は上げたけど、あくまで技術を学ぶために分かりやすく目標設定しているだけなので、
アプリの完成までは時間かかると思います。
期限感
ひとまず、一連のCI/CDができるようになるまでに3ヶ月とします。
使用するツール
- Flutter
- Android Studio
- Xcode
- Git Lub
- JIRA
- Slack
終わりに
色々な人の手や知恵を借りながら実施していきます。
仕事の合間にやるので進捗は芳しくないかもしれませんが、必ず完成まで持ってくようにします。
自分の成長日記になることを祈って、ここで締めさせていただきます。