xyz-log.
トップへ戻る
Tech / 2025.12.20 2025.12.20 / 3 分 ...

完全に理解する Storyboard & UIKit (Day 1): 基礎概念と歴史

S7r1n9y

S7r1n9y

Engineer

完全に理解する Storyboard & UIKit
1 / 30
このシリーズの記事一覧
  1. 1. 完全に理解する Storyboard & UIKit (Day 1): 基礎概念と歴史
  2. 2. 完全に理解する Storyboard & UIKit (Day 2): XcodeでのStoryboardの基本操作
  3. 3. 完全に理解する Storyboard & UIKit (Day 3): UIViewControllerのライフサイクル
  4. 4. 完全に理解する Storyboard & UIKit (Day 4): Auto Layoutの基本原理
  5. 5. 完全に理解する Storyboard & UIKit (Day 5): Auto Layoutの複雑な制約の解決
  6. 6. 完全に理解する Storyboard & UIKit (Day 6): UIStackViewを使った効率的なレイアウト設計
  7. 7. 完全に理解する Storyboard & UIKit (Day 7): Size Classesによるレスポンシブデザイン
  8. 8. 完全に理解する Storyboard & UIKit (Day 8): Segueによる画面遷移とデータ渡し
  9. 9. 完全に理解する Storyboard & UIKit (Day 9): Navigation Controllerの活用
  10. 10. 完全に理解する Storyboard & UIKit (Day 10): Tab Bar Controllerの活用
  11. 11. 完全に理解する Storyboard & UIKit (Day 11): 基本的なUI部品(UILabel, UIButton, UITextField)
  12. 12. 完全に理解する Storyboard & UIKit (Day 12): UITextViewとキーボードハンドリング
  13. 13. 完全に理解する Storyboard & UIKit (Day 13): UIImageViewと画像リソース管理
  14. 14. 完全に理解する Storyboard & UIKit (Day 14): UIScrollViewとコンテンツのスクロール
  15. 15. 完全に理解する Storyboard & UIKit (Day 15): UITableViewの実装基礎
  16. 16. 完全に理解する Storyboard & UIKit (Day 16): UITableViewのカスタムセル作成
  17. 17. 完全に理解する Storyboard & UIKit (Day 17): UICollectionViewの実装基礎
  18. 18. 完全に理解する Storyboard & UIKit (Day 18): UICollectionViewのカスタムレイアウト
  19. 19. 完全に理解する Storyboard & UIKit (Day 19): Custom Viewの作成とStoryboardでの利用(@IBDesignable, @IBInspectable)
  20. 20. 完全に理解する Storyboard & UIKit (Day 20): アニメーションの実装(UIView Animation)
  21. 21. 完全に理解する Storyboard & UIKit (Day 21): Gesture Recognizerによるタッチ処理
  22. 22. 完全に理解する Storyboard & UIKit (Day 22): UIAlertControllerによるアラートとアクションシート
  23. 23. 完全に理解する Storyboard & UIKit (Day 23): UIDatePickerやUIPickerViewの実装
  24. 24. 完全に理解する Storyboard & UIKit (Day 24): Storyboard Referenceを用いたStoryboard分割
  25. 25. 完全に理解する Storyboard & UIKit (Day 25): XIBとStoryboardの使い分け・併用
  26. 26. 完全に理解する Storyboard & UIKit (Day 26): UIAppearanceによるアプリ全体の色・スタイル管理
  27. 27. 完全に理解する Storyboard & UIKit (Day 27): ダークモード対応とアセットカタログ
  28. 28. 完全に理解する Storyboard & UIKit (Day 28): Accessibility(VoiceOver対応など)のUI設計
  29. 29. 完全に理解する Storyboard & UIKit (Day 29): UIKitからSwiftUIへの移行 / UIKitでのSwiftUI利用
  30. 30. 完全に理解する Storyboard & UIKit (Day 30): 実践:1つのアプリをStoryboardとUIKitで完成させる
完全に理解する Storyboard & UIKit (Day 1): 基礎概念と歴史

