プログラミング

【手順解説】Swiftを使って個人でマッチングアプリを開発した話

Swiftを使って個人でマッチングアプリを開発した話

この記事で解決できる悩み

  • 個人でマッチングアプリを開発してみたい。
  • SNS系のアプリ開発をしてみたい。

このような悩みを解決します。具体的な記事の内容は以下の通りです。

この記事の内容
  1. 0から独学しマッチングアプリを開発するまでの流れ
  2. SNS系のサービスを作るために学んだ知識5つ
ミニマリストこうだい
ミニマリストこうだい
ミニマリストこうだいです。断捨離とプログラミングが趣味の大学院生です。

現在大学生の僕はプログラミングでアプリ開発の勉強を始めて1年以上が経過しており、ついにITに興味がある人向けのマッチングアプリ「SideLink」をリリースすることができました!下記のアプリです。

完全に0からの独学なので、今でも大変なことは多いです。しかし、独学でSNS系のアプリをリリースするレベルであれば、全然狙えると僕は感じています。

今回はこれまでの僕の学習過程のまとめとして「0から独学しマッチングアプリを開発するまでの流れ」を紹介しますね。まだまだ学習の過程ではありますが参考になれば幸いです。

SideLink

SideLink

無料posted withアプリーチ

※ちなみにこちらのアプリが僕が制作したもの。

SideLinkの画面

ITに興味を持った人同士でマッチングし、メッセージチャットで交流ができるアプリです。ご興味あればチェックしてもらえると嬉しいです。

0から独学しマッチングアプリを開発するまでの流れ

さっそくですが、僕が0からアプリ開発を始めてオリジナルのサービスをApple Storeに登録するまでの過程を下記にまとめました↓

0から現在までにたどった道
  1. (〜3ヶ月)参考書・動画で基礎学習
  2. (〜6ヶ月)オリジナルアプリ開発に挑戦※失敗
  3. (〜9ヶ月)長期インターンシップで知識を補強
  4. (〜12ヶ月)マッチングアプリ「SideLink」開発

正直なところ少しざっくりとした期間で流れを書いています。改めて気づいたのですが、おおよそ3ヶ月単位で次のステップに進んでいますね。

ミニマリストこうだい
ミニマリストこうだい
それぞれののステップで具体的に何をしたのか紹介していきますね。

(〜3ヶ月)参考書・動画で基礎学習

収納スツールを使って作業をする様子

最初は基礎学習に徹底しました。僕の場合はiPhoneアプリを作りたかったので、「Swift」というプログラミングを勉強しました。

①絶対に挫折しない iPhoneアプリ開発「超」入門

まずは定番だけど参考書で学習しました。下記の参考書を図書館で借りて使いました。


最初に参考書で勉強する場合は100%理解する必要はなく、概要がわかれば十分だと思っています。ただ、できるだけ読むだけでなく、できるだけ手を動かした方が頭に入りました。

ミニマリストこうだい
ミニマリストこうだい
参考書を使う場合はできるだけ新しいものを選ぶことに注意してみてください!

②iOS & Swift – The Complete iOS App Development Bootcamp

次にオンライン学習サービスの「Udemy」を使って勉強しました。下記の動画は英語音声ですが、網羅性がめちゃくちゃ高くてアプリ開発全体の理解を深めることができました。

iOS & Swift – The Complete iOS App Development Bootcamp

Udemy(iOS & Swift – The Complete iOS App Development Bootcamp)

Swiftの教材として世界的に有名な動画だと思います。設定すれば日本語字幕を使えるので、英語学習にもなって一石二鳥かもしれません…!

動画だとアプリが作られていく過程がよくわかるので本より理解しやすい人は多いと思います!日本語の動画も沢山あるので割とおすすめです。

Udemyの動画は高めの値段ですが、頻繁にセールされているのでそこを狙ってください。上記の動画だと僕はセール時に2000円ほどで買いました!

