Latest 1.0.5
Homepage https://github.com/chkkassd/SwiftDevUtility
License MIT
Platforms ios 11.0
Authors

Version status
Platform support
License
Language
Carthage compatible

A Swift development tool which can make your programming easy.

Table of Contents

  • General info
  • Requirement
  • Installation
  • Usage
  • Contact
  • License

    General info

    This tool provides some useful functions which can be often used in your programming.It extends some Swift Standard Library and create some useful structs.

    Requirement

  • iOS 11+
  • Swift 4.2

    Installation

    Cocoapods:

    pod 'SwiftDevUtility'

    Carthage:

    github "chkkassd/SwiftDevUtility"

    Usage

  • StringExtension
    • public var md5String: String
    • public var convertedDate: Date?
    • public static func timeFormatString(_ seconds: Double) -> String
  • ArrayExtension
    • public func reject(_ predicate: (Element) -> Bool) -> [Element]
    • public func allMatch(_ predicate: (Element) -> Bool) -> Bool
  • DictionaryExtension
    • public mutating func merge<S>(_ sequence: S) where S: Sequence, S.Iterator.Element == (key: Key, value: Value)
    • public init<S: Sequence>(_ sequence: S) where S.Iterator.Element == (key: Key, value: Value)
    • public func valueMap<T>(_ transform:(Value) -> T) -> [Key:T]
  • SequenceExtension
    • public func unique() -> [Iterator.Element]
  • DateExtension
    • public var standardTimeString: String
    • public var weekdayIndex: Int?
    • public var weekdayEnum: WeekDay
    • public var weekdayString: String
    • public var firstDayDate: Date?
    • public var lastDayDate: Date?
  • URLExtension
    • public var pathString: String?
  • UIImageExtension
    • public func scaledImage(_ rect: CGRect, _ compressionQuality: CGFloat) -> UIImage?
  • UIViewExtension
    • @IBInspectable public var viewCornerRadius: CGFloat
    • @IBInspectable public var viewBorderWidth: CGFloat
    • @IBInspectable public var viewBorderColor: UIColor
  • AppInfoHelper
    • public static var appVersion: String?
    • public static var appBuildVersion: String?
    • public static var appName: String?
  • DirectoryPath
    • public static func pathOfDocuments() -> String
    • public static func pathOfTemporary() -> String
    • public static func pathOfCache() -> String
    • public static func urlInDocument(with component: String) -> URL
    • public static func urlInTemporary(with component: String) -> URL
    • public static func urlInCache(with component: String) -> URL
    • public static func directoryPathInDocument(withDirectoryName name: String) -> String
    • public static func directoryURLInDocument(withDirectoryName name: String) -> URL
  • ScreenShot
    • public static func screenShot(withView view: UIView) -> UIImage?

      StringExtension

      public var md5String: String

      A read-only computed property that return the md5 string from the origin string.

      "Hello world".md5String//3e25960a79dbc69b674cd4ec67a72c62

      public var convertedDate: Date?

      Convert a ISO8601 string(yyyy-MM-dd’T’HH:mm:ssZ) to Date.

      let time = "2019-3-12T12:34:23+0000"
      let dateTime = time.convertedDate//Optional(2019-03-12 12:34:23 +0000)

      public static func timeFormatString(_ seconds: Double) -> String

      Convert seconds to a string with style of "mm:ss"

      String.timeFormatString(188.8)//03:08

      ArrayExtension

      public func reject(_ predicate: (Element) -> Bool) -> [Element]

      Delete the element which matchs the predicate.

      let a = [1,2,3,4,5,6]
      let b = a.reject{$0 % 2 == 0}//[1,3,5]

      public func allMatch(_ predicate: (Element) -> Bool) -> Bool

      Weather all elements match the predicate.

      let a = [1,2,3,4,5,6]
      let c = a.allMatch{$0 > 0}//true

      DictionaryExtension

      public mutating func merge<S>(_ sequence: S) where S: Sequence, S.Iterator.Element == (key: Key, value: Value)

      Merge a sequence into a dictionary.

      var a = ["name": "jack", "age": "10"]
      let b = ["name": "Tom", "age": "10", "address": "shanghai"]
      a.merge(b)//["address": "shanghai", "age": "10", "name": "Tom"]

      init<S: Sequence>(_ sequence: S) where S.Iterator.Element == (key: Key, value: Value)

      Initail a dictionary by a sequence,such as [(key:xx, value:xx)].

      let c = [("name", "Peter"), ("age", "20")]
      let d = Dictionary(c)//["age": "20", "name": "Peter"]

      public func valueMap<T>(_ transform:(Value) -> T) -> [Key:T]

      A dictionary’s value map to a new value with the transform,then return a new dictionary.

      let e = ["height": 80, "width": 100]
      let f = e.valueMap { $0 / 2 }//["height": 40, "width": 50]

      SequenceExtension

      public func unique() -> [Iterator.Element]

      Find the unique element in the sequence,it will drop the repeated element.

      let a = [1,2,3,4,4,8,8]
      let b = a.unique()//[1, 2, 3, 4, 8]

      DateExtension

      public var standardTimeString: String

      Convert date to string(yyyy-MM-dd HH:mm:ss)

      let date = Date()
      date.standardTimeString//"2019-03-06 14:14:34"

      public var weekdayIndex: Int?

      Convert a date to weekdayIndex(saturday is 0, sunday is 1, Monday is 2,…).

      let date = Date()
      date.weekdayIndex//Optional(4)

      public var weekdayEnum: WeekDay

      Convert a date to weekday enum..

      let date = Date()
      date.weekdayEnum//WED

      public var weekdayString

      Convert a date to chinese weekday string.

      let date = Date()
      date.weekdayString//"周三"

      public var firstDayDate: Date?

      Fetch the first day of a week by a date.

      let date = Date()
      date.firstDayDate//Optional(2019-03-02 06:14:34 +0000)

      public var lastDayDate: Date?

      Fetch the last day of a week by a date.

      let date = Date()
      date.lastDayDate//Optional(2019-03-08 06:14:34 +0000)

      URLExtension

      public var pathString: String?

      Convert a file url to a path string

      let fileURL = DirectoryPath.urlInDocument(with: "test")//file:///Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/099F3AE8-8743-4466-B147-F84A91AE8C17/Documents/test
      let filePath = fileURL.pathString//Optional("/Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/099F3AE8-8743-4466-B147-F84A91AE8C17/Documents/test")

      UIImageExtension

      public func scaledImage(_ rect: CGRect, _ compressionQuality: CGFloat) -> UIImage?

      Scale a big image to a small image with specifial rect.

      let aImage = UIImage(named: "water")
      aImage.size//Optional((180.0, 180.0))
      let bImage = aImage?.scaledImage(CGRect(x: 0, y: 0, width: 20, height: 20), 1.0)
      bImage.size//Optional((20.0, 20.0))

      UIViewExtension

      @IBInspectable public var viewCornerRadius: CGFloat

      Discribe corner radius of a view and reflect in storyboard.

      @IBInspectable public var viewBorderWidth: CGFloat

      Discribe border width of a view and reflect in storyboard.

      @IBInspectable public var viewBorderColor: UIColor

      Discribe border color of a view and reflect in storyboard.

      AppInfoHelper

      public static var appVersion: String?

      Fetch the app version.

      AppInfoHelper.appVersion//Optional("1.0.1")

      public static var appBuildVersion: String?

      Fetch the app build version

      AppInfoHelper.appBuildVersion//Optional("1")

      public static var appName: String?

      Fetch the app name

      AppInfoHelper.appName//Optional("SwiftDevUtilityDemo")

      DirectoryPath

      public static func pathOfDocuments() -> String

      Document directory path

      DirectoryPath.pathOfDocuments()// /Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/11F3E559-1365-473D-AFA5-C7C10AD2800A/Documents

      public static func pathOfTemporary() -> String

      Temporary directory path

      DirectoryPath.pathOfTemporary()// /Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/11F3E559-1365-473D-AFA5-C7C10AD2800A/tmp/

      public static func pathOfCache() -> String

      Cache directory path

      DirectoryPath.pathOfCache()// /Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/11F3E559-1365-473D-AFA5-C7C10AD2800A/Library/Caches

      public static func urlInDocument(with component: String) -> URL

      Create URL in document compent

      DirectoryPath.urlInDocument(with: "haha")//file:///Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/11F3E559-1365-473D-AFA5-C7C10AD2800A/Documents/haha

      public static func urlInTemporary(with component: String) -> URL

      Create URL in temporary compent

      DirectoryPath.urlInTemporary(with: "hihi")//file:///Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/331A1DE9-81A4-4322-88BD-334E34AEBD06/tmp/hihi

      public static func urlInCache(with component: String) -> URL

      Create URL in cache compent

      DirectoryPath.urlInCache(with: "hehe")//file:///Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/331A1DE9-81A4-4322-88BD-334E34AEBD06/Library/Caches/hehe

      public static func directoryPathInDocument(withDirectoryName name: String) -> String

      Creat directory path at document directory.

      DirectoryPath.directoryPathInDocument(withDirectoryName: "test1")// /Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/331A1DE9-81A4-4322-88BD-334E34AEBD06/Documents/test1

      public static func directoryURLInDocument(withDirectoryName name: String) -> URL

      Creat directory URL at document directory

      DirectoryPath.directoryURLInDocument(withDirectoryName: "test2")//file:///Users/xxx/Library/Developer/CoreSimulator/Devices/761F483C-6A5C-4A4F-8F3C-7FDABBEC5A86/data/Containers/Data/Application/331A1DE9-81A4-4322-88BD-334E34AEBD06/Documents/test2

      ScreenShot

      public static func screenShot(withView view: UIView) -> UIImage?

      Crop a specific view

      let image = SSFScreenShot.screenShot(withView: aView)//It will crop aView and return a image

      Contact

  • Email:[email protected]
  • Weibo:@PeterShi

    License

    SwiftDevUtility is released under the MIT license. See LICENSE for details.

Latest podspec

{
    "name": "SwiftDevUtility",
    "version": "1.0.5",
    "summary": "Useful functions of Swift development",
    "description": "SwiftDevUtility is a useful development tool which can make your programming easy.",
    "homepage": "https://github.com/chkkassd/SwiftDevUtility",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Peter Shi": "[email protected]"
    },
    "source": {
        "git": "https://github.com/chkkassd/SwiftDevUtility.git",
        "tag": "1.0.5"
    },
    "platforms": {
        "ios": "11.0"
    },
    "source_files": [
        "SwiftDevUtility/**/*.swift",
        "SwiftDevUtility/Supportting/SwiftDevUtility.h"
    ],
    "swift_version": "4.2"
}

Pin It on Pinterest

Share This