Sponsored

完全に理解する Storyboard & UIKit (Day 1): 基礎概念と歴史

iOS開発の歴史は、そのまま UIKit の歴史と言っても過言ではありません。近年はSwiftUIが主流になりつつありますが、世の中にある多くの既存アプリは今なおUIKitとStoryboardで構築されており、これらを理解することはプロフェッショナルなiOSエンジニアにとって不可欠です。

このシリーズでは、公式ドキュメント(Human Interface GuidelinesやUIKit Framework Reference)をベースに、StoryboardとUIKitを基礎から応用まで網羅的に完全解説します。


1. UIKitとは何か?

UIKit は、iOS、iPadOS、およびtvOSアプリケーションのグラフィカルでイベント駆動型のユーザーインターフェースを構築・管理するための主要なフレームワークです。

アーキテクチャ上の位置付け

iOSのアーキテクチャは4つの層から構成されています。

  1. Cocoa Touch (UIKitが含まれる)
  2. Media
  3. Core Services
  4. Core OS

UIKitは最上位の Cocoa Touch層 に位置し、ユーザーのタップやスワイプといったイベントのハンドリング、画面への描画、アニメーションなどを司ります。

主な役割

  • UI要素の提供: ボタン(UIButton)、ラベル(UILabel)、テーブル(UITableView)など。
  • イベントハンドリング: タップ、ジェスチャー(UIGestureRecognizer)の管理。
  • アプリケーションの管理: アプリの起動パス、ライフサイクル(UIApplication)。
  • グラフィックスとウィンドウ: UIViewUIWindow を用いた描画パイプライン。

2. インターフェース構築の進化

UIを作るアプローチは歴史とともに進化してきました。

1. コードベース (Programmatic UI)

すべてをSwift(かつてはObjective-C)のコードで記述する方法です。

  • メリット: Gitでのコンフリクトが起きにくい、動的なレイアウト変更に強い。
  • デメリット: ビルドするまで画面の完成図が見えないため、微調整に時間がかかる。

2. XIB / NIB

Interface Builderを使って、1画面(または1パーツ)につき1つのXMLベースのファイルを視覚的に作成する方法です。

  • メリット: 画面ごとにファイルが分かれているため再利用性が高い。
  • デメリット: 画面遷移(どの画面からどの画面へ行くか)の繋がりを視覚的に把握できない。

3. Storyboard (iOS 5以降)

XIBを進化させ、複数の画面とその間の遷移(Segue)を1つのキャンバス上で視覚的に設計できる ようにした画期的な仕組みです。

  • メリット: アプリ全体のフローが一目でわかる。少ないコードで画面遷移を実装できる。
  • デメリット: 巨大なStoryboardは読み込みが遅くなり、複数人開発時にGitコンフリクトが地獄になりやすい。
    • 👉 (Day 24で解説する「Storyboard Reference」で回避策を学びます)

3. SwiftUIとの共存

2019年に発表された SwiftUI は、宣言的(Declarative)なUIフレームワークであり、UIKitの命令的(Imperative)なアプローチとは根本的に異なります。

では、なぜ今UIKitを学ぶのでしょうか?

  1. 既存資産の保守: 市場にあるアプリの大部分はUIKitベースです。
  2. SwiftUIの限界: SwiftUIではまだ実現できない、あるいは複雑すぎる細かなカスタマイズ要件が存在します。
  3. 相互運用: SwiftUIからUIKitを呼び出す(UIViewRepresentable)、あるいはその逆(UIHostingController)といった共存が現在のベストプラクティスです。

UIKitの基礎(Viewのライフサイクルやレイアウトの概念)を理解していることは、SwiftUIの「なぜそのように動くのか」を深く理解するのにも役立ちます。


📝 今日のまとめ

  • UIKit はiOSアプリの視覚的な基盤を提供するフレームワークである。
  • Storyboard は、UIコンポーネントの配置だけでなく、画面遷移も含めた「フロー」を視覚的に設計するツールである。
  • SwiftUI時代においてもUIKitの知識は必須 であり、両者を適材適所で使い分けることが求められる。

