iOSアプリを初めて開発する人へ

## iOSエンジニアになるために...
現場でSwiftを触って約１年半が経ちました。
今では一人でアプリを開発することができるようになり、個人でアプリを開発し公開しようと企んでいる最中です。
そんな私が初めてSwift触った時からお世話になったサイトをQiitaの記事をメインにピックアップしてみました。

## 1.環境構築
### ツール関係

#### homebrew(Macのパッケージ管理ツール)
- [公式サイト](https://brew.sh/index_ja)
- [homebrewとは何者か。仕組みについて調べてみた](https://qiita.com/omega999/items/6f65217b81ad3fffe7e6)
    - homebrewについて細かく説明してくれてます。

#### XCode
- [今さら聞けない！Xcodeをインストールする方法【iOSアプリの統合開発環境】](https://udemy.benesse.co.jp/development/ios/how-to-use-xcode.html)
    - 記事は古いですがインストール方法が載っています。
- [Xcodeの使い方を5分で理解！画像アプリの開発で即実践！](https://udemy.benesse.co.jp/development/ios/how-to-use-xcode.html)(外部)
    - 基本的な使い方はある程度マスターできます。

#### CocoaPods
- [公式サイト](https://cocoapods.org/)
- [iOSライブラリ管理ツール「CocoaPods」の使用方法」](https://qiita.com/satoken0417/items/479bcdf91cff2634ffb1)(外部)
    - CocoaPodsについて１から教えてくれます。
- [CocoaPodsのインストール方法](https://project-flora.net/2017/03/15/cocoapods%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95/)(外部)
    - homebrew経由でのインストール方法が説明されています。

### Swift Package Manager
-  Xcodeに組み込まれているので導入しやすいかも。
- [iOSアプリ開発にSwift Package Managerを使おう](https://qiita.com/hironytic/items/09a4c16857b409c17d2c)
    -  CocoaPodsより最近人気のSwift Package Managerについて詳しく書かれています。
    


## 2.開発の基本
### Swiftを全く触ったこと無い向け

- [[Swift]他言語使用者のためのSwift入門知識まとめ](https://qiita.com/cabbage/items/6993b1a9280a5ab854d8)
    - プログラミング経験者ならこれを軽く読めば、どんな言語かわかるはず。
- [[Swift] iOSアプリ開発の基本情報と学習ソース](https://qiita.com/y-some/items/200db9ac37150effc8ed)
    - 開発ツールやiOSのアプリに必要な環境などが記述されている。

### Hello World !! 的なもの
- [【iphoneアプリ開発】swiftでiosアプリを作ってみた！Hello Worldチュートリアル](https://rara-world.com/iphone-ios-swift-hello-world/)
    - 私もこれで初めて実装してみました。

### オプショナル型
- [どこよりも分かりやすいSwiftの"?"と"!"](https://qiita.com/maiki055/items/b24378a3707bd35a31a8)
    - 誰もが苦戦するアンラップなどがこれを読めば理解できます。
 
### Interface Builder
- StoryboardやXibのこと。
- [初めてiPhoneアプリをデザインするには、どうすればいい？――すぐ分かるInterface Builder、Storyboard、Auto Layoutの使い方](https://www.atmarkit.co.jp/ait/articles/1602/17/news031.html)
    - これで簡単なアプリは作れるようになる。
- [【Xcode/Swift】View Controllerと制約の使い方と理解](https://pg-happy.jp/xcode-viewcontroller-constraints-usage.html)
    - これで制約ってどんなものかわかるはず

### TableView
- これを使えるようになれば自分もアプリ作れそうな気がしてくるはず...
- [SwiftでTableViewを使ってみよう](https://qiita.com/pe-ta/items/cafa8e20029047993025)
    - 画像もいっぱいあって分かりやすいです。
- [【swift】イラストで分かる！具体的なDelegateの使い方。](https://qiita.com/narukun/items/326bd50a78cf34371169)
    - 誰もが苦戦する`Delegate`についてわかりやすく説明してくれてます。
    - 私をこれを読むまで理解できなかった...

### ライフサイクル
UIの更新や描画処理などを思い通りに行うためには、viewDidLoadやviewWillAppearなどのUIViewCotrollerのライフサイクルは必ず覚えましょう!

- [UIViewControllerのライフサイクル](https://qiita.com/motokiee/items/0ca628b4cc74c8c5599d)
- [UIKitのView表示ライフサイクルを理解する](https://qiita.com/shtnkgm/items/f133f73baaa71172efb2)
- [AppDelegate,UIViewController,UIViewのライフサイクル/iOS/Swift](https://qiita.com/kayo311/items/4710c4ac02a191652a96)


## ３.簡単なアプリを作ってみる
- [Swiftで簡単なTODOアプリを作ってみよう](https://qiita.com/pe-ta/items/8f474358d1dd789557f3)
    - 手順も細かくて`いいね`も多いです。

## 4.ライブラリを組み込んでアプリをリッチに
- CocoaPodsやSwift Package Managerをつかってリッチなアプリを作ってみよう。
- [[初心者向け]SwiftでもObj-cでも、CocoaPodsを使ってiOSライブラリを使って開発効率をアップさせる](https://qiita.com/yonell/items/dae698f0e3bc30930765)
- [2018年これだけは知っておきたいiOSライブラリ31選](https://qiita.com/kohei1218/items/275fcee7406395919885)
- [【Swift】iOSアプリ開発で使える（使いたい）Swiftライブラリー](https://qiita.com/BlueEventHorizon/items/080f1e24a6c3d76a0df8)
- [SwiftUIで使えそうなライブラリ!!](https://qiita.com/shira-shun/items/492dcdd79ed9dde09bf6)

## 5.アプリを公開してみる
- [Apple Developer Program と Google Play に法人としてディベロッパー登録する手順](https://qiita.com/toshi586014/items/2d8a30b858b64f215e18)
- [【2019年版】iOSアプリをApp Storeに公開するための全手順まとめ](https://qiita.com/kenny_J_7/items/92378e2a09bee6080677)

## 6.デプロイをもっと早く
- [fastlaneを導入してビルドを楽にする](https://qiita.com/SatoTakeshiX/items/fea8d49216a2a1086cf9)
- [はじめてのGitLab-CI](https://qiita.com/yurano/items/a7804d987ccff37b1a9d)

## 最後に
お世話になった記事を挙げてみました。思い出しながら書いたのでまだまだ漏れがあるかとおもいます。
まだまだ書きたいことが沢山あるので頻繁に更新していきます。