每天都有数以千计的移动应用程序发布到Google Play和Apple App Store。其中一些移动应用程序是游戏,其他是社交网络,许多是电子商务应用程序。所有这些应用程序,如果专业构建,应遵循类似的移动应用程序开发过程。在BHW,我们已经构建了350多个网络和移动应用程序,在本文中,我将概述我们遵循的战略,设计和开发流程。
每个应用程序都不同,我们的方法也在不断发展,但在开发移动应用程序时,这是一个相当标准的过程。此移动应用程序开发过程通常包括构思,策略,设计,开发,部署和启动后阶段。
听起来很老套,所有优秀的应用程序都是以创意开始的。如果你没有应用程序的想法,最好的开始就是训练自己总是从问题和潜在解决方案的角度思考问题。你希望你的大脑本能地问“我们为什么这样做?”或“有没有更好的方法来解决这个问题?”如果你能找出问题或市场效率低下,那么你的想法已经过了一半!
接下来要做的是理解为什么会出现这个问题,并想一想为什么其他人之前没有制作应用来解决这个问题。用这个问题和别人交谈。让自己尽可能地沉浸在问题空间中。一旦您完全掌握了问题,就可以开始评估移动应用程序如何解决问题。
这是了解移动应用程序可以做什么非常有价值的地方。我们经常被问到,“这甚至可能吗?”幸运的是,答案通常是肯定的,但这个答案必定是合理的。您即将在应用程序中投入大量时间和金钱,现在是时候挑战您的想法的有效性和可行性。
一旦你有了一个想法,你需要计划你的应用程序的成功。最好的起点之一是确定您的竞争对手。查看是否有任何其他应用程序用于类似目的并查找以下内容:
这个过程有两个主要目标。首先,尽可能多地免费学习。犯错是耗时,令人沮丧和昂贵的。通常,在正确完成之前,您必须尝试一些方法。为什么不通过从竞争对手那里学习经验来节省一些时间?第二是要了解在市场中竞争的难度。人们是否渴望获得新的解决方案?是否存在一些未被现有选项填补的利基?了解存在的差距并定制解决方案以满足这些差距。如果您的想法是全新的,请找到其他“首次推向市场”的应用,并研究他们如何教育消费者他们的新产品。
除非你只是为了自己的利益而喜欢构建应用程序,否则你可能希望在你的移动应用程序上赚钱。有几种可用的货币化方法,包括:应用内购买,订阅付款,高级功能,广告收入,销售用户数据和传统付费应用。要确定哪个最适合您的应用,请查看市场预期支付的费用以及他们希望为类似服务支付的费用。您还需要考虑在什么时候开始通过您的应用获利。太多的应用程序(特别是初创公司)跳过这一步,后来很难获利。
移动应用程序开发过程中的这一步骤就是确定您在营销应用程序时将面临的最大挑战。假设您有一个可靠的应用程序开发和应用程序设计团队,您最大的障碍可能会推动应用程序采用。应用程序商店中有成千上万个美观且非常有用的应用程序,这些应用程序只是未使 此时,您需要了解您的营销预算和方法。在某些情况下(如内部使用的应用程序或B2B应用程序),您可能甚至不需要营销。
策略流程的最后阶段是定义应用程序的路线图。此过程的目标是了解您的应用程序有朝一日能成为什么以及在第一天成功所需的内容。这一天,一个版本通常被称为最小可行产品(MVP)。在此过程中,在白板上写下您希望应用程序执行的所有操作会很有帮助。然后开始按优先级排列这些项目。考虑一下您的应用程序的核心功能是什么,获得用户需要什么,以及以后可以添加什么。如果您认为用户可能需要某些功能,那么它们可能是后续版本的绝佳选择。当您获得MVP用户时,您可以征求有关所需其他功能的反馈。应用程序监视(本文稍后介绍)也可以帮助完成此过程。
信息体系结构是决定需要在应用程序中显示哪些数据和功能以及如何组织数据和功能的过程。通常,我们通过写下我们希望应用程序执行的功能列表以及需要在应用程序中显示的内容列表来开始此过程。这些是我们构建线框的基本构建块。
我们使用的工具:白板和铅笔和纸
接下来,我们开始创建屏幕并分配每个功能和数据。如果有些人住在多个地方,这是好的,但你需要确保每个项目都有一个家。这个过程通常最初在白板或纸上进行。您希望在此处进行更改,而不是在此过程中进行更改,因为擦除某些标记比重写代码要便宜得多。绘制完多个屏幕后,开始考虑应用程序的工作流程。
使用的工具:白板,铅笔和纸,balsamiq和Sketch
工作流程是用户可以在您的应用中移动的途径。考虑您希望用户能够执行的每项操作,并查看完成该操作所需的点击次数。确保每次点击都很直观。如果需要点击几下来完成,那可能没问题,但是不需要点击几下来执行常见任务。当您发现工作流程出现问题时,请更新您的线框并重试。请记住在每次迭代中运行所有功能,只是为了确保您不会增加一个操作的难度以尝试改进另一个操作。
使用的工具:白板,铅笔和纸,Invision
点击型模型可帮助您测试线框和工作流程。它们基本上是一种在手机上体验线框以进行更真实测试的方法。例如,我们的客户只需收到一个链接,当在手机上打开时,他们可以点击线框。虽然此时应用程序没有任何功能,但他们可以单击应用程序中的每个页面并开始测试应用程序的导航。当您在此步骤中发现问题时,请使用线框进行更改并进行迭代,直到您满意为止。
使用的工具:Invision
样式指南基本上是应用程序设计的构建块。有一个合理的风格指南将极大地帮助您的应用程序的可用性。您不希望一个屏幕上的号召性用语按钮位于底部,蓝色,绿色和另一个屏幕上的标题。通过使用一致的设计语言,用户更有可能在您的应用中感到舒适。
确定应用程序的样式指南有很多内容。您需要考虑您的身份以及您的客户是谁。你的应用程序是否会在晚上使用?那么也许一个黑暗的主题将最有效,以免盲目的用户。是否会被忙碌的员工使用?尽量将杂乱降到最低,并将主要观点放在首位。经验丰富的设计师或设计团队拥有广泛的产出,可以提供非常适合您和您的客户的应用程序。此阶段的输出是一组颜色,字体和小部件(按钮,表单,标签等),将从您的应用程序设计中提取。
渲染设计是获取线框并使用样式指南中的元素替换灰度元素的过程。每个线框屏幕都应该有一个渲染屏幕。在这个过程中尽量保持你的风格指南,但你不必教条。如果您发现自己想要一种新的或改变的风格,请随时更新或修改您的风格指南。在此阶段完成后,请确保您的设计一致。
使用的工具:白板,铅笔和纸,以及素描
渲染完所有屏幕后,返回点击模型应用程序并再次测试您的应用。这是移动应用程序开发过程中您真正想要花时间的一步。虽然已经在应用程序中付出了相当多的努力,但在此之后,更改可能会变得越来越昂贵。将此视为在您的房屋浇筑混凝土之前审查平面图。幸运的是,移动应用程序开发比构建更具适应性,但在这些方面考虑它可能是最具成本效益的。
使用的工具:Invision
在为应用程序的形式和功能投入了大量精力之后,您的开发团队必须正确实现此愿景。我总是惊讶于移动应用程序开发过程中的这一步骤经常变得糟糕。也许这是由于许多组织和机构仅提供设计或开发服务或设计师和开发人员之间有时是好斗的关系。无论是什么原因,我强烈建议找一个可以提供设计和开发服务的团队,并且可以在此过程中正确处理这一步骤。
有助于确保平稳过渡和精确实施的部分原因是正确使用可用工具。我喜欢使用名为Zeplin的应用程序,这有助于开发人员快速获取设计风格指南。但是,这不是万无一失的。Zeppelin是一个很棒的工具,但有时它的指南并不精确或不是最好的实现(它可以使用显式维度,而不是动态维度)。在这些情况下,如果您的开发人员也可以使用设计应用程序(例如Sketch或Photoshop),那将是非常有益的。这里重要的是,团队不仅仅是最好地猜测尺寸,十六进制值(颜色)和定位。您的设计团队付出了巨大的努力来确保事物的正确对齐和定位。您的开发团队的目标应始终是像素完美的实现。
使用的工具:Zeplin
有许多方法,技术和编程语言可用于构建移动应用程序。每个人都有自己的长处和缺点。有些可能使用起来更便宜,但性能较差,而其他可能需要更长的时间来实施并且过度使用。最糟糕的可能性是建立在垂死或不可靠的技术堆栈上。如果您犯了这个错误,您可能需要重建您的应用程序或为开发人员支付额外费用。这就是为什么拥有一个在制定这些决策方面经验丰富的值得信赖的开发合作伙伴在此过程中至关重要
对于前端开发,基本上有3种方法。它们是特定于平台的本机,跨平台本机和混合。以下是每种方法的简要概述,以及一些详细介绍每种方法的文章。
特定于平台的本机 - 使用此方法构建的应用程序是针对每个移动平台单独编写的。代码无法在Android和iOS之间重复使用,但这些应用程序可以针对每个平台进行全面优化。UI可以看起来完全是原生的(因此它适合操作系统),应用程序应该流畅地工作。这通常是最昂贵的方法,但是经过了很好的尝试和测试。
跨平台本机 - 使用此方法构建的应用程序具有一些(或完全共享)代码,但仍然可以本机运行。用于此的常用技术是React Native,Xamarin和Native Script。这是各种方法之间的一个很好的中间点,因为它更具成本效益,但仍然可以针对每个平台进行优化和设计。
混合 - 混合应用程序使用Web技术(HTML,CSS,Javascript)构建,并通过本机包装器安装。这可以使用Cordova,Phone Gap和Ionic等技术来完成。这个选项可能是最便宜的,但也提出了一些非常实际的困难。
服务器负责您的应用程序的大部分性能和可伸缩性。这里使用的技术类似于用于支持基于Web的应用程序的技术。在编写代码之前,您需要确定以下几点:
语言 - 有许多语言可用于构建您的API。使用的常用语言是Java,C#,Go-lang,javascript,PHP和Python。大多数语言也有许多可以使用的框架。
数据库 - 现代数据库有两种主要类型。SQL和noSQL。SQL更传统,几乎在所有情况下都是最佳选择。常见的SQL实现包括MSSQL,MYSQL和PostgreSQL。除了选择数据库引擎之外,还必须设计特定的数据库模式。拥有可靠且组织良好的数据对您的长期成功至关重要。所以,请确保这是经过深思熟虑的。
托管环境(基础架构) - 在此步骤中,您需要确定将托管API和数据库的位置和方式。此处做出的决策将有助于确定应用程序的托管成本,可伸缩性,性能和可靠性。常见的托管服务提供商包括Amazon AWS和Rackspace。除了选择提供商之外,您还需要规划系统随着用户群的增长而扩展的规模。基于云的解决方案允许您作为实用程序支付资源,并根据需要进行扩展和缩小。它们还有助于数据库备份,服务器正常运行时间和操作系统更新。
合理的移动应用程序开发是一个迭代过程。您可能听过“sprint”或“敏捷方法”这个词。这基本上意味着您将所有开发工作分解为更小的里程碑,并在一系列周期中构建您的应用程序。每个周期都将包括规划,开发,测试和审查。有关于此过程的完整书籍,因此本文仅提供每个步骤的简要概述。如果您的公司选择使用其他流程,这些步骤将非常相似,但每个流程的顺序和长度可能会有所不同。
sprint的计划阶段涉及划分当前迭代期间要实现的任务列表。每项任务都需要明确的要求。一旦开发人员理解了这些要求,他们通常会估计完成每项任务所需的时间,以便可以均匀地分配任务,以确保在sprint期间实现平衡的工作量。
开发人员也开始计划在此阶段解决分配问题的方法。熟练的软件开发人员可以找到在整个应用程序中智能地重用代码的方法。这对于实现样式和共享功能尤其重要。如果需要更改设计(相信我,某些内容会发生变化),您不必在许多地方更新代码。相反,可以在选定的位置更改设计良好的软件,以进行这些彻底的更改。
在开发阶段,您的开发团队将开始实现您的应用程序的样式和功能。完成后,他们将被分配给项目经理或QA测试人员进行审核。通过在整个sprint中正确地重新分配任务,优秀的项目经理能够在此过程中完全优化开发人员工作负载。
重要的是,您的开发团队应充分了解整个应用程序的目标以及他们正在处理的特定功能。没有人比指定的开发人员更专注于该特定功能。他们应该了解要求的意图。如果事情开始变得没有意义,通常是第一个让你知道的开发人员。
在开发过程中,使用一个名为Hockey App的平台。它允许我们私下安全地将应用程序的开发版本分发给测试人员,客户和其他开发人员。Hockey会自动通知用户新版本(因此每个人都在测试最新和最好的版本),提供崩溃报告,并且可以确保只有经过批准的测试人员才能访问您的应用。这是让每个人都能加快进度的好方法。在开发过程中,我们尝试每周更新一次或两次曲棍球。
大多数测试应该由非开发人员或至少不是您的应用程序主要开发人员的人员执行。这将有助于确保更真实的测试体验。在每个sprint期间应该发生几种类型的测试。这些通常包括以下内容:
功能测试 - 测试以确保功能按要求中的说明运行。通常,QA团队将制定测试计划,其中包含操作列表和所需的应用程序行为。
可用性测试 - 测试以确保该功能用户友好且尽可能直观。通常,在此步骤中引入新的测试人员以获得“首次使用”体验会很有帮助。
性能测试 - 您的应用程序可能完美运行,但如果显示简单列表需要20秒,则没有人会使用它。性能测试通常在以后的冲刺中更为重要,但随着您的移动,请密切关注应用程序的响应能力。
适合和完成测试 - 仅仅因为设计阶段已经完成,并不意味着您可以将设计师锁定在壁橱中。设计师应审查每个功能,并确保按照设计中的描述实现其愿景。这也是为什么拥有一个设计和开发机构非常有益的另一个原因。
回归测试 - 请记住上一个sprint中的一个功能?不要以为它仍然有效,只是因为你上个月测试了它。优秀的QA团队将拥有在每个sprint结束时执行的测试列表,其中包括之前sprint的测试。
特定于设备的测试 - 世界上有数以万计的设备和操作系统组合。测试时,请确保在多种屏幕尺寸和操作系统版本上试用您的应用程序。有一些工具可以帮助实现这一功能,例如Google的Firebase,但总是至少在少数几个物理设备上测试应用程序。
用户验收测试 - 这是由应用程序所有者或未来的应用程序用户执行的测试。记住您正在构建此应用程序的人,并在整个过程中获得他们的反馈。如果一个功能通过了上述所有测试,但是没有通过这个功能,它有什么用?
在此阶段发现问题时,将任务重新分配给开发人员,以便解决问题并解决问题。测试完成并完成每项任务后,继续进行审核。
在每个sprint结束时与每个利益相关者交谈并确定sprint如何进行。如果遇到困难,请尝试从未来的冲刺中消除类似问题。如果某个地区的情况进展顺利,请尝试将它们应用到其他地方。没有两个项目是完全相同的,每个人都应该始终在他们的角色中前进,所以在迭代的同时,我们的目标是改进。审核完成后,再次开始计划阶段并重复此过程,直到应用完成为止!
此时,您的应用应该是完全可测试的并且功能完整(至少对于MVP而言)。在您花费大量时间和金钱进行营销之前,请花些时间用潜在用户的样本来测试您的应用。有两种主要方法可以解决这个问题。
焦点小组包括与之前从未见过该应用的测试人员或测试人员小组进行面谈并进行面试。您想了解这些测试人员是谁,他们如何了解新应用程序,以及他们是否已使用类似的应用程序。在进入您的产品之前,尝试从中获取一些背景信息。接下来,让您的测试人员开始使用您的应用。在此过程中不应该指导他们。相反,让他们使用应用程序,就好像他们刚刚在应用程序商店中找到它一样。了解他们如何使用该应用,并寻找常见的挫折感。使用该应用程序完成后,获取他们的反馈。请记住,不要过于强烈地指导任何一个测试人员,而是结合反馈并使用所有可用的反馈做出明智的决策。
除焦点小组外,您还可以对应用进行测试版发布。Beta测试涉及让一组测试人员在现实世界中使用您的应用程序。他们使用应用程序就像它已经启动一样,但数量要少得多。这些beta测试人员通常会成为高级用户,早期采用者,也可能是您最好的客户。确保他们感到受到重视和尊重。给他们充足的机会提供反馈,让他们知道您何时以及如何更改应用程序。此外,beta测试是了解您的应用在各种设备,位置,操作系统和网络条件下的表现的绝佳时机。您必须为此步骤提供声音崩溃报告。如果出现问题,你就没有好处,但是没有被发现和诊断出来。
在这些延长的审核期之后,通常会有一个最终的开发冲刺来解决任何新发现的问题。在此过程中继续进行beta测试,并确保崩溃和问题报告不断下降。一旦您从测试人员那里获得了全部清晰,就可以开始准备部署了。
将移动应用程序部署到全世界有两个主要组件。第一种方法是将Web服务器(API)部署到可扩展的生产环境中。第二种是将您的应用部署到Google Play商店和Apple App Store。
大多数移动应用程序都需要服务器后端才能运行。这些Web服务器负责与应用程序之间传输数据。如果您的服务器过载或停止工作,该应用程序将停止工作。正确配置的服务器可以扩展,以满足您当前和潜在的用户群,同时不会花费不必要的昂贵。这就是“云”的用武之地。如果您的服务器部署到可扩展的环境(Amazon Web Services,RackSpace等),那么它应该能够更好地处理流量高峰。对于大多数移动应用程序来说,扩展并不是非常困难,但是您希望确保您的团队知道他们正在做什么或者您的应用程序可能会崩溃,就在它变得流行时。
将您的应用提交到应用商店是一个适度参与的过程。您需要确保您的应用程序已正确配置以供发布,为每个商店填写多个表单,提交屏幕截图和营销材料,并撰写说明。此外,Apple会手动审核提交到其应用商店的所有应用。他们可能会要求您对应用进行更改,以便更好地遵守其规定。通常,您可以与Apple讨论这些更改,并让他们按原样接受您的应用。其他时候,您可能必须进行更改才能获得入场许可。一旦您的应用程序提交,它将在当天晚些时候在Google上生效,并在几天内在Apple中生效,假设一切顺利。
当应用程序发布时,认为移动应用程序开发过程结束将是非常天真的。去看看任何中等流行的应用程序,你会看到应用程序更新的悠久历史。这些更新包括修复,性能改进,更改和新功能。彻底监控对于最好地了解需要哪种更新至关重要。以下是您应该监控的一些事项。
有许多库可用于可靠地跟踪应用程序崩溃。这些库包括有关用户正在做什么,他们使用的设备以及对您的开发团队解决问题至关重要的大量技术信息的信息。可以将应用程序配置为在发生崩溃时发送电子邮件/文本/警报。可以相应地查看和分类这些崩溃。
使用的工具:Sentry和HockeyApp
现代应用分析系统是信息的宝库。他们可以帮助您了解谁正在使用您的应用程序(年龄,性别,位置,语言等)以及他们如何使用它(时间,在应用程序中花费的时间,在应用程序中查看的屏幕等)。有些甚至允许您查看应用程序的热图,因此您可以了解每个屏幕上最常点击的按钮。这些系统为您的应用程序的使用方式提供了宝贵的一瞥。使用此信息可以最好地了解未来投资的投资方向。不要构建很少使用的应用程序部分,而是投资于有行动和最大增长潜力的地方。
我们使用的工具:Facebook Analytics,Apptentive,Google Analytics和Appsee
前两个监控类别未涵盖的一个重要指标是您的应用技术性能,即它的工作速度。我们部署的任何系统都有广泛的性能监控。我们能够跟踪一个动作发生的次数以及该动作花了多长时间。我们使用它来找到适合优化的区域。我们还提供了警报,让我们知道特定操作是否比预期慢,因此我们可以快速查看是否存在任何问题。这些性能工具通常包含短划线,报告和警报功能。
应用商店的评分和评论非常重要,特别是对于较新的应用。每当您的商家信息中保留新评价时,请务必与评论者互动。感谢那些给你很好评价的用户,并试着帮助那些感到沮丧的人。我已经看到数百个糟糕的评论改为5星级,只需要一点客户服务。用户不希望应用程序开发人员和所有者提供实际操作级别的服务,这有助于提高您的在线声誉。
所有这些监控的目的是了解您下一步需要做什么。大多数应用程序从未真正完成。总有新功能可以添加,可以改进的东西。盲目地构建你的应用程序会非常浪费。使用您从用户和监控平台收到的信息。然后重复这个移动应用程序开发过程的一部分(不用担心,第一次通过后,每个步骤都更容易)。继续改善您的应用,转换率,安装基础,当然还有收入。移动应用流畅。通过持续增长和改进来利用这一点。
移动应用程序开发过程可能看起来势不可挡并且参与其中。在此过程中需要采取许多步骤并且需要做出艰难的决策。但是,这是一个非常有益的过程,可以是非常有利可图的。此外,在此过程中可能会有一些跳过步骤的诱惑,但本指南建立在与选择跳过某些步骤的应用程序所有者合作的多年经验之上。与我们联系。
紫隆科技:分销系统-开发