明日の Day 2 では、実際にXcodeを開いて、Storyboardの基本操作とInterface Builderの使い方をマスターします!

END OF FILE
この記事は役に立ちましたか?
SNSでシェアする
後で読む(ブックマーク)
完全に理解する Storyboard & UIKit
1 / 30
このシリーズの記事一覧
  1. 1. 完全に理解する Storyboard & UIKit (Day 1): 基礎概念と歴史
  2. 2. 完全に理解する Storyboard & UIKit (Day 2): XcodeでのStoryboardの基本操作
  3. 3. 完全に理解する Storyboard & UIKit (Day 3): UIViewControllerのライフサイクル
  4. 4. 完全に理解する Storyboard & UIKit (Day 4): Auto Layoutの基本原理
  5. 5. 完全に理解する Storyboard & UIKit (Day 5): Auto Layoutの複雑な制約の解決
  6. 6. 完全に理解する Storyboard & UIKit (Day 6): UIStackViewを使った効率的なレイアウト設計
  7. 7. 完全に理解する Storyboard & UIKit (Day 7): Size Classesによるレスポンシブデザイン
  8. 8. 完全に理解する Storyboard & UIKit (Day 8): Segueによる画面遷移とデータ渡し
  9. 9. 完全に理解する Storyboard & UIKit (Day 9): Navigation Controllerの活用
  10. 10. 完全に理解する Storyboard & UIKit (Day 10): Tab Bar Controllerの活用
  11. 11. 完全に理解する Storyboard & UIKit (Day 11): 基本的なUI部品(UILabel, UIButton, UITextField)
  12. 12. 完全に理解する Storyboard & UIKit (Day 12): UITextViewとキーボードハンドリング
  13. 13. 完全に理解する Storyboard & UIKit (Day 13): UIImageViewと画像リソース管理
  14. 14. 完全に理解する Storyboard & UIKit (Day 14): UIScrollViewとコンテンツのスクロール
  15. 15. 完全に理解する Storyboard & UIKit (Day 15): UITableViewの実装基礎
  16. 16. 完全に理解する Storyboard & UIKit (Day 16): UITableViewのカスタムセル作成
  17. 17. 完全に理解する Storyboard & UIKit (Day 17): UICollectionViewの実装基礎
  18. 18. 完全に理解する Storyboard & UIKit (Day 18): UICollectionViewのカスタムレイアウト
  19. 19. 完全に理解する Storyboard & UIKit (Day 19): Custom Viewの作成とStoryboardでの利用(@IBDesignable, @IBInspectable)
  20. 20. 完全に理解する Storyboard & UIKit (Day 20): アニメーションの実装(UIView Animation)
  21. 21. 完全に理解する Storyboard & UIKit (Day 21): Gesture Recognizerによるタッチ処理
  22. 22. 完全に理解する Storyboard & UIKit (Day 22): UIAlertControllerによるアラートとアクションシート
  23. 23. 完全に理解する Storyboard & UIKit (Day 23): UIDatePickerやUIPickerViewの実装
  24. 24. 完全に理解する Storyboard & UIKit (Day 24): Storyboard Referenceを用いたStoryboard分割
  25. 25. 完全に理解する Storyboard & UIKit (Day 25): XIBとStoryboardの使い分け・併用
  26. 26. 完全に理解する Storyboard & UIKit (Day 26): UIAppearanceによるアプリ全体の色・スタイル管理
  27. 27. 完全に理解する Storyboard & UIKit (Day 27): ダークモード対応とアセットカタログ
  28. 28. 完全に理解する Storyboard & UIKit (Day 28): Accessibility(VoiceOver対応など)のUI設計
  29. 29. 完全に理解する Storyboard & UIKit (Day 29): UIKitからSwiftUIへの移行 / UIKitでのSwiftUI利用
  30. 30. 完全に理解する Storyboard & UIKit (Day 30): 実践:1つのアプリをStoryboardとUIKitで完成させる
Related Articles