アプリ開発のすゝめ
IT技術
きっと再現性のある身につけ方
(株)ライトコードでモバイルアプリケーションメインで色々開発している笹川(ささがわ)です!
今回は2月にライトコードで行われた社内LT会での発表スライド内容を外部向けに書いていきたいと思います
笹川は気づいたらスマホアプリ開発を始めて10年以上経っていたので、それについてLT会やブログで書こうと思ったものの、さすがにまとめきれないと判断したのでアプリ開発にスコープを当てました
個人開発をする上でそのプラットフォームのアプリ開発をしつつ技術力を身につける内容を軽くまとめてみました
業務における進め方については各社の研修課題が一番です
この資料の内容は「業務外の時間でやるならきっとこれが良さそうだ」という内容となっています
- そろそろ他言語、他プラットフォームのスキルを身につけたい
- モバイル開発をしてみようかな
なんて思ってる人への役に立てば嬉しいです
今日から君はアプリエンジニアだ!
1.「ぼくのかんがえたさいきょうのあぷり」はこれ
アプリを作る上がまず一番最初にやることは本を読むことでもなく、環境構築をすることでもないです
「使ってみたい」「作ってみたい」最高のアプリケーションを1つ考えましょう
それがあなたのモチベを保つ野望です
私の夢のような(すごく稼げそうな)アプリはGoogleレビューのようなものでした
その為に、段階を踏んで、その時その時に身についている実装方法や機能で出せそうなアプリをどんどんリリースをしました
アプリは完成したけど、訴求力弱くてすぐクローズしました
2.機能一覧を作ります
自分の考えた最強のアプリ
機能は多数にあり、使いやすい最強なもののはずです
思いつく限りメモでもスプレッドシートでもいいから書き出します
この機能一覧があなたの成長の鍵になります
あとでこの機能一覧は何度も使うので思いつく限りたくさん書きましょう
3.ここで環境構築
環境構築ではIDEの準備がメインになりますが、プラットフォームによってはアカウント作成なども必要になります
実際にコードを書く前に調べて準備をしましょう
実機が必要な場合は実機もあると望ましいですが、ない場合はシュミレーター等でも問題ないです
最近はPCの性能次第では問題なく利用できます
4.HelloWorldは電卓から
一番最初に作りたいのは15桁まで使える電卓アプリです
これはどの言語、プラットフォームをやる上で同じです
なぜ電卓なのか
- シンプルなUI実装
- ユーザー入力と出力など
- 言語仕様や型の理解をしやすい
- 条件分岐、ループ、例外処理など
- 0除算の理解
- 言語によって挙動が違う
小さい機能から実装できるようにしていくのが結局一番覚えます
4.いつものTodoリスト
次に作りたいのはTodoリストアプリです
これもどの言語、プラットフォームをやる上で同じです
なぜTodoリストなのか
- プラットフォームにあったDBの操作を覚えられる
- APIを作れる人はAPIを用意しても良いかも
- 非同期処理も理解できる
- デファクトがPFごとに違ったり3〜5年単位で入れ替わるのでデファクトと流行りをそれぞれ理解できると良い
5.機能一覧の簡単な機能から
ここ以降は最後に作りたいアプリケーションの機能ごとに作れるアプリがないかを考え、思いつく限りのアプリを開発していきます
よくある機能としては、メッセージ機能、Push通知、データ同期、アカウントあたりでしょうか
その途中でAPIの作成の必要があれば一緒に学習します
もちろん1つのアプリを肉付けしていくのも良いと思います
モバイルアプリにおいてはFirebaseが提供しているサービスが様々な機能の基盤として利用できます
でアカウントやネットワーク上にあるDB、クラッシュ検知、プッシュ通知など
もちろんサーバーを用意してAPIを作った方が自由度は高いのでおすすめです
私の例(他にもあるけど入りきらない)
- 電卓アプリ
- 消費税と割引計算
- ゲームイベントポイント計算機
- ポイント計算と履歴
- イベント用の特殊なポイント計算
- ローカルDB(SQLite)
- Realmに移行
- Firebase各種
- 自サバAPI設置(後付け)
- シークレットイベントの通知
- TwitterAPI経由のTL検索
- Push通知
- シークレットイベントの過去ログ
- シークレットイベントの通知
- 広告表示(後付け)
- 設計パターン
- MVP、Repository
- Flutter化(後付け)
- ポイント計算と履歴
- 地図から口コミアプリ(最初のゴール)
- 自サバAPI設置
- GPSでの店登録
- アカウント機能
- 口コミ機能
- 軽いメッセージ機能
- Google
- 住所検索
- 地図表示
- 自サバAPI設置
- ゲームのログインボーナス通知アプリ
- ローカルDB(ObjectBox)
- 時間による通知
- 設計パターン
- MVVM
- リファクタリング
6.ユーザーの声は力になる
ユーザーに使ってもらう状態であれば作るより先のことを見ないといけなくなります
「どうしたら使い続けてもらえるか」
「新しいユーザーに使ってもらうには」
「利益を産むには」
「コストを抑えるには」
この経験は開発でも要件定義、要求整理などで少し役に立ちそうです
一人で黙々と開発を続けていても途中でだるくなります
絶対どこかで倦怠期きます
ただ、自分のアプリをエゴサして誰かに「神ツール」と言われれば人間はそれだけでモチベが回復します
なのでリリースはどんどんしましょう
(エゴサ結果)
完成したアプリからリリースしていきましょう
今回のまとめ
- 目標は大きいのと小さくて短いのをセットに
- 1つ1つの成功体験こそ成長の糧
- 個人開発だといろんな経験ができる
実際はこのあたりを意識しつつあれば細かい学習方法はどうでも良いのかもしれません
業務向けの研修課題を作る場合もこのあたりを意識して作成すると良いものを作れると思いますが、研修にかけられる時間は有限ですので、どこまで簡略化して質を高めるかが重要かもしれませんね
おまけ
LT会で出た質問と回答を載せようと思います
Q.儲かった?
イベント計算アプリがトータル2〜3万円くらいでサーバー利用料とドメイン登録・維持費でとんとんでした
Q.今まで作ったアプリで一番満足のいったアプリはどんなアプリですか?
ずっと不満残っており満足いったアプリはないです。もしかしたらものすごい儲かったら満足いくかもしれません
Q.全アプリの累計DLどれくらい?
2024/2/13時点で3000は超えてるようです
ライトコードでは、エンジニアを積極採用中!
ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。
採用情報へ
新潟生まれ新潟育ち本業はモバイルアプリエンジニア。 日々、猫(犬)エンジニアとして活躍中!