新浪微博笔记
iPhone 项目目标
- 熟悉公司开发流程
- 提升代码熟练度
- 常用工具的使用
- 建立框架思想
工作相关
- 产品经理
- UI设计
- 开发工程师
- 测试
- bug管理系统: jira,bugfree
项目管理 --> 敏捷板
新浪微博接口地址
-
微博开放平台地址
http://open.weibo.com -
微博接口文档地址
http://open.weibo.com/wiki/微博API
项目主体框架
走向工作岗位之后,一般会遇到两种工作情况:
-
新项目开发
- 通常在项目开始之前,公司的产品经理会提供完整的产品原型图,或功能设计文档
- 通过对这些文档的解读,能够梳理出目标项目的整体架构,从而协助项目框架的搭建
-
旧项目维护
- 很多老项目是缺乏文档的,这种情况在一些小公司中表现的尤为突出
- 要想快速上手一个老项目,首先运行项目,并且整理项目整体框架结构
- 然后用整理出的框架结构与代码结构相互印证,无疑可以对了解项目的整体架构起到重要的辅助
综上所述,无论是新项目,还是老项目,在开发之前确定项目的主体架构都是非常重要,也是十分必要的!
项目准备
- 项目部署
- 目标:将项目部署到远程服务器,这是团队开发必须的
- 项目设置
- 目的:设置项目基本信息,准备初始项目
- 内容
- 图标
- 启动图片
- 旋转方向
- 项目名称
- 类前缀
- 确定新浪微博系统架构
开源中国社区
官方网站
- 开源中国社区成立于2008年8月,其目的是为中国的IT技术人员提供一个全面的、快捷更新的用来检索开源软件以及交流使用开源经验的平台
- 目前国内有很多公司会将公司的项目部署在
OSChina
与 GitHUB
的对比
- 服务器在国内,速度更快
- 免费账户同样可以建立
私有
项目,而GitHUB
上要建立私有项目必须付费
使用
-
注册账号
- 建议使用网易的邮箱,使用其他免费邮箱可能会收不到验证邮件
-
添加 SSH 公钥
-
开源中国帮助文档地址:https://git.oschina.net/oschina/git-osc/wikis/帮助#ssh-keys
-
进入终端,并输入以下命令
# 切换目录,MAC中目录的第一个字符如果是 `.` 表示改文件夹是隐藏文件夹
$ cd ~/.ssh
# 查看当前目录文件
$ ls
# 生成 RSA 密钥对
# 1> "" 中输入个人邮箱
# 2> 提示输入私钥文件名称,直接回车
# 3> 提示输入密码,可以随便输入,只要本次能够记住即可
$ ssh-keygen -t rsa -C "xxx@126.com"
# 查看公钥内容
$ cat id_rsa.pub
-
将公钥内容复制并粘贴至 https://git.oschina.net/profile/sshkeys
-
测试公钥
# 测试 SSH 连接
$ ssh -T git@git.oschina.net
# 终端提示 `Welcome to Git@OSC, xxx!` 说明连接成功
- 新建项目
- 克隆项目
# 切换至项目目录
$ cd 项目目录
# 克隆项目,地址可以在项目首页复制
$ git clone git@git.oschina.net:xxx/ProjectName.git
- 添加
gitignore
# ~/dev/github/gitignore/ 是保存 gitignore 的目录
$ cp ~/dev/github/gitignore/Swift.gitignore .gitignore
-
提示:
- 可以从
https://github.com/github/gitignore
获取最新版本的gitignore
文件 - 添加
.gitignore
文件之后,每次提交时不会将个人的项目设置信息(例如:末次打开的文件,调试断点等)提交到服务器,在团队开发中非常重要
- 可以从
-
常见命令
# 将项目克隆到本地
$ git clone xxx
# 添加到代码区
$ git add .
# 添加到版本库
$ git commit -m "注释"
# 推送到服务器
$ git push
项目设置
设置最低支持iOS版本&横竖屏
version.png设置应用显示名称
appicons.png- 提示
- 此处修改的内容是
Info.plist
中CFBundleName
对应的内容 - 注意不要超过6个中文,否则会影响用户体验
- 此处修改的内容是
设置类前缀
classprefix.png基本架构
在开发之前,确定项目的整体架构,明确开发的主体功能非常重要!新浪微博符合经典应用程序架构设计:
- 主视图控制器是一个
UITabbarController
- 包含四个
UINavigationController
,分别是- 首页
- 消息
- 发现
- 我
特殊之处:
-
UITabbarController
中间有一个 "+" 按钮,点击该按钮能够 Modal 显示微博类型选择
界面,方便用户选择自己需要的微博类型 - 四个
UINavigationController
在用户登录前后显示的界面格式是不一样的
与原版新浪微博的区别
由于必须使用新浪微博官方的 API 才能够正常开发,换言之,如果没有登录系统是无法使用新浪微博提供的接口的!
基于上述原因,在实际开发中对未登录之前的界面设计进行简化
MVVM
MVVM 是 Model-View-ViewModel 的简写,MVVM 模式和 MVC 模式一样,主要目的是分离视图(View)和模型(Model)
MVC 回顾
- MVC 结构图
- MVC 存在的问题
- 模型的代码很少
- 控制器的代码一不小心就越来越多
- 不好测试
MVVM
- MVVM 结构图
-
MVVM 概念
- 在 MVVM 中,
view
和view controller
正式联系在一起,我们把它们视为一个组件 -
view
和view controller
都不能直接引用 model,而是引用视图模型 -
view model
是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他代码
- 在 MVVM 中,
-
MVVM 使用注意事项
-
view
引用view model
,但反过来不行 -
view model
引用了model
,但反过来不行 - 如果我们破坏了这些规则,便无法正确地使用 MVVM
-
MVVM 的优点
- 低耦合:
View
可以独立于Model
变化和修改,一个ViewModel
可以绑定到不同的View
上 - 可重用性:可以把一些视图逻辑放在一个
ViewModel
里面,让很多view
重用这段视图逻辑 - 独立开发:开发人员可以专注于业务逻辑和数据的开发
ViewModel
,设计人员可以专注于页面设计 - 可测试:通常界面是比较难于测试的,而 MVVM 模式可以针对
ViewModel
来进行测试
网友评论