WYBasisKit (持续更新)

WYBasisKit 是做什么的?

WYBasisKit 不仅可以帮助开发者快速构建一个工程,还有基于常用网络框架和系统API而封装的各种实用方法、扩展,开发者只需简单的调用API就可以快速实现相应功能, 大幅提高开发效率。

想必做 iOS 开发的小伙伴都有以下困扰吧,比如:

  • 经常调用某个API,每次都需要复制粘贴;
  • 想把网络请求进行易用化封装;
  • 想把各种实用且好用的控件进行封装;
  • 想对系统功能进行一些拓展;
  • 想简单地调用 API 以快速实现相应功能;
  • 想大幅提高开发效率等等。

基于此,也本着自我成长、总结的种种原因,WYBasisKit 便应运而生了。

使用示例(太多了,简单写几个)

活动指示器
// 显示
WYActivity.showLoading(in: player, animation: .gifOrApng, config: WYActivityConfig.concise) // 隐藏
WYActivity.dismissLoading(in: self.view)
Codable使用
let assetObj: WYDownloadModel? = try! WYCodable().decode(WYDownloadModel.self, from: success.origin.data(using: .utf8)!)
国际化
WYLocalized("这是使用示例")
本地存储(可设置过期时间)
// 获取
let cache = try! ImageCache(name: "hahaxiazai", cacheDirectoryURL: WYStorage.createDirectory(directory: .cachesDirectory, subDirectory: "WYBasisKit/Download")) // 存储
let memoryData: WYStorageData = WYStorage.storage(forKey: "AAAAA", data: image!.jpegData(compressionQuality: 1.0)!, durable: .minute(2))
网络请求(支持HTTPS自建证书单/双向认证、支持ProtoBuf、支持缓存等)
// 发起一个网络请求
public static func request(method: HTTPMethod = .post, path: String = "", data: Data? = nil, parameter: [String : Any] = [:], config: WYNetworkConfig = .default, handler:((_ result: WYHandler) -> Void)? = .none) // 发起一个上传请求
public static func upload(path: String = "", parameter: [String : Any] = [:], files: [WYFileModel], config: WYNetworkConfig = .default, progress:((_ progress: Double) -> Void)? = .none, handler:((_ result: WYHandler) -> Void)? = .none) // 发起一个下载请求
public static func download(path: String = "", parameter: [String : Any] = [:], assetName: String = "", config: WYNetworkConfig = .default, handler:((_ result: WYHandler) -> Void)? = .none) // 清除缓存
public static func clearDiskCache(path: String, asset: String = "", completion:((_ error: String?) -> Void)? = .none)

效果展示(部分)

暗夜模式切换

UIView控件设置 圆角、阴影、边框等

自定义按钮的图片和文本控件位置

二维码识别

自定义Banner控件(2个ImageView极限优化)

富文本控件

资源下载、保存(可设置本地资源过期时间)

网络请求

屏幕旋转

Gif加载

魔改UICollectionViewFlowLayout,支持各种瀑布流

直播、点播播放器(也可作为本地播放器)

分页控制器

如何使用WYBasisKit

一、集成方式
1、CocoaPods方式集成(推荐)
pod 'WYBasisKit' # 集成数据解析类
pod 'WYBasisKit/Codable' # 集成Layout库(libName: 目前包含ScrollText、PagingView和BannerView)
pod 'WYBasisKit/Layout' 或者 pod 'WYBasisKit/Layout/libName' 更多请查看WYBasisKit.podspec文件或者pod search WYBasisKit 2、下载WYBasisKit,解压后将工程下的整个WYBasisKit文件或您需要的文件放进项目中 二、头文件引入
1、推荐在AppDelegate中全局引入,复制粘贴 @_exported import WYBasisKit 在引入头文件的位置 2、在需要使用的页面引入,即 import WYBasisKit

传送门

If you think it's cool,Please give me a little star. (如果你也觉得很酷,就点一下Star吧(●ˇ∀ˇ●))

目前WYBasisKit已基本开发完毕,更多功能敬请期待。

如您在使用过程中发现BUG,或有好的意见建议,可发邮件至mobileAppDvlp@icloud.com

