《iOS应用架构谈开篇.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《iOS应用架构谈开篇

iOS应用架构谈-开篇以下关于iOS应用架构谈出自蓝鸥科技范老师,之后陆续还会有新鲜干货出炉,请需要学习和有机会看到此文的朋友密切关注吧。iOS应用架构谈开篇???iOS应用架构谈 view层的组织和调用方案???iOS应用架构谈网络层设计方案???iOS应用架构谈动态部署方案???iOS应用架构谈本地持久化方案??缘由??之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验。在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构,你会从哪些方面来说呢???当时看到这个问题正好在乘公车回家的路上,闲来无聊就答了一把。在zzz在微信朋友圈上追问了几个问题之后,我觉得有必要开个博客专门来讲讲一些个人见解。??其实对于iOS客户端应用的架构来说,复杂度不亚于服务端,但侧重点和入手点却跟服务端不太一样。比如客户端应用就不需要考虑类似C10K的问题,正常的app就根本不需要考虑。??这系列文章我会主要专注在iOS应用架构方面,很多方案也是基于iOS技术栈的特点而建立的。因为我个人不是很喜欢写Java,所以Android这边的我就不太了解了。如果你是Android开发者,你可以侧重看我提出的一些架构思想,毕竟不管做什么,思路是相通的,实现手段不同罢了。??当我们讨论客户端应用架构的时候,我们在讨论什么???其实市面上大部分应用不外乎就是颠过来倒过去地做以下这些事情:????简单来说就是调API,展示页面,然后跳转到别的地方再调API,再展示页面。??那这特么有毛好架构的???非也,非也。 包不同《天龙八部》??App确实就是主要做这些事情,但是支撑这些事情的基础,就是做架构要考虑的事情。??调用网络API??页面展示??数据的本地持久化??动态部署方案??上面这四大点,稍微细说一下就是:??如何让业务开发工程师方便安全地调用网络API?然后尽可能保证用户在各种网络环境下都能有良好的体验???页面如何组织,才能尽可能降低业务方代码的耦合度?尽可能降低业务方开发界面的复杂度,提高他们的效率???当数据有在本地存取的需求的时候,如何能够保证数据在本地的合理安排?如何尽可能地减小性能消耗???iOS应用有审核周期,如何能够通过不发版本的方式展示新的内容给用户?如何修复紧急bug???上面几点是针对App说的,下面还有一些是针对团队说的:??收集用户数据,给产品和运营提供参考??合理地组织各业务方开发的业务模块,以及相关基础模块??每日app的自动打包,提供给QA工程师的测试工具??一时半会儿我还是只能想到上面这三点,事实上应该还会有很多,想不起来了。??所以当我们讨论客户端应用架构的时候,我们讨论的差不多就是这些问题。??这系列文章要回答那些问题???这系列文章主要是回答以下这些问题:??网络层设计方案?设计网络层时要考虑哪些问题?对网络层做优化的时候,可以从哪些地方入手???页面的展示、调用和组织都有哪些设计方案?我们做这些方案的时候都要考虑哪些问题???本地持久化层的设计方案都有哪些?优劣势都是什么?不同方案间要注意的问题分别都是什么???要实现动态部署,都有哪些方案?不同方案之间的优劣点,他们的侧重点???本文要回答那些问题???上面细分出来的四个问题,我会分别在四篇文章里面写。那么这篇文章就是来讲一些通识啥的,也是开个坑给大家讨论通识问题的。??架构设计的方法??所有事情最难的时候都是开始做的时候,当你开始着手设计并实现某一层的架构乃至整个app的架构的时候,很有可能会出现暂时的无从下手的情况。以下方法论是我这些年总结出来的经验,每个架构师也一定都有一套自己的方法论,但一样的是,不管你采用什么方法,全局观、高度的代码审美能力、灵活使用各种设计模式一定都是贯穿其中的。欢迎各位在评论区讨论。??第一步:搞清楚要解决哪些问题,并找到解决这些问题的充要条件。??你必须得清楚你要做什么,业务方希望要什么。而不是为了架构而架构,也不是为了体验新技术而改架构方案。以前是MVC,最近流行MVVM,如果过去的MVC是个好架构,没什么特别大的缺陷,就不要推倒然后搞成MVVM。??关于充要条件我也要说明一下,有的时候系统提供的函数是需要额外参数的,比如read函数。还有翻页的时候,当前页码也是充要条件。但对于业务方来说,这些充要条件还能够再缩减。??比如read,需要给出file descriptor,需要给出buf,需要给出size。但是对于业务方来说,充要条件就只要file descriptor就够了。再比如翻页,其实业务方并不需要记录当前页号,你给他暴露一个loadNextPage这样的方法就够了。??搞清楚对于业务方而言的真正充要条件很重要!这决定了你的架构是否足够易用。

文档评论(0)

lunwen1978 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档