购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.6 项目文件结构详解

最左侧的项目文件导航区域会存放所有与项目相关的文件,包含项目主文件、视图文件、资源库文件、预览配置文件等,开发者也可以自行创建文件和文件夹来完善项目内容。项目文件导航区域如图1-25所示。

图1-25 项目文件导航区域

可以看到视图文件ContentView放置在项目的文件中,通过单击文件,代码编辑区域和实时预览窗口将会自动切换展示内容。

1.6.1 项目主文件

项目文件导航区域中最上面的“Chapter1”文件为项目主文件,所有与项目相关的文件都会放置在此文件的目录层级之下,且该文件还可以用于进行项目的各项配置。项目主文件如图1-26所示。

图1-26 项目主文件

项目主文件分为“PROJECT”和“TARGETS”两部分,PROJECT部分包含配置该项目的基础信息,包括该项目开发和测试的版本、使用的语言,以及使用的第三方库等情况。

由于Apple每年都会更新SwiftUI框架的内容,新推出的UI视图可能需要较高的iOS版本,因此在PROJECT部分可以设置该项目开发的版本,项目开发的版本如图1-27所示。

图1-27 项目开发的版本

其他配置在后续的章节中将会使用,可以先保持默认选项,下面来看TARGETS部分。单个PROJECT下会有多个TARGETS。例如该应用除了iOS端的项目,还包含Widget项目,抑或watchOS端的项目,开发者可以在现有的项目基础上直接创建其他子项目,TARGETS部分就会整合并关联所有的子项目的相关配置。

在当前项目中,可以在TARGETS部分的“Supported Destinations”栏目下配置项目支持的平台,iOS项目默认可以在iOS、iPadOS、macOS(搭载M系列芯片)平台上运行,开发者也可以自行添加或删除项目所支持的平台,项目支持平台如图1-28所示。

图1-28 项目支持平台

与项目支持平台相关联的配置还有“Minimum Deployments”栏目,该栏目用于配置项目运行的最低iOS版本。每年Apple都会对各平台的操作系统进行大版本更新,而每次更新时一些发布较早的产品将不再支持新版本的特性。

当开发iOS项目时,SwiftUI的某些功能特性也会要求最低iOS版本,当该应用正式发布到Apple Store时,也需要制定最低iOS版本。Xcode默认的最低iOS版本为当前最新iOS版本,开发者可以根据项目需求自行选择合适的iOS版本,最低iOS版本如图1-29所示。

图1-29 最低iOS版本

“Identity”栏目用于设置应用的基本信息,包含应用的分类、显示的名称、标识符、版本号等,应用的基本信息如图1-30所示。

图1-30 应用的基本信息

“Deployment Info”栏目可以设置项目运行设备的方向及顶部状态栏配置信息,例如设置在iPhone设备上运行时,只支持用户手持时的纵向布局,而在iPad设备上运行时,支持任意方向布局。

顶部状态栏的配置信息可以根据业务设置为默认,或者只以浅色模式或深色模式固定,抑或在应用运行时不使用顶部状态栏的全屏显示模式。运行设备设置如图1-31所示。

图1-31 运行设备设置

“App Icons and Launch Screen”栏目可以设置应用图标的来源和启动页的文件路径。应用图标的来源和启动页的文件路径设置如图1-32所示。

图1-32 应用图标的来源和启动页的文件路径设置

默认情况下应用图标的来源为资源库Assets中的“AppIcon”文件,对于这个配置项,开发者可以不做调整。启动页默认为空,开发者可以创建一个Storyboard类型的文件,通过绘制的方式完善启动页的UI设计,这部分内容将会在后续的章节中进行更详细的分享。

其他栏目的配置项使用得较少,保持默认即可。TARGETS部分还有一个特别重要的栏目,该栏目可用于权限的配置,在“Info”选项卡下,每当项目中需要调用iOS硬件设备时,都需要在此选项卡下的“Custom macOS Application Target Properties”栏目中配置相关权限。权限配置栏目如图1-33所示。

图1-33 权限配置栏目

1.6.2 项目入口文件

再回到项目主文件Chapter1中,第一个文件是“Chapter1App”,在Chapter1App文件中,可以看到和ContentView文件相似的代码。Chapter1App文件中的代码如图1-34所示。

图1-34 Chapter1App文件中的代码

在Chapter1App中,使用Swift 5.3发布的@main属性包装器修饰整个Chapter1App结构体,即将遵循App协议的Chapter1App结构体中的视图作为App打开时的默认视图。简单来说,当用户打开App时,App默认显示的“首页”就是Chapter1App中配置的视图。

与View协议类似,App协议中也需要一个body属性的视图容器作为入口,而入口遵循Scene协议,通过WindowGroup来显示应用被打开时显示的视图,默认为ContentView视图。

在实际开发过程中,打开App时默认显示的页面可能是“首页”,或者是“登录页”“引导页”。在更复杂的场景下,开发者可以增加判断条件,根据用户是否登录和是否首次进入来呈现不同的页面。

WindowGroup可以更好地处理这种复杂场景,它通过将不同的视图添加到视图组中,自动管理需要显示的视图,甚至通过不同的平台来管理视图的呈现方式。可以按住“option”键并单击WindowGroup,查看Apple官方对WindowGroup的说明,WindowGroup的说明文档如图1-35所示。

图1-35 WindowGroup的说明文档

1.6.3 Assets库

Assets库是存放当前项目的素材内容的文件夹,可以存放包含应用图标、图片素材、颜色素材等文件。

在实际开发过程中,为保障App质量和UI风格的统一,UI设计师常常针对某一款App设计一套UI设计规范,设计规范中规定了App的色彩、字体、应用图标等。开发者可以提前将符合相关规范的素材文件拖入Assets库中,Assets库中的文件可以直接在项目中被调用。Assets库如图1-36所示。

图1-36 Assets库

除了自行导入素材,Apple还提供了内置的图标资源库SF Symbols(SF符号)供开发者使用,这对独立开发者有很大的帮助。截至2023年10月,SF Symbols图标资源库中的图标数量已经达到5000多个,且无须在项目中安装即可直接使用。

Apple SF Symbols 5官方下载地址为https://developer.apple.com/cn/sf-symbols/。

为了方便开发,开发者可以下载SF Symbols图标资源库到本地,便于快速查询所需要的图标的名称,SF Symbols图标资源库如图1-37所示。

图1-37 SF Symbols图标资源库

SF符号的使用方式很简单,只需要借助Image视图,并调用其systemName参数,直接使用SF符号的名称即可显示对应图标。使用SF符号如图1-38所示。

图1-38 使用SF符号

1.6.4 Preview Content文件夹

最后一个文件夹是Preview Content文件夹,用于存放开发者在测试应用时使用的素材或者文件,此部分内容会在应用打包上架时被自动过滤,因此可以存放临时的素材文件,例如本地视频文件、音频文件等。Preview Content文件夹如图1-39所示。

图1-39 Preview Content文件夹 PZbO2nrQjkWvClP3qdk8u83n2gE85zfY1rOEwd6HX6DrH26JRp0OS9SZnbrN1tJq

点击中间区域
呼出菜单
上一章
目录
下一章
×