1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アプリエンジニアになってみて

〜あの時もっと「リリース」と「基礎技術」を勉強しておけば!〜

Gemini_Generated_Image_73kfuk73kfuk73kf.png


はじめに:「もっと◯◯を勉強しておけば!」と思った瞬間

エンジニアをやっていると、ふとした瞬間に

「あの時もっと◯◯を勉強しておけば…!」

と思うこと、ありますよね。

私の場合は、
「リリースの手順」「アプリのアーキテクチャ」
でした。

2020年ごろに Swift / Flutter でアプリ開発を始めてから数年。
最近は AI のおかげで開発スピードは爆速になり、バイブコーディング(AIとペアでコードを書く)が当たり前になってきました。

しかし振り返ってみると、

  • もっと早くリリース周りを学んでおけば
  • もっと早くアーキテクチャを固めておけば

「今よりもっと多くのアプリを世に出せていたはずだ」
という悔しさが、ずっと心のどこかにあります。

この記事では、そんな「後悔」から得た学びを、同じように成長したいエンジニアの方に向けて共有します。


2020年、アプリエンジニアとしてのスタート

私は 2020 年ごろから、主に Swift を使ってアプリ開発を始めました。

  • Swift:iOS ネイティブアプリ

画面を作って、画像を表示して、簡単なローカルDBを使って…。
「アプリっぽいもの」を作る ところまでは、正直そこまで苦労しませんでした。

しかし、ここで最初の大きな壁にぶつかります。

アプリが「できている」のに、ストアに「載らない」。

理由はシンプルで、

  • リリースのことを「重要な技術」として見ていなかった

からです。


最初の大きな壁:「リリースの仕組み」を知らない

当時の私は、リリースまわりがこんな感じでした。

  • App Store / Google Play の 申請フロー がよく分からない
  • 証明書・プロビジョニング・署名まわりが 「なんとなく面倒」 で後回し
  • 審査ガイドラインもちゃんと読んでいない

結果どうなったかというと、

  • 実装は終わっているのに
  • リリース作業が怖くて進まない
  • たまに申請してみてもリジェクトされて心が折れる

という、「もったいない状態」が何度も起きました。

今振り返ると、あの時の私は

「もっと早く公式ドキュメントやストア運用を勉強しておけば…!」

としか言いようがありません。


レッドオーシャン化したアプリ市場と、先行者利益の大きさ

気づけば、アプリストアには 200万本以上 のアプリが並ぶ時代になりました。
しかも、

  • 昔からある シンプルなアプリ でも
  • 長くストアに居続けているだけで
  • レビュー・DL・検索順位の積み上げで 今でも安定してダウンロードされている

というケースがたくさんあります。

ここで、もう一つの後悔ポイントが出てきます。

「もっと早く、もっとたくさんアプリをリリースしておけばよかった…!」

  • 2020 年当時、すでにレッドオーシャン化は進んでいましたが、
    それでも 今よりはまだ“マシ” な環境でした。
  • 「完璧なものができたら出そう」と考えている間に、
    市場はさらにレッドオーシャンに。

今になって思うのは、

  • 70 点でいいから、とにかく早くリリースしておくべきだった
  • 小さいアプリでも、とりあえずストアに置いておく ことがどれだけ大事か

ということです。


そして今:AI でバイブコーディングする日々

一方で、今は良い意味で別世界 になりました。

  • ChatGPT や各種 AI コーディング支援ツール
  • Flutter / Swift の実装サンプルをその場で生成
  • 「ここを MVVM っぽく書き直して」「この処理をリファクタして」と気軽に相談

気づけば、

  • 昔なら 1 週間かかっていた機能 → 数日で実装
  • 細かいユーティリティや画面 → その日のうちに形になる
  • 登壇資料自作アプリの紹介資料も、AI にたたき台を出してもらいながら一気に作成

という、まさに バイブコーディング時代 になりました。

しかし、ここにも落とし穴があります。

「そもそも自分が理解していないと、AI の提案の良し悪しが分からない」

  • Linux の基礎がわからないと、AI が書いたシェルスクリプトが
    危険なのか安全なのか 判断できない
  • PostgreSQL のインデックスやトランザクションの基礎がないと、
    それっぽい SQL を書いてもらっても 本番で詰む
  • アーキテクチャを理解していないと、
    AI による「一見うまく動くコード」が 将来の負債 になりやすい

ここで、再びあのフレーズが頭をよぎります。

「もっと早く、基礎をちゃんとやっておけば…!」


学び直したこと(アーキテクチャ / 基礎技術)

