作者:简单点
链接:https://www.zhihu.com/question/22999185/answer/155469014
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

开发App的过程显得有点专业,不过本文不涉及编码,仅是简单描述一下App从无到有的一个过程。希望能让不懂开发的人也能够知道一个App是如何诞生的,这其中会经历哪些过程。

需求分析

软件开发最重要的一步就是需求分析,这个过程我们都是由商务人员和产品经理协作完成的。一般的客户很多想法都是停留在天马行空的阶段,我们会帮客户分析其中不合理的地方,并给客户提供一个完善的解决方案,最终梳理出完整的需求。

上面是一张简单的关于需求的思维导图,仅供参考。为了方便观看和保护隐私,我删减了部分内容。

原型设计 && UI设计

需求确定后,产品经理就会开始画App原型。所谓原型,其实指的就是App的草图,用于确定App界面大概设计方向。我们画原型使用的是专业设计工具(Axure或Justinmind),所以原型本身也具备了一些简单的交互功能。

原型确定后,我们萌萌哒设计师就要对它进行美容啦。

开发

当App的设计定稿,接下来就交给开发者,逐步去实现各个功能。通常而言,一个完整的App至少包括2个端,即前端和后端。

框架搭建

项目的技术负责人会根据需求文档,对项目需要用什么技术栈、集成哪些SDK进行评估,最终整理出一个项目的框架。这个框架是App能稳定运行的支柱,差的框架会导致结构、代码混乱,难以维护,极大影响开发和维护效率。

界面开发 & API设计

App的数据都是从后台获取,这就需要后台提供一系列的接口提供App调用。这些接口,就称作Api。

设计和实现Api需要不少的时间,与此同时,前端的小伙伴也着手开发App的界面。我们会划分出几个模块,便于团队协作开发。

比如上图,最简单的划分方法,就是把下面的5个tab划分为5个模块,每人负责其中2-3个同时开发。

界面开发是个纯苦力活,这个过程常常要因为线条粗细、字体颜色、字体大小、字体对齐等问题作相应的调整,最终才能出来一个让人满意的界面。

字体颜色会影响UI的层次感,所以必须要严格一致。

功能实现

界面完成时部分API也完成了,这时就可以在app内集成API,编写app的业务逻辑。这也是一个苦力活,实现业务最关键的一个步骤。项目的业务复杂度决定了这个过程的苦逼程度。

没集成之前功能是这样的,都是一些假数据。

集成之后,都是真实数据,且点击会有页面跳转。

细节打磨

App集成了数据,最后一步就是对细节进行打磨。比如使用一些动画提高体验,或优化交互流程等。举一个简单的例子:
(下图会动,请点击查看动图)

文字切换是平滑过渡看起来不突兀,如果直接一闪而过,就显得很生硬。

软件测试

alpha阶段

把所有功能都实现完就完事了么?第一版本的app通常相当不稳定,开发完后会交给测试人员测试,找出软件存在的一些问题提交给开发者。开发者再对问题进行修复,如此迭代直到稳定。

alpha阶段的软件会存在大量的bug

开发人员必须要修复相关的bug

Beta阶段

经过内部测试后,就可以发布公测版了。此时可以把软件交给客户进行公开测试。beta版的软件一般不会出现常见的bug,在公测过程中,会发现隐藏很深的一些问题,开发人员再根据反馈进行修复。

上线

最后,呈现在大家面前的就是一个很稳定的App,可以发布到应用市场啦。

