开发之前需要仔细考虑的
别做拍脑瓜的决策,在开工之前你需要考虑的比你想象的要多。我通常会帮助导客户把以下几个都过一遍:
一:和客户谈他们的移动应用,最让我吃惊的是他们从来没有想过支撑一个iPhone应用运行,背后需要涉及到的方方面面。他们想象中的iPhone是独立存在于这个宇宙的,是如此的简单,以至于他们要我很快就给出一个项目预算报价,而不用讨论诸多细节。我问他们:“你们是否考虑过后台服务器的事情?你们的应用需要和后端服务器做数据通讯?” 什么,听不懂?好吧,我用地球人的语言再把这个问题讲 一遍:“你们的应用不是需要用户注册嘛,你们考虑过把用户的数据存放在哪里了吗?我们需要一个地方去保存这些以后会用到的数据。” 第一次碰到这样的客户时,哥简直就怒了。后来我发现这不是客户的错:我是搞编程的,CS架构对我来说就像吃饭睡觉一样是不假思索的东西,而我的客户尽是些高富帅,他们懂个毛CS架构!
所以,如果你不大懂技术,那请仔细听我说:如果你想做的移动应用需要用户注册和登录,或者你想随时控制移动应用的一些输出,甚至是你仅仅是需要一个用户反馈意见调查表这么简单的功能,那么,你得搞一台后端服务器。
二:好了,现在你知道你需要一台后端服务器。同时你还需要想办法让你的iOS应用和你的服务器能够对话,就是相互间接收数据什么的。不,这个问题不是简答靠什么标准的即插即用的东东就能解决的,不是你们想象的那样!所有的东西都需要定制化开发,这就好比发明一门语言:你希望你的服务器和你的应用之间能够通过一种语言沟通,但是你不希望其他人听得懂这门语言。
用行话说这就是制定服务器端API接口,或简称API。这些API应该在开发iPhone客户端之前就到位了。为什么?因为你必须先规定好一门语言的单词和语法,然后才能用这门语言说话吧!?好了,这就带出了第三点—如何开发这些API。
三:API的成功定制是项目成功的一半(反之亦然),所以千万不要掉以轻心。你要考虑你的业务数据模型、业务流程、调用业务需要提供的参数、特定事件发生时数据间该如何互动等等。简单来说,我们要做的就是开发一个网站,上门跑着你的业务流程,只不过这个网站的所有运行结果都不是通过网页形式展现出来,而是呈现在一行行的文本和数字中。举个例子:一个登录成功的反馈页面仅仅包含YES一个单词。
iPhone应用需要访问这些预先定义好的接口,并且按预定义格式提供必要的输入(比如用户名和密码),然后要对服务器端的反馈(YES或者NO)做出解析处理。所以,没有什么移动应用能够自动的含有用户注册和登录功能。
服务器端开发需要考虑的问题太多了:选择服务器,选择用什么语言开发,主机放在哪里才能增加访问速度,等等,这里我就不展开了。如果这一切对你来说很陌生,那么你最好去问问团队里的技术负责人,或者干脆让开发人员做决策。
四: 所以,关于服务器端API,你或者让自己的技术团队把它开发好,再将完善的API文档交给iPhone应用开发人员;或者你支付iPhone应用开发人员额外的报酬来搞定这些。你找的iPhone应用开发人员可能会服务器端开发也可能不会。如果他会的话,我建议最好让他也同时负责服务器端开发,因为他最清楚iPhone应用中需要哪些服务器端API。
如果你的服务器端API已经存在了,那么除了向iPhone应用开发人员提供相关文档之外,你还要考虑让他能够便捷的同服务器开发团队沟通,因为大多数情况下,iPhone应用需要在已有API基础上增加一些新的接口。
现在我们来看看iPhone应用开发本身
扯了大半天,我们终于开始谈iPhone应用开发本身了。一般来说,iOS平台上做所有事情都不能随心所欲。你最好在开发人员写代码之前把所有的需求都确认好好。这和开发网站不一样,按照实现签订的合同开发iOS应用,开发过程中对需求变更的容纳度可能很低:
用户界面:无论你打算采用iOS标准界面还是自定义元素,在开发开始前一定要确认清楚,因为应用的程序架构是根据界面和用户使用流程来设计的。一个很好的例子就是在界面底部使用了iOS标准的标签栏(Tab Bar),此后如果你想让标签栏里面的图标变成彩色的,这个代码改动量可没你想象的那么小!
代码之间的耦合:如果是开发网站,你可以随意的添加一个页面或者一处链接。做iOS应用就没有那么简单了,很多东西一开始都要设计好,后期的一处改动会牵连很多东西,具体原因是你无法理解的。iOS应用的代码写好之后,再改动行不行?行!但必须小心。 这就像设计电路板一样, 如果你不小心把那根线搭错了,整块电路板就会不工作。有人说架构优良的程序可以有很高的延展性,那纯属纸上谈兵。在About屏幕上添加一个电子邮件按钮可能只需要几行代码的工作量,而添加一个转发到新浪微薄的按钮(译者注:原文是添加一个Facebook Like)就完全不是那么简单的事儿了!
让一个iPhone应用同时也支持iPad:如果要评选最坑爹“需求变更”,那么这个绝对是当之无愧的。理由很简单:支持iPad根本不是TMD什么附加功能!iPad应用基本上都比iPhone应用来得要复杂,界面设计和用户体验也大不一样。我问你,制造一辆电动自行车,然后把它改装成一部烧汽油的摩托车,这能是一回事儿吗!?电动自行车跟摩托车看起来是很像,但是制造它们完全是两码事。
拿广受欢迎的Facebook官方应用来说,它的iPhone和iPad版本看似相似,实际用户操作流程完全不同。不仅仅是界面上的不同会带来额外的工作,对后台服务器API的需求也可能不一样。拿我熟悉的一个应用Denso来说(我熟悉它因为这是我开发的),它的iPad版本比iPhone多了几个功能,这些都需要额外的服务器端API来支持。记住,iPhone和iPad应用的用户体验需求是完全不一样的。
准备好开始了吗?
希望此文能够帮助你和你的团队了解移动应用开发幕后的方方面面。除非你们要做一个像计算器那么简单的单机应用,否则你们很难用极低的成本搞定。综上所述,如果你觉得外包成本太高,那你只好招人自己开发。
当然,如果你决定了要外包移动应用开发,那么我还要提醒一点:公司政治。如果你是在一家大公司或者有着严格制度的机构里面干活,那么帮助合同开发者搞定那些个规章制度上的繁文缛节,对你来说是非常重要的一项工作,必要的时候甚至可以做一些政策上的变通。 我同几个大型企业客户接触过,当我要求看他们的服务器端数据接口的时候,他们流露出很不安的表情。我想这或许是因为他们受制于公司规定而不能透露信息,这无可厚非;或者他们还没有想好这种情况下该如何操作;或者他们的品牌制度蛋疼到需要在移动应用的每个屏幕上都摆着公司logo!最终我没有和这样的企业客户合作,因为我无法想象如果有一天我需要增加一些服务器端API接口的话,和他们的规章和流程折腾,那将会是多么悲剧的事情。
相关推荐
根据提供的链接,可以下载到名为“iOS开发前准备”的视频教程资源。这些教程可能包含了上述提到的知识点,帮助初学者快速入门iOS开发领域。 #### 4.1 下载地址 - 本地下载地址:...
iOS开发前期准备是每个想要踏入iOS应用开发领域的程序员必须经历的阶段。这一阶段主要包括对iOS开发的基本情况了解、开发环境的搭建以及获取必要的软件开发者证书。 2.1 iOS开发基本情况介绍 iOS开发主要针对苹果...
《iOS开发指南(第5版)》是一本深入探讨iOS应用程序开发的专业书籍,旨在帮助开发者从零基础到熟练掌握Apple的移动操作系统上的应用构建过程。该书第五版更新了最新的开发技术和工具,确保读者能够使用最新的Xcode和...
在进行iOS开发之前,开发环境的搭建是开发者必须经历的初始步骤。本文将详细介绍如何搭建iOS开发环境,并提供一些简单的开发实例来帮助初学者快速入门。 ### iOS开发环境搭建 #### 注册Apple ID 为了下载开发所需...
《Xamarin iOS开发实战中册》是一本专为开发者准备的深入学习Xamarin技术,特别是针对iOS平台的应用开发指南。这本书旨在帮助读者掌握使用Xamarin工具集构建原生iOS应用程序的技能,从而实现跨平台的高效开发。...
### 一、开发前准备 #### 1. 安装Xcode - **下载与安装**:访问苹果官方网站下载最新版本的Xcode,并按照提示完成安装。 - **环境配置**:安装完成后,需要通过Xcode的偏好设置进行一些基础配置,如选择Swift语言...
本文主要涵盖了一些基础知识和前期准备工作,旨在帮助用户无基础地开始iOS开发之旅。 1. iOS开发基本情况介绍 - iOS是苹果公司专为iPhone、iPod touch和iPad设计的操作系统,基于Darwin构建,拥有四个层次的架构:...
除了编程技术,课程也会涉及iOS开发的最佳实践,比如App审核流程、应用内购买、以及如何准备提交到App Store。此外,课程中的实战项目将帮助你将所学知识付诸实践,提升解决实际问题的能力。 附带的源码和书籍是...
在本教程“20天搞定iPhone软件开发教程iOS开发教程”中,你将全面了解如何从零基础开始,一步步成为一名熟练的iOS应用开发者。这个教程可能是由一系列的课程、视频或者文档组成的,旨在帮助你在短时间内掌握iOS应用...
iOS开发环境搭建是每个想要开发iOS应用程序的程序员的必经之路。本文将详细介绍这一过程,包括注册Apple ID、注册开发者账号、准备硬件环境、下载并安装iOS SDK及开发工具Xcode,以及Xcode的初步使用。 首先,我们...
如果大家相对苹果做开发的话,或者向入门苹果开发,这本书都会对你有帮助哦
在iOS开发中,“归档”是一项关键的技术,用于持久化数据存储。归档允许开发者将对象的状态转换为字节流,然后保存到磁盘或通过网络传输,之后可以从这个字节流恢复对象。这一过程是Objective-C和Swift中的标准序列...
【标题】:“IOS开发项目源代码” 这个标题表明我们正在讨论的是一个与iOS应用程序开发相关的项目,源代码是开发者编写程序的原始文本,通常用Objective-C编程语言编写。Objective-C是Apple为iOS和macOS平台设计的...
《MISSAJJ(OC和Swift )iOS开发项目电子书》是一份专为iOS开发者准备的综合学习资源,涵盖了Objective-C和Swift两种主要的iOS编程语言。这份电子书旨在帮助初学者以及有经验的开发者深入理解和掌握iOS应用开发的...
特别在iOS开发中,TDD为开发者提供了一种高效、系统的方法,以确保每个组件都能正确无误地执行其预定的功能。为了掌握基于测试驱动的iOS开发,开发人员需要了解相关的工具、测试框架以及测试流程。下面是对所提供...
8. App的发布与维护:详细说明应用上线前必须进行的准备工作,包括配置App Store的信息、上传应用、版本迭代和后续的维护工作。 上述内容是对《iOS开发进阶》书籍可能涵盖知识点的推断,由于没有实际的内容摘录,...
"iPhone开发秘籍.pdf"是一本专为想要掌握iOS开发技能的程序员准备的电子书,它深入浅出地介绍了如何利用Apple的Swift编程语言和Xcode集成开发环境来构建iOS应用程序。 一、Swift编程语言 Swift是Apple于2014年推出...