# 现代操作系统应用开发
**Repository Path**: code_sysu/MOSAD_Syllabus
## Basic Information
- **Project Name**: 现代操作系统应用开发
- **Description**: 《客户端校企联合课程实践案例建设》项目成果课程
- **Primary Language**: HTML
- **License**: CC-BY-4.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 15
- **Forks**: 68
- **Created**: 2020-09-03
- **Last Updated**: 2023-10-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# **MOSAD**
*“Modern Operating System Application Development”*
* *课程名称*:现代操作系统应用开发
* *课程主页*:[https://gitee.com/code_sysu/MOSAD_Syllabus](https://gitee.com/code_sysu/MOSAD_Syllabus)
* *QQ讨论群*:576221013
* *教 师*:郑贵锋 *博士* (zhenggf at mail.sysu.edu.cn)
* *助 教*:无
## 课程信息
* *学 分*:2+1
* *上课时间*:1-9周,周二3-4理论、7-8实验,周四3-4理论、7-8实验
* *上课地点*:理论课在东教A202,实验课在南实验楼D503
* *教 材*: *无指定教材*
* *参考资料*:
1. iOS编程(第三版)[Programming iOS 6]. [美] 马特·纽伯格(Matt Neubury) 著,夏宏,贾静平,琚赟 等 译
2. iOS编程(第6版). Aaron,Hillegass 著
3. Objective-C高级编程 iOS与OS X多线程和内存管理. [日] Kazuki Sakamoto,[日] Tomohiko Furumoto 著,黎华 译
4. https://developer.apple.com/
## 课程要求
### 参与课堂讨论
* 占总评成绩10-20%
### 完成3+项个人实验作业
* 占总评成绩40%
* 按课程进度大致每3周完成1项
* 每3周安排在实验课现场验收
### 完成2个应用开发大作业
* 占成绩40%
* 分期中指定主题、期末任选主题大作业
* 每人独立成组,如计划工作量较大,可向老师申请增至2人合作
## 教学大纲
### 第 1 节 课程概述
移动互联网发展趋势、机遇,应用开发新趋势。
#### 课件
* [00-课程简介.pdf](Slides/00-课程简介.pdf)
* [01-移动应用概述.pdf](Slides/01-移动应用概述.pdf)
#### 实验
1. 加入课程网站:http://gitee.com/code_sysu , 浏览教程熟悉Git操作:https://gitee.com/help
2. xcode新建objective c项目,了解项目结构
3. 个人电脑安装开发环境(台式开机、打开远程桌面;笔记本带到实验室安装)。
4. 以上完成后,可预习Objective C基本语法,例如可参考:https://www.yiibai.com/objective_c
----
## 第 2~3 节 编程语言基础
Objective-C语言与C语言的区别,新特性
### 课件
* [02-Objective-C基础.pdf](Slides/02-Objective-C基础.pdf)
* [03-Objective-C进阶.pdf](Slides/03-Objective-C进阶.pdf)
### 实验
1. 完成第一次作业,详细要求见gitee仓库[HW1](https://gitee.com/code_sysu/mosad-hw1)
## 第 4 节 平台概述
iOS平台内核、分层、特性、开发环境搭建、应用结构
### 课件
* [04-iOS平台概述.pdf](Slides/04-iOS平台概述.pdf)
### 实验
1. 继续做HW1
2. 尝试完成课件后面的练习题
## 第 5~6 节 界面编程
界面布局、界面元素、常用界面控件的使用
### 课件
* [05-UI编程基础.pdf](Slides/05-UI编程基础.pdf)
* [06-UI编程进阶.pdf](Slides/06-UI编程进阶.pdf)
### 实验
1. 开始作业2
## 第 7 节 界面动画编程
界面动画原理、实现
### 课件
* [07-动画编程.pdf](Slides/07-动画编程.pdf)
* [红包雨动画](Slides/RedPacket-Animation.mp4)
### 实验
1. 尝试各种动画方式
2. 完成作业2
## 第 8 节 网络编程
网络传输框架、数据解析、异步实现
### 课件
* [08-网络编程.pdf](Slides/08-网络编程.pdf)
### 实验
1. 开始作业3
2. 开始期中作业:按计划推进大作业进行,作为期中考试成绩
## 第 9 节 本地存储
缓存、数据库原理、实现要点
### 课件
* [09-本地存储.pdf](Slides/09-本地存储.pdf)
* 本地存储例子:[SandBoxExample.zip](Slides/SandBoxExample.zip)
### 实验
1. 作业3验收
2. 继续期中项目
## 第 12 周 多线程编程
多任务、多线程原理、实现技术
### 课件
* [10-多线程编程.pdf](Slides/10-多线程编程.pdf)
### 实验
1. 开始做作业3,网络与本地存储
## 第 13 周 多媒体基础
图片处理与显示、音频播放、视频播放
### 课件
* [11-多媒体基础.pdf](Slides/11-多媒体基础.pdf)
### 实验
1. 期中项目开始验收。
2. 作业3
## 第 14 周 多媒体进阶
音频、视频合成案例
### 课件
* [12-音视频合成.pdf](Slides/12-音视频合成.pdf)
### 实验
1. 作业4
## 第 15 周 图形图像处理技术简介
介绍iOS图形图像处理技术框架,重点介绍基础Metal示例。
### 课件
* [13-图形图像处理.pdf](Slides/13-图形图像处理.pdf)
### 实验
1. 小组大作业项目
## 第 16 周 增强现实技术简介
介绍ARKit技术及例子
### 课件
* [14-增强现实技术.pdf](Slides/14-增强现实技术.pdf)
### 实验
1. 小组大作业项目
2. 完成的可提前展示、答辩
## 第 17 周 【专题讲座】移动开发前景
企业级的实践经验和技术栈分享
1、移动开发前景
2、了解字节跳动
3、师兄经历分享
4、答疑(之前收集的问题+现场提问)
## 第 18~19 周 大作业及成果展示:期末项目展示、答辩。
# Tips: How to ask questions?
实验课已经正式开始,各位同学在做实验的过程中遇见了各种各样的问题。作为TA,我们有责任给大家解答问题,但是每个人的精力、能力有限,TA很可能在忙其他的事情,TA可能也不懂你的问题,有时候反而会浪费更多的时间,所以水几点关于提问题的建议,与大家共勉~
* **What's your question?**
当程序出问题的时候,首先需要去读一下as给出的错误信息是什么。虽然你很可能看不懂,但是先去看一下。
* **Search your question on Internet**
网上肯定有无数的人出现过跟你一样的问题,所以先去网上找答案。直接在网上搜索as给出的错误信息,然后就能出现一大堆的解答。推荐使用[Google](https://www.google.com.hk)搜索,推荐使用**英文**搜索,推荐去 [Stack Overflow](https://stackoverflow.com)搜索。
* **Search or ask question in QQ Group**
课程交流群中,可能已经有人问过与你相似的问题了,所以可以先去搜索一下群聊天记录。找不到的话,将你的问题描述清楚,在群里询问其他同学,让他们给你解决。
* **Ask TAs**
如果试过了上面的方法,还是没有办法解决,最后的方案才是来找TA。请大家**不要在睡觉/吃饭**的时间来找TA。
* **Specify your question**
当你在提问题的时候,尽可能详细描述你的问题,这样方便别人给你解答。
* 你使用的工具,操作系统,IDE版本等相关信息
* 你在完成什么内容的实验?
* 你的关键代码是什么?
* 你出现的错误是什么?
* 你尝试了什么方法?结果如何?
* 当你在截图的时候尽可能完整截图,因为问题很有可能出现的其他的地方。当然还需要考虑到不要被别人抄袭了代码。
* **Record and understand your solution**
当你成功解决了问题之后,将你的解决方法记录下来,这样下次遇到同样地问题的时候就能够快速解决。除了将问题记录下来以外,最重要的一点是要明白你的解决方法的原理,为什么使用这个方法能够解决你的问题?多问一下为什么,来年找工作就不用愁啦~ :-D