成都网站建设定,设计制作生态瓶教案,深圳市建设工程交易服务中心宝安分中心,中国铁路建设集团公司网站本节笔者会详细介绍下本系统专题的大纲#xff0c;以及每个专题章节的组织结构。这样读者会有一个全局的概念。 在开始前还是在再介绍一下下面这个框架图#xff0c;因为比较重要#xff0c;在这里再冗余介绍一下。开发Apple公司相关产品的软件时#xff0c;主要有两个框架… 本节笔者会详细介绍下本系统专题的大纲以及每个专题章节的组织结构。这样读者会有一个全局的概念。 在开始前还是在再介绍一下下面这个框架图因为比较重要在这里再冗余介绍一下。开发Apple公司相关产品的软件时主要有两个框架可供使用Cocoa和Cocoa Touch。Cocoa是一个开发Mac OS系统应用的开发工具包而Cocoa Touch工具包主要用于IOS系统应用的开发可以简单理解为Objective-C是一种编程语言而Cocoa是开发框架发展至今天Apple Develop开发体系大体如下图所示 上图中有几点需要详细说下明
. Foundation这是一个ObjC语言的核心扩展包。它并没有内置于Objective-C语言中也不包含任何UI元素所以可以在不同的平台通用大概提供了100多个扩展类. CocoaMacOS系统应用开发框架它提供了丰富用户体验的UI框架由Foundation库、用于数据管理的CoreData框架以及AppKit图形化框架组成. Cocoa TouchIOS系统应用开发框架它提供了丰富用户体验的UI框架它包括Foundation库、用于数据管理的CoreData框架以及UIKit库UIKit可以看成是简版的Appkit同时附加了比如wifi、gps等APISwift一种后期开发的Apple系统应用软件的开发语言原因是作为一门比较老的语言 Objective-C缺少很多现代语言所具备的高级特性。可以简单理解为Swift是为了弥补ObjC的缺陷而开发的一种语言ObjC与Swift可以相互调用所以在同一项目中可以并存 Foundation是在早期的CoreFoundation框架的基础上开发的开发时也可以使用CoreFoundation但不建议在帮助文件中以CF开头的全是CoreFoundation中的对象 大概概述
大纲目录设计
下图是笔者计划在本专题中要覆盖的与MacOS应用开发相关的技术文档主要分三大块内容编程基础ObjectiveC和Swift、MacOS电脑应用开发、IOS手机应用开发。
本专题可以说是从0开始系列对于Mac小白来说笔者推荐的学习路线
先学会ObjC然后学习Foundation框架提供的核心API之后可以学习下Swift语言基础再之后学习Cocoa框架在学习Cocoa框架过程中穿插练习之前学习的内容再随带着学习下SwiftUI编程至于Cocoa Touch移动开发框架笔者安排在了最后OXS和IOS是两个不同的开发方向他们有很多共通之处但OSX的开发会比IOS开发复杂一点
大纲详细列表
以下大纲可能会随着内容的深入再做排序调整以及内容的优化大致如下 ObjectiveC 程序基础讲述Objc编程基础内容包括XCode使用、Hellow world入门程序、项目工程结构解析、基础数据类型、类的创建构造函数、属性定义与存取、方法、变量修饰符、数据运算、逻辑控制、异常处理、复杂数据类型、编译预处理等内容OOP面向对象编程讲述ObjC高级内容包括OOP概念、命令空间、接口和实现、继承、抽象、分类、协议、以及对象复制和序列化等操作C语言相关ObjC是由原来的C发展而来的所以很多C和C中好的功能还是非常有肜了这里主要摘取了一些与性能提升相关的一些C知识比如指针、结构、代码块和匿名函数等 Foundition框架 数据对象一些封装的高级对象比如集合类的NSArray 、NSSet、NSRange、NSEnumerator、NSPredicate等文件操作介绍一些与文件相关的操作比如目录、文件、路径、http等资源操作的相关API如NSFileManager、NSProcessInfo、NSFileHandle等数据归档介绍如何把应用数据持久化包括xml与对象流两种形式持久化数据同时会详细介绍下数据缓冲区的用法内存管理介绍下Objective-C语言的内存分布、对象引用、GC回收等相关知识这部分的内容有助于提升App运行的效率程序并发了解下Objective-C下的多线程实现以及线程池、定时任务、队列等相关并行程序执行相关的API Swift这部分内容基本与ObjectivC是对标的但内容会少一点 程序基础讲述Swift编程基础内容也包括基础数据类型、类的创建构造函数、属性定义与存取、方法、变量修饰符、数据运算、逻辑控制、异常处理、复杂数据类型等内容集合对象包括Array、Dict、Set、Enum、Struct等API的使用OOP面向对象编程讲述ObjC高级内容包括OOP概念、命令空间、接口和实现、继承、抽象、分类、协议、以及对象复制和序列化等操作高级编程除了接口和实现、继承、抽象、分类、协议、以及对象复制和序列化等这些内容后还会增加一个泛型的章节这是Swift独有的功能 AppKitMac OS应用开发这块的内容比较多此处罗列一部分 - 基础部分介绍下OS X应用开发的相关知识包括XCode使用、XIB、storyboard、swifui等相关相应 - UI容器包括Window、Panel、View、Modal窗口、AutoLayout等UI布局相关的控件使用 - 基础控件包括button、textfile、combo、checkbox、image等与表单相关的控件的使用 - 高级控件包括Scroll、tableView、outlineView、page等相关的控件内容 - 事件包括鼠标、键盘、语音、手势等与交互相关的API - 网络编程包括RPC-XPC、http相关内容 - 数据存储包括database、core data framework等相关数据持久化相关的内容还包括KVC、KVO等与数据绑定相关的内容 - 服务协议主要包括蓝牙、Bonjour、wifi、system service、message等相关服务实现如数据传输、远程控制等功能 - I18N资源国际化相关内容 - Cloud云相关如何与iCloud进行数据同步以及在多个MAC设备间实现数据共享 - 应用发布发布应用到App Store上相关知识包括Develop、sandbox、install、package、delay等相关的知识 Document应用开发 - Document应用开发编辑类App软件的开发 图形应用开发 - 图形应用开发图形化App类软件的开发比如图形绘制、拖动、动画等API可实现图像处理、图绘制等应用 UIKitIOS移动应用开发 除了以上内容外有可能根据需要安插一些比如Server、Database、AI相关的内容这些内容主要会在Founction框架高级功能中讲述。 章节内容设计
基础篇内容设计
由浅入深分为基础、高级、专题三大块内容如下图所示
编程基础主要介绍语言的语法相当于入门但这部分也是核心内容需要很好的掌握面向对象此处会介绍一些编程中的高级功能掌握这些内容后就可以编写一些功能复杂的应用了专题技术这部分可以按需学习比如学习IOS编程就需要掌握wifi和gpc API但MacOS开发则不需要掌握
UI控件篇内容设计
做为UI控制的第一节内容在最开始阐述下文档的结构。因为本专题是套从0开始系列所以需要兼顾初读者和实战两种场景所以描述Appkit的章节一般会由以下几部分组成
理论和应用场景介绍从设计和应用角度有个大概了解必须了解UI设置主要是介绍如何使用Xcode提供的可视化操作工具设计UI界面针对初学者学习阶段编程实现虽然UI设计可以通过拖拽方式实现但在真实项目中基本全是用代码堆很少用拖拽的方式来设计全部的界面除了主框架针对非初学者工作阶段个性化功能此UI控件独有的功能或配置Swift实现用Swift和Swift UI实现第3步中ObjC代码的全部功能这部分可能不会详细讲述参考ObjC的实现了解下对应的Swift语法即可
初学者学习路径建议
笔者因为工作需要学习过很多语言比如java、python、c以及react、vue、jquery、javaScript这样的前端开发语言实际来讲有些语言入门比较困难一个原因是生态太多另一个原理是发展方向问题。
比如java语言在工作场景中就会分为互联网应用开发、安卓移动开发、大数据开发等python后期可能又会分为数据分析、算法开发等这些分支虽然用的是同一种语言但所涉及的生态完全不一样
又如ObjectiveC语言其生态也非常大分支分为OSX、IOS以及小的IWatch、Framework等开发这样庞大的生态往往会让初读者摸不到头脑进而耽误了大把时间甚至是放弃。
所以笔者这里给出一个学习ObjectiveC语言建议的学习路径
说明
ObjectiveC语言基础和Fountion框架是所有OS应用开发的基础一定要牢牢掌握在基础掌握后可以按自己需要是从事OSX桌面应用、还是IOS移动应用开发然后选择学习AppKit还是UIKit框架这两个框架虽然有很多相同之处但也有很多差异点可以说是不是兼容的另外一点新手在学习OSX桌面应用开发时刚开始建议选择XIB做为UI而不要选择Storyboard对于UI界面的设计初学时可以用拖拽的方式设计目的是为了尽快熟悉各API和控件的使用然后再抛弃UI设计工具因为在生产环境时UI一般全是手写代码Swift可以认为是java和kotlin的关系在swift中主要包含两方面内容Swift和Swift UISwift的语言比ObjectiveC更简洁和易懂在开发时可以混用这两种语言但不建议。 ObjectiveC和Swift是两种不同的语言没有优劣之分笔者个人的习惯是不太喜欢被封装过的东西选择原生语言虽麻烦一点但可扩展性会比较好也更可控。 开发环境准备
硬件配置
想学习Mac编程首先您要有一台Mac电脑此处不建议黑苹果intel芯片的就行不需要最新的M系统芯片的电脑对于开发软件的选择在后面的文章中有详细的描述笔者的电脑配置如下 强烈建议加一个外置屏幕现在网上有卖便携式的屏幕很方便苹果电脑最多可以加二个外接屏这种便携屏尽量要选择全彩的价钱一般在1000左右血的教训笔者为了图便宜买了个便宜的结果非常暗看着难受无奈又直接换了一个。另外intel芯片的macbook pro不要升级最新的sonna系统会非常卡M系列的芯片主要是添加了MPU神经网络和图像处理支持。不过有条件的现阶段建议直接上一个M3但性价比高的个人认为还是M2。 技术储备
虽说本专题是0基础设计但如果您对C C JAVA其中一种语言非常熟悉那么学习起Mac编程可能会非常快。
如果您真的是一点编程知识没有也可以按本专题顺序学习但是还是建议您先花一周时间使用VSCode编辑器学习下html静态网页的编写熟悉下电脑编程这样可以熟悉下编程环境。
另一个原因是ObjectiveC语言有些年头了其中的很多术语和概念理解起来比较晦涩这些晦涩的术语和概念在现代语言中都已改进了说法笔者曾做过多年的java和python AI的开发在刚接触这些术语时也着实花了一些时间。 最后别忘了在苹果官网申请一个属于自己的icloud帐号和一个developer开发者帐号。此处建议在官网申请***.me.com帐号而不要用国内的163、qq等邮箱虽然也可以。 开发参考资料
网络资料
笔者个人经验而言开发Mac应用只需要参考三个网站即可
applehttps://developer.apple.com/cn/develop/ 用于查询文档stackhttps://www.stackoverflow.com/ 用于问询细节问题githubhttps://www.github.com/ 下载优秀的开源项目深入学习
除了知道上述网站外开发时可以直接从Xcode菜单中提供的入口来访问Apple Document如下图所示