在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → App Architecture: iOS Application Design Patterns in Swift 中文版

App Architecture: iOS Application Design Patterns in Swift 中文版

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:12.66M
  • 下载次数:7
  • 浏览次数:121
  • 发布时间:2020-07-25
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.zip
  • 所需积分:2
 

实例介绍

【实例简介】
App Architecture: iOS Application Design Patterns in Swift 中文版
App架构 1.App架构 关于本书 2.介绍 应用架构 2.Mode|和ⅥieW 3.App的本质是反馈回路 4.架构技术 op任务 3.App设计模式概览 1. Mode-view-Controller 2.Mode-VieW- ViewMode+协调器 3. Model-View-Controller+viewState 4.Mode适配器VieW绑定器(MAVB 5.Em架构(TEA 6.网络 7.没有提到的模式 4. Model-View-Controller 1.探索实现 2.测试 3.过论 4.改进 5.总结 5.Mode-Ⅵiew- ViewModel+协调器(MwM-C 1.探索实现 2.测试 3.过论 4.较少响应式编程的MWN 5.经验和教训 6.网络 1.國络挑战 2. Controller持有网络 3.Mode拥有网络 讨论 7. Model-View-Controller+view State 1.将Ⅵ iew state作为 Model的一部分 2.探索实现 3.测试 4.讨论 5.经验和教训 8.Mode|适配器-VieW绑定器 1.探索实现 2.测试 3.过论 4.经验和教训 9.Em架构 1.探索实现 2.Em架构框架 3.测试 4.过论 5.经验和教训 App架构 关于本书 本书所专注的话题是app中所使用的架构,也就是那些将较小部分组合在一起形成一个完整 apρ时所使用的结构和工具。通常来说,一个app会包含非常多种类的部件,像是用户输入 网络服务、文件服务、音频和图像、以及窗口服务等等。在app开发中,如何对它们进行架构 是一个很重要的话题。想要将这些部件组合起来,同时保证它们的状态以及状态的变更稳定可 靠,而且能正确地进行传递,并非一件易事。这需要一套有力的规则,来定义组件之间相互协 作的方式 App设计模式 我们将一组被重复使用的设计规则称为设计模式。本书将会展示如何使用五种最主要的app设 计模式来完整实现一个app。我们所挑选的模式中,有的已经经过广泛的验证,有的还处于实 验阶段,它们分别是 Model-VieW-Controller(MVC Model-View-ViewModel+Coordinator (MVVM-C) Model-VieW-Controller+View State(MVC+VS) ModelAdapter-View Binder(MAVB ·Em架构( The elm architecture,TEA) 译者注:相较于“模型-视图-控制器”,对于三者连接在一起所组成的架构名称,我们更倾 向于保留被广泛接受的原文,也即 Model-View- Controller的说法。但是,像是协调器 ( coordinator),适配器( adapter),绑定器( binder)等日常不太常用的词语,在上下文清晰 的环境下,我们会选择使用中文译名。 抽象的框图往往被用来在最高层级描述设计模式的使用方式,但是它对这些模式在jSapρ中 应该如何具体使用并没有太多帮助。我们之后将会详细研究每种架构的典型框图,并探讨它们 在实践中的使用方式。 在本书中,我们还会看到一系列不同的模式,在书写程序时,并没有哪个单独的模式能在所有 情景下都做到最好。根据你、你的程序或者你的团队所想要达成的目标和期望,以及整个过程 中所面临的的约束,任何一种模式都有可能是最佳选择。App的设计模式不仅仅只是一套技术 上的工具,它同时也是审美和社交的手段,可以让你,以及你的代码的其他读者,与你所设计 的程序产生交流。换言之,最好的模式就是对你来说最为清晰的模式。 架构技术和经验教训 展示每一种实现方式之后,我们会花一些时间讨论这种模式在解决问题时的优势,以及使用类 似策略在其他任意模式中解决问题的方式。比如说,像是redυcer,响应式编程,接口解耦, 状态枚举和多模型抽象这些技术,往往是和特定的模式绑定的。但是在本书中,在我们研究这 些技术在它们各自的模式中的使用方式之后,我们还会继续讨论它们的核心思想,看看这些思 想是如何跨越不同的模式来解决问题的。 本书将会为你展示,对于每个问题,apρ的架构包含了多种解决方案。当被正确实现后,所有 的解决方案最终都将为用户呈现岀同样的结果。这也就是说,app架构的选择所关乎到的是我 们程序员自己的幸福。我们想要在背后解决的澘在冋题是什么?我们需要个别单独考虑的问题 又有哪些?我们在何处需要自由度?又在何处需要稳定性?我们在哪里需要抽象?我们又在哪 里需要简化?通过一次次地思考这些问题,我们对使用的架构进行选择 关于录音App 在本书中,我们会展示同一个录音app的五种不同实现。所有实现的完整源码都公开在 Githul上,您可以随时参阋。这个录音app正如其名,它可以记录和播放语音笔记。我们可 以在app里以文件夹的方式组织记录的语音。这个app主要由用于组织文件的可以导航的 FolderviewController,用于播放文件的 Play View Controller,用于记录新文件的以moda方 式显示的 Recordview controller,以及一个用来命名文件和文件夹的文本对话框组成。所有的 内容都以标准的 UIKit master- detail界面方式进行展示,其中 FolderView Controller位于主 栏, Playview Controller位于副栏进行显示。 在选择本书的示例app时,我们列了一个判断标准,录音app满足了表里的所有项目。对于展 示架构模式来说,它足够复杂;而放到一本书中时,它又足够简单。app中存在导航关系,其 中的一些视图是实时更新的,而不像很多app中那样只存在静态视图。对模型层,我们实现了 持续化的存储,每个变更都会被自动保存到磁盘。我们还为其中的两个版本加上了网络的支 持。这个app对 iPhone和iad都做了适配,最后,我们还支持冷启动的状态恢复。 如果我们选择一◇规模更小的app,书里的內容会更容易被理解,但是这样一来,我们就很难 有机会来展示各个架构之间的不同了。如果我们选择的app规模再大一些,每种架构在可扩展 性方面的差距将显而易见,但是其中的细节也将被湮没。我们的录音app恰到好处地在两个极 端之间做到了平衡。 口 Around the hous No recording selected a Shopping notes 口 Side projects App开始时会显示一个根目录的 Folderview controller。这个 controller存在于一个 navigation controller(导航控制器)中,而这个 navigation controller又是一个 split view controller的 master controller。在 iPhone上,这个 controller将以全屏模式被展示,而在 iPad上,它将会被显示在屏幕左侧(这是ios上U| SplitView Controller的标准行为)。 个文件己可以包含具体的录音文件以及其他的文件夹。 Folder view Controller允许我们添加 新的文件夹和录音,或者删除已有的项目。 Carrier分 9:24AM Edit Recordings 口 Around the house □ Miscellaneous D Personal Notes a Shopping notes 口Sid Droid Create Folder Folder name Cancel Create iPhone 8-113 在添加文件夹时,我们通过弹窗来询问文件夹的名字,而添加录音的操作将会直接展示一个 RecordView Controller 9:24乌M Recordings 口 A bunri the House □ Miscellaneous □ Persona Notes a Shopping notes 口 Side Projects a Suff for later today Recording 0:00:14 iPad iEtn generation)-113 在文件夹中选择某个项目时,我们需要根据项目的类型来确定导航操作:如果选择旳是文件 夹,我们会向导航栈中推入一个嵌套的 Folderview Controller,如果我们选择的是录音,那么 个 PlayView Controller将会被显示在屏幕上 【实例截图】
【核心代码】

标签:

实例下载地址

App Architecture: iOS Application Design Patterns in Swift 中文版

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警