在写一个iOS应用之前必须做的7件事(附相关资源)

这两年,我一直在编写并发布有质量的iOS 应用。我发现大多数的开发人员有直接跳进编码应用程序的核心逻辑的倾向,因为这是乐趣所在。遵循流程开发是很无聊的。

我了解到最有效的方式是,如果你提前花些时间正确设置项目,你将会为将来节省大量的时间。如果你是一位独立开发者,你可能意识不到下面提到的这些步骤的重要性。大多数优秀的应用程序都由团队开发,如果遵循以下步骤,肯定能帮你减少挫败感并提升应用质量。

1.为工程设置编码风格规范

编码风格规范指的是在使用特定语言写代码之前要明确遵守的风格和惯例,它包括类似于该使用tab键还是空格键,如何命名变量以及特定语言本身的约定俗成(像swift语言中是否该使用Classes还是Structs)。

编码规范本身没有孰对孰错。在项目开始前,你可以设置自己的编码风格,但是必须保证同组的人遵守相同的规范。编码规范能够保证代码更加统一和更易于阅读。

一些公司已经开源了Objective-C和Swift语言的编码规范。

2.在写代码之前确定应用的架构

在写代码之前,确定应用架构是非常重要的。一个好的架构可以提升应用的可测试性,更加易于理解并且能降低维护成本。你可以使用传统的MVC架构,或者使用更加流行的MVVM或VIPER架构,这里提供了大量的资源来介绍这些架构。

3.设定应用的目录结构

为了使数以百计的源代码文件至始至终保存在相同的目录中,最好是根据项目的架构制定目录结构,例如,你可以使用以下的目录结构:

首先,在Xcode的Project Navigator中工程名称分组下面,以group的形式创建它们(小黄色的文件夹),然后,通过打开Xcode右边的File Inspector,为每个创建的group链接到真实的项目路径下对应的目录,点击File Inspector中小的灰色的文件夹icon,在工程目录下创建对应group名称的子目录。

这个看起来是件小的事情,却可以使你的项目更加有条理且易于理解。

了解更多目录结构可以参考以下资源:

4.项目依赖管理

你当然会在项目中使用第三方库,在项目中,你可以有三种方式可以管理项目依赖。

CocoaPods是适用于Swift和Objective-C Cocoa项目的依赖管理库,它有将近10000个开源库,可以优雅地帮你管理项目的规模。它是最有效的方式做依赖管理,就像Ruby中的Gems。

Youtube上有一个google开发者创建的滑稽的视频(地址,需翻墙)来解释为什么必须在项目中使用CocoaPods。

  • Github Submodules

你也可以使用Github Submodules管理你的项目依赖作为子库,相比CocoaPods,Github Submodules的优点在于它是sub-repos- 这不仅意味着git和git GUIs能够隐式识别他们,并且也可以获得更多支持,同时意味着你的工程依赖能够更加紧密的联系到他们的git仓库,而Cocoapods则不能。

submodules的问题是:你的工程不拥有你依赖库的源代码,仅仅是拥有一个引用到submodule的仓库。大多数情况你控制不了这些代码仓库。

Carthage被认为是往Cocoa应用中添加框架的最简单的方法。Carthage使用xcodebuild编译framework二进制,但是把集成的任务留给了用户。CocoaPods的目的是对用户简单,但是Carthage对用户来说是灵活的、不干涉的。

不幸的是,Carthage的最大的缺点是----只支持iOS8及以后版本。

这三个当中,我最常用并且我个人最喜欢的是CocoaPods,因为它设置超级简单,并且提供了数以千计的第三方库供你访问。

5.为应用设置合适的Scheme

当你点击了Run、Test、Profile、Analyze或者Archive 操作后,Schemes告诉Xcode什么会发生。通常,每个操作对应一个target和一个编译配置。你也可以传递启动参数,比如应用运行的语言(测试本地化很有用)或者debug时设置一些判断的标识位。

