美文网首页
01-新浪微博笔记

01-新浪微博笔记

作者: 月下独酌灬 | 来源:发表于2016-05-19 22:52 被阅读176次

    新浪微博笔记

    iPhone 项目目标

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

    工作相关

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

    项目管理 --> 敏捷板

    新浪微博接口地址

    项目主体框架

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

    1. 新项目开发

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

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

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

    项目准备

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

    开源中国社区

    官方网站

    https://git.oschina.net/

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

    GitHUB 的对比

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

    使用

    • 注册账号

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

    SSHKey示意图.png
    # 切换目录,MAC中目录的第一个字符如果是 `.` 表示改文件夹是隐藏文件夹
    $ cd ~/.ssh
    # 查看当前目录文件
    $ ls
    
    # 生成 RSA 密钥对
    # 1> "" 中输入个人邮箱
    # 2> 提示输入私钥文件名称,直接回车
    # 3> 提示输入密码,可以随便输入,只要本次能够记住即可
    $ ssh-keygen -t rsa -C "xxx@126.com"
    
    # 查看公钥内容
    $ cat id_rsa.pub
    
    # 测试 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.plistCFBundleName 对应的内容
      • 注意不要超过6个中文,否则会影响用户体验

    设置类前缀

    classprefix.png

    基本架构

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

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

    特殊之处:

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

    与原版新浪微博的区别

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

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

    MVVM

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

    MVC 回顾

    • MVC 结构图
    MVC示意图.png
    • MVC 存在的问题
      • 模型的代码很少
      • 控制器的代码一不小心就越来越多
      • 不好测试

    MVVM

    • MVVM 结构图
    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-新浪微博笔记

          本文链接:https://www.haomeiwen.com/subject/rzwgrttx.html