如何开发一个APP——转自知乎的更多相关文章

  1. 后移动互联网时代:到底还要不要开发一个App?

    后移动互联网时代,到底是什么样的一个时代? 首先,后移动互联网时代中,产生头部应用的几率变小了,像微信这样巨头式的App很难在产生第二个.其次,后移动互联网时代,物联网发展迅速,所有的智能硬件都需要一 ...

  2. 成都开发一个app大概好多钱?

    目前,移动APP已成为很多小企业业务销售的新渠道之一,于是问题来了,一般想到要开发一个自己的app,就想问:开发一个app好多钱?去百度.360.搜狗等等平台去找相关的app开发公司咨询或者问问朋友有 ...

  3. 2016开发一个app需要多少钱?app开发需要哪些成本-app开发问题汇总-广州达到信息

    作为一个APP开发从业者,被外行的朋友们问及最多的问题是,"做一个网站需要多少钱?"或者"开发一个APP需要多少钱?".作为开发过完整网站项目和手机APP的人, ...

  4. 开发一个App要多少钱?APP开发报价单,APP开发外包有哪些注意事项-广州达到信息www.ddapp.com.cn

    来源:广州达到信息著作权归广州达到信息所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作为一个APP开发从业者,经常会有人问到:开发一个App要多少钱?下面针对这个问题来好好解答解答正经的谈 ...

  5. 开发一个App的成本是多少?

    英文出处:savvyapps.欢迎加入翻译小组. 在最近的一个会议上,一个叫Bob的老顾客引用了<App Savvy>(<放飞App:移动产品经理实战指南>)中探讨研发一个io ...

  6. 行内人解读开发一个App需要多少钱?

    对于很多互联网的创业者来说,评估前期的创业成本是很重要的.在这几年的创业大潮中,伴随着“互联网+”和“互联网思维”的普及,很多创业项目选择了开发app作为创业项目的载体.在我接触到的很多创业者,找Ap ...

  7. 用vue开发一个app(4,一个久等了的文章)H5直播平台登录注册(1)

    我上一篇关于vue的文章和这一篇时间隔了有点久了.最近终于写完了. 因为我一直想写个有点实绩的东西,而不是随便写一个教程一样东西.结合最近在项目中学到的经验和我的一点创意. 首先介绍下这是个什么! H ...

  8. 开发一个 app 有多难?

    171 个回答 默认排序​ 道衍天机 有事情的加微信1293190838找我 1,150 人赞同了该回答 ----------------------------------------------- ...

  9. 独立开发一个App是一种怎样的体验?

    (本文原文是我在知乎上写的一篇回答:独立开发一个 App 是一种怎样的体验?) UWP业余开发者表示,非常愿意做一股清流.在喧闹无比的iOS和Android平台,为了给应用造势,太多人费尽心思,勾心斗 ...

随机推荐

  1. uname -a

    uname -a Linux shell command https://en.wikipedia.org/wiki/Uname#:~:text=uname $ uname # Darwin $ un ...

  2. cloud linux cli & dart pub

    cloud linux cli & dart pub https://bcb8313e-05bf-4a93-9309-5f1f68eef1b1.ws-us02.gitpod.io/ https ...

  3. toString()[0]

    toString()[0] https://prepack.io/ x = `A` //"A" x.toString()[0] //"A" x.toString ...

  4. Typescript & classes & public shorthand

    classes & public shorthand Also of note, the use of public on arguments to the constructor is a ...

  5. Docker使用指南

    上文简单介绍了docker,这边记录一下docker的使用. 一.Docker启停 1.启动docker systemctl start docker 2.关闭docker systemctl sto ...

  6. 鸿蒙Java开发模式11:鸿蒙图片裁剪功能的实现

    鸿蒙入门指南,小白速来!从萌新到高手,怎样快速掌握鸿蒙开发?[课程入口] 目录: 1. 鸿蒙版图片裁剪功能效果展示 2.Java代码实现 3.裁剪工具类实现 4.<鸿蒙Java开发模式>系 ...

  7. 如何使用 Navicat Premium 的新“自动运行”工具自动运行行数据库复制。

    数据库复制有至少三种不同的方式: 快照复制:一台服务器上的数据复制到同一台或不同服务器上的另一个数据库. 合并复制:来自两个或多个数据库的数据被合并到一个数据库中. 事务复制:用户收到数据库的完整初始 ...

  8. Navicat premium对数据库的结构同步和数据同步功能

    一.在目标数据库新建一个相同的数据库名. 二.工具-->结构同步. 三.填写源数据库和目标数据库. 四.点击比对 五.点击部署 六.点击运行 七.点击关闭.此时源数据库的结构已经同步到目标数据库 ...

  9. Java基础语法:包机制

    为了更好地组织类,Java 提供了包(package)机制. 这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class).接口(interface).枚举(enumerations)和注释( ...

  10. JAVA基础(一)—— 基础类型与面向对象

    JAVA基础(一)--基础类型与面向对象 1 数据类型 基本类型 byte short int long float double boolean char n 8 16 32 64 32 64 tr ...