建议Scheme的命名规则采用MyApp () [Environment]:

你也可以使用Target制作不同的发布、测试以及开发来编译程序,如以下描述:

6.设置合适的Certificates和Provisioning Profiles

在测试和发布应用过程中,这个是开发者最头疼且重要的步骤。证书对代码签名来说是必须的,你可以在真机上运行应用程序。

有两种类型的证书:

  • 开发证书:每个团队的开发者都有自己的证书,需要请求生成。Xcode会为你做这些,但是最好不要点击“Fix issue”按钮,并且能够理解点击这个按钮会真正执行什么。开发证书是发布应用的开发版本到设备上。
  • 发布证书:可以有多个,但是最好保持一个公司一个发布证书,通过内部渠道分享相关的秘钥。发布应用到App Store时需要这个证书,或者是公司内部的企业级应用分发。
  • Provisioning Profiles

Provisioning Profiles 可能是系统中最容易引起混淆的部分了,如果你访问苹果开发者网站,你会注意到你可以创建两种类型的Provisioning Profiles(开发和发布)。Provisioning Profiles是“以这个证书的私钥作为签名的应用可以在这些设备上正常运行: https://www.quora.com/What-are-the-differences-between-certificates-provisioning-profiles-and-identifiers

你可以阅读更多相关资源:

7.设置应用持续集成和交付过程

建立一个持续集成和交付过程已成为关键,因为现在它可以帮助您在开发早期发现bug和节省大量的开发人员的时间。

持续集成 (CI) 是一种开发实践,要求开发人员一天将代码同步到共享存储库几次。每次提交都会用自动脚本进行验证,可以使团队尽早的发现问题。

很多工具可以帮你做iOS应用程序的持续集成,比如 Xcode Server、Jenkins和Travis CI。

持续交付 (CD) 是一个软件工程的方式,可以使团队在短周期内开发软件,确保软件可以在任何时间可靠地发布。它旨在更快、更频繁地构建、测试和发布的软件。

为什么使用持续交付?

  • 可以在准备应用提交、上传截图以及发布应用上节省数天时间。
  • 如果在同事休假期间,但你发现一个严重问题需要修复并发布怎么办?在发布更新版本时不需要依赖某一个人。
  • 通过更频繁和小版本的更新,提高软件质量和反应时间。

虽然有大量的工具供持续交付,我个人最喜欢的是Fastlane。它非常容易安装,并提供了一些强大的功能,可以使你整个的编译和发布过程自动化。

如果你喜欢这篇文章,欢迎推荐,以便其他人也可以看到。

时间: 2025-01-21 19:24:56

在写一个iOS应用之前必须做的7件事(附相关资源)的相关文章

浅谈一个好博主必做的六件事

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 博客,其实挺简单的一件事,无非写文章而已--这种心态的人,是没有考虑自己博客的访问量和引擎收录的问题的.有些人就把博客看成自己的副业,他们以博客赚钱,以博客养家,那么,博客对他们来说就不是发发文章这么简单的事情了. 现如今,博客已经成为众多推广方式的一种,以至于博客满天飞.像新浪博客.百度空间.搜狐博客等这些权重较高的博客往往成为网民看重的博

一个好博主必做的六件事

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 做博客并不是那么简单,除非你是那么的不在乎你的访问量和收录,当然,有些人把博客当成自己的副业了,我曾经建的博客月收入也能上千了,博客并不是那么简单.在如今博客满天飞的情况下,如何做好一个博客成为了众多博主的问题.百度空间,新浪博客,网易博客,各种博客成为了网民的第一选择,作为一个把博客当副业的人,我们也是选择这些平台吗?不,当然不是.一个简单

wwinfrom 为Url写一个正则表达式 要求输入地址做判断

