Skip to content

A Swift library of various helpers

License

MIT, MIT licenses found

Licenses found

MIT
LICENCE
MIT
LICENSE
Notifications You must be signed in to change notification settings

miottid/SwiftHelpers

Repository files navigation

Features

  • Date extension (like ActiveRecord)
  • DateFormatter convenience
  • Array.each
  • Int / NSTimeInterval .every, a block based for NSTimer
  • UIColor helpers
  • UIView helpers
  • Various helpers
  • Easy localization

Requirements

  • iOS 7.0+ / Mac OS X 10.9+
  • Xcode 6.1

Installation

pod 'SwiftHelpers'

Available subspecs

  • pod 'SwiftHelpers/Basic' contains localization helpers, as well as IBInspectable localization attributes
  • pod 'SwiftHelpers/Core' contains core types helpers (comparison, array extensions, timers, ...)
  • pod 'SwiftHelpers/CoreData' contains CoreData helpers
  • pod 'SwiftHelpers/UI' contains controllers and views
  • pod 'SwiftHelpers/DateTime' contains Date related helpers and formatters
  • pod 'SwiftHelpers/Misc' contains miscellanous helpers (credit card, keyboard, notifications...)

For application targets that do not support embedded frameworks, such as iOS 7, SwiftHelpers can be integrated by including the SwiftHelpers folder directly, wrapping the top-level types in struct SwiftHelpers to simulate a namespace. Yes, this sucks.

Due to the current lack of proper infrastructure for Swift dependency management, using SwiftHelpers in your project requires the following steps:

  1. Add SwiftHelpers as a submodule by opening the Terminal, cd-ing into your top-level project directory, and entering the command git submodule add https://github.com/dmiotti/SwiftHelpers
  2. Open the SwiftHelpers folder, and drag SwiftHelpers.xcodeproj into the file navigator of your app project.
  3. In Xcode, navigate to the target configuration window by clicking on the blue project icon, and selecting the application target under the "Targets" heading in the sidebar.
  4. Ensure that the deployment target of SwiftHelpers.framework matches that of the application target.
  5. In the tab bar at the top of that window, open the "Build Phases" panel.
  6. Expand the "Target Dependencies" group, and add SwiftHelpers.framework.
  7. Click on the + button at the top left of the panel and select "New Copy Files Phase". Rename this new phase to "Copy Frameworks", set the "Destination" to "Frameworks", and add SwiftHelpers.framework.

Usage

Everything is documented, check it out

Common Init Views

UIView

You can subclass SHCommonInitView and override commonInit(). This function will be called not matter if the view was created programmaticaly like SHCommonInitView() or in Storyboard. The same apply with SHCommonInitTableViewCell and SHCommonInitCollectionViewCell.

NSDate comparison operators

import SwiftHelpers

let date1 = NSDate()
let date2 = date1.dateByAddingTimeInterval(10) // 10 seconds later

if date1 > date2 {
  println("date1 > date2")
}

if date1 < date2 {
  println("date1 < date2")
}

if date1 <= date2 {
  println("date1 <= date2")
}
....

NSDate like ActiveRecord

import SwiftHelpers

let yesterday = 1.day.ago
let firstJanuary = 1.january
let inTwoDays = NSDate() + 2.days
let bornDate = 16.october.of(1986)
let nextBirthDay = bornDate.next
let tenSecondsLater = 10.seconds.fromNow
let laterOn = NSDate() + 1.month + 1.day + 10.seconds

each([1, 5]) { item in
  let number = item as Int
  ...
}

10.each { number in
  let nextNumber = number + 3
}

Various helpers

let dateFormatter = NSDateFormatter(dateFormat: "d EEEE MMMM yyyy")

Tests

You can run Unit Tests using Xcode default behavior.

Contributors

About

A Swift library of various helpers

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENCE
MIT
LICENSE

Stars

Watchers

Forks

Packages

No packages published

Languages