# iOS开发 > 开源贡献:李岳昆、易远哲,特别鸣谢:杨皓博、贾献华 ## 任务说明 iOS开发对硬件的要求较为严格,我们建议身边有Mac/iMac相关设备同学进行学习。如果您有对iOS开发感兴趣的话,也欢迎您加入本次课程!我们将提供基于Swift的基础语法教程与基于Swift的基础算法实现,此外,我们也将提供一种在虚拟机运行MacOS的方案。 由于设备不同,我们提出了两种学习路线:1. MacOS端对算法内容不做硬性要求,可根据实际需要进行学习,但需要完成Swift语言搭建基础的app界面,了解app开发的一般流程;2. 其他端可仅进行Swift语法的学习,并用Swift构建基础的算法内容。对于Task 02 部分的控件功能和实现仅需了解即可。3.我们添加了一些可选任务,同学们如果有条件的话,可以选择性的做一做,加深对移动端开发的了解。 ## MacOS **Task 00**:Swift基础语法入门(2天) - 了解Swift语言基础语法与面向协议编程特点 - 学习可选类型、闭包特性、类与结构体 **Task 01**:基础插件与功能实现(4天) - 学习UIView、UILabel、UIButton、UIImageView、UITextfield等基础控件的使用 - 学习UIScrollView、UITableView与Cell等的设置和启动 - 学习动画、音频、视频与基础权限等内容实现 - 初识Cocopods,利用优秀的第三方库简化开发流程 - 代码启动、注册页面跳转、设置app的logo与启动页面 **Task 02**:项目练习(5天) - 酒店管理系统 - 贪吃蛇 - 智能识别水果app - ARKit实现KNN简易demo **Task 02**:Datawhale项目练习(5天)(可选) - 项目介绍 - 完成底部Tabbar功能开发 - 完成Me界面设置 - 完成注册/登录功能开发 - 提醒功能开发 **Task 03**:大作业Statistics in Time(3天) - 明确app开发的一般流程 - 通过Cocopods引入基本的第三方库对app进行优化 - 通过代码对控件进行设置与页面搭建 **Task 03**:大作业Datawhale首页开发(4天)(可选) - 故事板模块开发 - 日历模块开发 - 记录模块开发 - 形成业务闭环 ## iPad、Linux或Windows虚拟机 **Task 00**:Swift基础语法入门(2天) - 了解Swift语言基础语法与面向协议特点 - 学习闭包特性与基础控件 **Task 01**:基础插件与功能实现(4天) - 学习Label、Button、Textfield等基础控件的使用 - 学习TableView、ScrollView与Cell等的设置和启动 - 学习动画、音频、视频与基础权限等内容实现 - 初识Cocopods,利用优秀的第三方库简化开发流程 - 代码启动、注册页面跳转、设置app的logo与启动页面 **Task 02**:算法实现(5天) - 三种递归问题求解 - 搜索问题 - 图问题 - 动态规划与旅行商问题 **Task 03**:Statistics in Time的算法探究(3天) - 各种控件要求的数据格式与相互转换算法 - 随机输入数据的数组传入与可视化呈现