00. Xcode 使用以及 OS X 项目创建

本系列专题深入介绍了macOS平台应用开发中AppKit系统控件,涵盖Appkit、Cocoa、Foundation等框架,专注于OSX系统下的应用程序开发。内容广泛,包括UI设计、网络编程、数据存储、服务协议、I18N国际化、iCloud集成以及应用证书与App Store发布等。每篇文章均附有完整的Swift语言源码下载,UI设计则统一采过Storyboard实现。

本节做为开篇先简单介绍下OS X开发所需要用到的IDE以及周边开发工具等基础知识。

开发框架

在开始前还是在再介绍一下下面这个框架图,因为比较重要,在这里再冗余介绍一下。开发Apple公司相关产品的软件时,主要有两个框架可供使用:Cocoa和Cocoa Touch。Cocoa是一个开发Mac OS系统应用的开发工具包,而Cocoa Touch工具包主要用于IOS系统应用的开发,可以简单理解为Objective-C是一种编程语言,而Cocoa是开发框架,发展至今天,Apple Develop开发体系大体如下图所示:
在这里插入图片描述

  • Foundation:Objective-C语言的核心扩展包,它并没有内置于Objective-C语言中,也不包含任何UI元素,所以可以在不同的平台通用,大概提供了100多个扩展类;
  • Cocoa:MacOS系统应用开发框架,它提供了丰富用户体验的UI框架,由Foundation库、用于数据管理的CoreData框架以及AppKit图形化框架组成;
  • Cocoa Touch:IOS系统应用开发框架,它提供了丰富用户体验的UI框架,它包括Foundation库、用于数据管理的CoreData框架以及UIKit库,UIKit可以看成是简版的Appkit,同时附加了比如wifi、gps等API;
  • Swift:一种后期开发的Apple系统应用软件的开发语言,可以简单理解为Swift是为了弥补ObjC的缺陷而开发的一种新语言,Objective-C与Swift可以相互调用,Swift可以完全兼容Objective-C,但反过来效果不是太好;

模块间关系
在这里插入图片描述

课程大纲

  • 基础部分:介绍下OS X应用开发的相关知识,包括Xcode使用、xib、storyboard、swiftui等相关相应;
  • UI控件/容器:包括Window、Panel、View、Modal窗口、AutoLayout等UI布局相关的控件使用;
    • 基础控件:包括button、textfield、combo、checkbox、image等与表单相关的控件的使用;
    • 高级控件:包括Scroll、tableView、outlineView、page等相关的控件内容
    • 事件:包括鼠标、键盘、语音、手势等与交互相关的API;
  • 网络编程:包括RPC-XPC、http相关内容;
  • 数据存储:包括database、core data framework等相关数据持久化相关的内容,还包括KVC、KVO等与数据绑定相关的内容;
  • 服务协议:主要包括blueteeth、bonjour、wifi、system service、message等相关服务;实现如数据传输、远程控制等功能;
  • I18N资源国际化:资源国际化相关内容;
  • iCloud:Apple iCloud云相关,如何与iCloud进行数据同步以及在多个MAC设备间实现数据共享;
  • 应用发布:应用App Store发布相关内容,包括develop、sandbox、install、package、delay等;

笔者使用的是:Mac Monterey V12.7.6、Xcode V13.4.1、Swift 5

OS X 工程创建

1. 选择应用类型

在这里插入图片描述

  • app:图形类应用;
  • Document App:文档类应用;
  • Game:游戏应用;
  • Command Line Tool:无界面应用(可做为学习语法用);
  • Safari Extension App:Safari 浏览器扩展;

2. 配置开发语言

在这里插入图片描述

  • Team:开发者类型(个人,团队等);
  • Organization Identifiler:app标识,一般添加公司标识即可;
  • Interface:指定UI界面类型,可选的有XIB、Storyboard(推荐)、SwiftUI(推荐);
  • Language:开发语言,可选 Objective-C 或 Swift(推荐);

3. 配置项目工程

在这里插入图片描述

工程导航

  • AppDelegate.swift:应用启动入口,相当于main.swift;
  • ViewController.swift:UI设计代码,用于控制UI元素样式等;
  • Assets.xcassets:图标管理,用于存放界面Icon,不能存放普通图片;
  • Main.storyboard:UI可视化设计界面;

PROJECT

主要是开发相关的配置,参数比较多;

TARGETS

主要是和应用编译打包相关的配置,同一PROJECT可配置多个TARGET

TARGET 详细配置

TARGETS的详细配置

General

设置项目的基本信息,主要有两项需要注意:

  • Application Category:提交到AppStore的项目必须要设置一个分类;
  • Deployment Target:设置一个最低的os x版本;
