iOS App 專案結構

在開始寫程式之前,了解 Xcode 專案的檔案結構是非常重要的。當你建立一個新的 SwiftUI 專案時,Xcode 會自動生成一些檔案,每個檔案都有其特定的用途。

讓我們來解剖一個標準的 SwiftUI 專案結構。

專案導覽器 (Project Navigator)

在 Xcode 左側的側邊欄中,你可以看到專案的檔案列表。以下是主要檔案的說明:

1. [App名稱]App.swift (例如 MyAppApp.swift)

這是 App 的進入點 (Entry Point)

在 SwiftUI 中,這個檔案通常包含一個標有 @main 的 Struct。它負責定義 App 的生命週期,並設定 App 啟動時顯示的第一個畫面(通常是 ContentView)。

import SwiftUI

@main
struct MyAppApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView() // 這裡是 App 的主視窗,顯示 ContentView
        }
    }
}

2. ContentView.swift

這是 Xcode 預設為你建立的第一個 UI 視圖 (View)。大多數的初始開發工作都會從這裡開始。它包含:

  • 視圖定義:描述畫面長什麼樣子 (例如 Text("Hello, world!"))。
  • 預覽提供者 (PreviewProvider):這段程式碼讓你在 Xcode 右側的 Canvas 中即時看到畫面預覽,而不需要執行模擬器。

3. Assets.xcassets

這是 資源目錄 (Asset Catalog),用來管理 App 所有的圖片、顏色、圖示 (App Icon) 等靜態資源。

  • AppIcon:設定 App 在主畫面、設定頁面等地方顯示的圖示。
  • Colors:你可以定義並命名顏色 (例如 "BrandColor"),方便在程式碼中重複使用,並支援淺色/深色模式自動切換。
  • Images:存放 App 需要用到的圖片檔 (@1x, @2x, @3x)。

4. Info.plist (資訊屬性列表)

雖然現代的 Xcode 專案中,很多設定都已經移到專案設定 (Project Settings) 的 "Info" 標籤頁中,但 Info.plist (Information Property List) 的概念依然存在。它這是一個 XML 格式的設定檔,用來告訴 iOS 系統關於這個 App 的重要資訊,例如:

  • App 需要使用哪些權限 (如相機、定位、麥克風)。
  • App 支援的螢幕方向 (直向、橫向)。
  • App 的版本號。

5. Preview Content

這個資料夾通常包含 Preview Assets.xcassets。這裡面的資源只會在開發階段的預覽 (Preview) 中使用,不會被打包到最終發布給使用者的 App 中。這很適合用來放一些測試用的假圖。

專案設定 (Project Settings)

點擊最上層的藍色圖示專案名稱 (例如 "MyApp"),會進入專案設定頁面。這裡可以設定:

  • Deployment Target:App 支援的最低 iOS 版本 (例如 iOS 17.0)。
  • Bundle Identifier:App 的唯一識別碼 (例如 com.example.MyApp),上架時非常重要。
  • Signing & Capabilities:設定開發者帳號簽署,以及開啟特殊功能 (如 iCloud, Push Notification)。

了解這些結構後,你在開發過程中就不會迷路,知道該去哪裡修改設定或新增檔案了。接下來,我們將實際動手建立第一個 App