iOSアプリ開発で【知ったこと】をつらつら追記していく
どんどん追記していきます。
ブログというより自分の学習のため、公開しておいてどなかの役に少しでもたてれば光栄かなとか思ったり。(笑
【Qiitaのこんな機能作りたかった記事からの抜粋】
iOSでこんなアプリ,こんな機能を作りたかったらこれを見ろ!作りたいアプリに対応するクラス、フレームワーク、ライブラリのまとめ! - Qiita
・UITableViewControllerを使ってタイムラインを作るんだって。
・画像の読み込みとかは時間がかかるので、「非同期」で実施
・ヘッダー、フッターもできるみたいだから、元記事参照。
でもヘッダーフッターはTableを使わずに、別のパーツを使えばFBみたいな、上に検索。下にtabgbed Applicationみたいにできる?
UITableViewControllerってこんなやつね。
(設定画面とかのやつ。たぶんこれの幅を広げたりして、デザインをいい感じにしていくんだろうね。んでもって、古い記事を更に読み込む場合はテーブルのrowを追記して読み込むみたいなノリなんだと思う。
↓↓↓
■Insta的なもの作りたい。
・フィルターは、いろんなライブラリが出てるのでそれを使えばそれなりにできる?
(GPUImage、Aviary、CoreImage(アップルが提供しているもの))
・四角を縦横きれいに並べたい。→ UICollectionViewControllerを使う。
UITableViewControllerの親戚みたいなもんだろう。
(追記)
UICollectionViewControllerは、Tableと違って自由に並べられるUIKitということ。
その中で、UICollectionViewFlowLayoutはタイル上に並べるものである。
■ミュージックアプリを作りたい。
工事中。
ここは、今現在自分が作りたいappにマッチしているから、
アプリ完成後に詳細を記入予定。
・iPhoneに入っている音楽をとりたいとか。
・アプリを閉じても音楽を再生させる。
・音楽系のアプリを作るためにしっておいた方がよい情報は、
やっぱりAppleがだしているものを見ればいい。
<https://developer.apple.com/jp/documentation/iPodLibraryAccess_Guide.pdf>
【会社の受付アプリを作ったサイトからのメモ】
Swiftで会社の受付アプリを作った話とCADisplayLink | 株式会社VASILY(ヴァシリー)
■アプリ作成に利用したサービス×3
・Heroku
AWS的な感じと思っておけばいい。元々はRubyのCloud開発環境として提供されていたはず。(今はJavaとかもサポートしてるはず。Salesforceが数年前に買収してる)
・Slack
Skype、LINEみたいなもん。(まだ日本語版はない。でも使いやすいらしいよ。)
・twilio
手軽に電話の受信(音声案内)、発信ができるCloudツール。
従来の会社が使用しているPBXなどを構築しなくてもよいため、手軽に使用できる。
■ 「CAGradientLayer」
UIViewなどに対して簡単にグラデーションがつけられるapi。
■「CADisplayLink」
画面が更新されたる度に処理をしたいときに使うも
※パフォーマンス的にNSTimerよりも良くなるそう。
http://ushisantoasobu.hateblo.jp/entry/2014/08/23/184650
----------------------------------------------------------------------------------
↓↓↓要約サイトの要約↓↓↓
アプリケーションが、
ディスプレイのリフレッシュレートに描画を同期させる、TimerObject。
画面が更新されるたびに、
セレクタと ターゲットオブジェクトを提供する。
----------------------------------------------------------------------------------
■「AudioToolbox.framework」
音を扱うフレームワーク。
たしか、PJに入れている音楽を再生させる時に使用したはず。
■アニメーションの使い方が独特!?
サイトで詳細を確認。
【コーディング規約に関する抜粋】
swift-style-guide/README_JP.md at master · jarinosuke/swift-style-guide · GitHub
■可能な限り「let宣言」をvar宣言より優先する
「 var」だと
・nilのまま変数を使用した場合、ぬるぽになるがそれが判明するのは、対象コードを実行したタイミング(ランタイムエラーってやつですね。)
例) コンパイル辞退できない
let aaa: String
-----------------------------------------
「let」だと
・必ず初期値を設定しないといけない。
・xcodeが静的チェックで、実行前にエラーを知らせてくれる。★重要。
例)
var bbb: String
if bbb == "" { ←ランタイムエラー
}
さらに、swift1.2からは最初に値を設定せず、
後の箇所でif文で定義したものもコンパイル可能となった。
(letの使用範囲が広がる。)
Swift 1.2のif let複数宣言と例外処理 - Qiita
【とりあえず気づいたこと】
■Stroryboard VS コードベースでの画面開発
◯storyboard
・比較的簡易なUI
・iOS標準UIに近い形の見た目を作りたい
◯xib
・複雑なUI
完全作り込みのようなものは、こちらを使用したほうがよい??
※ ただし、AutoLayoutなど多くの画面サイズに対応できないので、自前でサイズ比を使用して開発しないといけない。
■アプリ初回起動時に、一番最初にロードされる画面
・「Initial View Controller」という
・設定方法2種類
「インスペクタ上での設定」
Attibuteインスペクタ→「is Initial View Controller」にチェック
「Stroyboard上での設定」
UI上から、現在Initial View Controllerに指定されているUIViewの左側についてる矢印をドラッグ・アンド・ドロップで、変更したいUIVIewに移動