Swift勉強約1ヶ月でiOSアプリを公開してみました - 準備編 - 

# 目的
　自分で一からiosアプリを作ってみたいけど全体像が見えないのでわからないと思います。私のアプリ公開までに行った手順などの詳細を書いていきますので自分のアプリをApple Storeに公開してみたい人の手助けになると思い書きました。参考にしていただけると幸いです。

※　この記事は３部構成になる予定です。

### 始めた時の私のレベル感
 1ヶ月と書きましたが、私は9ヶ月ぐらい [Recursion](https://recursionist.io/) というアメリカの大学で行っているコンピュータサイエンスを日本語で学べるサービスをちまちま行っており完全に”知らない”わけではありません。 JavaScript, PHP, Java, Pythonの基本的な書き方やメソッドの使い方、プロジェクトをいくつか制作しておりました。
ですがSwiftは完全に知らないのでゼロからのスタートです。

## 完成品

### Pomodoro Timer
![Simulator Screen Shot - iPhone 8 Plus - 2021-03-28 at 00.40.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643403/c8027572-6a79-7be4-5060-f26c4be592ff.png)
![Simulator Screen Shot - iPhone 8 Plus - 2021-03-30 at 00.40.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643403/b8922442-6771-cee5-1c5f-8620d6e606c8.png)
![Simulator Screen Shot - iPhone 8 Plus - 2021-03-30 at 00.41.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643403/62565109-2c63-ed82-5b47-6298baec1b79.png)

### 概要

  人間の集中できる時間は限られていて90分以上はどんな頭のいい人でも学習効率や生産性が著しく低下することが研究でわかっています。そこでどこかの頭のいいひとがポモドーロテクニックという方法を思いつきました。作業途中で強制的に一定時間休憩（インターバル）を挟むと集中力が回復し作業が普段より捗ることがわかりました。25分に一回、50分に一回などです。それをアプリで再現しようと思いましたが海外の方がすでに何人か実践しておりアプリが何個か確認できます。ですが個人的な感想ですがこれらのアプリにはタイマーがデカデカと見えるアプリが多くシンプルなものがなく、作業することが目的なのに画面が気になってしまうのではないかと思い自分で実装してみようと思いました。

### 機能など
　とてもシンプルで簡素的ですが

  - Mode Setting で　25分 作業/ ５分休憩、５０分作業/　10分休憩の二つのモードから選べる。
  - Startを押すとタイマーがスタートするので何かしらの作業を開始する。
  - 残り3秒になるとカウントダウンの音がなり0秒になるとBreak（休憩）画面に自動で遷移します。（画面が紺色⇨黄色になる。視覚で気づかせるため）
  - 休憩時間も同じようにタイマーがあり、残り3秒になるとカウントダウンの音がなり0秒になるとConcentration（集中）画面に自動で遷移します。作業開始です。
  - タイマー横にセット数カウントがあり10セットするとCongrats画面になりタイマーを止めます。（10セットもやると25分でも250分（４時間以上作業したことになるので休んでほしいため10セットで終わりにしました。）

# やったこと

　私がやった学習手順を書いておきます。

## 1. 本気で学ぶSwift講座
　[本気で学ぶSwift講座](https://www.youtube.com/channel/UC4X8kHrEbMn81hr8fN7y3oA)
　目的：基本文法の習得
　種類：動画によるハンズオン形式講座

　まず初めに、Swiftのお作法を知らないと話にならないと思い、文法や規則を学ぶことにしました。
　書籍での学習も検討しましたが、youtubeで見つけたこちらの講座である程度の基礎を網羅しました。
　初歩的な箇所から丁寧に説明があり、たいへんわかりやすかったと思います。
## 2. Swift実践入門
[Swift実践入門](https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82%E7%AC%AC3%E7%89%88-Swift%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80-%E7%9B%B4%E6%84%9F%E7%9A%84%E3%81%AA%E6%96%87%E6%B3%95%E3%81%A8%E5%AE%89%E5%85%A8%E6%80%A7%E3%82%92%E5%85%BC%E3%81%AD%E5%82%99%E3%81%88%E3%81%9F%E8%A8%80%E8%AA%9E-PRESS-plus%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4297112132/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3TG9XZZ8FFU44&dchild=1&keywords=swift%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80&qid=1617104352&sprefix=swift%2Caps%2C288&sr=8-1)
　目的：できることのindexを増やす
　種類：書籍

　基礎文法を学んだあと、Swiftでどういったことができるのかを書籍で学び、indexを増やしました。
## 3. ハンズオンでアプリを模写

　目的： 実際に作ってみて学習する
　種類： ハンズオン形式のYoutube動画

　[【Swift】作って学ぼうiosアプリ開発](https://www.amazon.co.jp/%E3%80%90Swift%E3%80%91%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%BC%E3%81%86iOS%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA-%E7%94%B0%E4%B8%AD%E9%A2%AF%E5%BF%97-ebook/dp/B08V8KW39K/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E3%80%90swift%E3%80%91%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%BC%E3%81%86ios%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA+kindle&qid=1617104625&s=digital-text&sr=1-1)

　海外や日本のyoutube動画を使って学習しました。主に、ハンズオンでアプリを作る系の動画を閲覧し、そちらを参考に自分でも手を動かして実際にアプリをいくつか作りました。実践的なコードの管理や、成果物を作るための技術習得に役立ちました。

## 4. これから作るアプリの草案を作成
　Figmaを使って、草案を作成しました。

　後でどうせ変更点などが出るのであくまでも参考にこのUIを目指して作るって感じです。他のツールでもそうだと思いますが画面遷移の紐付けなどができイメージしやすかったです。

　Figmaの使い方は、youtubeなりでざっくりみてすぐやりました。
　割と直感的ですぐできると思います。

![スクリーンショット 2021-03-30 午後10.57.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643403/05a3a3fc-85c9-1dfb-e794-ec03f6b57dc0.png)

　⇨　[-実装編-](https://qiita.com/soysan/items/f22287d87eab9cc0f92a)