移动应用客户端框架设计

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 11:24 我要评论(0)

也许有从事iOS开发的朋友会问,为什么要设计企业级框架呢?没有它,我也可以很好的写程序埃也可以快速开发一个App埃至少,我手下的iOS team都是这么认为的。而Android team和WP team能比较容易接受这样的框架。

接下来要说的一个系列,是一个完整的App应用所需要的企业级框架设计,是我这2年来在无线客户端这个领域摸爬滚打的,总结沉淀的心得体会,中途吃 了很多亏,走过很多弯路,加了很多班,一次又一次的重构,不断的学习,才知道,哦,原来iOS要这么做,原来Android要那么做,然后回过头来再看看 我最熟悉的WP,哦,原来WP还可以做的更好。

2年间,我还接手了MobileAPI的维护,从而让客户端和服务器端的配合更顺畅,中途还发明了几个好用的工具,从服务器端到客户端这条路我打通 了。再然后,我还碰了碰tcp+protobuf,WP8的项目就是基于此开发的。

此外,我还打通了另一条路,那就是前端设计人员和客户端开发人员的协作,为此,专门设计了iOS UI框架和WP UI框架,前端设计人员在拿到美工的设计稿后,不再提供标注图,而是基于UI 框架,直接提供xib或者xaml,客户端开发人员可以直接拿去使用。对于Android,暂时我还没有太好的解决方案。

也许有从事iOS开发的朋友会问,为什么要设计企业级框架呢?没有它,我也可以很好的写程序埃也可以快速开发一个App埃至少,我手下的iOS team都是这么认为的。而Android team和WP team能比较容易接受这样的框架。

说说我的想法,一家之言。我想是因为Android是基于Java的,经过这么多年的沉淀,Java对设计模式、代码规范这些概念已经有了积累。而 且Android在设计的时候,就考虑到这些东西,所以它会有Activity、Intent、Adapter这些 积木 ,搭建起一个完整的App。而 微软出品的WP,是基于.NET framework体系的,而.NET本身就充斥着设计模式的思想。

对了,也许你得到那个点了iOS在这方面显得有些贫血。除了MVC和delegate和Notification,其它什么都没有。所以,你可 以在一个ViewController里面写3000行代码,而没有任何规定说你这样做是错的;不使用xib而在viewDidLoad中手动创建页面所 有控件,当然,我问过很多到我这里面试的人,他们以及他们的公司都认为这样做没什么不好,甚至更灵活。大部分的iOS程序员,都已经习惯于面向过程的编程 方式,而抵触OOP。

我也见过一些到我这里来面试的Leader,他们来自大公司,这些公司都有一些框架设计,或者说,业界规范,比如说,数据缓存,图片缓存、网络请求 的封装。

其实,越是什么都没有,才越好做框架。我们可以借鉴Android和WP的设计,甚至是网站开发、javascript开发、windows开发的 经验和模式,补充到iOS的框架中去。

2年来,我就在坚持不懈地做这件事,基本上可以认为是做成了,由iOS、Android、WP三套框架组成,它们的设计思想是一样的,包括以下18 点,其中最重要的是前六点,称之为框架设计的六大要素。

框架设计六大要素:

1.基类的设计

没有基类,就不要说有框架。而且不仅仅是一个基类,对于一个企业级的App而言,框架层要有一个基类,里面只存放一些与框架有关的共用逻辑。App 层也要有一个二级基类,继承自框架级的那个基类,里面存放的是App相关的共用逻辑。

2.自定义App的生命周期。

对于一个页面从初始化到消亡,每个客户端系统各自有自己的生命周期。我们发现,在初始化的时候,要做过多的事情,代码会很多很乱,因此有必要细分, 重新规划,定义新的生命周期。

3.发起网络请求(以下简称MobileAPI)获得数据。

很多书都在大讲特讲手机控件的使用、IO语法、酷炫动画。却对MobileAPI的介绍 语焉不详。其实这才是最重要的一个环节,包括请求失败后的自动重试、如何处理JSON、如何统一API的调用形式并使之最简,对于多个API调用,是串行 调用还是并发调用及各自的处理方式。

此外,我们经常面对的是HTTP+JSON形式的网络请求,对于转换为TCP+protobuf形式,则需要做的事情还有很多。

无论是HTTP+JSON,还是TCP+protobuf,都要考虑数据缓存,并且要让上层使用者感受不到数据是来自网络请求还是缓存。

4.图片缓存

服务器端,有2种解决方案。

客户端的解决方案,iOS、Android、WP实现思想相同,只是实现手法不太一样。

5.导航器(仅适用于iOS和WP)

跳转到一个页面很简单,但是要整个App都采用一种调整风格,要求iOS、Android、WP都采用一种风格,就不大 容易了,尤其是传递参数,以及处理登录后的回调。

6.适配器

Android在这一方面做的是最好的。对于iOS和WP,我们不妨学习一下Android,设计出各自的自动适配器。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...