Skip to content

Instantly share code, notes, and snippets.

View gokselkoksal's full-sized avatar

Göksel Köksal gokselkoksal

View GitHub Profile
@adammagana
adammagana / Logging.swift
Last active September 5, 2023 20:29
A convenient Swift protocol and wrapper for OSLog.
import os
private let subsystem = "<ENTER-YOUR-SUBSYSTEM-STRING-HERE>"
// MARK: - Protocol
protocol LogProducer {
func debug(_ message: StaticString, _ messageArguments: CVarArg...)
func info(_ message: StaticString, _ messageArguments: CVarArg...)
func warn(_ message: StaticString, _ messageArguments: CVarArg...)
@jherax
jherax / README.md
Last active February 12, 2024 14:53
Git Alias and Rebase

Git Alias and Git Rebase

WHEN TO DO REBASE

After each commit in our branch, in order to be up-to-date with the integration branch.

@arslanbilal
arslanbilal / .swiftlint.yml
Last active January 7, 2024 10:55
Default swift lint file for projects
disabled_rules: # rule identifiers to exclude from running
# Number of function parameters should be low.
- function_parameter_count
# Type bodies should not span too many lines.
- type_body_length
# Complexity of function bodies should be limited.
- cyclomatic_complexity
@tclementdev
tclementdev / libdispatch-efficiency-tips.md
Last active April 26, 2024 10:15
Making efficient use of the libdispatch (GCD)

libdispatch efficiency tips

The libdispatch is one of the most misused API due to the way it was presented to us when it was introduced and for many years after that, and due to the confusing documentation and API. This page is a compilation of important things to know if you're going to use this library. Many references are available at the end of this document pointing to comments from Apple's very own libdispatch maintainer (Pierre Habouzit).

My take-aways are:

  • You should create very few, long-lived, well-defined queues. These queues should be seen as execution contexts in your program (gui, background work, ...) that benefit from executing in parallel. An important thing to note is that if these queues are all active at once, you will get as many threads running. In most apps, you probably do not need to create more than 3 or 4 queues.

  • Go serial first, and as you find performance bottle necks, measure why, and if concurrency helps, apply with care, always validating under system pressure. Reuse

@erenkabakci
erenkabakci / playground.swift
Last active May 23, 2017 14:24
Value vs Reference Type in Swift
//: Playground - noun: a place where people can play
// Value Type
struct StructA {
var field1: String = "Default Struct Value"
let field2: Int = 1
}
let constantStruct = StructA()
@Tokuriku
Tokuriku / Count lines of code in Xcode project
Last active March 9, 2023 23:16 — forked from ccabanero/Count lines of code in Xcode project
Count lines of code in SWIFT Xcode project
1. Open Terminal
2. cd to your Xcode project
3. Execute the following when inside your target project:
find . -name "*.swift" -print0 | xargs -0 wc -l
@calebd
calebd / AsynchronousOperation.swift
Last active April 29, 2023 13:12
Concurrent NSOperation in Swift
import Foundation
/// An abstract class that makes building simple asynchronous operations easy.
/// Subclasses must implement `execute()` to perform any work and call
/// `finish()` when they are done. All `NSOperation` work will be handled
/// automatically.
open class AsynchronousOperation: Operation {
// MARK: - Properties
@mackworth
mackworth / Obectivej-C to Swift Syntax Translation.md
Last active October 13, 2017 10:57
Table showing the major translations from Objective-C to Swift syntax

Conversion Process from Objective-C syntax to Swift The most important first step is to run Apple's "Convert to Modern Objective-C Syntax" refactoring, so that you're using array/dictionary literals and bracket-accesses; these will then be usable in Swift. Note also that I'm a beginner in Swift, so my apologies for any mistakes or incompleteness here.

When you see this pattern Replace with this
Module
@interface *newType* : *superType* <*protocol1*, *protocol2*> class *newType* : *superType*, *protocol1*, *protocol2*
@implementation OR @synthesize OR @end Delete
Properties
@ejdyksen
ejdyksen / patch-edid.md
Last active April 6, 2024 15:59
A script to fix EDID problems on external monitors in macOS

patch-edid.rb

A script to fix EDID problems on external monitors in macOS.

Instructions

  1. Connect only the problem display.

  2. Create this directory structure (if it doesn't already exist):

@HarishChaudhari
HarishChaudhari / country-code-to-currency-code-mapping.csv
Last active April 26, 2024 12:10
Country, Country Code, Currency code mapping in CSV format Taken from https://gist.github.com/304261 Contains 249 countries.
Country CountryCode Currency Code
New Zealand NZ New Zealand Dollars NZD
Cook Islands CK New Zealand Dollars NZD
Niue NU New Zealand Dollars NZD
Pitcairn PN New Zealand Dollars NZD
Tokelau TK New Zealand Dollars NZD
Australian AU Australian Dollars AUD
Christmas Island CX Australian Dollars AUD
Cocos (Keeling) Islands CC Australian Dollars AUD
Heard and Mc Donald Islands HM Australian Dollars AUD