问题描述 wwinfrom 为Url写一个正则表达式 要求输入地址做判断 在一个文本框内要求 输入一个地址 要求可以这样 http://www.xxx.com http://www.xxx.cn http://192.168.xx.xx/load/xxx.html 解决方案 http://[a-zA-Z.0-9/-_]+ 解决方案二: 一个URL正则表达式

当开发者产生一个伟大的想法之后应该做的10件事

当你正和家人享受一个悠闲的午后,一个不错的想法突然出现在你的脑海里.不管它是一个 App 还是服务,或是一个新的概念.只要你把这个想法付诸实践,它就可能会成为下一个 uber,甚至会改变世界. 那接下来你应该怎么做呢?这里有一个指南,会告诉你在决定把自己这个想法实现之后应该做的事情. 1. 起一个名字 在你决定开始之后,要做的第一件事就是为你的产品起一个名字,这个名字是有多重要大家心里都很清楚,如果你并不擅长起名字,你可以通过一些工具来扩展你的思路,如 visual thesaurus, Wer

Ubuntu 17.10安装之后需要做的9件事

Ubuntu 17.10 已经正式发布了,如果你正尝试试用新系统的功能,那就跟着系统极客每次 Ubuntu 发布之后的老生常谈--Ubuntu 17.10 安装之后需要做的 9 件事.我们会列出系统安装之后需要做的一些事,这将使得 Ubuntu 的体验更加出色. Ubuntu 17.10安装之后需要做的9件事 其实总的来说,安装好 Ubuntu 17.10 后要做哪些事完全取决于你是什么类型的用户.如果你要进行图形设计,将需要安装大量的 Linux 图形工具;如果你是游戏玩家,可能需要寻找安装更

安装Linux Mint 17后要做的20件事

安装Linux Mint 17后要做的20件事 Linux Mint 17 Qiana Cinnamon Linux Mint 17已经发布,定名为Qiana.Mint是Linux最佳发行版之一,它定位于桌面用户,关注可用性和简洁.它携带了风格迥异的桌面环境,如Mate以及Cinnamon,并基于不同的发行版,如Ubuntu或Debian. 在本文中,我们使用的是Linux Mint 17的cinnamon版本.要获取更多关于Cinnamon版本的信息(包括下载链接),可以访问 - http:/

新建立好的网站马上要做的三件事

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 自博客开张已满一天的时候,很惊喜滴发现博客已经被百度收录了,更惊喜的是有很多朋友前来参观,连松松大哥都来了!阿忙谢谢大家的捧场,感觉博客里文章太少对不住大家,不过我以后会多更新的.刚还在整模板和插件,闲话不扯了,本文重点是写给新手朋友的一个建议,新建立好的网站马上要做的三件事: 一.更新一篇文章 刚建好的博客最好先发布一篇相关文章,"

新站完成需要做的第一件事

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 新站完成需要做的第一件事是什么?应该是勾引蜘蛛让搜索引擎快速收录本站.所谓的新站完成,当然不是说绑定了玉米安装了程序就算是完成了,之前你网站必须要有一些基本内容.就拿我的网站来说吧,也是新站,今天刚刚完成的.<脑筋急转弯>http://www.flhacker.cn.有了基础内容,这样我们就可以开始我们勾引蜘蛛的旅程. 那如何让搜

谷歌GCE追赶亚马逊AWS要做的9件事

2013年尾,"Gartner:亚马逊AWS的市场占有率是其他14家主要公司总和的五倍",这张图被产业解读数次.但有一个细节要注意的是,图中并没有谷歌GCE.而在诸多国外资讯中,如<亚马逊AWS vs.谷歌GCE,飙的是价格?>,不难看出AWS的龙头地位正在遭受IBM.微软.谷歌等对手的重重挑战.其中,被视为劲敌的就是谷歌GCE.要知道,GCE是2013年12月,由谷歌副总裁阿里巴洛格于谷歌官方博客发布,正式进入产品阶段(一般可用,普遍可用)的. 谷歌GCE的优势很明显,一