0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者Swift】実践で学ぶUI更新・用語完全ガイド(Part1)

0
Posted at

はじめに

swiftの学習を開始して、メインスレッドの重要さについて学びました。今回は前回の記事と重複になる部分はあるかもしれませんが、他の用語も含めて、今後の現場で役立てそうな知識を整理しました。今後も都度仕入れた用語はまとめておこうと考えています。


1. 開発フローと構造の用語まとめ

開発をスムーズに進めるために、まずは「どこで何をしているのか」の用語と流れをまとめました。

🛠️ コードを「管理」するためのツール

  • GitHub
    • 世界中のエンジニアがコードを保存・共有する「クラウド上の保管庫」です。チーム開発や、自分のコードのバックアップに使います。
  • SourceTree
    • Gitの操作(保存や送信)を、コマンドではなくボタン操作で直感的に行うためのツールです。
  • リポジトリ (Repository)
    • プロジェクトごとの「貯蔵庫」のこと。ここに変更履歴がすべて記録されていきます。

📂 Xcodeプロジェクトの構造

今回はViewとControllerを使用しました。アプリ設計の基本である「MVC」の理解も深めるために整理します。※今回はModelまでは使用していませんが、今後のための復讐になるかと考えて記載。

  • Main.storyboard 【View / 見た目】
    • ボタンや画像を配置する場所。
  • WeatherViewController.swift 【Controller / 制御】
    • ユーザーの入力を受け取り、適切なデータ処理を指示して画面を更新する。
  • WeatherModel.swift 【Model / データ】
    • 情報を保持したり、サーバーからデータを取ってきたりする。

💡 豆知識:MVCモデルとは⁇

アプリの設計図である MVCモデル は、機能を以下の3つの役割に分割して管理する考え方です。

  • Model(モデル):データの処理担当
    • データベース(DB)とのやり取りや、データの計算・保存など、アプリの「中身」の処理を専門に行います。
  • View(ビュー):画面の入出力担当
    • ユーザーが目にする画面の表示や、ボタン入力などの「見た目」と「操作」を受け持ちます。
  • Controller(コントローラー):司令塔・仲介担当
    • ユーザーの操作を受けて、処理を Model に振り分けたり、処理結果を適切な View に返したりする「交通整理」の役割を果たします。

なぜ3つに分けるのか?
それぞれの役割を独立させることで、今回のような「画面の背景だけを変えたい(Viewの変更)」ときや「(将来的に)データの保存先を変えたい(Modelの変更)」ときに、他の部分に影響を与えずに修正が可能となります。


2. 見た目とコードをつなぐ「IBOutlet」

Storyboardに配置した画像をコードで操作するためには、**IBOutlet(アイビー・アウトレット)**という窓口を作る必要があります。
『Controller』>『XxxxViewController.swift』の上段に記載する必要があります。

import UIKit
import CoreLocation

class WeatherViewController: UIViewController {

 @IBOutlet weak var backgroundImageView: UIImageView!


3. iOS開発の絶対ルール:メインスレッド

ここが最も重要なポイントです。

マルチスレッドとは?

1つの処理(通信など)をしている間に、別の処理(アニメーションなど)を並行して進める仕組みです。複数の作業員が分担して仕事をするイメージです。

なぜ「Mainスレッド」が重要か

iOSでは、**「画面(UI)の更新は必ずMainスレッドで行う」**という鉄則があります。

  • Mainスレッド: ユーザーの操作や画面描画のみを扱う。
  • Backgroundスレッド: 重い処理や通信を裏で行う。

※デッドロックになる状況を避けることに繋がります。


4. 他用語について

  • データフェッチ (Data Fetching)
    • ネットワークを介してデータを「取ってくる」処理のことです。状況によって時間がかかる『重い処理』となるため、メインスレッドを止めないように非同期(バックグラウンド)**で行う。
  • スレッド安全
    • 複数のスレッドが同時に動いても、プログラムの動作が保証される状態。
  • デッドロック
    • 複数のスレッドが互いの動きが終わるまで待っており、結果的にどちらも動けなくなる状態。
0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?