zoukankan      html  css  js  c++  java
  • 再看薄荷

    Android版薄荷自13年6月份上线至今9个月时间左右,目前已经积累用户将近200w,从产品的角度来说应该算是一个不错的成绩,但是从技术以及设计的角度来分析,依然有很大的空间去提升。

    设计

    薄荷Android版自推出之初就是完全按照iOS版来做的,可以说算得上是像素级copy了,不可否认这是当初是最快速验证的有效手段,但时至今日,Android市场的地位是越来越重要了,在Android端积累的用户也是快速飞快的发展,这个时候再完全按照iOS平台的特性来设计一个Android的app就有些不妥了。我一直认为每个平台遵循各自平台的一些设计原则是比较重要的,毕竟每个平台的用户使用习惯还是有些差异的。

    说说不遵循Android Design对技术实现上的影响,如顶部导航栏,Android有自己的导航–ActionBar, 有自己的样式,而且方便扩展,在此基础上能实现各种各样的样式,而由于我们是按照iOS的设计,就不得不自己定义一个NavBar,代码量增加了很多,而且随着需求与设计的不断变化,这种自定义的NavBar很难满足需求了。除此之外一些其他的类似iOS控件效果的实现都无形之间加大了实现难度。

    Google在4.0之后便有了自己的一套Android设计准则推出,到今天可能已经很成熟了,而Android的碎片化问题也已基本解决,所以我认为在设计方面就应该遵循Android Design,在此基础上在UI,交互进行一些微创新将是很有必要的,相信这也是对Android用户的一种尊重。从Google自家的一些app如Google+, Youtube, Gmail等就可以看出Google对Android Design的大力推行,而且体验非常棒。国内像完全遵循Android Design的app已有很多,而且被各大市场推荐,如知乎,Fuubo等,甚至连一向高傲的微信都开始遵循Android Design了,我们应该是时候跟随时代的潮流了。

    架构

    现在版本的技术架构很长时间没有做出什么调整了,这个app从13年的5月份开始着手设计的,一方面当时水平能力毕竟有限,可能在某些方面设计的不太好,而另一方面技术更新的频率是很快的,这期间Google就更新了很多SDK的版本,以及一些新技术的推出,而我们的app需求和功能都在不断增加,中间真正让我们代码重构或者架构调整的时间很少,我们的app发展到现在功能和模块已经很庞大了,俨然是一个中大型的项目了,虽然中间有过一些的调整,但是相比于整个项目还是很小的,目前的项目架构可能说遇到了一个瓶颈,随着功能的不断增加以及需求的不断变更,我们的app稳定性以及性能都会有很大影响。

    新的架构与设计

    如果让我重新对整个app进行设计的话,我会这样设计:

    • 设计上遵循Android Design,采用一些Android平台特有的组件, 如ActionBar, ActionBarPullToRefresh, DrawerLayout等。

    • 主页面Tab的架构我会采用Activity + Fragment来代替原来的ActivityGroup, ActivityGroup是已经被Google废弃了,取而代之的便是Fragement, 使用Fragment将更容易扩展,而且更容易适配不同尺寸的屏幕。

    • View层会采用ButterKnife(一种View注入框架),会大大的减少一些繁琐臃肿的代码,提升效率。

    • 数据处理层会采用一种ORM的机制,而我会选择ActiveAndroid框架,主要原因是用过Rails的ActiveRecord之后便对类似的框架情有独钟。

    • 网络通讯层会采用Volley, Google I/O 2013推出的官方网络请求库,自己体验后觉得非常棒,请求快速便捷,使用起来也比较简单,扩展空间也很大,而且可以统一管理请求。

    整个App的架构会是这样的:

    以上便是现在比较流行的REST客户端的应用架构,由于整个App基本都是会和服务端进行数据交互的,依然会秉承着重服务端轻客户端的原则,客户端主要注重体验与交互,复杂的业务逻辑最好不要或者涉及的越少越好。

    备注

    一直都有个观点是:我们要做的是面向未来的App。所以会有两条个人建议。

    1.目前4G都已经在大力发展,以后网络会更快速更方便,所以我建议目前本地都不需要提前放数据库,整个app的使用场景完全基于网络,当然这可能影响少数用户的使用,但是付出的代价比较大,因为要维护本地数据库的升级以及一些本地策略的逻辑算法。对一些数据的查询配合本地一些缓存的策略,相信用户体验不会减。

    2.支持Android 4.0以上,目前4.0+已经占了大部分份额,而2.3可能依然会有10%左右的市场份额,但是这部分用户真正有用手机玩app的又有多少呢?可能大部分还是把手机当做功能机来使用的。

    总结

    以上便是重新对薄荷App进行了审视后的一番分析,如果整个app的架构想真的达到自己的理想状况将是一番浩大的工程,甚至可能比重新做一个App的工作量还大。

    谢谢 , stormzhang

    对APP的开发与设计存在同感。 

    本文转自:http://user.qzone.qq.com/1695152024/blog/1422516429

  • 相关阅读:
    JqGrid常用示例
    jqGrid无刷新分页,添加行按钮
    C#两个实体之间相同属性的映射
    Log4Net日志记录
    C#压缩图片
    ASP.Net MVC4.0+无刷新分页
    世界各个国家中英文sql建表
    ASP.NET多语言
    分布式事务处理中的幂等性
    分布式事务前瞻-接口幂等性
  • 原文地址:https://www.cnblogs.com/sishuiliuyun/p/4424051.html
Copyright © 2011-2022 走看看