【感想】個人開発でiPhoneアプリをリリースしてみて

プログラミング

こんにちは、Kohei(@koheinishino_)です。

2020年3月に『Desires』というアプリをAppStoreにリリースしました。

誰の手も借りず自力でアプリを公開した経験は、様々な面で自分を成長させてくれました。

個人開発の過程を振り返って、感じたことや今後の方針をまとめていきたいと思います。

わたし自身のこと

簡単な経歴

1995年生まれです。

公立高校の普通科、4年制私立大学の化学科を卒業しました。

そして東証一部上場のSIerに新卒で入社し、1年10ヶ月で退職。

2020年3月現在、転職活動中です。

プログラミング経験

新卒で入社したSIerの研修で初めてプログラミングに触れました。

実務ではVB.NETという言語をつかって製造業向けのWindowsアプリを開発。

主に1〜4名の小規模な開発を担当しましたが、大規模なチーム開発の経験はほとんどありません。

今まで設計や運用・保守を意識した開発ができていなかったので、

これから勉強していきたいと思っています。

なぜiPhoneアプリ開発をしようと思ったのか?

理由は3つあります。

  • 転職活動用のポートフォリオとするため
  • Windowsアプリ開発と似ていたため
  • 自分がほしいアプリを思いついたため

転職活動用のポートフォリオとするため

SIerではなくWeb系の企業でスキルアップしたいと思い転職を考えたのですが、

業務でWeb系の言語経験がなく実績として話せるものがありませんでした。

なので新しく言語を勉強し、そのアウトプットとしてポートフォリオをつくろうと思いました。

Windowsアプリ開発と似ていたため

今まで業務で使用していたVB.NETは画面を作成する際に、

テキストボックスやラベルなどのオブジェクトをドラッグ&ドロップで配置できます。

HTML/CSSやJavaScriptで画面を描画することに慣れていなかったので、

Webアプリではなく直感的に操作しやすいモバイルアプリ開発をやろうと思いました。

自分がほしいアプリを思いついたため

私は給料のうち「50,000円だけ好きに使っていい」というマイルールをつくっており、

毎月ほしいものとその値段をiPhoneのメモに手打ちして管理していましたw

さすがに面倒だなと思ってAppStoreを探したのですが、

「名前と金額をリストで管理して合計金額を表示するアプリ」が意外とない…。

(※あったらすみませんw)

ExcelのSUM関数は機能が多くて重いし、メモるまでの初動が遅いので却下です。

というわけで「ないなら自分でつくるか」という発想に。

iPhoneユーザーなので、SwiftでiOSアプリをつくることにしました。

アプリ開発のスケジュール

おおまかなスケジュールは以下の通りです。

2019年9月絶対に挫折しないiPhoneアプリ開発「超」入門 第7版」を読み、
サンプルアプリをつくりながらSwiftを勉強
2019年10月あんまさ / フリーランス」さんのYouTubeチャンネルを見て、
サンプルアプリをつくりながらSwiftを勉強
2019年11月基本設計、詳細設計
2019年12月実装
2020年1月実装(※ 月末に退職)
2020年2月実装
2020年3月AppStoreにアプリを申請し、無事リリース

個人でアプリ開発をするメリット

Swiftのスキルが身につくこと以外にも良いことがたくさんありました。

  • 0から1を生み出す大変さがわかる
  • 自己管理能力が高まる
  • エンジニアの仕事を好きになる

0から1を生み出す大変さがわかる

アプリの機能やデザインは当然すべて自分で決めなければならず、決めなければ前に進みません

私はアプリ開発の過程で何度も決断疲れの状態に陥り、その度に

「世にサービスを出すまでにこんなにも考えなければいけないのか」と感じました。

しかし、それと同時に「チーム開発でさらに効率的にクオリティの高いサービスをつくれる」ことを確信しました。

規模が大きくなる分、大変さも増すとは思いますが、

チームで協力してつくりあげたサービスをリリースしたときの気持ちは格別なんだろうなと想像していますw

個人開発の経験から「自社サービスの立ち上げに携わる」という目標ができました。

自己管理能力が高まる

アプリ開発の時間を捻出し、その時間集中して取り組むストイックさが必要です。

私の場合、下記の生活スタイルを徹底していました。

  • 平日は18:00に退勤し、近場のスターバックスで21:00まで作業
  • 休日はスターバックスやマクドナルドで6時間ほど作業
  • 退職後はコインスペースの月額会員になって毎日6時間ほど作業

「家での作業」「飲み会」「友人からの誘い」はすべてNGにしました。

まだ完璧とは言えないので、自分を律する仕組みづくりを追求していきたいと思います。

エンジニアの仕事を好きになる

アプリ開発のモチベーションが続かなくなったとき、どうすればもっとプログラミングにハマれるか考えました。

個人的に最も効果があったのは、

「シリコンバレーの一流エンジニアと同じ技術を使って仕事をしている」

と思うようにすることですw

休憩中にGAFAのオフィスの画像とかを見てモチベーションを高めてました←

これからもプログラミングにハマりつつ、技術を突き詰めていきたいです。

過去の自分に伝えたいこと

初めてアプリ開発する人にも伝えたい内容になります。

それは「アプリ開発の本当の目的を常に意識すること」です。

アプリ開発の本当の目的を常に意識する

自分の目的を深く掘り下げられていないと、遠回りをしてしまいます。

私のアプリ開発の目的は「ポートフォリオにすること」としていましたが、

本当の目的は「AppStoreへのリリースを経験すること」でした。

コードが汚いとか、デザインがダサいとか、機能がショボいとかはどうでもよかったのに、

可読性の高いコードとは何かを調べ始めたり、流行りのライブラリを調べて導入してみたり

ゴールに近づかない行動をとってしまい、リリースがどんどん後ろ倒しになってしまいました。

本当の目的=具体的な行動の結果」を定めて常に意識することで、ゴールに近づく行動ができます。

今後の方針

今回リリースした『Desires』については、下記のようなことを考えています。

  • デザイン:自分で勉強して実装してみる、もしくは外注してみる
  • 機能:「リストを複数作成」「ローカライズ」等の機能を追加する
  • リリース環境:Bitrise, fastlaneを勉強して、CI/CDパイプラインの構築する
  • パフォーマンス分析:Firebaseを導入する
  • ビジネス:マネタイズや集客を考慮して、本格的なスモールビジネスにする
  • その他:Java, Kotlinを勉強してAndroid版をリリースする

また、他のアプリのアイデアもいくつか浮かんでいるので、

次はFlutter等のクロスプラットフォーム開発もやってみたいと思いました。

おわりに

独学でのiPhoneアプリ開発を振り返ってみました。

はじめは転職用のポートフォリオとして開発をスタートさせましたが、

完成後はサービス開発についての知識を深めたいと思うようになりました。

また、あまり何かを成し遂げたことのない自分にとって、

初めて自分で決めて最後までやりきった経験になりました。

これをきっかけに技術者としてチャレンジの幅を広げていきたいと思います。

最後に宣伝にはなりますが、よろしければダウンロードしてみてください👇

ここまでご覧いただきありがとうございました!🙇‍♂️

コメント

タイトルとURLをコピーしました