Capabilities

App测试和发布需要关注的开关,需要哪个就开放哪个,需要关注以下几项:

  • App Sandbox:提交到AppStore的项目必须使用沙盒;
  • 需要APP要访问远程api,必须打开 Outgoing Connections;
  • Hardware里面要打开print;
  • File Access:如果要访问本地文件,此项要进行进应的设置
Info

工程基本信息.plist文件,用来描述配置信息。经如设置图标等APP信息,在 Document Types 中可以设置系统文件的打开类型绑定或是鼠标右键功能等。也可以在工程中加入info.plist文件来补充此设置中的内容(.plist优先级低于此处的设置)。

Build Settings

编译语言版本等设置,APP绑定三方软件的设置,比如引用了三方框架,则需要设置Other Code Signing Flags为–deep,否则无法正常打包。

Build Phases

Build Phases用于设置编辑目标和引入的三方库管理(Link binary With Libraries)。

Group和Target:复杂的项目可以有多个组和目标,每个Target可以拥有不同的配置。Group主要是用于管理项目的源文件,Group不是java中包的概念,它是XCode的一个逻辑分组不会真正的移动文件位置,但可以设置Group指向某个具体的文件夹。

Xcode 基础使用

Xcode功能非常强大,如果要讲完整估计一本书都讲不完。但一般开发时不需要了解太多,现卖现学就可以。另外需要注意的是Xcode版本和Mac OS系统版本相关,是否要升级系统使用最新版本的Xcode需要根据个人喜好而定。

1. Xcode简介

在这里插入图片描述

(1) 工程结构导航区

在这里插入图片描述
从左到右依次是:

  • 文件导航;
  • 版本控制;
  • 文件结构;
  • 文件查找;
  • 编译错误日志;
  • 测试历史;
  • 性能监控;
  • 断点列表;
  • 编译历史;

(3) 工具栏

  • 3.1 :运行按钮,性能等;
  • 3.2:运行target切换,切换不同的模拟终端;
  • 3.2:打开UI库,UI设计库,如果使用SwiftUI 或 纯编码实现则不需要;

(4) AutoLayou工具栏

在这里插入图片描述
从左到右依次是:

  • 更新布局;
  • 控件对齐;
  • 边距约束;
  • 约束修复;
  • 布局控件;

(6)XIB 面板属性设置

主要用来设计UI用的。
在这里插入图片描述
从左到右依次是:

  • File Inspector:文件基本设置
  • History Inspector:历史记录
  • Help Inspector:帮助文档
  • Identity Inspector:控件唯一标识
  • Attributes Inspector:控件属性
  • Size Inspector:控件尺寸
  • Connections Inspector:控件连接和事件
  • Bindings Inspector:控件数据绑定
  • Effects Inspector:视图效果

2. 附助开发工具

可从Xcode菜单中下载:
在这里插入图片描述

  • Instruments:用于动态调追踪和分析OS X和iOS的代码的性能分析和测试工具
  • Simulator:模拟器,用于模拟 iOS 平台设备,在模拟器上运行对应的程序, 方便没有实体设备的时候去调试程序
  • Accessibility Inspector:辅助功能检查器,用它来检测APP控件元素的层级结构,使用它可以快速地获取各个控件元素的层级
  • FileMerge:可视化文件合并,用于合并.m和.h为一个文件;;
  • Create ML:生成机器学习模型的工具。它可以接收用户给定的数据,生成 iOS 开发中需要的机器学习模型(Core ML 模型)
  • Reality Composer:AR 和 3D 内容创作工具,支持 Mac(与 Xcode 集成) 和 iOS 平台

3. 其它常用工具

其实来讲Xcode已够做的够好了,但还有一些开发软件可能会经常用到了,笔者常用的有这些:
在这里插入图片描述

  • DevClearner:项目垃圾清理工具;
  • Developer:开发者客户端,一些资讯信息,开发者帐户管理等(现需要升级系统到13才可能使用);
  • XCformat:代码格式化工具,其实用处不大,掌握 control+i这一个缩进快捷键基本就够了,也建议使用Bakery工具;
  • SF符号:Icon设计工具,此工具非常方便,里面的图标也可用于PPT制作;
  • TestFight:测试工具;
  • Transporter:App Store上传工具,用于发布个人软件;

参考网站

  • apple:https://www.apple.com.cn/ 官网
  • develop:https://developer.apple.com/cn/ 开发者官网
  • swift:https://www.swift.org/documentation/ swift官网
  • stack,https://www.stackoverflow.com/ 用于问询细节问题

其实上述网站基本就够了,现阶段如果遇到问题可以选问问AI,可能会比较省时,但不要太依赖了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

korgs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值