别做拍脑瓜的决策,在软件开发之前你需要考虑的比你想象的要多,具体需要考虑哪些问题?我通常会帮助或者指导客户把以下几个要素都过一遍:一:和客户谈他们的移动应用,最让我吃惊的是他们从来没有想过支撑一个i
别做拍脑瓜的决策,在
软件开发之前你需要考虑的比你想象的要多,具体需要考虑哪些问题?我通常会帮助或者指导客户把以下几个要素都过一遍:
一:和客户谈他们的移动应用,最让我吃惊的是他们从来没有想过支撑一个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基础上增加一些新的接口。