![](https://img.haomeiwen.com/i664334/a05e730e770e7234.png)
文章带目录版请移步简纸书生
在确定做一个项目之前有很多的因素需要考虑,笔者这里不讨论项目管理中的一些比如需求确定了,项目立项这些东西。主要从项目的动工讲一讲自己觉得需要注意的方面。
- 前提:你已经具备了开发的能力。
进入主题:
开发帐号的申请
自己前不久写过一篇入门及的帐号申请的博客,小白也能看懂。
项目的编码风格
项目的编码风格就像是一个人内在气质,不同的编码风格同样能完成项目的开发。指定了一套统一的编码风格,更有益于后期开发人员的维护,比如开发人员的离职,统一的风格让新人更快的上手。
这里收集了目前比较流行或者说是较好的编码规范(我公司就是按照这样的要求进行代码审查的)
编程语言 | 编码规范链接 |
-----|------|----
OC (中文) | OC之禅 |
Swift(英文) | The Official raywenderlich.com Swift Style Guide. |
这两套编码规范足够满足开发iOS相关应用的了。
项目的架构
对于刚入门的iOS开发人员来说,基本上第一个实际项目都是MVC架构的。维护过老项目的同学就应该知道,按照这种方式,臃肿的VC到后期基本上能够达到两三千行,如果这些代码不是自己写的,恭喜里,慢慢享受帮别人填坑的过程吧。
在设定项目架构之前,肯定需要对相关架构有所了解吧,来看看老外分析的结果。
iOS Architecture Patterns 需要翻墙,还有已经有人翻译过了
iOS 架构模式分析 国人翻译的
老外写文章的风格和国内有很多不一样,或许是因为翻译的问题,自我感觉讲的内容太多的累赘,里面的名字也写得很高大上。详情请直接点击链接。
当前比较流行的方式应该算是MVVM了,之前了解过一点ReactCocoa,但是在实际项目中还没有用起来过。网上关于ReactCocoa的分析也很多。这里附上几篇分析得不错的连接供各位折腾。
ReactCocoa原理分析篇
老外篇
ReactiveCocoa and MVVM, an Introduction
雷神系列(原理分析得很不错,关于runtime的也值得一看)
ReactCocoa实践篇
峥吖(主要讲如何使用,实用为主)
把以上的链接挨着一个个看完之后,对iOS的架构或许会有更深的理解。
项目目录结构
项目目录结构再项目初期的时候并没显得很重要。但是当项目迭代了多个版本后,估计你去找一个需要的文件除了使用Xcode的shift+command+o之外很难准确的找到。
最常用的莫过于
-- Models
-- Views
-- Controllers(或者ViewModels)
-- Nets
-- Helpers
个人经过实践觉得,将功能模块来划分(比如根据Tabbar上Item来划分)。如微信中,就按照微信,通讯录,发现,我几个模块分几个大的部分,然后在各个部分里面加入如上的结构。
-- 微信
--Models
--Views
--...
-- 通讯录
--Models
--Views
--...
-- Public
--Models
--Views
-- ...
项目第三方管理
国内用得做的应该算是cocoapods了。这个第三方管理库着实为我们解决了不少问题。但是如果没有使用好,同样会造成很多的问题。自己踩过的坑有,版本升级,开发人员用不同的cocoapods导致异常,cocoapods的完全重装等等。
相关使用介绍我是参照的唐巧写的用CocoaPods做iOS程序的依赖管理
![](https://img.haomeiwen.com/i664334/e6751881b5a38b3d.png)
可以建立多个Scheme
关于iOS项目中的arget,scheme,project和build setting概念可以看官方给出的解释。这是最为直接了当的。
iOS中arget,scheme,project和build setting概念
如果英文不是很好,可以看看
iOS中workspace,project,target,scheme 解析
关于Scheme的命名可以已经开发版,测试版,发布版来分类。
如果英文够好可以看看
How to Use Xcode Targets to Manage Development and Production Builds
如果你还爱折腾
关于项目持续集成自己一直没有涉及过。所以也不能写什么东东了。不过可以提供一些有用的链接。
About Continuous Integration in Xcode这个感觉需要xcode服务器,我望而却步了。
![](https://img.haomeiwen.com/i664334/29ea18fd77e6af1b.png)
iOS CI with Jenkins这篇还没来得及看。作者写的时间居然是2014年,😳
![](https://img.haomeiwen.com/i664334/7d850d0a6ee6dc16.png)
总结
本类想些一些关于iOS架构方面的,没想到只把项目搭建写了就已经不早了,哎!时间真的过得太快。关于架构方面具体的分析,抽个空在写吧。
网友评论