眼珠突出和上眼皮突出眼珠黄是什么原因因 – 手机爱问

全国服务热线:
您的位置: >
电影app开发怎样才让用户觉得好玩
作者:酷蜂科技
时间: 17:37
[摘要]不少喜欢电影的网友因为遇不到知音觉得很多视频网站无趣,电影app开发能让更多的影迷发现好电影。用户可以在电影的世界,里面享受好莱坞式的视觉盛宴。
&&&&&& 有不少喜欢电影的网友总是觉得遇不到知音,享受不到电影乐趣。通过ui设计和内容资源的丰富,为爱好电影的用户精心设计一个影视新平台。用户在平台上面不仅能看到各类精彩的电影视频,还可以进行评论点赞和收藏,给用户最大的空间来满足自己的喜好。
&&&&&& 那么,电影app开发应该怎样才能让用户觉得好玩呢?
&&&&&& 1、视频标签屏蔽:对于不喜欢的电影,用户可以选择视频的标签屏蔽,这贴心的功能简直就是戳到了用户的内心了。
&&&&&& 2、有趣电影专题推不停:用户订阅自己喜欢的电影专题后,会收到该专题的内容更新通知,比如说#属于卷福的小性感#、#有种不一样的画风叫新海诚#等,为用户发现更多好电影,告别片荒就是这么简单。
&&&&&& 3、匹配功能强大:点开一个片段之后,微电影、花絮、剪辑视频等都会自动匹配相关全片,不仅告诉用户片名、简介,还会给用户提供评分以及电影相关剧照、海报等内容,保证用户看高质量电影。
&&&&&& 4、吐槽阵地:在观看电影的过程中,用户觉得不喜欢或者是想吐槽,直接在吐槽阵地中畅所欲言,为影视迷提供一个交流探讨提供便利。
&&&&&& 酷蜂科技是专业的电影app开发公司,能给企业开发出用户喜欢的app。
本文链接转载请注明来自广州酷蜂科技!
‘功夫瑜伽’、‘西游伏妖篇’、‘大闹天竺’等等各种热门电影大饱眼福,可是排队艰难,座次不满意生生影响了群众们的心情。电影购票APP开发让用户简单轻松享受电影乐趣。
电影APP开发公司市场调研人员发现,智能手机的普及,手机APP在人们的工作生活中扮演着重要的角色,使其逐渐成为电影行业网络营销工具之一。
找找兼职app开发让有空闲时间的用户可以多赚点零花钱。企业在开发找兼职app时还需通过线上任何和严肃审核来吸引用户。
母婴市场处在高速发展的今天,母婴电商APP开发努力在抢占移动电商市场份额。母婴电商APP的出现为用户提供了更为便捷的购物体验以及交流平台,备受宝爸爸妈的喜爱。
语音导航app开发可以让导航变得更加简单,想去哪里就去哪里。企业所开发的语音导航app应该具备离线导航、语音导航、轨迹记录和周边服务等功能。
体育APP开发让更多人通过APP认识到更多志同道合的小伙伴。体育APP开发有望成为中国健康消费的最大产业、能获得更大的发展空间可与穿戴设备相结合让其发展更好。
酷蜂科技婚礼行业手机应用开发实现通过手机应用开发对接整个婚礼服务人员以及服务项目,为用户提供管家式的服务,消除更多的中间环节,致力于为婚礼行业消费者节省婚礼费用
时下的换脸APP软件风靡全球,进入国内之前,已经在国外社交平台掀起一波波热潮。下面为您推荐最火爆的MSQRD、Snapchat、Face Swap Booth三款用于换脸的APP软件。
评论 这个是彩票APP吗
评论 名鞋库APP有哪些品牌的鞋子介绍
评论 吃顿宵夜也能用app拼也真是醉了
评论 颜值也能测试,厉害了!
评论 确实需要这种软件,网络病毒太可怕了!
评论 卖菜郎APP,小莫小二郎,我是卖菜郎,一斤3块二
评论 e菜到家是外卖软件吗
评论 电音也有app了!
评论 快消品行业现在发展挺快的!金钱鳘又称黄唇鱼,目前已经接近濒危灭绝的状态。
赴日游客越来越多,国内游客成为黑心商家的肥肉。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  一个完善的app开发过程往往能够帮助你做出高质量的产品
  你也在负责移动APP产品研发吗?你在用户、UI设计师、交互设计师、H5开发工程师、IOS APP开发工程师、Android APP开发工程师、Java(PHP、.Net)后端工程、运维工程师、线上运营、线下运营等等形形色色的人群中忙的焦头烂额吗?也许我们都一样,面对这些强势的群体无计可施,但痛定思痛,事情总是要捋清楚的,为了做好一个符合需求的项目,先来想想这几个问题:
  1.APP开发本身的业务逻辑,是否初期已考虑周全?
  (刚上线时要让用户得到什么内容,后期准备为用户迭代哪些内容都要想清楚。)
  2.项目需求分析的是否到位?
  (我们总要问自己:真的有对应的实际场景吗?最终策划出的功能符合最初设想的目的吗?真的不是脑子一热做的功能吗?)
  3.APP定制是否能抓住用户痛点?
  (在指定用户群体中,这个功能做出来能满足重点用户的数量多,还是满足普通用户的数量多?)
  4.APP上线以后,是否能让运营人员有更多空间施展拳脚?
  5.项目的后台操作系统是否利于运营和产品人员进行操作?
  (从后台获取用户数据、运营人员使用等操作是否能保证高效率)
  6.页面交互设计符合APP的业务逻辑和用户群体吗?
  (假如用户群体普遍年纪40岁以上,APP的交互设计就一定是最简单的;微信就要考虑多种年龄层次进行页面交互设计,产品经理都要与设计师沟通)
  7.项目后期能不能顺利迭代?
  (APP的主要页面,有没有在最开始策划的时候预留后期迭代新需求的入口。)
  如果我们在APP开发过程中可以重视每一个细节,业务逻辑非常清晰、商业模式也被肯定,这个项目一定是个不错的产品。
  接下来,这篇文章想要与各位看官说说APP的开发过程。
  一、通过需求分析,确定业务逻辑
  商业模式、业务逻辑一定是每个产品经理需要认真思考的环节,项目开发难度是根据业务逻辑的复杂程度而决定的,大部分项目在这个阶段都只是一些抽象的想法,然而需求分析对于整个项目是最重要的环节。
  我们需要考虑:
