## プロジェクト要約
最新技術のキャッチアップを兼ねた自社アプリ開発。
## チーム構成・規模
|担当|人員|
|-|-|
|プロダクトマネージャ 兼 フルスタックエンジニア|1名|
|企画 兼 開発サポート|1名|
|外注:エンジニア(クラウドワークスなど)|0〜数名|
|外注:イラストレーター|1名|
|外注:3Dモデラー|0〜1名|
|外注:声優|0〜1名|
## 期間
8年10ヶ月
## チーム内での役割
受託開発に繋がりそうな技術を中心に、最新技術のキャッチアップを兼ねた自社アプリ開発。フルスタックエンジニアとして、ほぼすべての実装を自ら行う。開発速度を上げるためにクラウドワークスなどでメンバーを集め、数名で開発する場合もあり。また、新メンバー育成中で将来的には受託案件にも参加させる計画。技術以外の部分は可能な限り外注し、プロダクトマネージャとして管理することで、効率よくアプリをリリースする。
### 参画に至った経緯
当時はまだまだ使いづらいアプリが多かったため、シンプルで使いやすいアプリの開発を開始。
短期間でAndroid/iOSの両アプリをリリースするため、マルチプラットフォーム開発を採用。
PhoneGap(Cordova), Cocos2d-x, Unity, Flutter, Capacitor と実績を重ね、
さらに注目されるようになったFlutterの実績を再び積み上げています。
### 作業の流れ
1. 企画
シンプルなアプリの中で問題点があるものを探し、
マルチプラットフォーム開発できそうなものを企画。
競合アプリが増える中で生き残るため、エンドユーザー様の立場で
シンプルで使いやすいアプリを企画するよう心がけた結果、
Android/iOSを合わせて、100万ダウンロードを達成している。
1. 技術調査
未経験の技術があれば、ミニマムプロジェクトを作り調査。
可能な限り既存のライブラリやフレームワークを活用する。
1. 設計
まずはシンプルに設計し、設計 - 実装 - テストを繰り返し、
使用感が向上するよう務める。
1. 外注管理
可能な限り外注を採用し、新技術のキャッチアップに注力する。
実際には、以下の外部リソースを活用した。
- クラウドワークス
- イラストレーター
- 3Dモデラー
- 声優
1. 実装
製作に躓いた場合、検索して公式サイトやQiitaやZennから情報収集し、
足りない点はStack Overflowで質問し、それでも足りない部分は
クラウドワークスでも情報を集めた。
1. テスト
テストツールは用いないが、境界値など経験上問題の起きやすい部分は注力する。
## 環境
### エディタ
- Visual Studio Code
- Android Studio
- Xcode
### ネイティブアプリ
#### Android
- Java
- Kotlin
#### iOS
- Objective-C
- Swift
### クロスプラットフォームフレームワーク
- Unity
- Flutter
- Capacitor + Nuxt.js / Vue.js (SPA)
### サーバサイド
- JavaScript / Nuxt.js / Vue.js (SPA / SSR)
- C#.NET(netcoreapp / Npgsql / AWSSDK.S3 / AWSSDK.RDS / Newtonsoft.Json)
### AWS
- EC2
- RDS
- S3
- CloudFront
- Route 53
- API Gateway
- DynamoDB
- Lambda
### Hosting / CDN
- Netlify
- CloudFlare
### その他
- AdMob
- Firebase
- Analytics
## 所感
最新技術のキャッチアップを継続しつつ新メンバーの育成を進めて、より多くの案件を受注できるよう努める。