今天开始一个新的项目,也是入职公司之后第一个完整的项目,直播相关的,大概35个页面,计划三周完成所有功能的开发。
去年入职之后,只做了三个月的iOS开发,之后就是前端的工作,所以对iOS开发有些生疏了,不过最近有看公司的项目熟悉了一些,希望可以按计划完成工作吧!
一、准备资料
- 项目设计UI
找UI设计师拿到设计图,最好是带标注的设计稿 - 后台接口
找后台工程师拿接口,一般项目前后端都是同时进行的,所以这时候应该没有实际的接口,但是设计文档或者接口文档应该是有的,可以大概浏览一下后端的接口格式。有了更好,没有也没关系,之后画完页面,剩下时间都是来调试接口的。 - 创建项目
- 工程名字
- UI Interface
- LifeCycle
- Language
- Use Core Data
根据自己的项目需求来确定,因为项目就我一个人开发,所以我这里选择了Storyboard;SwiftUI还没用过,之后学习一下。
因为里面用到了一些直播的功能需要使用第三方库用的OC,所以就选了Objective-C;Swift还没真正用到项目中,并且好久没写也快忘记了。
Core Data,可能会用到,暂时不写,之后用到在添加。
- 配置项目
- iOS Deployment Target
- Device Orientation
- Organization
选中Project设置iOS Deployment Target
;
选择Target - Deployment Info
,设置支持的设备方向Device Orientation
;
选择Project,在最右边的Project Document
中设置组织名称Organization
;
- 使用CocoaPods
关掉项目,在终端中打开项目路径
(1)pod init
初始化pod
(2)pod install
安装,生成.xcworkspace
文件
(3) 以后都打开.xcworkspace
文件来打开项目 - 使用Git
- 创建项目的时候默认选中的有git,项目目录里面一般有git
- 如果没有选择,可以打开项目根目录,使用
git init
命令初始化git仓库 - 打开项目目录,运行
touch .gitignore
生成文件 -
vim .gitignore
编辑文件,加入需要忽略的文件夹或后缀名即可 -
git status
查看所有文件状态,git rm --cached
删除要忽略但是已经有记录的文件 -
git add .
添加文件到暂存区 -
git commit -m "first commit"
提交文件到本地仓库
Xcode已内置git功能,可以直接在菜单里进行git操作,个人还是更喜欢用命令行,对整个过程更熟悉更有把握
二、项目内容
- 项目架构
默认所有的文件都在同一个文件夹下面,看起来比较乱,需要稍微整理一下,并添加一些文件夹用于防止不同类型的文件;
项目架构使用tree -l ./
命令生成,需要先用brew install tree
安装;
markdown列表中插入代码段导致列表混乱,需要缩进,并且代码段后的文字也要缩进;├── Category ├── Classes │ ├── Live │ ├── Login │ │ ├── LoginViewController.h │ │ └── LoginViewController.m │ └── Video ├── Common │ ├── BaseViewController.h │ └── BaseViewController.m ├── Macro ├── Main │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj │ │ └── Main.storyboard │ ├── SceneDelegate.h │ ├── SceneDelegate.m │ └── main.m ├── Supporting\ Files │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ └── Info.plist └── Tool
- 第三方库
第三方库管理最好使用cocoapods,如果确实有一些需要手动导入的库,放在tool文件夹下面 - 相似页面或功能提取
项目中通用的功能类或基类放在common里面 - 按功能模块实现代码
具体的功能实现代码在class里面按模块编写,如果超过一个可以分成单独的model,view,controller文件夹
之前一直用的sublime,今天体验了一下vscode,发现确实好用,比如markdown可以直接编写并实时预览,很方便。我决定之后都用vscode来写东西了,_