Giter Site home page Giter Site logo

tliens / speedyswift Goto Github PK

View Code? Open in Web Editor NEW
486.0 13.0 71.0 15.27 MB

这是一个app开发的加速库。This is an accelerated library for app development

License: MIT License

Ruby 0.86% Swift 98.77% Python 0.37%
swift5 ios efficient application independent

speedyswift's Introduction

SpeedySwift

Pods Build Status Sponsors LICENSE Swift Xcode

这是一个app开发的加速库,我的几款app都是基于这个加速库完成的

《NOTO-极简任务清单》从开发到上线用时不到一天,也正是因为SpeedSwift,让我复用了绝大部分代码。

尽量保持开发的原汁原味,欢迎使用,喜欢star✨

我想目前Swift中没有比这个更合适的加速开发app的框架了,如果有请告诉我。

它也是进阶Swift的非常好的代码参考,如果你是独立开发者,那一定会让你惊喜的。

img

示例

2021-03-17 更新

  • 支持cocoapods
  • 完善类、方法权限关键字
  • 去除不合适的第三方库
  • 修改文件结构
  • 增加使用示例

特色:

如何使用

Pod导入

pod 很久没更新了,建议使用本地pod的形式引入,指定path

Pod导入

pod 'SpeedySwift'

要求:Swift5.0及以上

代码演示

  • 颜色
UIColor.hex("#22023b")
  • 底部安全区高度
let height = SS.safeBottomHeight
  • 不用关心方向的 SSCollectionViewLayout
let layout = SSCollectionViewLayout(longitude: 0, latitude: 10.scale, itemSize: CGSize(width: 130.scale, height: 139.scale), sectionInset: .init(top: 10.scale, left: 20.scale, bottom: 0, right: 20.scale), direction: .vertical)
  • 属性包裹器
/// codable👍
@Default<String.defalut> var name:String

/// 数据持久化👍
@UserDefault("had_shown_guide_view", defaultValue: false)
static var hadShownGuideView: Bool

  • 系统页跳转
/// 跳转到系统页面
static func systemJump(completionHandler completion: ((AppJumpStatus) -> Void)? = nil){
    let urlString = UIApplication.openSettingsURLString
    if let url: URL = URL(string: urlString) {
        App.jump(url: url, completionHandler: completion)
    }else{
        completion?(.fail)
    }
}
  • 增加通过cell上的控件获取cell、index
    /// 获取indexpath
    func indexPath(by child:UIView)->IndexPath?{
        let point = child.convert(CGPoint.zero, to: self)
        return self.indexPathForRow(at: point)
    }
    /// 获取cell
    func cell(by child:UIView)->UITableViewCell?{
        let point = child.convert(CGPoint.zero, to: self)
        if let indexPath = self.indexPathForRow(at: point){
            return self.cellForRow(at: indexPath)
        }
        return nil
    }

  • 其他
	/// app版本号
    static var version: String? {
        return Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
    }
    /// 设备名称
    static var deviceName: String {
        return UIDevice.current.localizedModel
    }
    /// 设备方向
    static var deviceOrientation: UIDeviceOrientation {
        return UIDevice.current.orientation
    }
    /// 主窗口
    static var keyWindow: UIView? {
        return UIApplication.shared.keyWindow
    }
    /// 当前系统版本
    static var systemVersion: String {
        return UIDevice.current.systemVersion
    }
    /// 判断设备是不是iPhoneX
    static var isX : Bool {
        var isX = false
        if #available(iOS 11.0, *) {
            let bottom : CGFloat = UIApplication.shared.delegate?.window??.safeAreaInsets.bottom ?? 0
            isX = bottom > 0.0
        }
        return isX
    }

等你发现更多······

欢迎使用,喜欢请star✨

目录

  • Base:此文件夹中是基础类
  • Core:此文件夹中是UIKit+Foundation的扩展,建议你自己维护一套
  • SS.swift 是比较核心的类,为其增加了很多extension,方便快速使用,如:SS.log、SS.bundleID、SS.safeBottomHeight、SS.toast、SS.between...
  • SSDefault 属性包裹器的具体分装
  • SSCodableDefault 因为 权限问题没能解决,无法放到pod中,如果你有办法可以提交代码。
class Member:Codable {
    @SSCBD<Bool.defalut> var isOk:Bool
    @SSCBD<String.defalut> var name:String
    @SSCBD<Int.defalut> var age:Int
}
  • SSSandBox 沙盒相关操作
  • Tools 此文件夹中,包含:app之间跳转、网络检查、弹窗、震动反馈

img

我的其他开源框架

微信公众号:独立开发者基地

分享我的独立开发的故事,经验; Share stories and experiences of independent development.

公众号

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.