Swift, iOS リファレンス （Rails関係もちょっとだけ）

Web系エンジニア？？が初めてiOSアプリをSwiftで開発してみて役に立ったなぁと思った記事のリンク集です。
自サーバーと連携するレコーディングアプリというかリファレンスアプリというか、を作りました。
バックエンドはRailsで作ったこともあり、そのときの記事もちょっと載せています。

更新：2015/9/18

# iOS

## Tips
- [クックパッドさんのpotatotipsで発表してきました / 2013年11月14日](http://tmokita.net/blog/?p=1387)

## Guideline
- [iOS Human Interface Guideline](https://developer.apple.com/jp/documentation/MobileHIG.pdf)

## Reference Web Sites
- [ios creator](http://www.ioscreator.com/)
  - [Lots of Sample](https://github.com/ioscreator/ioscreator)
- [iOS Life](http://www.brianjcoleman.com)
  - [tutorial](http://www.brianjcoleman.com/category/tools-tutorials/)
  - [swift](http://www.brianjcoleman.com/category/swift/)
- [VEA SOFTWARE - TUTORIALS](https://www.veasoftware.com/tutorials/)

## UI Samples
- [pttrn](http://pttrns.com/)
- [Inspired UI](http://inspired-ui.com)

# Swift

## Doc
- [Swiftドキュメンテーションコメント（JavaDoc的なやつ）](http://qiita.com/RyoAbe/items/052c20a0258d4488053e)

## Code Samples
- [domenicosolazzo/practice-swift - Github](https://github.com/domenicosolazzo/practice-swift)

## Test
- [testing in swift](https://realm.io/jp/news/testing-in-swift/)

## Staging
- [Xcode6,Swiftで APIのURLを分ける](http://qiita.com/ryusukefuda/items/63194d1165cdaea18ec9)

## Grammer
### Type, cast

- [unixtime](http://stackoverflow.com/questions/30360096/how-can-i-convert-a-nstimeinterval-to-int)
- [SwiftのOptional型を極める](http://qiita.com/Braian/items/ba8a19f84a830f229e1b)


### String
- [置換](http://qiita.com/ktanaka117/items/069a4ae13a17f7b03f5d)
- [Swiftで文字列の分割と連結 (split & join)](http://qiita.com/yuch_i/items/76f4d15c03aa7ba3b391)
- [How to validate an e-mail address in swift?](http://stackoverflow.com/questions/25471114/how-to-validate-an-e-mail-address-in-swift)

### Array
- [SwiftのカスタムクラスArray操作その3（ユニーク）【メモ】](http://qiita.com/moonkids/items/62c4d225273019df94be)

### Dictionary
- [[iOS8] Swiftで辞書型(Dictionary)を初期化する方法](http://qiita.com/hiroo0529/items/f4b01159cfa4c9fa396c)

### tuple
- [tuple](http://qiita.com/tottokotkd/items/7b51dd211dcce1e4e55b)

### Optional
- [SwiftのOptional型を極める](http://qiita.com/koher/items/c6f446bad54442a28bf4)

### Filtering
- [Filtering a Swift Array of Dictionaries or Object property](http://locomoviles.com/ios-tutorials/filtering-swift-array-dictionaries-object-property/)

### NSDate
- [[Swift] NSDateを拡張する 2014.12.29](http://caters.works/2014/12/swift-nsdate-extension/)
- [Swiftで現在日時を取得し、様々なスタイルで出力する方法](http://qiita.com/cotrpepe/items/a3e36fa70afb418c1bbe)
- [Unicode Technical Standard #35 LOCALE DATA MARKUP LANGUAGE (LDML)](http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns)
- [How to convert a date string from Rails into Swift](http://stackoverflow.com/questions/29733556/how-to-convert-a-date-string-from-rails-into-swift)

## Image Cache
- [SDWebImage](https://github.com/rs/SDWebImage)

## file read
- [[swift] pathForResourceでnilが返ってくるとき](http://qiita.com/us_pk/items/27cd655a02cbcefe4bb0)
- [https://coderwall.com/p/nmuvxw/read-a-file-in-swift](https://coderwall.com/p/nmuvxw/read-a-file-in-swift)

## errors
- [Swiftのコンパイルエラー寄せ集め](http://samekard.blogspot.jp/2014/09/swifterror.html)

## Overview
- [model](http://www.slideshare.net/mokemokechicken/iosandroidmodel)

## In-App Purchase
- [アプリ内課金(Delegateモデル)](http://qiita.com/sora/items/e65ed31493a2d9b8f1dd)


## TableView
- [how to make simple table view](ttps://www.weheartswift.com/how-to-make-a-simple-table-view-with-ios-8-and-swift/)
- [trans data](https://akira-watson.com/iphone/tableview_3.html)
- [How do I set the background image size of a table cell in swift?](http://stackoverflow.com/questions/24855002/how-do-i-set-the-background-image-size-of-a-table-cell-in-swift)
- [TableViewに背景画像を出す](http://tsumekoara.hateblo.jp/entry/2015/08/19/154229)

### Index
- [iOS Programming 101: Adding Section and Index List in UITableView
march 18, 2014](http://www.appcoda.com/ios-programming-index-list-uitableview/)
- [Indexed Table View Tutorial in iOS8 with Swift
May 18, 2015](http://www.ioscreator.com/tutorials/indexed-table-view-tutorial-ios8-swift)

### Section
- [section](https://tech.mokelab.com/ios/UIKit/UITableView/section.html)

### Accessory
- [how to add disclosure indicator](http://stackoverflow.com/questions/27644537/swift-add-disclosure-indicator-to-a-uitableviewcell)

### Custom Cell
- [UITableView and UITableViewCell Customization in Swift](http://shrikar.com/uitableview-and-uitableviewcell-customization-in-swift/)
- [(Youtube)UITableView Customization in Swift. Building Airbnb Discover page](https://www.youtube.com/watch?t=93&v=H7t6OBQMoNw)

### Search
- [UISearchResultUpdating](http://stackoverflow.com/questions/28522338/how-do-i-make-a-uitableviewcontroller-conform-to-protocol-uisearchresultsupdatin)
- [Add Search to Table View Tutorial in iOS8 with Swift
February 09, 2015](http://www.ioscreator.com/tutorials/add-search-table-view-tutorial-ios8-swift)
- [UISearchController in Swift - Xcode 7 iOS 9 Tutorial
June 27, 2015](https://www.veasoftware.com/tutorials/2015/6/27/uisearchcontroller-in-swift-xcode-7-ios-9-tutorial)
- [http://shrikar.com/swift-ios-tutorial-uisearchbar-and-uisearchbardelegate/](http://shrikar.com/swift-ios-tutorial-uisearchbar-and-uisearchbardelegate/)

## UIImageView
- [UIImageViewで画像を表示する](http://net-vacation.com/iphone-apri-development/add-uiimageview)
- [005 UIImageViewで画像を表示](https://sites.google.com/a/gclue.jp/swift-docs/ni-yinki100-ios/uikit/005-uiimageviewde-hua-xiangwo-biao-shi)
- [[Swift] UIImageView 画像のサイズを変更拡大縮小する (update: 2015/7/17)](https://akira-watson.com/iphone/uiimageview_resize.html)

## UIViewController
- [How to set gb image in uiview](http://stackoverflow.com/questions/25106784/how-to-set-a-background-image-to-a-uiview-in-swift)
## UI
- [Swiftで作られたイケてるUIライブラリたち](http://qiita.com/susieyy/items/1f28531a1c58d9158896)

### Button
- [UILabelを角丸 or パディングしたいならUIButtonで代用するテク](http://qiita.com/osamu1203/items/175d7eb3fc0b9ebfee53)

### Color
- [How to Create a UIColor in Swift
January 15, 2015](http://www.codingexplorer.com/create-uicolor-swift/)
- [RGB Color Chart](http://lowlife.jp/yasusii/static/color_chart.html)
- [RGB or HEX to Decimal Color Converter](http://www.corecoding.com/utilities/rgb-or-hex-to-float.php)
- [色を表示させられます](http://www.peko-step.com/tool/tfcolor.html)

### LaunchScreen
- [vol.1 起動画面(Launch Screen)を制作する – SwiftでiOS用のクイズアプリを作る！](http://xov.jp/e/241/)

### hide status bar
- [Swift:ステータスバーを非表示にする](http://www.sirochro.com/note/swift-statusbar-hidden/)

### hide back button of navigation bar
- [how to hide back button](http://stackoverflow.com/questions/614212/how-to-hide-back-button-on-navigation-bar-on-iphone)

### PageControl
- [UIPageControl_Class](https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIPageControl_Class/index.html)
- [018 UIPageControlの表示](https://sites.google.com/a/gclue.jp/swift-docs/ni-yinki100-ios/uikit/uipagecontrollerno-biao-shi)
- [how to change color](http://tono-n-chi.com/blog/2014/06/swift-uicatalog-copy-9/)

### Walkthrough
- [20150622
Swiftで作るかっこいいwalkthrough(Airbnb風)](http://rayc5.hatenablog.com/entry/2015/06/22/010203)
- [BWWalkthrough(GitHub)](https://github.com/ariok/BWWalkthrough)
- [Swiftで作るかっこいいwalkthrough(Airbnb風) ](http://rayc5.hatenablog.com/entry/2015/06/22/010203)

- [Swift Tutorials : How To add a Walkthrough/Welcome Screen Flow to your Swift Project](https://www.youtube.com/watch?v=tNCsQe5vfRk)

### Switch
- [RAMPaperSwitch](https://github.com/Ramotion/paper-switch)

### Alert
- [SCLAlertView](https://github.com/vikmeup/SCLAlertView-Swift)

### Pop-Up
- [MMPopLabel](https://github.com/mgcm/MMPopLabel)

### Page
- [Persei](https://github.com/Yalantis/Persei)

## ActivityIndicator
- https://github.com/erangaeb/dev-notes/blob/master/swift/ViewControllerUtils.swift
- https://github.com/icanzilb/SwiftSpinner

### hidden
- http://stackoverflow.com/questions/27007631/how-to-hide-a-button-in-xcode-6

### disable event
- https://sites.google.com/a/gclue.jp/swift-docs/ni-yinki100-ios/uikit/040-tatchiibentono-you-xiao-wu-xiaowo-qieri-tieru

## NavigationController and  TabBarController
- [coexistence of NavBar and TabBar](http://stackoverflow.com/questions/11083521/no-top-navigation-bar-in-a-tab-bar-controller-application)
- [複数のバーボタンアイテムのナビゲーションバーを追加する方法
5月 5, 2015](http://blog.apoorvmote.com/add-multiple-bar-button-item-navigation-bar/?lang=ja)
- [Changing Bar Color in Swift](http://stackoverflow.com/questions/24687238/changing-navigation-bar-color-in-swift)
- [Change Color Back Button in Navigation Bar](http://stackoverflow.com/questions/28733936/change-color-of-back-button-in-navigation-bar-swift)

## Network

### Alamofire
- [SwiftでCocoaPodsを使い始めようとしてハマったことメモ](http://qiita.com/yokomotod/items/884f624cf17ba4a5ef11)
- [Alamofire - Github](https://github.com/Alamofire/Alamofire)

### Net(Image Upload)
- [Net - Github](https://github.com/nghialv/Net)

## NSUserDefaults
- [[Swift]【NSUserDefaultsの基本的な使い方】表示、格納、削除。](http://qiita.com/mochizukikotaro/items/9098cd3c091787f9aacb)

## Realm

Realmはバージョンアップが激しいので基本的にOfficialを見るのがいいかと思います。
- [Realm official](https://realm.io)

以下はとても参考になりましたが、バージョンが古い可能性もあるので、要確認。
- [Realm for Swift まとめ完全版](http://qiita.com/okitsutakatomo/items/9134c5fa8bd4384a2acf)
- [Realmを使ってデータ管理【Swift編】-その3-](http://qiita.com/jtemplej/items/10ed4bc0cc6519682e6e)

### relation
- [次世代モバイルデータベース「Realm」のリレーションシップ](http://qiita.com/caesar_cat/items/6ebd92f4a0e700591e6b)

### migration
- [Unable to migrate to new schema with updated properties due to RLMRealm.setSchemaVersion block not being hit](http://stackoverflow.com/questions/28351335/unable-to-migrate-to-new-schema-with-updated-properties-due-to-rlmrealm-setschem)

### filter
- [Filtering query in Realm by NSDate throws NSInvalidArgumentException](http://stackoverflow.com/questions/31952669/filtering-query-in-realm-by-nsdate-throws-nsinvalidargumentexception)

## SpriteKit
- [【iOS】【swift】SpriteKitによるAngry Birdsのようなゲームを作る。](http://qiita.com/kitanoow/items/cf19864c8a948f38564b)

## Facebook SDK
- [Facebook SDK for iOS Reference  (v4.4)](https://developers.facebook.com/docs/reference/ios/current/class/)


使いづらいので、APIを直に叩く様にした！

- [Using the Graph API v2.4](https://developers.facebook.com/docs/graph-api/using-graph-api/v2.4)
- [GraphAPIExplorer](https://developers.facebook.com/tools/explorer)

### Login
- [Facebook Login in Swift - Xcode 6.3 iOS 8.3 Tutorial](https://www.veasoftware.com/tutorials/2015/6/11/facebook-login-in-swift-xcode-63-ios-83-tutorial)
- [Tutorial: How To Use Login in Facebook SDK 4.1.x for Swift ](http://www.brianjcoleman.com/tutorial-how-to-use-login-in-facebook-sdk-4-0-for-swift/)
- [A simple swift login implementation with Facebook SDK for iOS version 4.0](https://medium.com/ios-os-x-development/a-simple-swift-login-implementation-with-facebook-sdk-for-ios-version-4-0-1f313ae814da)

### FBSDKProfile
- [facebook sdk v4.0 for ios profile currentprofile no beging set](http://stackoverflow.com/questions/29292371/facebook-sdk-v4-0-for-ios-fbsdkprofile-currentprofile-not-being-set)

## Instagram API
- [Instagram Developer Site - api endpoint](https://instagram.com/developer/endpoints/users/)
- [Instagram Developer Site - restrict api request](https://instagram.com/developer/restrict-api-requests/)
- [redirect_uri for ios app](http://stackoverflow.com/questions/16188786/redirect-uri-doesnot-match-registered-redirect-uri-in-instagram-integration-in)
- [redirect_uri for oauthswift](http://stackoverflow.com/questions/29760707/error-instagram-redirect-uri-does-not-match-registered-uri/29768247#29768247)

## OAuthSwift
- [OAuthSwift](https://github.com/dongri/OAuthSwift/blob/master/OAuthSwiftDemo/ViewController.swift)
- [OAuth 2.0 with Swift Tutorial](http://www.raywenderlich.com/99431/oauth-2-with-swift-tutorial)

## Yahoo!
- [yconnect](http://developer.yahoo.co.jp/yconnect/client_app/ios/)

## SwiftyJSON
- [[Swift] JSONを簡単に扱う為のライブラリ SwiftyJSONのサンプル 2014年11月28日](http://dev.classmethod.jp/smartphone/iphone/swiftyjson/)

## Util
- [Swiftで文字列<->日付の相互変換をする](http://hack.aipo.com/archives/10562/)

## Background fetch
- [swiftでiosアプリケーションをバックグラウンドで実行してみた](http://qiita.com/iron-breaker/items/8f37da532635ca2f1c58)
- [iOS 7対応アプリを作るなら知っておきたい「UXを向上させるBackground Fetchの使い方」 #ios7yahoo](https://codeiq.jp/magazine/2013/12/3022/)

# Carthage
- [Carthage - Github](https://github.com/Carthage/Carthage)
- [[Swift] CocoaPodsとCarthageの違い / ライブラリ管理](http://qiita.com/nori0620/items/b81ae171f0e82b0c2d8a)
- [Swift用依存管理マネージャのCarthageを導入する](http://edy.hatenablog.com/entry/2015/05/17/172139)

# Fabric

## Beta
- [Beta Process Walkthrough](http://docs.fabric.io/ios/beta/introduction.html#adding-new-device-udids-to-the-ios-dev-center)

## Others
- plistはプロジェクトルートにおいておかないとエラるっぽい
- そもそもあんまりファイルパスやディレクトリをいじってはいけない

# Materials

## Free Images
- [背景画像とか大きい画像 - subtle pattern](http://subtlepatterns.com/)
- [LIGのまとめ](http://liginc.co.jp/designer/archives/6523)

# Rails

## Guideline
- [ハイパーメディア：RailsでWeb APIをつくるには、これが足りない (Hypermedia: The Missing Element to Building Sustainable Web APIs in Rails)](http://magazine.rubyist.net/?0050-Hypermedia)

## Rails Engine
- [Engines - RailsGuides](http://railsguides.jp/engines.html)

## Admin
- [Use Rails Engine](http://techlife.cookpad.com/entry/2015/04/06/155940)
- [ADMIN LTE](https://almsaeedstudio.com/)
- [Admin Bootstrap Template](http://bootstrapzero.com/bootstrap-template/admin)

## Rspec
- [Better spec](http://betterspecs.org/)

## api
- [Rails でつくる API のテストの書き方（RSpec + FactoryGirl）](http://blog.inouetakuya.info/entry/2013/10/27/200111)
- [Rails API Testing Best Practices
By Matthew on August 15 2013](http://matthewlehner.net/rails-api-testing-guidelines/)
- [Robust Mobile Clients (v2) by Z](https://speakerdeck.com/zdne/robust-mobile-clients-v2)
- [Designing for Reuse:Creating APIs for the Future](http://cdn.oreillystatic.com/en/assets/1/event/115/Designing%20for%20Reuse_%20Creating%20APIs%20for%20the%20Future%20Presentation%201.pdf)

## doc - yard
- [Rails/Rubyドキュメントをキレイに生成するYARD、早見表付き！](http://morizyun.github.io/blog/yard-rails-ruby-gem-document-html/)

## Active Job
- [これが一番シンプル](http://qiita.com/ryohashimoto/items/2f8fd685920a5318def4)

# AWS

# S3
- [
超定番サービス Amazon S3 の魅力を再復習 / We love S3 by Daisuke AIBA](https://speakerdeck.com/aibax/we-love-s3)