僕は参考書と動画の2種類で基礎学習を行いましたが、今思えばどちらかだけを使い、その後すぐにオリジナルアプリ開発に挑戦してもよかったかもしれません。(詳しくは後で↓)

(〜6ヶ月)オリジナルアプリ開発に挑戦※失敗

パソコンの前で頭を抱えている女性

基礎学習を終えたと思った僕はすぐにオリジナルのアプリ開発に挑戦しました。カップルで使える交換ノートのようなサービスを作ろうと思い約3ヶ月ほど毎日作業しました。

正直なところ、ここでは失敗しています。技術的に自分が満足できるクオリティが作れないことを自覚して、さらに知識を付けるために長期インターンの参加をここで決意します。

しかし、ある程度さらに学習を続ければ個人でもアプリを作れる自信がありました!わからないことがあればググったりQ&Aサイトを利用したりすることで、かなりの確率でほしい答えが見つかっていたからです。

ミニマリストこうだい
ミニマリストこうだい
実際、僕が最も成長したのはこのステップです。自分が作りたいものを作ろうとすると、バンバンわからないところが出てきて、その度に成長している実感がありました!

(〜9ヶ月)長期インターンシップで知識を補強

ベンチャー企業

実際は4ヶ月ほど通ったかな。大学4年生の頃にエンジニア系の長期インターンシップに参加しました。僕の場合は大学院に進む予定だったので就活のタイミングは遅めになります。

インターンでは1人の学習では得られない沢山の経験をすることができました。具体的に担当させていただいて業務は下記の5つです。

主な業務内容
  • 比較的簡単なアプリの修正
  • アプリの動作チェック・テスト
  • アプリのUI作成
  • 新機能実装の設計
  • アプリのバックエンドの実装

個人的に良かったのが、先輩方が業務以外の相談にもめちゃくちゃ丁寧に乗ってくれたことです。例えば、

ミニマリストこうだい
ミニマリストこうだい
実は個人的に開発しているアプリで、プッシュ通知の実装方法悩んでいて。〇〇さんはどのようにされていますか?

という感じです。

この記事の読者さんが社会人の場合だと長期インターンには参加できませんが、もしどうしても行き詰まったらプログラミングスクールなどもありだと思いました。

学生さんはぜひ長期インターン、検討してみてくださいね。詳しは下記の記事で解説しているの参考にどうぞ。

プログラミングを独学し長期インターンに参加してみた
【体験談】プログラミングを独学し長期インターンに参加してみた結果エンジニア系の長期インターンシップに興味がある大学生必見!エンジニアの長期インターンシップの体験談を読みたい。プログラミングで長期インターンシップに参加する時の注意点を知りたい。このような悩みを解決します。...

(〜12ヶ月)マッチングアプリ「SideLink」開発

カフェで作業している様子

ある程度知識や経験が溜まった感覚があったので、再度オリジナルのアプリの開発に挑戦しました。※前回の経験があったのでかなりスタートしやすかったです…!

単に勉強不足もあると思いますが、僕はアプリデザインのセンスが全くなかったので、今度はTwitter上でデザイン学生2人に声を掛けてチームを結成しました!

まずアプリのコンセプトから実装したい最小限の機能を決め、作っていただいたデザインを僕がコーディングして再現って感じの流れです。

ミニマリストこうだい
ミニマリストこうだい
ぶっちゃけ毎日かなり作業していましたが、何度もエラーにブチ当たりながらなんとか完成させることができました!

サービスを作るため必要だった技術的な知識を以下で紹介していきますね。

スポンサーリンク

SNS系のサービスを作るために学んだ知識5つ

今回のサービスを作るにあたって必要だった知識は下記の5つです。最小限って感じなので非エンジニアの方はここら辺からを意識して学習していくといいかと思います。

開発に必要な知識はこの5つ!
  1. Swift
  2. Github
  3. UIデザイン・UXデザイン
  4. Firebase
  5. Apple Store Connect

それぞれ解説していきいますね。

①Swift

app

