01-新浪微博笔记

新浪微博笔记

iPhone 项目目标

  • 熟悉公司开发流程
  • 提升代码熟练度
  • 常用工具的使用
  • 建立框架思想

工作相关

  • 产品经理
  • UI设计
  • 开发工程师
  • 测试
  • bug管理系统: jira,bugfree

项目管理 --> 敏捷板

新浪微博接口地址

  • 微博开放平台地址
    http://open.weibo.com

  • 微博接口文档地址
    http://open.weibo.com/wiki/微博API

项目主体框架

走向工作岗位之后,一般会遇到两种工作情况:

  1. 新项目开发

    • 通常在项目开始之前,公司的产品经理会提供完整的产品原型图,或功能设计文档
    • 通过对这些文档的解读,能够梳理出目标项目的整体架构,从而协助项目框架的搭建
  2. 旧项目维护

    • 很多老项目是缺乏文档的,这种情况在一些小公司中表现的尤为突出
    • 要想快速上手一个老项目,首先运行项目,并且整理项目整体框架结构
    • 然后用整理出的框架结构与代码结构相互印证,无疑可以对了解项目的整体架构起到重要的辅助

综上所述,无论是新项目,还是老项目,在开发之前确定项目的主体架构都是非常重要,也是十分必要的!

项目准备

  • 项目部署
    • 目标:将项目部署到远程服务器,这是团队开发必须的
  • 项目设置
    • 目的:设置项目基本信息,准备初始项目
    • 内容
      • 图标
      • 启动图片
      • 旋转方向
      • 项目名称
      • 类前缀
  • 确定新浪微博系统架构

开源中国社区

官方网站

https://git.oschina.net/

  • 开源中国社区成立于2008年8月,其目的是为中国的IT技术人员提供一个全面的、快捷更新的用来检索开源软件以及交流使用开源经验的平台
  • 目前国内有很多公司会将公司的项目部署在 OSChina

GitHUB 的对比

  1. 服务器在国内,速度更快
  2. 免费账户同样可以建立 私有 项目,而 GitHUB 上要建立私有项目必须 付费

使用

  • 注册账号

    • 建议使用网易的邮箱,使用其他免费邮箱可能会收不到验证邮件
  • 添加 SSH 公钥

01-新浪微博笔记_第1张图片
SSHKey示意图.png
  • 开源中国帮助文档地址:https://git.oschina.net/oschina/git-osc/wikis/帮助#ssh-keys

  • 进入终端,并输入以下命令

# 切换目录,MAC中目录的第一个字符如果是 `.` 表示改文件夹是隐藏文件夹
$ cd ~/.ssh
# 查看当前目录文件
$ ls

# 生成 RSA 密钥对
# 1> "" 中输入个人邮箱
# 2> 提示输入私钥文件名称,直接回车
# 3> 提示输入密码,可以随便输入,只要本次能够记住即可
$ ssh-keygen -t rsa -C "[email protected]"

# 查看公钥内容
$ cat id_rsa.pub
  • 将公钥内容复制并粘贴至 https://git.oschina.net/profile/sshkeys

  • 测试公钥

# 测试 SSH 连接
$ ssh -T [email protected]

# 终端提示 `Welcome to Git@OSC, xxx!` 说明连接成功
  • 新建项目
  • 克隆项目
# 切换至项目目录
$ cd 项目目录

# 克隆项目,地址可以在项目首页复制
$ git clone [email protected]: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版本&横竖屏

01-新浪微博笔记_第2张图片
version.png

设置应用显示名称

01-新浪微博笔记_第3张图片
appicons.png
  • 提示
    • 此处修改的内容是 Info.plistCFBundleName 对应的内容
    • 注意不要超过6个中文,否则会影响用户体验

设置类前缀

01-新浪微博笔记_第4张图片
classprefix.png

基本架构

在开发之前,确定项目的整体架构,明确开发的主体功能非常重要!新浪微博符合经典应用程序架构设计:

  • 主视图控制器是一个 UITabbarController
  • 包含四个 UINavigationController,分别是
    • 首页
    • 消息
    • 发现

特殊之处:

  • UITabbarController 中间有一个 "+" 按钮,点击该按钮能够 Modal 显示微博类型选择界面,方便用户选择自己需要的微博类型
  • 四个 UINavigationController 在用户登录前后显示的界面格式是不一样的

与原版新浪微博的区别

由于必须使用新浪微博官方的 API 才能够正常开发,换言之,如果没有登录系统是无法使用新浪微博提供的接口的!

基于上述原因,在实际开发中对未登录之前的界面设计进行简化

MVVM

MVVM 是 Model-View-ViewModel 的简写,MVVM 模式和 MVC 模式一样,主要目的是分离视图(View)和模型(Model)

MVC 回顾

  • MVC 结构图
01-新浪微博笔记_第5张图片
MVC示意图.png
  • MVC 存在的问题
    • 模型的代码很少
    • 控制器的代码一不小心就越来越多
    • 不好测试

MVVM

  • MVVM 结构图
01-新浪微博笔记_第6张图片
MVVM示意图.png
  • MVVM 概念

    • 在 MVVM 中,viewview controller 正式联系在一起,我们把它们视为一个组件
    • viewview controller 都不能直接引用 model,而是引用视图模型
    • view model 是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他代码
  • MVVM 使用注意事项

    • view 引用 view model,但反过来不行
    • view model 引用了 model,但反过来不行
    • 如果我们破坏了这些规则,便无法正确地使用 MVVM

MVVM 的优点

  • 低耦合:View 可以独立于 Model 变化和修改,一个 ViewModel 可以绑定到不同的 View
  • 可重用性:可以把一些视图逻辑放在一个 ViewModel 里面,让很多 view 重用这段视图逻辑
  • 独立开发:开发人员可以专注于业务逻辑和数据的开发 ViewModel,设计人员可以专注于页面设计
  • 可测试:通常界面是比较难于测试的,而 MVVM 模式可以针对 ViewModel 来进行测试

你可能感兴趣的:(01-新浪微博笔记)