iOSアプリ1本つくるにも、わからないことが多すぎて調べまくったのだが、いろいろありすぎて1つ1つ記事にしてられないというか気力がないのでリンク集を残しておく。
あまり整理されていないが自分用ということで。
いやー iOS アプリ開発難しい。
Xcode
- Xcode 6 (Beta5) #Swift : 画面遷移(Navigation Controller) | MUSHIKAGO APPS MEMO
- 【Swift】UINavigationControllerの使い方。複数画面を階層的に移動する。 | はじはじアプリ体験記
- storyboardを使わず、Swiftでナビゲーションバーをつくる(UINavigationControllerとか) - Qiita
- Storyboard を使わずにコードで書く方法
- Swift初心者メモ Storyboardのsegueで遷移した画面に値を渡すす - Qiita
- 別の Controller に値を渡す方法
- 【Swift】UITableViewの空セルのseparatorを消す方法 - Qiita
- わからなくてクッソ調べたのに一撃だったオチ
- iOS - [Swift]画面を縦固定にする方法(10933)|teratail
- チーズくんの備忘録 [iOS]UIBarButtonItemに設定する画像サイズ
- 20x20
Assets.xcassets
を開いて、ドラッグアンドドロップ
- 【iOS】UIButton に Retina(高解像度) 画像を表示 | iOS & Android & Linux Labs
- Retina 用は
@2x
を拡張子の前の部分のファイル名に最後に含める - iPhone6 Plus など用に
@3x
も必要みたい
- Retina 用は
- StoryboardでUITableViewControllerにUIViewをねじ込む - Qiita
- TableView の上部に普通の UIView を配置する方法
- Maybe delegate was already set in `xib` or `storyboard` and now it’s being overwritten in code. · Issue #675 · ReactiveX/RxSwift
- TableView を drive する前には
tableView.dataSource = nil
が必要
- TableView を drive する前には
- ios - Trigger an action when cell in static UITableView is tapped [Swift] - Stack Overflow
- TableView の Static Cells のタップに反応するコードを書くには
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
- TableView の Static Cells のタップに反応するコードを書くには
- realm/SwiftLint: A tool to enforce Swift style and conventions.
- [Xcode] スペースのみの行を空行にする設定 | Developers.IO
- 最初にやっとくべきだったやつ。あとからだと既存のスペース行のみ行を一括で直す方法わからず結局手で直す羽目になった
- 「ハンバーガーメニューのアイコン」の商用利用可能な無料&フリーイラスト素材 | アイキャッチャー
- dekatotoro/SlideMenuControllerSwift: iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift.
- Xcodeでプロジェクト名を変更する方法 (Xcode8.0) | Libra Studio エンジニアブログ
- テキトーな名前でつくりはじめてしまったので後から名前変更するの超メンドかった
- 【Swift】UINavigationBar タイトルを画像に設定、高さや行数を変更する方法。 | はじはじアプリ体験記
- 【Swift】UINavigationBar タイトルを画像に設定、高さや行数を変更する方法。 | はじはじアプリ体験記
- Android,iOSアプリ用画像リソースとアイコンサイズまとめ(2016/4版)[2016年11月更新] | OPTPiX Labs Blog
- UIColor - iPhoneアプリ開発の虎の巻
- XLPagerTabStripの使い方とカスタマイズ - Qiita
- Xcodeのフォルダやファイルのリンク切れを直す。 – コタツと台所にて作るアプリ 9 | ずっとMegane。
- ファイル移動とかしたらこれをやってちゃんとリンクさせる
- Xcode 8.2でiOS 10.3実機上でデバッグしたい - shodai memo
- iOS 10.3 にすると Xcode 8.3 が要求される
- Xcode 8.3 は Sierra が要求される
Swift
- swift-style-guide/README_JP.md at master · jarinosuke/swift-style-guide
- 早期 return のための
guard
- 早期 return のための
- SwiftのOptional型を極める - Qiita
- swift で setter のみを private に - Qiita
private(set)
について
- Swiftの列挙型(enum)おさらい - Qiita
- Swiftにおけるclassとstructの使い分け - cockscomblog?
- Swiftでfor in文を使った時にindexを取得する方法 | Swift3.0 Web入門書
- Swift の Subscript について - Qiita
- UITableViewCell内の画像がタップされた時にUITableViewの行番号を取得するいくつかの方法 - Qiita
- 【Swift3】SwiftでアプリからSafariで指定したWebページを表示する | テフナムの定理
- Swift で Class-Only Protocol を定義する - Qiita
- [Swift]数字を三桁ごとにカンマ区切りにする - Qiita
- Providing a default value for an Optional in Swift? - Stack Overflow
- Optional の orElse 的なのは
var unwrappedValue = optionalValue ?? defaultValue
- Optional の orElse 的なのは
- 【iOS】リリース時にログ出力しないようにする方法 - Qiita
- Swiftのドキュメントコメント - Qiita
- 【Swift】Optional型を安全にunwrapしよう - Qiita
- do, try, catch, throws, throw, guard, defer 全部使ったサンプル書いてみた - Qiita
- 指定イニシャライザを確実に呼ばせる方法 - Qiita
- Swift で UIViewController のサブクラスを引数なしの -init でインスタンス化する - Qiita
- Swift 3.0 エラー処理入門 - Qiita
Rx
- オブザーバーパターンから始めるRxSwift入門 - Qiita
- 一番わかりやすかった
- RxSwiftの動作を深く理解する - Qiita
- RxSwiftで実行するSchedulerの作り方とお行儀良く扱うためのメモ | Tomorrow Never Comes.
- RxJavaを使ってCallback Hellから脱出する( Vert.x がいいね!第5回 ) - Taste of Tech Topics
- Rx を使うことでコールバックのネストを平坦にする例
- RxJava だが参考になる
- 【RxSwift】2つのUITextFieldに入力された数値の合計をUILabelに表示する
combineLatest
の基本的な使い方
- RxSwiftのすぐに取り込める使用例をまとめてみた🏄🏻 - Qiita
- UI のバリデーションの方法例
- 2 つのテキストフィールドに入力しないとボタンが有効にならないようにする例
- RxSwiftでUIの更新にはDriverを使ってみたまとめ - Qiita
Driver
の基本を MVVM で- mafmoff/RxDriveRSSFeed
- RxSwiftでの実装練習の記録ノート(後編:DriverパターンとAPIへの通信を伴うMVVM構成のサンプル例) - Qiita
Driver
と MVVM
- RxCocoaが提供するDriverって何? - Qiita
Driver
- RxSwiftを使ってアプリを作ってみて、よく使った書き方 - Qiita
concat
やcombineLatest
やinterval
の使用例
- RxSwiftのiOSサンプルコードを読み解いてみた - Qiita
- 健康的なMVVM 書いてますか? ~MVVMアンチパターン集~ - SSSSLIDE
- RxSwiftをつかってMVVMアーキテクチャを実装する - リクルート住まいカンパニー Tech Blog
- RxJS の Operators (1) - Observable の生成 - Qiita
HTTP クライアント
- Web Scraping and Parsing HTML in Swift with Kanna and Alamofire
- Alamofire で http 通信して、Kanna で html を解析するサンプル
- Rx は未使用
- Swiftを使ったAPIクライアントの実装方法 - ユニファ開発者ブログ
- HTTP クライアントを struct で定義
- ObjectMapper で指定した型にマッピングする
- RxSwiftとAlamofireとObject Mapperを使ったHttpリクエスト - Qiita
- こちらは HTTP クライアントを class で定義
- Rx は未使用
- まだ closure で消耗してるの? - Qiita
- コールバック地獄が Rx でどう改善するかの例
- Alamofire を Rx 化するサンプルあり
- RxSwiftを用いたシンプルなHTTPクライアントの実装例 - Qiita
- HTTP クライアントのインタフェース protocol を使った例
- 実行するスレッドの切り替え方法
- RxSwift - Making HTTP requests
- RxSwift 公式
- Alamofire ではなく URLSession で通信
- iOSでライブラリに頼らず、URLSessionを使ってHTTP通信する - Qiita
- Alamofire ではなく URLSession で通信するサンプル
- Swiftでいい感じのViewModelを作るためのメモ - Qiita
- http://qiita.com/laiso/items/9e113e4aecb546300360#io の部分が HTTP クライアント
- 認証セッションを付与してURLをロードする【Swift3.0】【Alamofire4.2.0】 - Qiita
- Alamofire で http ヘッダーに Cookie をセットして実行する方法
- NowDeveloping: Alamofireのバージョン4以降でCookie付きの通信を行う
- 同じく Alamofire で Cookie を使う方法
- Alamofireのrequestにtimeoutを設定する - Qiita
- デフォルトは 60秒 だった
- Alamofireでデータ受信が終わるまで待機する方法 - Qiita
- 手抜きしたいときはこれで十分いけた
UserDefaults
ライブラリ
- [Swift] [iOS] チャート表示ライブラリ [ios-charts] - Qiita
- iOSでタブデザインを実現するXLPagerTabStripが素晴らしい - アニマネ開発日誌
- 上部のスクローラブルなタブ、スマートニュース風のアレ
- [Swift3.1] ライブラリ「XLPagerTabStrip」の使い方(導入) - Qiita
- XLPagerTabStripの使い方とカスタマイズ - Qiita
セキュリティ
- SwiftでKeychainを簡単に使うライブラリ “KeychainAccess” を書きました - 24⁄7 twenty-four seven
- soffes/SAMKeychain: Simple Objective-C wrapper for the keychain that works on Mac and iOS
- Star 多い
- iOS アプリにおけるデータセキュリティを考える | ギャップロ
- Cocoaの日々: [iOS] Keychain Services とは
- Cocoaの日々: [iOS] 複数アプリケーション間でのデータ共有 〜 Keychain Services を使った第三の方法
- 異なるアプリ間でキーチェーンを共有するには Keychain Sharing
Auto Layout
- Swiftワンポイント学習 Auto Layout⑦Issuesメニューの使い方その1 | TECH Projin
- 「Update Frames」はstoryboard上の位置・サイズを制約に合わせる
- 「Update Constraints」は制約をStoryboard上の位置・サイズに合わせる
- xcodeでAutoLayoutでレスポンシブデザイン - Qiita
- Auto Layoutの設計ベストプラクティスと、Viewの種類ごとのテクニック集 - Qiita
- UIScrollViewにおけるAutoLayoutについてまとめる - Qiita
UINavigationBar
UIAlertController
UIView
UILabel
UITextView
UIScrollView
- delegate
- 全画面にUIScrollView(UIWebView)を配置すると、ステータスバーを表示している場合、ステータスバーの下にコンテンツが重なって表示されてしまう
- [iOS] Storyboard上でUIScrollViewを設定する : 雑食プログラミング備忘録
- height を直接してしているのがちょっと・・・
- スクロールビューがスクロールしない Xcode5 / iOS7 : iPhoneアプリ開発・Swift・Objective-C勉強まとめ
- UIScrollView で縦スクロールを実現する!! - 食後のSwift ~琵琶湖からコンバンハ~
- ScrollView-View パターン、height 直接指定している
- 縦スクロールするUIScrollViewをXcode6のAutolayout,Size Classes付きStoryboardで実現する - Qiita
- これも ScrollView-View パターン、height 直接指定している
- UIScrollViewにおけるAutoLayoutについてまとめる - Qiita
UITableView
- セクションヘッダーとフッターを常に表示させず一緒にスクロールさせるようにするには UITableView の style を
Grouped
にする - indexPath.section
indexPath.section
でセクション番号取れる
- UITableViewでセクションフッターをページ下部に残さない・固定しない方法 | やんだーのスマホアプリ開発メモ ~Objective-C+PHPでiPhoneアプリとJava+PHPでAndroidアプリ~
- UITableViewでSectionHeader/SectionFooterを残さない方法 - Qiita
- uitableviewで複雑なレイアウトを作る方法 - とりあえずphpとか
- いろいろやってはみたけど結局は Grouped でやったので不要になった
- iOS - UITableViewのセクションヘッダー背景/文字色を変更したい。(65533)|teratail
- iOSのスイフトでの複数のセクションでのUITableView - Apoorv名言
- UITableViewDataSourceプロトコル | Second Flush
- [iPhone] UITableView Section の設定
- ios - UITableView with dynamic prototypes content and multi sections - Stack Overflow
- TableViewのSectionに画像を追加する - Qiita
- Grouped UITableView のセクションヘッダーおよびフッターの余白をなくす方法 - Qiita
- セクションフッターの高さ0にしても効果なしで
CGFloat.leastNormalMagnitude
じゃないとだめ。こんなの絶対わからん
- セクションフッターの高さ0にしても効果なしで
UIStackView
- StackViewを賢く使ってらくちんAutoLayout - Qiita
- 【Swift】Interface Builderで作成したUIViewをプログラムから呼び出す
- 【Swift】超便利StackViewの実践的使い方!まだAutoLayoutで消耗してるの? - Qiita
Xib, @IBDesignable, @IBInspectable
- [Swift]xibファイルを呼び出す最も簡単な方法 - Qiita
- カスタムViewをNibから初期化し、IBDesignableとIBInspectableで便利に使う - Think Big Act Local
- @IBDesignable使ってXcodeのAttributes Inspectorで設定を変更,リアルタイムでデザインを確認できるUIButtonを作る - Qiita
- StoryboardやxibでUIViewの枠線・角丸設定をする(Swift) - Qiita
@IBInspectable
で storyboard 上でカスタムな UI 確認できるの便利
addTarget
UI 部品にイベントを割り当てる
- ios - Swift3 - How to add a target action to a UITableViewCell - Stack Overflow
- 同じ ViewController 内のメソッド登録なら普通にイケる
- 親 ViewController を設けてそこのメソッド登録ってのが今んとこうまくいかない・・・
- xcode - Cannot connect IBAction to table view from xib - Stack Overflow
- メソッド名を文字列で指定すればイケるのかな・・・?
- ios - Swift 2.2 #selector for delegate/protocol compile error - Stack Overflow
- delegate を使うパターン?
- タップ認識 - お?いけるくさい?
UIGestureRecognizer
とcancelsTouchesInView
の関係について- > UIGestureRecognizerをUIViewに組みこむと、ほかのタッチイベントが無効になります。それを避けるには、UIGestureRecognizerのプロパティ「cancelsTouchesInView」をNOにします。
- UILabelやUIImageViewのタッチイベントを取得する | Moonmile Solutions Blog
- UI 部品に tag をつけると Swift から UI 部品を取得するのがラク
- ios - Swift, Custom UIButton does not work when click - Stack Overflow
userInteractionEnabled
でイベントを透過するか否か決まる- 親 View で userInteractionEnabled は有効になっていないと、その上に置いた UI 部品はイベントとれなくなる