• <i id='voo0h'></i>
    <acronym id='voo0h'><em id='voo0h'></em><td id='voo0h'><div id='voo0h'></div></td></acronym><address id='voo0h'><big id='voo0h'><big id='voo0h'></big><legend id='voo0h'></legend></big></address>

      <span id='voo0h'></span>

        <code id='voo0h'><strong id='voo0h'></strong></code>

        <ins id='voo0h'></ins>
          <i id='voo0h'><div id='voo0h'><ins id='voo0h'></ins></div></i><dl id='voo0h'></dl>
        1. <tr id='voo0h'><strong id='voo0h'></strong><small id='voo0h'></small><button id='voo0h'></button><li id='voo0h'><noscript id='voo0h'><big id='voo0h'></big><dt id='voo0h'></dt></noscript></li></tr><ol id='voo0h'><table id='voo0h'><blockquote id='voo0h'><tbody id='voo0h'></tbody></blockquote></table></ol><u id='voo0h'></u><kbd id='voo0h'><kbd id='voo0h'></kbd></kbd>

            <fieldset id='voo0h'></fieldset>

            用 Swift 模仿 Vue + Vuex 进行 iOS 开发(一):ReSwift

            • 时间:
            • 浏览:102
            • 来源:124软件资讯网

              本文由 Yison 揭晓在 ScalaCool 团队博客  。

              因 水滴 企图研发移动端的商家应用  ,笔者最先了 iOS 端的整体方案设计事情  。

              由于没有历史负担 ,且团队愿意实验一些差别的方案  ,经由两周专注的学习和调研之后  ,我们并没有接纳主流的 MVVM 架构  ,而是基于 ReSwift 以及 Swift 这门语言的特征(焦点是 extension)构建了一套类似 Vue + Vuex 的方案  ,笔者计划通过四篇文章来分享下这种思绪  。

              需要注重的是  ,笔者也是第一次接触 Swift 和 iOS  ,某种水平上来说 ,也是一名 iOS 菜鸟  ,行文中难免泛起不高明之处  ,还望指正  。但与此同时  ,笔者也有 Scala 和多年的 Web 前端开发履历  ,差别的平台和语言 ,会有相似的头脑和知识结构 ,以是入门移动端原生应用开发时  ,也发现许多配合之处 。

              以下是本系列文章的纲领:

              1. ReSwift

              2. Coordinator

              3. extension

              4. VueLike

              架构方式的演变

              在先容 ReSwift 之前  ,我们先来简朴回首下 iOS 端(不严谨地说  ,也可以看成是移动端应用开发)的架构演变历史  。

              这方面先容的好文章已经相当的多  ,重点照旧推荐下 @Bohdan Orlov 的 iOS Architecture Patterns  ,很是的系统和容易明白  。

              Massive View Controller

              在讨论架构模式的时间 ,MVC 是被提及最多的套路之一 。众所周知  ,Apple 推出的 MVC 跟软件工程中传统的 MVC 是纷歧样的  。

              许多人对于经典的 MVC 中的 Model 一直存在误解  ,以为其代表的仅仅只是一个实体模子  。实在  ,它准确的观点应该还包罗大量的营业逻辑处置惩罚 ,相对的 Controller 只是在 View 和 Model 层建设一个桥梁而已  。