Skip to content

Instantly share code, notes, and snippets.

View mokagio's full-sized avatar
🛠️
Building stuff

Gio Lodi mokagio

🛠️
Building stuff
View GitHub Profile
@mokagio
mokagio / SimpleDataSource.swift
Created May 18, 2018 11:10
Ready made `UITableViewDataSource` for those simple scenarios in which you want to display homogeneous data, of type `T`, in a single section, on a standard `UITableViewCell`
// swift version 4.1
import UIKit
/// Ready made `UITableViewDataSource` for those simple scenarios in which you want to display
/// homogeneous data, of type `T`, in a single section, on a standard `UITableViewCell`.
class SimpleDataSource<T>: NSObject, UITableViewDataSource {
typealias Item = T
let data: [T]
@mokagio
mokagio / sort-tests.rb
Created November 28, 2017 06:37
Script used to get the slowest tests from Xcode as part of the Code Quality Challenge
# Run your tests in Xcode, copy the result in the console in a file, the run
#
# cat your_file | ruby sort-tests.rb
report = ARGF.read
times = report.lines
.select { |l| l.match(/Test Case .* \((\d*\.\d*) seconds\)/).nil? == false }
.map do |m|
{
@mokagio
mokagio / bootstrap
Created November 22, 2017 08:28
CQC day 8 bootstrap script
#!/bin/bash
#
# Setup your local copy of the app. Run this script immediately after cloning
# the codebase.
#
set -eo pipefail
# First ensure all the required tools are available
@mokagio
mokagio / TitleAndValueRowWithPresenter.swift
Created July 26, 2017 02:43
TitleAndValueRowWithPresenter.swift
import Eureka
/// This row is build based on the implementation of `ButtonRowWithPresent`, and
/// allows consurmers to set a detail value for the row, which is not possible
/// in the other.
///
/// To set the value use `$0.cellUpdate { cell, _ in cell.detailLabel?.text = "value" }`.
///
/// - See: https://github.com/xmartlabs/Eureka/blob/master/Source/Rows/ButtonRowWithPresent.swift
open class _TitleAndValueRowWithPresenter<VCType: TypedRowControllerType>: Row<LabelCellOf<VCType.RowValue>>, PresenterRowType where VCType: UIViewController {
@mokagio
mokagio / NSDate+EasyTuning.swift
Created May 20, 2016 05:36
This NSDate extension provides a builder method intended to be used to simplify creating dates in unit tests.
import Foundation
/// This `NSDate` extension provides a builder method intended to be used to
/// simplify creating dates in unit tests.
extension NSDate {
static func date(
year year: Int = 1970,
month: Int = 01,
day: Int = 01,
@mokagio
mokagio / update_xcode_plugins.sh
Last active May 17, 2019 08:54
Script updating all plugins to be compatible with the latest Xcode and Xcode-beta
#!/bin/bash
#
# Updates all plug-ins to be compatible with the latest Xcode and Xcode-beta
#
plugins_location="~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins"
# Get Xcode's version
current_xcode_version="$(defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID)"
@mokagio
mokagio / reveal-cask-lldb
Created September 25, 2015 04:18
Reveal LLDB command aliases, for Homebrew Cask installations
# Reveal LLDB aliases
# See http://blog.ittybittyapps.com/blog/2013/11/07/integrating-reveal-without-modifying-your-xcode-project/ for process explanation
command alias reveal_load_sim expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/opt/homebrew-cask/Caskroom/reveal/latest/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)
command alias reveal_load_dev expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2) : ((void*)0)
command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];
@mokagio
mokagio / install-xcode-cli-tools.sh
Created September 9, 2015 09:28
Install Xcode CLI Tools without GUI
#!/bin/bash
# See http://apple.stackexchange.com/questions/107307/how-can-i-install-the-command-line-tools-completely-from-the-command-line
echo "Checking Xcode CLI tools"
# Only run if the tools are not installed yet
# To check that try to print the SDK path
xcode-select -p &> /dev/null
if [ $? -ne 0 ]; then
echo "Xcode CLI tools not found. Installing them..."
@mokagio
mokagio / .env
Last active August 29, 2015 14:26
Configurable script to build and distribute iOS apps to TestFlight. It relies on deliver, https://github.com/KrauseFx/deliver, and xcpretty, https://github.com/supermarin/xcpretty.
# iTunes Connect username
DELIVER_USER=my.apple.id@mail.com
# iTunes Connect password
DELIVER_PASSWORD=password
@mokagio
mokagio / keybase.md
Last active August 29, 2015 14:15
keybase.md

Keybase proof

I hereby claim:

  • I am mokagio on github.
  • I am mokagio (https://keybase.io/mokagio) on keybase.
  • I have a public key whose fingerprint is CE02 FC0E 27F5 15A8 F469 F293 BD68 D621 217B 303A

To claim this, I am signing this object: