0
1

More than 3 years have passed since last update.

iOS SDK備忘録

Posted at

以下を読んだ際の備忘録
UIKit&Swiftプログラミング 優れたiPhoneアプリ開発のためのUI実装ガイド Kindle版
https://www.amazon.co.jp/dp/B00ZF44J8K/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

■iOS SDK
xCodeに同梱されている。フレームワークやiOSの実行環境なども含む

■Application Bundle
→アプリの実体。これがメモリの上に乗る

■アプリの状態
・Active(以下の順で遷移した後、Background状態になる)
appplicationWillResignActive(:)
applicationDidEnterBackground(
:)
application(:shouldSaveApplicationState:)
application(
:didDecodeRestorableStateWithCoder:)
・Background(裏で動いている)
通常5秒、延長して180秒
・Suspended(現在動作はしていないが、再開できるようにメモリ上に残っている)=sleep?
メモリが圧迫されたらKillされる
・Not Running(メモリにいない)

■アプリの構成
・Deviceに関する部分
→iPhoneの、何インチなのかとか
・Application共通部分
→Framework部分。ホームボタンを押した時にホームを表示したり、着信が来た時に着信画面を出したり
・アプリ毎に実装が異なる部分
→デザインパターンに基づいて実装する

■イベントループ(Main Run Loop)
イベントが発生するまで待ち続け、イベントが来た際に1つずつ処理する仕組み
イベントは、ユーザー操作、端末が振られた、Notificationを受信した、着信が来たなど
イベントは、イベントキューに積まれる( Queuing)
その後、渡し先にディスパッチ(割り振り)される

■UIApplicationオブジェクト
イベントループを管理し、適所にディスパッチする。
=アプリの動作全体を管理する。全てのアプリは、UIApplicationのインスタンスを持つ

■フレームワーク
以下を含んだパッケージ(ディレクトリ)
・システムAPI
・ダイナミック共有ライブラリ
・ヘッダファイル
・画像
・補助アプリなど
・その他ライブラリのサポートに必要なリソース

■MVCパターン
・モデル=アプリが扱うデータを保持、操作
・ビュー=モデルが持つデータをユーザに表示することと、UIを提供すること
・コントローラ=両者の橋渡しと、Notificationなど、端末からの通知を受け付ける

■Delegateパターン
プロトコルを継承させ、呼び出し元はプロトコルのメソッドを呼ぶだけ。
プロトコルを実装するクラスに実装を委譲するのが目的

■Observerパターン
NSNotificationCenterで呼び出すこと。
このパターンは、Broadcastのように、複数機能に処理タイミングを通知することが目的
アプリがバックグラウンドになったタイミングをViewControllerで知りたいときはAppDelegateからNSNotificationCenterで呼べばいい

■シングルトンパターン
オブジェクトをたった一つにすることで、処理の漏れを防ぐ

■InterfaceBuilder
デザインのツール。
Storyboardを作るキャンパスを提供

Auto Layout
Size Class

■Storyboard
設計図
場面=画面(View Controller Scene = ViewController + View)
キャラクター=部品
シナリオ=画面遷移(Segue)
ルール1=Viewの大きさや位置(Auto Layout)
ルール2=表示可否、Constraintの利用有無の取り決め(Size Class)

■コンポーネントの役割
コンテンツViewController
通常のViewController
コンテナViewController
ViewControllerを管理するViewController
Scene
StoryBoard上の一画面

■ライフサイクル
アプリが起動
UIApplicationオブジェクトがUIWindowインスタンスを生成する
メインのStoryBoardをインスタンス化
Initial ViewControllerをインスタンス化
UIWindowオブジェクトのrootViewControllerプロパティに設定

Viewの木構造
rootViewControllerのrootViewをロード
rootViewのsuperviewプロパティにWindowオブジェクトが入る
rootViewの子Viewをロードし、subviewsプロパティに入れる

ViewControllerの木構造
ViewControllerも木構造になっている
parentViewController、childVoiewControllersプロパティそれぞれに格納されている

■モーダルビューについて
モーダルビューは、画面いっぱいに表示するか、一回り小さく表示するか指定できる
モーダルビューを閉じるのは、呼び出し元のViewControllerの役目。
でも一時的にモーダルビューに制御が移っているので、Delegateで移譲する

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1