元動物飼育員(完全未経験者)がiOSアプリをリリースした話

# 概要
元動物飼育員（完全未経験者）がSwiftでiOSアプリをAppleストアに公開することができたので、
リリースまでの道のりをご紹介していきます。

# アプリ紹介
まずは、アプリをご紹介します。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/770482/0addadc9-1b72-8b50-f5a7-73872185020a.png)



元動物飼育員の知見を活かして、好きな動物やイベントのカードをスワイプして、
その結果に基づいた動物園にマッチングするというアプリです。
https://apps.apple.com/jp/app/zoogo/id1552154924

是非、興味がある方は使ってみてください🙇‍♂️

# スキル
私は、Swiftでのアプリ開発はもちろん、コードなんて無縁の世界で生きてきました。
スキルがあるとすれば、**チンパンジーの健康管理**ができることくらいでしょうか...

# アプリ開発の目的
私は、iosエンジニアへの転職を目指しています。
転職成功を目指す際に、アプリをストアに公開したことがある経験は、最低条件だと思いアプリ開発を行いました。
せっかくなので、前職のスキルも活かせるようなアプリにしたいと開発しました。
ここで、大事なのは、私の目的は、あくまでも**「転職成功です」**なので、そこの目標に最速で到達できることを意識していました。

そのため、あくまでも**「独学でゼロからアプリ開発して、Appleストアに公開した事がある実績を作ること」**にフォーカスし、設計の段階からできそうな開発、情報が多い実装を調べ、自分が使えるカードでアプリを作るということを意識しました。

# 学習時間・開発期間
 

|  2020・21年  | 内容  |
| :--- | :--- |
|  9月  | 独学開始 |
|  10月  | メンターに申し込み・基礎学習スタート |
|  11月  | 基礎学習終了、応用学習スタート・終了、アプリ設計 |
|  12月  | アプリ開発 |
|  1月  | アプリ開発 |
|  2月  | リリース |

約5ヶ月くらいかかりました。
私は、仕事は既に退職してバイト生活です。そのため、勉強時間を確保できないということはなかったので、１日の学習時間は平均6〜８時間でした。
それでも、寝る寸前まで、コードと向き合っていました。

しかし、最速を目指してはいたのですが、**開発は思った以上に時間がかかりました。**
開発をしていると、基礎を復習したり、こんな実装してみたいなと欲が湧いてきて計画よりも時間がかかってしまいましたが、**とても楽しかったので良しとしましょう。**

それでは、プロセスを深堀りしていきます。

### 1.メンター申し込み
開始1ヶ月で、ひとりでは無理だと判断した私は、MENTAサービス利用し、
ヤマタクメンターにご指導をお願いしました。
基本的には、メンターの学習指導に沿って学習していきました。

ヤマタクメンターやサービスについて知りたい方はこちら！
(https://menta.work/plan/584)


### 2.基礎学習

基礎学習は内容は以下通りです。
※学習順

**Udemy**　動画教材
評価が高いものであれば、なんでもいい。
アプリ開発の雰囲気を学ぶ事ができますが、難しい内容は挫折を招くので注意です。

↓

**Swift実践入門**　書籍
こちらも難しい内容は、とばしても大丈夫です。
Udemyの動画教材をやっていることで、内容が理解しやすかった。
***学んだ内容をQiitaの記事としてアウトプットしていました。***

↓

**gitHub実践入門**　書籍
正直、私には合わなかった。あまり理解できなかったのが本音です。

なので代わりに、[Gitをはじめからていねいに](https://github.com/takanabe/introduction-to-git)
上記の記事を参考に学習していました。

↓

**iPhoneアプリ開発「超」入門　第7版**　書籍
基礎的なアプリを作成できる。
簡単なものばかりなので、しっかり理解できるように学習しました。

### 3.応用学習

[Swift初学者が電子レンジロジックを実装してみた!](https://qiita.com/syunta061689/items/fd1c771c47b135b0010b)

[Swift初学者が自動販売機ロジックを実装してみた!]
(https://qiita.com/syunta061689/items/ab4c1731b1ff4c74a7e2)

学んだことを活かして、ゼロから電子レンジと自動販売機ロジックをコードで開発しました。


# アプリ開発

アプリ開発で思ったことをまとめます。

### 1.とにかく手を動かす
アプリ開発前にワイヤーフレームを作成したり、画面遷移図を作成したりしてみたのですが、そもそも、開発の経験がなさすぎるので計画の立てようがありません。計画にはそこまで拘らず、こんな感じにできたらいいなという事がイメージできていれば、**即.手を動かしましょう。**
コードを書きながら、考えることが重要になってきます

### 2.拘らない

ここで、今回の目的に振り返ってみましょう。
今回の目的は、「Appleストアに公開した事がある実績を作ること」です。

当たり前ですが、拘れば拘るほど時間がかかってしまいます。特に初心者が書いたコードの手直しなんていくらでもあります。
この目的の達成を考えると、拘りすぎるのはあまり得策ではありません。

また、凡人の私は、実装を新しく生み出す事なんでできません。
つまり、知っている内容。天才達が生み出したコードを使うことしかできないのです。

これは、写経しろと言っているのではありません。**自分が知っている知識を組み合わせて**、どのようなものにするかは、しっかり自分で考える必要があります。当然、開発途中でこの実装をしたいと思えば、 **調べる能力**が必要となってきます。


### 3.デザインは少し頑張る
少し、珍しいかもしれませんが、アプリ開発に置いてデザインはかなり意識しました。
理由は、初心者が書くコードはあまり差別化ができないことと、素人臭さを無くそうと思ったからです。

ターゲットは20代〜30代の女性に受け入れてもらえそうなデザインを意識しています。

もちろん、デザインなんか全く知識がないので以下のサイトを参考・利用しました。

[Pinterest](https://www.pinterest.jp/search/pins/?q=%E3%82%A2%E3%83%97%E3%83%AA%20ui&rs=typed&term_meta[]=%E3%82%A2%E3%83%97%E3%83%AA%7Ctyped&term_meta[]=ui%7Ctyped)
おしゃれなUIを学べる

 [PHOYOSHOPVIP](https://photoshopvip.net/95427)
きれいな配色選びを学べる

[かわいいフリー素材集 いらすとや](https://www.irasutoya.com/)
かわいいイラストが使えます

[pixabay](https://pixabay.com/ja/)
綺麗な写真がたくさんあります。
本アプリでは、動物の写真をダウンロードし使用しています

[Canva](https://www.canva.com/ja_jp/create/youtube-thumbnails/)
万能サイト！このサイトに何度も救われました。
ストアに申請するときのスクリーンショットも作成できます。

**使える素材はあますことなく、使用しましょう！**

これは、素人意見ですが、いくら素晴らしいコードを書いても、デザインが残念であればユーザーにストレスを与えてしまうと思います。
せめて、ユーザーにストレスを与えないデザインを意識することをおすすめします。

# 最後に
長くなってしまいましたが、アプリがAppStoreに公開できたことは本当によかったと思います。アプリを作る過程で、Swiftの基礎力は格段にレベルアップしましたし、自信にも繋がりました。
しかし、最終的には**アプリを公開するぞという気合い**が一番大切だなと思っています。

今後、iosエンジニアとして、まだまだレベルアップしていきたいので、本格的に転職活動をスタートしていきます。
**エンジニアとして、世界を面白くできたり、人の役に立てたら、最高ですね！**

それでは、また。