そこで私は、遅ればせながら 基礎の学び直し を始めました。

Linux:サーバで何が起きているかを理解する

  • LinuC レベル 1 相当の範囲をベースに、
    Linux のファイルシステム、プロセス管理、権限、ログ周りを学び直し
  • 本番障害時に
    • top, ps, journalctl, dmesg, df, du など
      基本的なコマンドで 状況を把握できる状態 を目指しました
  • これにより、アプリ側で「500 エラーが出た」際に、
    サーバ側に当たりをつけて調査できるように

PostgreSQL:遅いクエリの原因を自分で追えるように

  • EXPLAIN / EXPLAIN ANALYZE を使ったクエリ分析
  • インデックス設計の基本(B-Tree・複合インデックスなど)
  • トランザクション・ロック・N+1 問題

これらを押さえたことで、

  • これまでは「なんとなく動いているからOK」としていた SQL を
  • 「なぜこのクエリが遅いのか」「どこにボトルネックがあるのか」
    自分の言葉で説明できる状態 に持っていけました。

アーキテクチャ:将来の自分に優しいアプリ設計へ

  • MVC / MVVM / Clean Architecture の基本的な考え方
  • 依存関係の向き(UI → UseCase → Repository → Infrastructure)
  • テストしやすい構造を意識した責務の分割

Flutter でも Swift でも、

  • 画面(UI)
  • ビジネスロジック
  • データアクセス

をきちんと分離することで、

  • 機能追加で仕様が変わっても
    「どこを触ればいいか」が明確
  • バグが出ても、追うべき範囲が狭い

という状態を目指しました。


AIは「ショートカット」ではなく「増幅装置」だった

こうして基礎を学び直した上で AI を使うと、
見える世界が一気に変わりました。

  • 自分で設計したアーキテクチャに沿って、
    「このレイヤに書くべきコード」 を AI に生成させる
  • Linux / PostgreSQL の基礎がわかるから、
    AI が提案した設定や SQL の 良し悪しをレビューできる
  • 自分のアプリや登壇資料の内容を AI と一緒に整理して、
    より分かりやすいアウトプットに磨き込める

この経験から、私は AI を

「基礎をサボるためのショートカット」ではなく、
自分の基礎力を増幅する装置

として捉えるようになりました。


これからアプリエンジニアを目指す人へ

もし今この記事を読んでいるあなたが、

  • これからアプリ開発を始める人
  • すでにアプリを作り始めているけれど、リリースが怖い人
  • AI を使ってみたいけれど、基礎が不安な人

だとしたら、過去の自分に向けて、こんなメッセージを送りたいです。

1. 「作る」だけでなく「リリース」までをセットで学ぶ

  • App Store / Google Play の申請フロー
  • バージョニング・署名・リリースノート
  • 簡単な CI/CD(GitHub Actions など)

ここを後回しにすると、必ずどこかで詰まります。

2. Linux / DB / ネットワークの「最低限」は押さえておく

  • Linux コマンドでログを見る・リソース状況を確認する
  • PostgreSQL で簡単なスキーマ設計とパフォーマンスの基礎を知る
  • HTML / JavaScript / API / HTTP の基本を押さえておく

どれも「全部完璧に」やる必要はありませんが、
「何が分からないか分かる状態」 までは早めに行っておいた方がいいです。

3. アーキテクチャは「あとで」ではなく「最初から意識」する

  • 小さなアプリでも MVC / MVVM の骨格を意識しておく
  • ビジネスロジックと UI を分ける
  • 将来の自分が「ありがとう」と言ってくれる構造にしておく

まとめ:もっと早く「リリース」と「基礎技術」を勉強しておけば

振り返ってみると、私の一番大きな後悔は、

  • アプリを「作ること」ばかり考えて、
    「リリースすること」と「基礎技術」を後回しにしていたこと

です。

  • 早くからリリースフローを学んでいれば
  • 早くから Linux / PostgreSQL / アーキテクチャを固めていれば
  • 早くからストアに「数だけでも」アプリを並べていれば

今とは違う景色が見えていたかもしれません。

でも、過去は変えられません。
その代わりに今は、

  • AI をフル活用しつつ
  • 基礎技術をアップデートし続けて
  • 自分のアプリや登壇を通じて、学びを共有していく

という形で、少しずつリベンジしているつもりです。


おまけ:自作アプリはこちら

この記事で書いたような試行錯誤の結果生まれたアプリたちも、少しずつ増えてきました。
もしよければ、ストアも覗いてみてください。

ここまで読んでいただき、ありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?