用户群体;
APP的运行环境(android、iOS);
项目定位;
竞品分析等更多方式得出的功能策划……等多种因素。
  在需求确定后,需要编写实施方案书以及一份完善的需求文档,通过需求份文档和实施方案书与开发人员沟通具体的实施难度和时间进度计划。
  时间计划很重要,项目的时间节点几乎会影响商业模式的发展。
  二、原型制作,业务逻辑交互策划
  根据确定的需求和业务逻辑进行原型制作,对APP每个页面的功能和布局进行规划,这个过程也是挖掘需求和更改需求最重要的阶段,原型制作的标准,对细节的交互标注也会对项目有很大的影响(例如,最细节到标注页面跳转方式、按钮的统一样式、指定内容的间距规范,都会让工程师的工作更标准。)
  三、输出产品PRD
  内容需要涉及到设计工作的标准和开发工作的标准,业务逻辑的详细描述,后台数据的体现,运营使用的场景都要写进PRD文档中,这样设计师和工程师才会理解项目,根据不同场景做不同的设计和开发。(例如这个APP是针对老年用户开发的,那么设计师就要针对这个需求进行交互设计,如果这个功能数据访问量很大,那么工程师也要针对这个需求进行开发。)
  四、UI设计
  如果产品经理在绘制原型时,也担任了交互设计师的工作,那么UI设计师的工作就是对确定的原型进行UI界面配色,在这个过程中,设计师和产品经理会对页面的很多细节进行沟通,根据沟通结果调整页面很多不足的地方,例如考虑用户体验和内容的展示需求进行页面设计调整。
  五、APP开发
  经过UI设计,确定设计稿后,便进入工程阶段,APP开发中的几个角色分别有IOS、android、前端、后端、测试工程师,在开发之前一定要交接好产品PRD以及项目中需要注意的事项。根据项目时间计划表,由项目经理安排工作。
  后端工程师:完成APP前端页面的接口开发,APP项目后台功能开发。
  前端工程师:按照APP项目需求,开发H5页面。
  IOS、android工程师:对确定的UI设计稿进行页面开发,根据后端工程师提供的接口对已开发好的页面进行对接工作。
  测试工程师:从项目进入开发阶段开始,保持跟进,以保证测试用例的正确编写。
  六、测试阶段
  测试工程师对开发完成的APP项目进行测试,对项目后台操作系统进行测试,这个阶段的测试工作不仅是要测BUG,还要对产品的易用性、完整性、用户体验、业务逻辑进行测试。测试阶段需要与工程师反复沟通修改BUG等其他问题。
  七、测试完成,部署上线
  测试阶段完成后,上架各个应用市场、appstore,准备APP内测,在得到用户反馈后进行合理修改,正式上线,推广、运营。
  以上就是APP项目开发过程的简单介绍,还是要对开发过程中的每一处细节进行优化,建立标准,做出精致出色的产品。作为乙方公司的产品经理,还需要通过客户对项目的不准确描述挖掘客户真实需求,并协助客户策划出完整的项目,直到做出一个符合真正需求的APP产品。
  专门提供移动互联网各行各业的 、、、、、、,,、、,等视频服务以及商业APP社交产品,其中包括安卓社交APP和IOS社交APP开发,杭州神尼科技公司并提供常年的技术支持。创业项目开发咨询:8
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
专门提供移动互联网各行各业的娱乐直播、商务直播、电商社交、...
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬初夜
客服热线:86-10-
客服邮箱:请求处理中...
中国领先的新型创意服务交易平台
用户喜欢什么样的APP,APP开发如何让用户喜欢
发布时间: 17:38:55 &&&&阅读次数:次&&&&评论数:0次&&
字体:[&&&&&&]
  只要用户喜欢的APP才是一个优秀的APP。很多APP用户使用体验效果很不好,这种的APP很快就会被市场淘汰,只有被用户喜欢的APP才能长久的活下去。下面一品威客网小编分析用户喜欢什么样的APP,APP开发如何让用户喜欢。  APP开发如何让用户喜欢一、APP要易操作  试想一下,在现在这么快节奏的生活中,如果打开一款APP它的界面既复杂又难以操作,你还会有耐心继续浏览吗?我们上网很大程度上是为了寻找很舒适的感觉,如果你设计的APP需要用户大动脑筋,是不是会引起用户的抵触心理?总之,用户很懒,喜欢的APP永远是简单易操作的。  其实我们都有喜欢走捷径的心理,在产品的使用上也是同样的道理。在前提条件一样的情况下,用户一定会选择更短更快捷的方式去获取她们想要的东西。  APP开发如何让用户喜欢二、APP要简单  所以在APP的制作上,我们要避免使用那些重的元素,该有的有,不该有的直接舍弃掉,不用依依不舍。当你的APP成为了一款多而杂的产品的时候其实就失去了重心,在竞争激烈的今天,要做,就要把产品做到极致,把握一个重点,让操作变得人性化,不要让用户来适应你的产品,那样用户很有可能会抛弃你。所以我们要做APP就要做让用户喜欢的APP——简单易操作。
