TCLMOVE 技术选型

作者: 弈梦 | 来源:发表于2019-04-03 14:37 被阅读0次

TCLMOVE 技术选型

  • Swift
  • Storyboard
  • RxSwfit
  • Rleam
  • R.Swfit
  • Moya+Alamofire+ObjectMapper
  • SwiftyBeaver
  • Kingfisher
  • CocoPod

编程语言选择

  • Swift
  • Object-C

Swift的优势:

  1. 趋势 苹果已经明确,Swift将是未来的主力开发语言
  2. Swift定位是安全,快速,跨平台的语言
  3. gitHub上新增的第三方开源库,Swift版本要多余Object-C的版本

Swift的缺点:

  1. 不支持Runtime
  2. 编译速度慢
  3. Swift核心库会打包在APP中,增加了APP体积

建议: 对于新项目尽量采用Swift,对于业务复杂的旧项目Object-C继续维持

代码手写 UI 和 Storyboard 之间的取舍

构建 UI 方式的争论就在 Cocoa 开发者社区里一直发生着,Storyboard 被诟病最多的 是冲突风险加载速度

冲突风险

Storyboard 一直在进步,在 Xcode 7 引入了 SB reference 以后,「SB 容易冲突」已经得到很好的解决了。

加载速度

编译过程中,项目里用到的 SB 文件也会被编译,并以 storyboardc 为扩展名保存在最终的 app 包内。这个是一个文件夹,里面存储了一系列 .nib 文件。SB 中的每个对象将会被编译为一个单独的 .nib。

Storyboard 优势

Storyboard可以简化UI的开发,属性设置和布局都可以简单化,实现和逻辑代码的分离,不会污染代码。

建议: 采用Storyboard

RxSwift

RxSwift是Swift函数响应式编程的一个开源库,由Github的ReactiveX组织开发,维护。

RxSwift的优点

  • Composable 可组合,在设计模式中有一种模式叫做组合模式,你可以方便的用不同的组合实现不同的类
  • Reusable 代码可重用,原因很简单,对应RxSwift,就是一堆Obserable
  • Declarative 响应式的,因为状态不可变,只有数据变化
  • Understandable and concise 简洁,容易理解。
  • Stable 稳定,因为RxSwift写出的代码,单元测试时分方便
  • Less stateful “无”状态性,因为对于响应式编程,你的应用程序就是一堆数据流
  • Without leaks 没有泄漏,因为资源管理非常简单

Rleam

Realm是由Y Combinator孵化的创业团队开源出来的一款可以用于iOS(同样适用于Swift&Objective-C)和Android的跨平台移动数据库。

  • 跨平台:支持的平台包括Java,Objective-C,Swift,React Native,Xamarin。
  • 简单易用:Core Data 和 SQLite 冗余、繁杂的知识和代码,而Realm,可以极大地减少学习成本,立即学会本地化存储的方法。
  • 可视化:Realm 还提供了一个轻量级的数据库查看工具,可以查看数据库当中的内容,执行简单的插入和删除数据的操作。

R.Swfit

R.Swfit 在Swift项目中自动生成资源(像图片,字体,转场)相关的强类型变量,可以优雅的获取资源,仿Android资源文件使用的方法。

相关资源:

Moya+Alamofire+ObjectMapper

Moya的基本思想是,提供一些网络抽象层,它们被充分的封装了且实际上直接调用了Alamofire. 它不仅在普通的简单的事情上很容易使用,而且在综合的复杂的事情上也容易使用

如果你使用 Alamofire 来抽象 URLSession, 那为什么不使用一些方式来抽象URLs和parameters等等的本质呢?
Moya的一些特色功能:

  • 对正确的API端点访问进行编译时检查.
  • 让您使用关联的枚举值定义不同端点的清晰用法.
  • 把test stub作为一等公民,所以单元测试超级简单.

Moya Overview

Alamofire 是一个用Swift编写的HTTP网络库.

