Skip to content

Instantly share code, notes, and snippets.

View akramhussein's full-sized avatar

Akram Hussein akramhussein

View GitHub Profile
@akramhussein
akramhussein / keybase.md
Created September 22, 2014 21:26
keybase.md

Keybase proof

I hereby claim:

  • I am akramhussein on github.
  • I am akramhussein (https://keybase.io/akramhussein) on keybase.
  • I have a public key whose fingerprint is 7CFD 1C3C 4D55 D91B CBFE CCFF FDB5 43D6 9463 82C7

To claim this, I am signing this object:

@akramhussein
akramhussein / IncrementBuildVersionNumber
Last active August 29, 2015 14:10
XCode project - Increment build version number
#!/bin/sh
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
@akramhussein
akramhussein / SetVersionStringAndBuildNumberInSettings
Created November 26, 2014 20:21
XCode Project - Set Version String And Build Number In Settings Bundle
#!/bin/sh
# TASK: Create Item in Settings.bundle Root.plist
# Get version string
versionString=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
# Get build number
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
# Set settings bundle value
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:0:DefaultValue $versionString (Build: $buildNumber)" "${SRCROOT}/${PROJECT}/Settings.bundle/Root.plist"
@akramhussein
akramhussein / splunk_upload_dsym.sh
Created January 21, 2015 13:12
Splunk Mint Express DSYM Upload Xcode Build Phase Run Script
# Zips DSYM for current build and uploads to Splunk Mint Express
DSYM="$BUILT_PRODUCTS_DIR/${PRODUCT_NAME}.app.dSYM"
zip -r "$DSYM.zip" $DSYM
curl -F file=@"$DSYM.zip" \
--header "X-Splunk-Mint-apikey: YOUR_APP_API_KEY" \
--header "X-Splunk-Mint-Auth-Token: YOUR_API_AUTH_TOKEN" \
https://symbolicator.splkmobile.com/upload/dsym -i
@akramhussein
akramhussein / String+RemoveWords.swift
Last active August 29, 2015 14:18
String+RemoveWords Extension
extension String
{
func removeWords(words: [String]) -> String
{
var cleanedString = self
// Remove common words
for word in words
{
cleanedString = cleanedString.stringByReplacingOccurrencesOfString(word, withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
@akramhussein
akramhussein / AccessSwitchCommands.swift
Last active August 29, 2015 14:25
Handle Access Switch devices in iOS - Swift
var commands = [UIKeyCommand]()
var onceToken : dispatch_once_t = 0
override var keyCommands : [AnyObject]? {
get {
dispatch_once(&onceToken) {
self.commands = [
UIKeyCommand(input: " ", modifierFlags: nil, action: "spacePressed:"),
UIKeyCommand(input: "\r", modifierFlags: nil, action: "enterPressed:"),
UIKeyCommand(input: "0", modifierFlags: nil, action: "zeroPressed:"),
@akramhussein
akramhussein / CustomLogFormatter.swift
Created August 11, 2015 15:03
CustomLogFormatter for CocoaLumberjack - Swift
import Foundation
import CocoaLumberjack
class CustomLogFormatter : NSObject, DDLogFormatter
{
private var dateFormatter : NSDateFormatter!
override init()
{
self.dateFormatter = NSDateFormatter()
@akramhussein
akramhussein / CrashlyticsLogger.swift
Created August 11, 2015 15:07
CocoaLumberjack Custom Crashlytics Logger in Swift
import Foundation
import CocoaLumberjack
import Crashlytics
class CrashlyticsLogger : DDAbstractLogger
{
static let sharedInstance = CrashlyticsLogger()
private var _logFormatter : DDLogFormatter?
override var logFormatter: DDLogFormatter? {
@akramhussein
akramhussein / Array+RemoveObjectByClass.swift
Created March 27, 2016 09:23
Array+RemoveObjectByClass.swift
extension Array
{
mutating func removeObjectByClass<T>(t: T.Type)
{
for (index, object) in self.enumerate()
{
if let _ = object as? T
{
self.removeAtIndex(index)
}
@akramhussein
akramhussein / Product.swift
Created August 26, 2016 07:48
Realm+ObjectMapper Example
import Foundation
import RealmSwift
import ObjectMapper
class Product: Object, Mappable
{
dynamic var name = ""
dynamic var price = 0.0
var discount = RealmOptional<Float>() {