汇聚了、、、、、、、、等优秀威客人才,只要您在网站发布任务需求,就能够吸引众多威客给您献上最好的创意服务。推荐更多与“用户喜欢什么样的APP,APP开发如何让用户喜欢”相关推荐:
除非注明,文章均为(一品威客网 )原创,转载请保留链接:
编辑:蓝blue
小编介绍:蓝blue是一品威客资深小编,从事编辑工作多年,创作和整理了近万篇优质文章。如果您对“用户喜欢什么样的APP,APP开发如何让用户喜欢”有其它疑问或见解,可以联系蓝blue,共同探讨,相互学习,可以通过下面的方式与之联系。
擅长领域:
Android应用微博
Android应用QQ
Android应用博客
Android应用QQ群
您有类似需求?1发布一个任务2百万威客响应3选择满意方案4确认并付款
最新相关任务推荐
热门服务推荐
买创意,买服务,上一品
选择更多,超900万威客人才随您挑
相关百科推荐
相关人才推荐
成功雇主优秀威客
软萌软萌的兔子,黑溜溜的大眼睛,长长的耳朵,可爱娇憨的表情,萌化了一票人的心。这就是...
在某个幽静的街角,开一家温暖的咖啡店。屋子不用很大,但要有大大的落地窗。店里养只...
“在外企工作的时候,接触到了非常多的产品,大大小小的企业,见证了许多产品的不成熟到...
成功案例展示区
品牌名称字体及LOGO设计
深圳中艺影视公司LOGO设计
化妆品品牌LOGO设计
海外婚礼定制平台LOGO设计
商用空气净化器海报设计
蔬菜批发市场摊位门面LOGO设计
海参包装盒以及手提袋子包装设计
卡片卡通头像设计
客厅设计并制作一个3D效果图
农村连体别墅建筑设计图纸
瑞嘉地板专卖店效果图简意施工图设计
富有花园样板间空间设计大赛
热门关注TOP10
Copyright (C) 2010- 版权所有 备案:闽ICP备号
服务热线:400-92-5997736 地址:厦门市集美区软件园三期起步区诚毅大街359号A区02栋五楼
联系客服:在线:8:30-22:00
400-(免长途费)
您还可以拨打: 或留下联系方式,我们主动联系您
客诉主管 李林祥
CEO 黄国华
产品总监 冯梅
联系客服:在线:8:30-22:00
400-(免长途费)
您还可以拨打: 或留下联系方式,我们主动联系您
一品官方微信
每日推·十条订单发任务·创意极速
您还可以关注一品新浪微博
投诉维权监督
固话:400-
微信:xiang138602
客诉主管 李林祥
CEO 黄国华
产品总监 冯梅App开发一些总结 -
- ITeye技术网站
博客分类:
架构因人而异,不同的架构师大多会有不同的看法;架构也因项目而异,不同的项目需求不同,相应的架构也会不同。然而,有些东西还是通用的,是所有架构师都需要考虑的,也是所有项目都会有的需求,比如API如何设计?架构如何分层?开发环境和生产环境如何分离?这几年,我负责研发过的App,有餐饮类的、社交类的、智能家居类的、电商类的、新闻媒体类的等等。当有了一定的经验之后,你总会有一些自己的心得体会。而以下内容就是根据我的这些经历提炼出来的关于以上几个问题方面的经验总结,内容不多,旨在抛砖引玉。
一个App,最核心的东西,其实就是数据,而数据的主要来源,就是API。我之前负责的项目,因为API的坑已经受过了不少苦,因此,之后对App项目的架构设计我都会先从API开始。
制定安全机制
设计API第一个需要考虑的是API的安全机制。我负责的上一个项目,因为API的安全问题,就被人攻击了两次。之后经过分析,主要存在两个漏洞:一是因为缺少对调用者进行安全验证的方式,二是因为数据传输不够安全。那么,制定API的安全机制,主要就是为了解决这两个问题:
保证API的调用者是经过自己授权的App;
保证数据传输的安全。
第一个问题的解决方案,我主要采用设计签名的方式。对每个客户端,Android、iOS、WeChat,分别分配一个AppKey和AppSecret。需要调用API时,将AppKey加入请求参数列表,并将AppSecret和所有参数一起,根据某种签名算法生成一个签名字符串,然后调用API时把该签名字符串也一起带上。服务端收到请求之后,根据请求中的AppKey查询相应的AppSecret,按照同样的签名算法,也生成一个签名字符串,当服务端生成的签名和请求带过来的签名一致的时候,那就表示这个请求的调用者是经过自己授权的,证明这个请求是安全的。而且,每个端都有一个Key,也方便不同端的标识和统计。为了防止AppSecret被别人获取,这个AppSecret一般写死在代码里面。另外,签名算法也需要有一定的复杂度,不能轻易被别人破解,最好是采用自己规定的一套签名算法,而不是采用外部公开的签名算法。另外,在参数列表中再加入一个时间戳,还可以防止部分重放攻击。
第二个问题的解决方案,主要就是采用HTTPS了。HTTPS因为添加了SSL安全协议,自动对请求数据进行了压缩加密,在一定程序可以防止监听、防止劫持、防止重发,主要就是防止中间人攻击。苹果从iOS9开始,默认就采用HTTPS了。而关于在Android中如何使用HTTPS,Google官方也给出了很多安全建议。不过,大部分App并没有按照安全建议去实现,主要就是没有对SSL证书进行安全性检查,这就成为了一个很大的漏洞,中间人利用此漏洞用假证书就可以通过检查,从而可以劫持到所有数据了。因此,为了安全考虑,建议对SSL证书进行强校验,包括签名CA是否合法、域名是否匹配、是不是自签名证书、证书是否过期等。
接口协议标准化
API返回的数据,一般都是采用JSON格式进行传输。然而,JSON的值只有六种数据类型:
Number:整数或浮点数
String:字符串
Boolean:true 或 false
Array:数组包含在方括号[]中
Object:对象包含在大括号{}中
Null:空类型
我遇到过的,关于API的坑有大部分就是因为JSON数据和实体对象转化时出错导致的,而且是各种各样的错误都有,其中不乏有一些很奇葩的错误。
最麻烦的就是处理Date类型,因为JSON本身没有Date类型,因此,JSON库将Date类型的数据序列化时会转为String。这时,不同环境,不同平台,以及用不同的JSON解析库,转换后的结果经常会不同。比如,你在开发机上可能得到的结果是” 17:11:11”,但放到服务器后结果却变成了“Jan 1,:11 PM” ,客户端进行反序列化时无疑会失败。后来,我取消了所有Date类型,统一采用时间戳表示,就再没有转化的烦恼了。
另外,接口的开发人员有时候会将一些数据错误地转换为了String,导致客户端使用时因类型错误而异常。例如,本来是数字的1,被转成了"1",客户端做运算时就会出错,或用switch判断时也会出错,或其他无法转换的情况发生时;例如,为空时JSON正确地表示应该是null,但如果转为了String就变成了"null",那问题就来了,我遇到的因为这个错误的转换导致的程序奔溃已经好几次了,第一次的时候,查了一整天才定位到问题所在。
还有,因为接口的开发人员不同,很多时候还会出现不同接口同一个意思的参数名称却不同。比如,对于有分页数据的接口,一般都有当前页的参数,A开发人员可能将参数命名为currentPage,第一页是从0开始;B开发人员在另一个接口则命名为currPage,第一页却从1开始;C开发人员在另一个接口又命名为presentPage,第一页又是从0开始。客户端的开发人员看到也是醉了。
每个技术团队一般都会有一份接口协议文档,主要内容包括每个接口的描述、入参、输出结果等,但一般并不严谨,很多地方没有统一标准,从而容易出现很多坑。因此,有一份统一标准且严格执行的接口协议非常重要。协议的内容除了规定每个接口,包括接口中每个数据具体的数据类型,还需要规定一套共用的数据字典,以及其他需要统一定义的信息,比如签名算法等。一旦有了这份统一标准且严格执行的接口协议,很多问题都将迎刃而解。
接口版本控制
我们已经不止一次因为接口发生变动而导致旧版本的App出错的问题,而且变动不一定是修改了接口本身,有可能是底层增加了一种新的数据结构,接口把新数据也返回给客户端了,但客户端旧版本是解析不了的,从而就导致出错了。
为了解决接口的兼容性问题,需要做好接口版本控制。实现上,一般有两种做法:
每个接口有各自的版本,一般为接口添加个version的参数;
整个接口系统有统一的版本,一般在URL中添加版本号,比如/v2。
平时小版本的更新,就采用第一种方式,我们的做法是根据不同版本号做不同分支处理。大版本的更新,则用第二种方式,这时候,基本就是一套全新的接口系统了,跟旧版本是相对独立的。
当版本越来越多时,维护就会成为一个大问题,我们没那么多精力去维护所有版本,因此,太旧的版本一般就不会再维护了。这时候,如果有用户还在使用即将废弃的旧版本,需要提醒用户升级到新版本。
API的设计完成之后,接下来我就会考虑App项目的整体架构了。整体如何架构,我也曾经做过不少尝试。早期的时候,Android就是将所有操作都放在Activity里完成,包括界面数据处理、业务逻辑处理、调用API。后来发现Activity越来越臃肿,代码越来越复杂,很难维护。于是就开始思考如何拆分,如何才能做到松耦合高内聚。
前面也说过,一个App的核心就是数据,那么,从App对数据处理的角色划分出发,最简单的划分就是:数据管理、数据加工、数据展示。相应的也就有了三层架构:数据层、业务层、展示层。它们之间的关系如下图,数据层是三层中的最底层,往下,它接入API;往上,它向业务层交付数据。业务层夹在三层中间,属于数据的加工厂,将数据层提供上来的数据加工成展示层需要展示的数据。展示层处于三层中的最上层,主要就是将从业务层取得的数据展示到界面上。
数据层是数据管理者,主要任务就是封装API,并将数据结果交付给上层,中间会再加个数据缓存。整个主流程如下图:
业务层向数据层请求数据;
数据层检查缓存中有没有请求需要的数据;
如果有缓存数据,则直接返回缓存数据;
如果没有缓存数据,则从网络API获取数据,并将数据加入缓存,然后返回数据。
调用网络API时,还要判断网络状态,根据不同状态做不同处理。如果网络不可用,就无需发起请求了。网络可用时,也要区分是连接WIFI还是连接移动网络。连接移动网络时,一般需要限制调用比较耗流量的请求。曾经,我们没有对移动网络状态下的请求进行限制,结果,测试时流量DuangDuangDuang地一下子就不见了十几M。连接WIFI时,则无需设置这种限制,而且还可以预先请求一些接口,比如请求当前分页数据时,可以将下一页的数据也预先请求。
缓存也需要缓存策略,不同的接口需要做不同的缓存处理。首先,缓存只适用于获取数据的接口,对于修改数据的接口则不适用。其次,不同接口缓存时间一般也不同,对于很少变动的数据缓存时间可以设置长一些,而频繁变动的数据缓存时间则比较短,甚至不进行缓存。最后,缓存数据因为比较多,我们一般保存在数据库,而对于调用频率高、最新的数据,还会在内存中也拥有一份缓存,不过缓存时间比较短。请求缓存数据时,会先检查内存缓存中有没有,有则直接将缓存的数据返回,没有才从数据库获取。
那么,如何将数据交付给业务层呢?这是整个数据层模块与外部交互的部分,当与外部交互的时候,一般都要符合面向接口编程的原则,因此只要提供开放的数据接口就可以了。对于接口的参数需要说明一下,上面提到的参数有appKey、version、currentPage这几个,还有签名sign、时间戳time,其实可以分为两类:系统参数和业务参数。像appKey、version、sign、time这些属于系统参数,而currentPage,或username之类的则属于业务参数。数据层开放的数据接口的参数只需要包含业务参数就可以了,业务层并不需要关心系统参数是什么,系统参数在数据层内部封装API时指定就可以了。
业务层是数据加工者,主要就是从数据层获取数据,然后经过业务逻辑处理后转化成展示层需要的数据。业务层因为夹在数据层和展示层中间,起着承上启下的作用。也因此,业务层很容易沦落为只是一个数据的中转站,主要就是因为对业务层具体的作用和职责没有理解清楚。
这里用一个例子来说明业务层具体的工作吧,就举个用户注册的例子。用户注册时,界面上需要用户提供手机号、短信验证码、密码、确认密码。那么,最简单的操作就是,带上这些参数调用数据层的注册接口。好了,问题来了,注册接口并没有提供确认密码的参数。那好,调用注册接口之前先判断下密码和确认密码是否一致,不一致则返回错误提示给用户,一致了才调用注册接口。好了,第二个问题来了,用户等网络请求等了一段时间后,请求结果返回说手机号少了一位。下一次,又等了一段时间,这次又返回说手机号多了一位。就因为一个小错误要让用户等那么久,用户肯定有意见。后台也有意见,各种非法的请求都发过来,是嫌服务器压力不够大啊。那好,调用接口之前对这些参数做有效性检查吧,手机号要规范,短信验证码只能为六位数字,密码不能少于六位。终于注册成功了,第三个问题又来了,注册接口是没有返回用户的accessToken的,只有登录接口才会返回。让用户手动再登录一下?这用户体验不太好啊。正确的姿势应该是注册成功后再自动调用一次登录接口,如果因为网络问题第一次登录失败,后面还需要再自动调用多一次,如果还是调用失败,才让用户手动登录。
上面的例子中,对参数的有效性检查,注册成功后的自动登录,都属于业务逻辑的处理,也就是说都是业务层的工作。
业务层交付给展示层的数据也是通过接口的方式,不过,和数据层交付给业务层时不同的是:交付给展示层的数据应该是通过异步回调返回的。因为获取数据是一个比较耗时的任务,通过异步回调才不会阻塞UI主线程。
展示层作为数据展示者,它只要关心数据如何展示就可以了。不过,数据如何展示却不是那么简单。展示层是三层架构中最复杂的一层了,要考虑的东西远远多于其他两层,涉及的东西包括但不限于界面布局、屏幕适配、图片资源、文本资源、颜色资源等等。在开发一段时间后,展示层出现代码混乱是最常见的。因此,做好展示层,就需要保持高质量的代码。要保持高质量代码,我觉得至少应该遵循几条基本的原则:
保持规范性:定义好开发规范,包括书写规范、命名规范、注释规范等,并按照规范严格执行;
保持单一性:布局就只做布局,内容就只做内容,各自分离好,每个方法、每个类,也只做一件事情;
保持简洁性:保持代码和结构的简洁,每个方法,每个类,每个包,每个文件,都不要塞太多代码或资源,感觉多了就应该拆分。
所谓无规矩不成方圆,展示层的设计,要从开发规范开始。一份好的开发规范,是保证代码有较高的可读性的基础。iOS方面,苹果已经有一套,主要属于命名方面的规范。当我们制定自己的开发规范时,首先就要遵守苹果的这份规范,在此基础上再加上自己的规范。Android方面,我也在我的博客中分享过一套(),主要分为书写规范、命名规范、注释规范三部分。
最重要的不是开发规范的制定,而是开发规范的执行。如果没有按照开发规范去执行,那开发规范就等于形同虚设,那代码混乱的问题依然得不到解决。
说到单一性,面向对象设计中,有一个基本原则就是单一职责原则,它规定一个类应该只有一个发生变化的原因。保持单一性是减低耦合度的关键标准,其目的就是各方面的解耦。而我这里说的单一性不只是规定类的单一,也包括界面的单一、方法的单一、资源文件的单一等。
界面的单一,首先是界面的布局和界面的数据应该分离。另外,界面数据的获取和展示也应该分离。一句话,保持界面的单一性就是要保持界面上每个维度都做好分离,从界面的布局,到数据的获取,数据的检查,数据的展示。
方法的单一,则表现为一个方法是对一个行为的封装。行为又可以拆分为多个步骤,每个步骤其实也是更细化的行为。因此,方法嵌套方法是一种常态。那么,保持方法的单一性,关键不在于怎么定义这个方法的行为,而在于这个行为要怎么拆分成更细的行为。举个例子,通常在Activity的onCreate方法,做初始化操作,细分出来就分为了:控件的初始化、逻辑变量的初始化、数据的初始化。数据的初始化又可以再细分:数据的获取、数据的展示。每个细化的行为都应该封装为一个独立的方法,这样,才真正符合方法的单一性。
资源文件的单一,主要是指Android的各类资源文件,包括存放字符串的strings.xml,存放字符串数组的arrays.xml,存放颜色值的colors.xml,存放尺寸值的dimens.xml,等等。资源文件的单一,是说所有相关的资源信息要在资源文件里定义并引用到代码或布局文件里,而不是在代码或布局文件里直接定义。这样做,可以很方便地做各种适配和修改,比如支持国际化,比如不同分辨率的屏幕用不同尺寸值。iOS则没有提供和Android一样的资源文件分离的机制,但可以参考Android的做法自己去实现。
每个App项目,至少都会有两个环境:测试环境和生产环境。多的甚至有四个环境:开发环境、测试环境、预生产环境和生产环境。开发人员经常需要在环境之间切换,测试人员也同样。经常出现测试人员今天需要测试环境的最新版本,叫App开发人员打包一个给她,明天需要切换到生产版本,再叫App开发人员打包一个生产环境的给她。我们知道,一个App,在一台手机上要么只能是测试环境的,要么只能是生产环境的。测试人员要测试两个环境,只能不断替换不同环境的同个App,这实在太麻烦了。为了解决此问题,最好的方案就是环境分离,不同环境有不同的App。
一个App的唯一标识,Android是用包名,iOS是用Bundle Identify。那么,在一个系统想安装不同环境的App,只要每个环境App的包名和Bundle Identify不同即可。比如,生产版的包名和Bundle Identify命名为com.mydomain.myapp,测试版的包名和Bundle Identify则命名为com.mydomain.myapp.beta,这样,Android和iOS都会识别为两个不同的App了。
不过,只改包名和Bundle Identify是不够的,应用图标和应用名称也要修改,不然安装之后很难区分哪个App是哪个环境的。一般做法就是,非生产环境的App图标就是在生产图标的基础上添加一个环境标签,同时App的应用名称也是在生产的基础上添加环境后缀名。另外,因为包名和Bundle Identify不同了,微信、微博、百度地图等这些第三方平台也都需要为不同环境的App分别申请不同的appID。
实现上,最笨的方法就是拷贝当前工程,然后修改,缺陷很明显,维护成本很高。不过,好在Android和iOS都有很方便的修改方式。
Android有了Gradle,可以设置多个不同的Flavors,每个Flavor都有一个applicationId属性,其实就是App的包名。比如,生产版和测试版的设置如下:
productFlavors {
applicationId "com.mydomain.myapp"
myappBeta {
applicationId 'com.mydomain.myapp.beta'
这样,其实就有两个App了。然后,源代码新建一个和main同级的目录,命名为myappBeta,然后,将图标、名称和第三方设置之类的,和main保持一样的位置、文件名、属性等,就可以替换成环境相关的了。
iOS则可以通过创建多个环境的Target来实现环境分离,不同Target可以设置不同的Bundle Identify、Bundle display name、更换图标。另外,每个Target也各自有自己的一份plist文件的,环境变量和第三方设置之类的,都可以设置在相应的plist文件里。
浏览: 399981 次
来自: 重庆
简单明了的例子,解决了问题,谢谢啦!
& target=&_blank&quot ...

我要回帖

更多关于 cg 眼珠被眼皮包裹 的文章

 

随机推荐