Xcode创建Mac应用
Xcode创建Mac应用

Xcode创建Mac应用

使用Xcode创建

1、打开Xcode,选择“Create New Project…”。

2、在平台中,选择macOS – App。

3、填写项目名:

Interface选择SwiftUI,Language选择Swift,关于Interface的选项介绍可以查看文章底部的扩展知识“Interface界面开发”。

最后选择保存位置,创建Xcode项目。

和iOS项目的主要区别

1、应用生命周期:iOS使用@main + App,macOS与iOS类似,但是有些生命周期事件不同。

2、UI框架:iOS采用UIKit或SwiftUI,macOS采用AppKit或SwiftUI(推荐)。

3、文件操作权限:iOS应用在沙盒中运行代码,macOS可以选择沙盒或完整磁盘访问权限。

4、菜单栏:iOS没有菜单栏,macOS默认有完整菜单系统。

5、多窗口:iOS较复杂,macOS原生支持多窗口管理。

6、部署平台:iOS部署在iPhone和iPad,macOS部署Mac(Inter/ARM/M系列)。

7、App Store分发:iOS通过App Store分发,Mac App通过App Store或独立分发。

总结

在选择SwiftUI + Swift后,可以看到完整的应用开发界面。

并且,可以在本地运行我们的Mac应用。

扩展知识

macOS软件模块或功能扩展

Xcode 创建新项目时提供了各种模板,它们都代表了不同类型的 macOS 软件模块或功能扩展。

Application 类(常见 App 类型)

1、App:标准 macOS 应用程序(最常用),带 GUI,适合普通的主窗口Mac应用。

2、Document App:支持文件-打开-保存工作流的应用,如 Pages、TextEdit,macOS 会自动为其管理“打开最近文件”等功能。

3、Game:适合做游戏,会集成 GameController 支持、Metal 渲染等,模板更偏向图形和输入处理。

4、Command Line Tool:没有图形界面的命令行工具(.terminal 下运行),适合写脚本工具、自动化、或后台压缩程序。

5、Safari Extension App:用来写 Safari 浏览器扩展的主容器 App,会包含扩展与宿主 App,用于设置和交互。

普通的Mac的项目选择「App」即可,因为它是图形界面、通用的 GUI 应用。

Framework & Library(代码模块复用)

1、Framework:一种可复用的模块(.framework),可以供多个应用共享代码、UI、模型等。可以写一个“图像压缩框架”供多个项目调用。

2、Library:类似 framework,但更底层,通常指 .a 静态库或 .dylib 动态库。现在使用较少,推荐使用 Framework。

3、Metal Library:编写 Metal shader 程序(.metal 文件),用于图形渲染。

4、XPC Service:用于安全的进程间通信(Inter Process Communication),把某些任务放在单独进程中执行,比如后台压缩任务,防止主程序崩溃。

5、Bundle:一个通用插件包,类似“轻量模块”,可以加载资源或动态代码(比如插件、界面扩展)。

如果未来希望把代码逻辑单独封装成模块,可选 Framework。

Other(系统插件、驱动、工具)

1、Generic Kernel Extension:macOS 的内核扩展,控制底层硬件、网络、驱动,macOS 近年对其限制极多。

2、Installer Plug-in:macOS 安装器中的扩展模块,用来定制安装过程,通常配合 .pkg 安装包使用。

3、Instruments Package:用于开发 Apple Instruments 的插件(性能分析工具)。

4、IOKit Driver:低级设备驱动,控制外部硬件(比如 USB、蓝牙、音频设备)。

5、Preference Pane:macOS 系统偏好设置中的插件(.prefPane),可以添加自定义设置模块。

6、Screen Saver:用来开发 macOS 屏保(.saver),安装后可以在系统中选择和显示。

除非专门做系统扩展/驱动,一般开发者不会涉及这些。

软件模块或功能扩展总结

如果开发的是一个图形界面、可视操作的Mac软件,推荐选择:

【App】模板 + SwiftUI + macOS平台

如果以后想把代码逻辑封装为可复用模块,可以:

再创建一个 Framework,用于跨项目共享压缩逻辑。

Interface界面开发

在 Xcode 中创建 macOS 或 iOS 项目时,可以看到“Interface”选项,常见的有:

1、SwiftUI。

2、Storyboard。

3、XIB(即 .xib 文件)。

这其实是在选择界面开发的方式。

SwiftUI(推荐)

简介:Apple 推出的现代 UI 声明式框架,2019 年开始支持,用代码描述界面。

优点

1、写法现代、简洁,可读性高。

2、支持实时预览(Canvas)。

3、易于复用组件,组合式开发。

4、与 Swift 原生绑定很好(@State, @Binding 等)。

5、代码和界面合二为一(无 .xib / .storyboard 文件)。

缺点

1、某些底层控制仍需要 UIKit/AppKit 辅助(尤其 macOS)。

2、早期版本(如 iOS 13/macOS 10.15)兼容性稍差。

推荐使用场景

现代 App、新项目、轻量工具类 App。

Storyboard(UIKit / AppKit)

简介:使用 Xcode 图形化方式搭建多个视图控制器,并通过 segue 连接它们。

优点

1、图形化拖拽,适合初学者快速上手。

2、直观查看整个界面流程和跳转。

缺点

1、多人协作时容易产生合并冲突(都是一个 storyboard 文件)。

2、复杂项目难以模块化(可维护性较差)。

3、不适合组件化开发。

4、修改界面要等编译,实时性差。

推荐使用场景

传统 UIKit/AppKit 项目,或需要可视化场景流程(如复杂注册/引导流程)

XIB(也叫 .xib / NIB 文件)

简介:更细粒度的 UI 布局文件,一个视图一个 XIB。比 storyboard 更模块化。

优点

1、每个视图独立文件,易于维护。

2、避免 storyboard 合并冲突。

3、可配合 UIView / NSView 自定义类使用。

4、比 storyboard 灵活。

缺点

1、依然是拖拽 + 手动绑定,工作量大。

2、没有 SwiftUI 那种实时预览或状态绑定。

推荐使用场景

老项目,或只想给某个控件/模块自定义界面。

开发建议

选择 Interface: SwiftUI 是当前最推荐的方式:

1、更快开发。

2、更简洁逻辑。

3、更适合未来发布开源版本。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注