文章带目录版请移步简纸书生
在确定做一个项目之前有很多的因素需要考虑,笔者这里不讨论项目管理中的一些比如需求确定了,项目立项这些东西。主要从项目的动工讲一讲自己觉得需要注意的方面。
- 前提:你已经具备了开发的能力。
进入主题:
开发帐号的申请
自己前不久写过一篇入门及的帐号申请的博客,小白也能看懂。
项目的编码风格
项目的编码风格就像是一个人内在气质,不同的编码风格同样能完成项目的开发。指定了一套统一的编码风格,更有益于后期开发人员的维护,比如开发人员的离职,统一的风格让新人更快的上手。
这里收集了目前比较流行或者说是较好的编码规范(我公司就是按照这样的要求进行代码审查的)
编程语言 | 编码规范链接 |
-----|------|----
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程序的依赖管理
可以建立多个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服务器,我望而却步了。
iOS CI with Jenkins这篇还没来得及看。作者写的时间居然是2014年,😳
总结
本类想些一些关于iOS架构方面的,没想到只把项目搭建写了就已经不早了,哎!时间真的过得太快。关于架构方面具体的分析,抽个空在写吧。
网友评论