手机软件开发的步骤从0到1需要经过哪些步骤

从0到1_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢滴滴顺风车从0到1的产品设计完整过程
用研、产品、交互、视觉、大数据等,精品课程随你选。
作者:产品君@产品疯人院
一、产品背景
顺风车项目初期,产品GM反复和我们强调业务使命,私家车出行在滴滴体系中的角色,私家车市场规模,业务模式概述,业务模式关键词,目标体系。
使得我们很快明确了顺风车的产品定义,目标用户,主要功能,产品场景,产品特色和竞品的差异化以及未来顺风车的产品走向。
未来它将是一个每天改变千万人次出行的产品,它能让共享私家车成为一种连接人与人的生活方式。
二、产品定位及前期研究(案头整理和竞品分析)
我在网上收集资料,对顺风车已经有了一定的了解,当时国内的拼车APP已经有一些但还不成熟,我下了一些竞品软件,把每个产品的页面截图拼凑成流程图,观察总结它们的核心功能及业务流程,体验好和不好的地方都记录在笔记上。收集问题之后,对问题进行分析,最终聚焦在核心的问题,并将分析的结果展示给团队。
研究思考竞品的主要功能,业务流程和信息布局,以及网上和现实中车主乘客对顺风出行的一些痛点,从用户意见中提炼用户最本质的需求,需要改善的地方。
三、产品设计阶段
设计阶段初期,因为没有数据和用户反馈做依靠,我们在和PM做需求分析的时候追求本心,理解用户核心问题和解决方案,勇敢做。脑暴大胆尝试了很多种业务方案。
3.1 产品需求(业务梳理)
项目初期在和产品讨论如果没有一套整体的流程图是很难和产品以及技术沟通进展的,于是我们花了1天时间的讨论,把主要功能及业务流程快速梳理了一遍,搭建了一套顺风车业务流程图。
流程图分为3个部分:
乘客流程(乘客发单-呼叫等待-车主接单-支付评价)
车主流程(车主选单-车主抢单-送达乘客-等待支付-评价乘客)
公共部分(个人主页,个人余额,实名认证,车主认证,接单设置等),这样我们在讨论的时候就方便很多。
3.2 交互设计(流程图绘制及迭代更新)
前期随着每天的讨论增加删减功能都要确保每天的流程图更新一遍,让大家的信息能够及时同步,看着挺麻烦,其实当中大部分时间都花在产品讨论上了,白天产品和设计一起讨论,晚上修改更新邮件。
在项目前期没有交互,这时候产品设计就要充当交互的职责,紧跟产品,关于产品讨论的会议都要去参加,积极的去参与,脑暴,在过程中,展现自己的专业度,获得产品的信任,过程中得到产品等同事的认可,有利于方案的执行。多数人已经认可的方案,少数人在否定方案时会非常慎重。和产品在项目前期在目标上达成一致,避免在设计方案上发散性讨论.由于前期的产品讨论,每天产出的流程图都会有变化,低保真流程图不需要出到特别细致的阶段,只要把产品思路表达正确即可。
注意流程图不要覆盖,按 time line 保存,这样方便之后的升级改版 review 之前的想法及功能点。
3.3 视觉设计(细化页面)
当我们把整个的产品流程都梳理完成,产品确定之后。就要开始细化页面了,我们要保证的是顺风车上线产出高质量的设计,重要的页面要着重去想去设计,多做尝试,让用户体验做到最优,同时要和滴滴打车平台的设计风格保持一致,GUI保持一致。本次开发周期非常短,细化所有端上效果图的时间仅有一周的时间,虽然时间很短,但是前期铺垫时间很长,我们对这个产品流程已经非常熟悉,一切还算顺利。
拿首页为例,当用户第一次进入顺风车最先进入的就是首页,主要功能会在首页展示,所以这里考虑的比较多,我们在首页的尝试飞机稿不下10张,经过谨慎的考虑,我们采用了现在端上的效果。
3.4 原型制作(高保真)
制作高保真效果图的时候这里会思考以下几点:
与滴滴打车平台整体设计气质保持一致,相同的功能控件沿用平台。
一个页面一个核心功能,信息层级,强弱关系的处理。
轻便,适当的留白,易于操作。
视觉规范的统一性与一致性。
各个分辨率的适配问题,小尺寸要做单独的处理。
Android和iOS的差异性思考。
不做跳度特大的页面,整体保持平稳。让用户好理解。
设计的预期
车主使用顺风车,能够清楚的找到乘客和车主在哪里切换。
保持视觉交互平稳,使用过程中轻松流畅并且高效。
当然这个方法只适合在新产品业务上线,大版本更新以及新功能流程使用。
毕竟小版本的一些视觉改动,如果一期迭代是10天,每个版本都出一份视觉流程图并保证是最新的太浪费成本了。
大小版本的改动只做视觉规范的更新就好。
3.5&开发上线
开发环节我认为在产品设计里算是最关键的一部了,用户不可能直接拿着你制作的设计稿去进行使用,你的设计是需要经过开发实现之后才会到达用户手中,所以设计和开发的对接,沟通尤为关键。这个时候的设计要跟进开发环节,保证产出物和设计一致,交互逻辑及动画展示保持一致。
好多设计师抱怨明明设计的很好,可实际线上效果却不理想,相差太大。
问题出在哪里?
标注图及切图质量不达标。
和开发没有直接沟通,把产出交给开发之后就不管了。
最后开发完成没有进行视觉走查。
说一下我对顺风车一期和开发的一个产出流程和沟通:
首先自己要对这款产品足够的熟悉,页面逻辑跳转,哪里展示什么,有哪些种状态要充分了解,不然和开发沟通,人家问什么全都解释不清楚,还要去找产品确认,耽误时间。
把所有本期相关的开发拉在一起开个会,相同的控件抽离出来,记录下来,和开发沟通的时候避免二次开发,因为一个产品可能是好几个开发人员负责的,一人一块,如果没有足够充分的沟通,很容易二次或者多次开发相同的控件,耽误开发时间而且视觉走查的时候也会费时费力,那时候再想让开发统一就不那么容易了,因为相同的控件不同的开发写法可能也会不一样,导致一个控件视觉联调要调整多次,会吐血的。
所有页面标注切图需要怎么给到开发要过一遍,记录下特殊的地方,因为有的页面需要特殊的动画处理,或者时间成本有限,切图需要特殊处理,如果这个时候不沟通明确了,按照自己的意思切图标注了,开发用不了,还会反过头来再找你,浪费大家时间。
这个时候就可以按照之前和开发沟通之后进行标注切图了,这里我会产出几项给开发。
a) 所有本期相关页面效果图。
b) 本期效果流程图。
c) 相关页面标注,页面样式重复的就不需要再标注了,这里主要标注(文字大小,颜色,按钮大小,按下效果,长宽,动画说明,如果有服务器下发的尺寸的要做说明,最多显示的字数)。
d) iOS(@2x,@3x)Android(1080)切图。
e) 发送邮件给到开发并抄送相关产品负责人,再当面和开发沟通确认下标注切图确保没有问题。
设计我是以iPhone6尺寸进行设计的,大屏手机越来越主流,所以我的标注图就是6为基准,6的切图为iOS@2x图,当@2x图制作完成之后,我会等比放大150%,生成@3x图,这里需要注意一下,3x图可能会有半像素,所以要手动都调整下。
iOS这块完成之后我会产出安卓的,以iphone6为基准,向上放大144,产出安卓1080的进行标注,切图只出1080的,向下等比进行适配。
设计在程序开发阶段,不然就是和产品准备下期需求,不然就是继续优化可优化的页面,如果是优化页面,这个需求无论是设计还是产品提出来的,一定要尽早的告知开发,不要耽误时间,不然时间有限,很可能优化的地方来不及修改。
如果是纯视觉优化,那还好,只需将需要更改的切图或者文字大小,颜色之类的同步到开发即可。
整理顺风车视觉规范,小版本迭代的时候随期更新。
开发完成就会进行到视觉联调和测试解BUG阶段,由于项目周期有限并且紧张。所以视觉联调一定要快速进入,因为后期BUG的测出,开发没有足够多的时间与你进行视觉联调。
在这里我一般是先调iOS的,因为安卓发布审核比较快,所以时间会比iOS宽裕一些。
视觉联调主要调整的是,视觉,状态的展示(下拉刷新,点击加载,异常情况),各尺寸分辨率适配和交互动画。
一般iOS是能看虚拟界面的,我会让开发挨个把页面截图给我,对照设计稿重叠着看,精确到像素,能当时解决的就当时解决,有的调整需要花时间的我会先记录下来,和开发商量下时间,好了再次对照下。
由于前期头开发前的铺垫,相同的控件只需调整一遍,相对会节省时间。
因为iOS设计稿做的是iPhone6的尺寸,所以开发会以iPhone6为基准,我联调的时候也是这样,先调整iPhone6,6全部调整好了之后会再次调整5和plus的尺寸,因为都是等比的,一般不会出大麻烦,只是4上有的需要单独处理,因为4的尺寸高度有限,有的页面不允许有下拉的状态,这时候就需要单独处理了,图片的大小,间隔的修整以及一些展示,比如评论标签,在5 6 plus上显示的是4行,在4上只能显示3行了。
由于iOS联调只有2天的时间,时间紧迫,这里基本完成不了所有的页面调整,我将页面从头到尾看了一遍,按照页面的重点优先级排了顺序,将重点必须要保证视觉的页面用标记标红。然后找iOS负责人沟通,需要同时和相关RD一起调整,这样能保证效率,我将他们做的页面按照姓名,把页面放到他们相关姓名的文件夹中。
安卓是以1080为基准进行联调,一般1080调整好了720基本过过就还好,480有的地方也会单独处理。
当视觉联调完成之后我趁热打铁梳理了一遍顺风车的相关页面,把平台及顺风车相关的控件抽取出来制作出了顺风车视觉规范文档。
3.6 制定设计规范(迭代优化)
制作视觉规范的目的是
提升设计效率
统一设计标准
便于后期顺风车加设计人员,可以很方便了解产品,快速着手设计。
3.3 回顾规范,需要优化改善的地方一目了然
端上视觉规范
文字字号控件
导航相关-通用控件
顺风车通用控件
四、案例总结
在这里顺风车一期的设计相关的所有流程就写完了,总结下设计师在这个产品里各个时期担当的角色转变。
产品设计初期
设计师主要紧密和产品经理沟通,关于产品讨论的会议都要去参加,通过竞品分析和用户反馈采集用户需求,因为这里还没涉及到设计相关,讨论的同时站在用户和产品的角度多去考虑问题,和产品最终达成一致。
产品设计中期
这个时候的产品功能,业务流程基本定型,这里还是紧密的配合产品,以解决产品需求,减少用户理解操作的成本为目的,设计草图及低保真流程图。
产品设计后期
这个阶段设计偏执行的多一些,主要负责产出高质量的设计,和开发紧密联系,跟进各个开发环节,确保产品能够高质量的上线。
从2月份开始业务成立,我参与了这个产品从0到1的过程,在这里我学到了很多东西,忙碌的工作让我来不及做沉淀,最近终于把这个总结写好了。
对自己具体分为三个方向的成长,项目管理、技能管理以及横向扩展。当然自己也要勤思考。
项目管理:任务优先级,时间节点的把控,产品沟通,技术沟通。高质量产出,确保端上效果与设计稿基本一致。
技能管理:有关设计的一切多去看,多去想去思考(包含平面,运营),采集好的设计,勤做练习.专业度的提升。
横向扩展:产品思维,运营知识,时间管理。
以前我会花大量的时间去做拟物图标的练习,当时觉得很有成就感,可在工作当中很少会有那么长的周期和合适你去做这些东西的一个项目。更多的时间是花在产品上,思考,讨论,设计,推动,跟进。现在的成就感更在用设计解决了产品当中的问题。
产品新人培训课程
新一期课程即将启动,有意者请微信联系
产品大拿经验总结
产品新人入门必读文章
UXRen社区欢迎各界 用户体验从业者及学生 投稿优质原创文章。投稿请关注UXRen社区公众账号 cnUXRen (下面有二维码)留言“ 我要投稿 ”,小编会及时与您取得联系。
版权声明:除转载文章外,本站所有文章版权归UXRen社区所有,转载请注明出处: UXRen社区 ,并保留本站 原文链接地址 。本站部分文章来自互联网及公开渠道,如有侵权请及时联系我们。邮箱:
转载来源:
(公众账号)
头图来源:
关注UXRen微信公众号(cnUXRen) 第一时间获取 #用户体验# 公开课、文章、译文及培训信息!
关注下,有惊喜!微信搜索公众号:meitianyixi
扫一扫有惊喜&&&&之前没有接触过客户端的知识,倒是使用JAVA自带的Swing和AWT写过Windows图形界面,自己也总是觉得应该利用空闲时间学习一下其它方面的知识,之前一直计划开始学习Android,于是踏上了学习Android的征程,当然鉴于自己以前学习编程的经验,实践的效果远远大于读书,尤其是对于这种偏实践性型的技术,但是自己的学习的过程中总是会有这样的现象:当天整个学习过程很顺畅,以为掌握了这部分知识,但是过了两天再看发现这部分知识还是崭新的,于是就希望能够把自己的收货记录下来,当然其中在学习的过程中会牵扯到各种各样安卓开发外的联想,这也是我我对编程认识的最基本的原则之一:技术之间都是互通的,基本原则总是就那么几条。
&&&&对于入门的我第一件事就是选择一个靠谱的教材,开始我考虑的是国外的经典教材,毕竟更权威一些,但是又想了一下觉得如果从一本这种书开始学起难免会拖慢自己的速度,毕竟开始还是考虑从动手的角度上先知道怎么做,然后在考虑为什么,所以对我来说无论哪本入门书都应该差不多,于是就选择了国产的《第一行代码》,从头开始学起吧。希望这本书不要像谭浩强那本书给我太多的误导,嘿嘿~
Android系统架构
根据书中的介绍,Android系统可以分成如下几层:
内核层,Androi是基于Linux内核的,除了通用的内核程序之外,还有一些为特殊硬件适配的驱动,包括Wifi、蓝牙、照相机驱动等。驱动一般是由硬件厂商开发的,提供了内核对这些硬件接口。
系统运行库层,类似于PC端的Linux系统提供的一些系统库,Android同样也提供了一些系统库,包括SQLite支持数据库支持,Webkit提供浏览器内核支持,JAVA虚拟机的支持等,这一层为了应用框架服务。
应用框架层:这一层是为应用程序提供开发API,主要包括Android系统API。
应用程序层:该层为普通的应用程序,包括系统自带的和我们自己的编写的,通过调用系统API完成。
下图可以展示Android系统结构:
Android系统中提供了四个组件:
活动(Activity):每个显示的界面都是一个活动。
服务(Service):后台运行的线程,即使程序退出,服务可能仍在运行。
* 广播接收器(Broadcast Receiver):用于接收系统的消息(例如短信、电话)和向系统发送消息广播消息。
内容提供器(Content Provider):用于应用程序之间共享数据,可以理解为一种进程通信方式?
另外需要重点说明的是Android中自带了基于SQLite的嵌入式关系数据库系统,这样的我们就可以使用它它完成一些数据存储和通信操作。类似于现在云主机都会提供一些rds的服务。
&&&&第一步当然是搭建Android环境了,Android是一个操作系统,我们开发的则是Android应用层软件,通常使用的编程语言是JAVA,这里我使用的是Eclipse进行编程,为了支持Android程序的编译,需要在开发机上安装Android的SDK,我把它理解成一个提供Android开发的jar包,以及相应的开发工具。有了Android SDK和集成开发环境Eclipse,还需要使用ADT(Android Development Tools)来实现两者的连接,它是Eclipse提供的插件,有了它就可以完成虚拟机的启动、模拟各种手机事件等。
&&&&可以在下载Android SDK,下载完成之后,可以找到Android SDK Manager,根据名字就可以推断出它是用于管理SDK版本的,运行它之后可以下载你需要的SDK版本和相应的工具。安装好SDK之后在Eclipse中安装ADT,安装完成之后在Windows下的Preferences中可以找到Android的选项,这里需要配置一下你之前下载的SDK目录的绝对路径。安装完成之后可以发现Eclipser的工具栏中多了两个图标,分别为SDK Manager和Virtual Device Manager,前者就是用来启动你安装的SDK Manager、后者用于管理你自己创建的Android虚拟机。可以通过点击这两个图标是否弹出分别的Manager界面来环境是否配置成功。
&&&&有了AVD Manager,就可以创建Android虚拟机了,但是通过实践发现,在开发机上启动虚拟机来进行调试、测试不是一个高效的选择,更好的方法是使用真机调试(没有安卓机的土豪还是不要搞安装开发了吧),使用真机调试时一定要注意把手机的“USE调试”打开。当你连上真机之后,在Eclipse中启动Android程序的时候会让你选择使用虚拟机or真机运行,此时选择一下就可以了。
&&&&经过上面的步骤就可以把安卓开发环境搭建好了。需要的就一套开发机和一个测试安卓机,接下来我们创建一个Example程序测试环境是否正常可用。首先在Eclipse中创建一个Project,选择Android下面的Android Application Project,然后填入project name,下面的SDK版本根据你安装的版本自己选择,下面可以一直Next,需要注意的是第二步可以选择是否创建图标和是否创建一个默认的Activity。创建完成之后就可以在右侧看到该工程,下面包含很多文件,此时点击项目名,右键Run As-&Android Application就可以启动整个安卓程序了,启动过程中会让你选择再哪个机器上启动(当前连接电脑的安卓手机还是自己创建的虚拟机),如果选择真机,这时候就可以看到你的手机上当前页面上运行着一个无比简单的应用程序,显示”Hello World”。如果看到这样的效果,说明你的环境搭建成功了,接下来就是真正的Android开发了。
&&&&如果在搭建环境或者创建项目的过程中遇到任何问题,可以参考书中的详细过程,这里介绍的只是一些大致的过程,并没有相应的图文,只是感觉搭建环境和一个Hello World程序对于新入门一个技术太重要了。
&&&&先不要为刚才的环境搭建成功和第一个App开心,我们目前为止还没有写一行的代码。想想也是挺沮丧了,但是更沮丧的是这个工程下有这么多文件不知所云(至少比一个普通的JAVA工程要多),下面逐个说明一下每一个目录和文件的作用。
src:这个不要在介绍了,就是源代码目录,和普通JAVA程序一样,下面有多个package组成,每一个package下多个JAVA文件。
gen:根据上面的说明,这里是生成的JAVA代码文件,也就是不需要我们自己手写的代码,它是根据什么生成的呢,安卓开发不像AWT或者Swing那样需要你自己安排每一个控件(资源)的位置等信息,可以拖拽的方式(类似于MFC)完成,系统会为每一个控件生成一个ID,我们在编写代码的时候通过该ID获取该控件以实现相应的操作逻辑。这部分代码主要就是我们在拖拽界面的时候生成的。
assets:这个目录主要存放一些随程序打包的文件,程序运行时可以动态读取这些文件的内容。还会存储一些临时加载的文件。
bin:这个类似于普通JAVA程序的target目录,存储生成的目标程序,例如这个工程生成的apk文件就存储在这个目录下。
libs:存储一些程序需要使用的第三方jar,除了第三方jar,程序还依赖于android的系统jar,这部分是默认加载的,一旦需要使用第三方jar,就需要使用依赖管理工具,例如maven,但是安卓开发中貌似不经常使用maven,这个后面在做介绍。
res:这个目录下面有很多子目录,gen目录下的java文件就是该文件的内容生成的,这些子目录包括存储静态值的values目录,存储布局信息的layout目录,存储菜单信息的menu目录等。
AndroidManifest.xml:该文件是整个工程的配置文件,程序中使用的四种组件都需要在该文件中配置(注册)才能使用。
project.properties:该文件只存储编译程序时使用的SDK版本。
&&&&本文主要介绍了安卓开发的环境搭建,以及创建了一个简单的安卓项目,虽然一行代码没有写,但也是一个从0到1的开始,我始终觉得,安卓开发要作为一个客户端开发来看待,如何布局、有哪些控件,控件之间如何关联才是关键。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:93748次
积分:1590
积分:1590
排名:千里之外
原创:60篇
评论:91条
(2)(3)(4)(2)(3)(2)(2)(2)(1)(2)(2)(1)(4)(1)(2)(3)(2)(3)(3)(5)(3)(2)(6)(6)(1)

我要回帖

更多关于 软件开发的基本步骤 的文章

 

随机推荐