Skip to content

Instantly share code, notes, and snippets.

Avatar
👨‍💻
Always coding

Suyeol Jeon devxoul

👨‍💻
Always coding
View GitHub Profile
View AutoAssembly.swift
import Foundation
public enum Swinject {
public final class Container {
}
}
protocol Assembly {
func assemble(to container: Swinject.Container)
}
View firebase_carthage_frameworks.py
import io
import requests
import subprocess
import zipfile
FIREBASE_VERSION = '6.29.0'
def main():
json_urls = [
"https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json",
@devxoul
devxoul / git-reorder
Last active Jul 2, 2020
$ git reorder HEAD~3
View git-reorder
# https://gist.github.com/devxoul/00b5b4fac4243075656dc79912e256d6
git rebase --exec 'git commit --amend -C HEAD --date="$(date -R)" && sleep 1.05' $1
View NSStatusBarStub.swift
final class NSStatusBarStub: NSStatusBar {
override func statusItem(withLength length: CGFloat) -> NSStatusItem {
let alloc = NSStatusItem.perform(NSSelectorFromString("alloc"))!.takeRetainedValue() as! NSStatusItem
let selector = NSSelectorFromString("_initInStatusBar:withLength:withPriority:hidden:")
let imp = alloc.method(for: selector)
typealias ObjcInitBlock = @convention(c) (NSStatusItem, Selector, NSStatusBar, CGFloat, Int, Bool) -> NSStatusItem
let initializer = unsafeBitCast(imp, to: ObjcInitBlock.self)
let statusItem = initializer(alloc, selector, self, length, 1, true) // it won't work the last parameter("hidden") is set to `false`
@devxoul
devxoul / TypedContainer.swift
Last active May 6, 2020
Conceptual strong-typed DI container
View TypedContainer.swift
protocol ContainerProtocol {
associatedtype Service
associatedtype Nested: ContainerProtocol
var service: Service { get }
var nestedContainer: () -> Nested { get }
}
struct TypedContainer<Service, Nested: ContainerProtocol>: ContainerProtocol {
let service: Service
@devxoul
devxoul / distinctUntilChanged.swift
Last active Apr 16, 2020
RxSwift Observable<(T, T)>.distinctUntilChanged() returns wrong result
View distinctUntilChanged.swift
let source = Observable<(Int, Int)>.from([
(0, 1),
(2, 3),
(4, 5),
])
// Doesn't work as expected
// A -> (0, 1)
source
.distinctUntilChanged(==)
@devxoul
devxoul / 6.19.0
Last active Apr 7, 2020
Romefile for Firebase
View 6.19.0
repositoryMap:
- FirebaseAnalyticsBinary:
- name: FIRAnalyticsConnector
- name: Firebase
- name: FirebaseAnalytics
- name: FirebaseCore
- name: FirebaseCoreDiagnostics
- name: FirebaseInstallations
- name: GoogleAppMeasurement
- name: GoogleDataTransport
View CALayerAnimationSync.swift
import UIKit
import PlaygroundSupport
let width: CGFloat = 200
let height: CGFloat = 100
let spacing: CGFloat = 10
let numberOfViews: Int = 5
let canvas = UIView(frame: CGRect(
x: 0,
View RuntimeQuiz.swift
// TODO: define type 'User'
func testCase1() {
let json: [String: Any] = [
"id": 1,
"usermname": "devxoul",
"email": "devxoul@gmail.com",
]
let user = User(json: json)
View 1_ThreadCurrent.swift
import Foundation
let queue = DispatchQueue(label: "test")
var threads: [Thread] = []
for _ in 0..<100 {
queue.async {
threads.append(Thread.current)
// 1) if this line is not commented out
// 2) if this line is commented out
You can’t perform that action at this time.