一个大幅提高开发效率的工具库 WYBasisKit的更多相关文章

  1. 一个可以提高开发效率的Git命令-- Cherry-Pick

    在实际的项目开发中(使用Git版本控制),在所难免会遇到没有切换分支开发.需要在另一个分支修改bug然后合并到当前分支的情况.之前遇到这种第一反应就是将分支合并过去来解决问题.如果你那些提交当中也穿插 ...

  2. Github 开源:使用升讯威 Mapper( Sheng.Mapper)与 AutoMapper 互补,大幅提高开发效率!

    Github 地址:https://github.com/iccb1013/Sheng.Mapper 在上一篇幅中,简单介绍了 升讯威 Mapper( Sheng.Mapper)[http://www ...

  3. git 一个可以提高开发效率的命令:cherry-pick

    各位码农朋友们一定有碰到过这样的情况:在develop分支上辛辛苦苦撸了一通代码后开发出功能模块A,B,C,这时老板过来说,年青人,我们现在先上线功能模块A,B.你一定心里一万只草泥马奔腾而过,但为了 ...

  4. 如何利用 Visual Studio 自带工具提高开发效率

    Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢? 显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位. 如何显示 1. 工具 ...

  5. GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率

    GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率 功能丰富的 Java 工具包.它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率.该项目最初是作者工作项目中的 ...

  6. 成吨提高开发效率:Intellij Shortcuts精简子集与思维模式

    在线精简cheatsheet备查表:intellij.linesh.twGithub项目:intellij-mac-frequent-keymap Intellij的快捷键多而繁杂,从官方推荐的key ...

  7. 善用VS中的Code Snippet来提高开发效率

    http://www.cnblogs.com/anderslly/archive/2009/02/16/vs2008-code-snippets.html http://www.cnblogs.com ...

  8. 实用手册:130+ 提高开发效率的 vim 常用命令

    Vim 是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器.这里收录了130+程 ...

  9. 提高开发效率的 Eclipse 实用操作

    工欲善其事,必先利其器.对于程序员来说,Eclipse便是其中的一个“器”.本文会从Eclipse快捷键和实用技巧这两个篇章展开介绍.Eclipse快捷键用熟后,不用鼠标,便可进行编程开发,避免鼠标分 ...

  10. 能够提高开发效率的Eclipse实用操作

    工欲善其事,必先利其器.对于程序员来说,Eclipse便是其中的一个“器”.本文会从Eclipse快捷键和实用技巧这两个篇章展开介绍.Eclipse快捷键用熟后,不用鼠标,便可进行编程开发,避免鼠标分 ...

随机推荐

  1. 【倒计时3天】“CSIG企业行”走进合合信息,大咖解密智能文档处理背后的底层技术及AI未来展望

    3月18日,由中国图象图形学会(CSIG)主办,合合信息.CSIG文档图像分析与识别专业委员会联合承办的"CSIG企业行"系列活动将正式举办,通过搭建学术界与企业交流合作平台,为企 ...

  2. 控制请求并发数量:p-limit 源码解读

    p-limit 是一个控制请求并发数量的库,他的整体代码不多,思路挺好的,很有学习价值: 举例 当我们同时发起多个请求时,一般是这样做的 Promise.all([ requestFn1, reque ...

  3. Kubernetes Pod(Pod Hook?Pod 健康检查?Pod 资源配置?)(十八)

    一.Pod Hook 我们知道 Pod 是 Kubernetes 集群中的最小单元,而 Pod 是由容器组成的,所以在讨论 Pod 的生命周期的时候我们可以先来讨论下容器的生命周期.实际上 Kuber ...

  4. 诸葛测字在线测算免费api接口_json格式数据返回

    ‌诸葛测字是一种古老的占卜术,相传是由三国时代的诸葛亮所创.‌ 诸葛测字通过选取三个汉字,计算其笔画数,然后根据这些数字对照特定的歌诀或表格来预测吉凶.解答疑惑.这种方法强调心诚手净,焚香祷告,通过三 ...

  5. android IO Prefetch源码分析

    I/O Prefetcher是高通本身提供的一套优化方案,可以用在Android手机App冷启动的时候.本文基于android Q 主要分libqti-iopd.vendor.qti.hardware ...

  6. iOS中UIlabel多行文本展示使用小结

    最近在项目开发中遇到了一个新的需求,就是菜单标题最多两行展示,一行展示的标签顶部和两行展示的标签顶部对齐.看到要求后,第一反应是这是什么奇葩的设计,但是没办法谁让别人是产品经理呢.细细思索后,代码如下 ...

  7. threejs 父元素 相对位置 position 网格对象

    设置position都是相对于父元素的位置设置的 // 导入 threejs import * as THREE from "three"; import { OrbitContr ...

  8. KubeSphere 部署 Kafka 集群实战指南

    本文档将详细阐述如何利用 Helm 这一强大的工具,快速而高效地在 K8s 集群上安装并配置一个 Kafka 集群. 实战服务器配置(架构 1:1 复刻小规模生产环境,配置略有不同) 主机名 IP C ...

  9. 云原生周刊:Dapr 完成模糊测试审计 | 2023.7.10

    开源项目推荐 Shell-operator Shell-operator 是一个在 Kubernetes 集群中运行事件驱动脚本的工具. node-problem-detector node-prob ...

  10. 国内空白,AI将文字搜索转化为交互数据图表,融资4000万,已与Perplexity整合

    2024年10月17日.产品为利用生成式AI将文字搜索转化为数据图表的美国初创公司Tako,种子轮融资575万美元,折合人民币4000万元. 国外AI搜索主导者Perplexity,其创始人也参与了这 ...