「Swift」はiOSアプリを作ることができるプログラミング言語です。ここの勉強方法はこれまで解説してきたので省略しますね。

日本はiPhoneの使用率が圧倒的に高いのでAndroid専用のプログラミング言語よりはiOSを選んだ方が合理的だと思いました。

また、iOSとAndroid両方のアプリに対応している「Flutter」などの言語もあります。実はインターンの中で勉強しましたが、Swiftの方が僕は使いやすいと感じました。

②Github

GitHub

知っている人がほとんどでしょうが、Githubを使えばソースコードの保存や共有ができるようになります。ゲームで言う「セーブ」みたいな感じです。

簡単に加えた変更をなかったことにできたり、万が一ソースコードデータを消しちゃっても戻すことができます。エンジニアであればほぼ全員使えるそうです。

実はGithubはコマンド操作でややこしいイメージがありますが、例えば「ソースツリー」というツールを使えば視覚的に操作できるようになります←これ超絶おすすめ!

ソースツリー

Sourcetree(https://www.sourcetreeapp.com/)

このような感じ。(日本語対応しています👊)

ミニマリストこうだい
ミニマリストこうだい
個人開発でもある程度使えるようになった方が開発効率が上がると感じました。もちろん無料なので普段使っていない人は使ってみることをおすすめします。

③UIデザイン・UXデザイン

UIデザイン

どれだけプログラミングスキルが高くてもデザインが微妙なら、アプリも微妙だと思っています。むしろデザインやコンセプトが良くて始めて使ってもらえるのではないでしょうか。

デザインはセンスが大半だと思っていましたが、おもしろいことに意外に知識が役立つ部分が多かったので驚きました。例えば、ユーザーの目に優しい色やボタンの形とか。

とはいえ、デザインもプログラミングも勉強している時間や余裕はない人も多いと思います。そういう人は僕がTwitterで見つけたように協力してくれる人を見つけたり、オンライン上で依頼してみたりするのもおすすめです。

④Firebase

Firebase

Firebase」とは、Googleのモバイル・Webアプリケーション向けのプラットフォームです。これを使えば自前でサーバーを用意しなくても、簡単に通信機能を実装できます!

例えば、Firebaseを使えば下記のようなことができます。

  • ログイン・ログアウト・ユーザー登録
  • アプリ利用者の行動の分析
  • データベース周り
  • 写真や動画などのコンテンツ保存
  • プッシュ通知

多分僕はまだFirebaseの半分も機能を使っていないですが、それでもFirebaseを使えば一気にSNSっぽい機能を付けられます。(てか僕はSwiftとFirebaseしか使っていない!)

情報もかなりあるので、わからないことがあってもググれば大抵はヒットするので使いやすいです。難しい箇所は何度も何度も読みましたが。

⑤Apple Store Connect

アップストア

テスト版をリリースしたり、実際にアプリをApp Storeに登録したりできるのが「App Store Connect」です。こちらも多く記事が出ているので特に勉強する必要はありませんが、慣れるまで少しわかりにくいかもしれません。

具体的な手順を書いてくださっている記事が多いので僕自身、アプリをリリースする時はかなり助けられました。例えば下記の記事など。
>>参考記事:iOSアプリをAppStoreで公開する手順まとめ

Apple Storeにアプリをリリースするには「Apple Developer Program」のメンバーシップに加入する必要があります。年間1万3000円ほど。iOSアプリの場合、これは仕方ありません…

【まとめ】個人のプログラミングは積み重ね

僕自身まだまだ勉強中のレベルですが、そもそも大学1,2年生の頃は自分がプログラミングでアプリを作るなんて考えてもいませんでした。

少し偉そうな内容になっているかもしれないけれど、特に個人のプログラミングは積み重ねだと思います。なんやかんやで失敗も成功も次に活かしやすいジャンルなのかと。

ミニマリストこうだい
ミニマリストこうだい
僕も次はさらに魅力的なアプリを作れるように頑張りたいと思います!最後までお読みいただきありがとうございました!