iOS 学习笔记 - 创建第一个APP

2 阅读3分钟

创建项目

我们已经完成了对 Xcode 的安装,相当于环境已经 OK 了,那么接下来就需要开始真正的 iOS 开发了。

首先点击 Xcode 图标打开 Xcode,这时候会出现 Xcode 的初始界面,在这里点击 Create New Project... 创建一个新的项目。

截屏2026-03-15 23.15.00.png

之后需要选择开发什么类型的项目,需要开发的是 iOS 平台的 App,所以在对话框中,选择 Applocation 中的 App 选项,再点击 Next 按钮。

截屏2026-03-15 23.33.34.png

点击 Next 之后,就能看到配置具体的项目信息的选项,填写项目的基础信息。

  • Product Name: TestDemo
  • Organization Identifier: com.meohao 这个对则
  • Interface: 选择默认的 Swift UI
  • Language: 开发语言选择 Swift

然后点击 Next,之后选择保存的目录,就能创建出一个最基础的 iOS App 的项目了。

截屏2026-03-15 23.39.16.png

项目分析

完成了最基础的项目创建,可以得到一个简单的 iOS 的项目代码和目录结构,并且右侧会展示我们当前页面的预览。这是一个基于 Swift UIiOS App 项目。

image.png

下面我们来分析一下我们创建出来的这个项目。

目录结构

Xcode 中,左侧显示了项目目录结构,可以看到,我们的项目中包含三部分:

  1. Assets: 这里放了 iOS App 的相关资源文件,有图标,色彩定义等。后续使用到了会详细介绍。
  2. CotentView: 页面文件,整个 iOS 项目都由一个个 View 组成,每个 View 也能作为组件放到其他 View 中,这就很想前端现在的组件化。
  3. TestDemoApp: 这是整个项目的入口文件,这个文件里的代码定义了入口。

代码文件

接下来进代码可以分析一下这两个文件都做了些什么:

import SwiftUI // 导入 Swift UI 包

@main // 这里表示这里是main,作为入库,相当于我们其他编程中的 main 函数
struct TestDemoApp: App { // 定义了一个结构体
    var body: some Scene {
        WindowGroup {
            ContentView() // 把 ContentView 放进来执行
        }
    }
}

这个入口文件,定义使用 @main 定义了入口,并且调用了 ContentView。那接下来看看 ContentView 的代码。

import SwiftUI

struct ContentView: View { // 定义结构体
    var body: some View {
        VStack { // 使用布局方式 竖排布局
            Image(systemName: "globe") // 展示图片
                .imageScale(.large) // 设置大小
                .foregroundStyle(.tint) // 设置样式
            Text("Hello, world!") // 展示文字
        }
        .padding() // 这个布局外加上边距
    }
}

#Preview { // 通过设个代码,可以再右侧看到当前的预览
    ContentView()
}

这两段代码中,可以认识到 Swift 结构和一些知识。

Swift 结构体

Swift 结构体是一种通用且灵活的构造体。结构体可以定义属性和方法,这个和其他编程语言中的 class 很像,但 Swift 中,也存在 class 的定义,它和结构体有部分相同之处,也有一些不一样的地方,后续使用到的时候再详细介绍。

从这里可以看出,结构体可以定义一些变量,同时也能定义一些常量和方法。

例如,定义一个结构体:

struct TestStruct {
    var number: Int
}

这就定义了一个有属性的结构体,同时,我们再定义属性的时候,也可以对其初始化。

struct TestStruct {
    var number: Int = 1
}

定义好了结构体,就可以对结构体进行实例化,可以看到示例代码中,已经有对结构体进行实例化的例子,在 #Preview处。对于已经初始化变量的结构体,我们可以再初始化的时候,不带参数:

struct TestStruct {
    var number: Int = 1
}

TestStruct()

然而,在未初始化的结构体中,则必须在实例化的时候,带上参数,不然会发生报错:

struct TestStruct {
    var number: Int
}

TestStruct(number: 1)

结尾

这里,我们就创建除了一个最简单的 iOS App 项目。同时也对 Swift 的结构体有了一定的了解。