特性:

  • 链式的请求/响应方法
  • URL/JSON/plist参数编码
  • 上传文件/数据/流/MultipartFormData
  • 使用请求或恢复数据下载文件
  • 身份验证使用URLCredential
  • HTTP响应验证
  • 上传和下载进度闭包
  • cURL命令输出
  • 动态调整和重试请求
  • TLS证书和公钥固定
  • 网络可达性
  • 综合单元和集成测试覆盖
  • 完整的文档

ObjectMapper是一个用Swift编写的框架,它使您可以很容易地将模型对象(类和结构)转换为JSON。

特性:

  • JSON对象映射
  • 将对象映射到JSON
  • 嵌套对象(在数组或字典中单独使用)
  • 自定义转换期间映射
  • 结构支持
  • 常量的支持

SwiftyBeaver

SwiftyBeaver,Swift多彩日志记录。

特性:

  • 开发期间: 彩色记录到Xcode控制台
  • 开发期间: 彩色记录文件
  • 发布期间: 加密记录到SwiftyBeaver平台
  • 通过Mac App来浏览、搜索和过滤

Kingfisher

Kingfisher是一个轻量级的、纯Swift的库,用于从web上下载和缓存图像。这个项目深受流行的SDWebImage的启发。

特性:

  • 异步图像下载和缓存。
  • 基于URLSession。基本的图像处理器和过滤器。
  • 用于内存和磁盘的多层缓存。
  • 可取消下载和处理任务以提高性能。
  • 独立的组件。根据需要分别使用下载程序或缓存系统。
  • 预取图像并在必要时从缓存中显示它们。
  • 用于UIImageView、NSImage和UIButton的扩展,可以直接从URL中设置图像。
  • 设置映像时内置的转换动画。
  • 可定制的占位符,同时载入图片。
  • 可扩展的图像处理和图像格式支持

CocoPods

CocoaPods iOS端的依赖管理工具。

使用CocoPods作项目依赖库的管理工具,包括第三方和本地的。

转自组员,原链接
https://jigang-duan.github.io/2017/10/19/TCLMOVE-%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B/

相关文章

  • TCLMOVE 技术选型

    TCLMOVE 技术选型 Swift Storyboard RxSwfit Rleam R.Swfit Moya+...

  • 爬虫(3-1 3-2)

    3-1 爬虫技术选型,爬虫能做什么?技术选型:scrapy vs requests+beautifulsoup1....

  • 技术选型指南

    这是一篇综合类技术选型指南,试图为你提供一份比较通用的技术选型思维框架。当你需要进行技术选型时,可以参照它来设计自...

  • 伴鱼数据库选型的思考,为什么我们 all in TiDB

    作者:伴鱼技术团队 技术选型是由技术方向和业务场景 trade-off 决定的,脱离业务场景来说技术选型是没有任何...

  • Metal基础入门

    一、背景和技术选型 关于技术方案的选型,最权威的肯定是Metal for OpenGL Developers[ht...

  • 通过阿里云maxcompute快速构建数据仓库

    前期技术选型 技术选型确定 鉴于开发资源,以及尚无大数据的技术基础,选用了可以快速上手的阿里云maxcompute...

  • 技术选型

    一、构建工具 gulp 任务管理,对任务文件流式操作,内存中完成,效率高 grunt 任务管理,对任务文件先读...

  • 技术选型

    介绍后台管理系统常见的组合搭配。主要是从业务逻辑层的实现和视图层考虑。 1:Angular+Bootstrap 市...

  • 技术选型

    scrapy vs requests+beaufigulsoup scrapy 是框架 (强大)requests+...

  • 技术选型

    2、前端 动态页签:Jerichotab,jquery-1.12.4.min.jsCSS框架:element-ui...

网友评论

    本文标题:TCLMOVE 技术选型

    本文链接:https://www.haomeiwen.com/subject/buqzbqtx.html