Skip to content

Instantly share code, notes, and snippets.

@hishma
hishma / WWDC.md
Last active March 20, 2025 08:42
WWDC 2015-2018 Session Videos

WWDC 2015-2018 Session Videos

For some reason some older WWDC session videos have been disappearing from Fruit Co's the developer site. Luckily Harish posted this this gist of URL's and titles. So I converted that JSON to this markdown doc.

Enjoy!

2018

  • 102 – Platforms State of the Union – 2018 Platforms State of the Union
  • 103 – Apple Design Awards – Join us for an unforgettable award ceremony celebrating developers and their outstanding work. The 2018 Apple Design Awards recognize state of the art iOS, macOS, watchOS, and tvOS apps that reflect excellence in design and innovation.
@oguzhanvarsak
oguzhanvarsak / questions.md
Last active January 12, 2025 17:25
Interview Questions for iOS Developers

Interview Questions for iOS Developers

1. Classes vs structs

In Swift, structs are value types whereas classes are reference types. When you copy a struct, you end up with two unique copies of the data. When you copy a class, you end up with two references to one instance of the data. It’s a crucial difference, and it affects your choice between classes or structs. (+ Class extendable, struct does not.)

2. What’s the difference between var and let? Which one would you choose for properties in a struct and why?

Both let and var are for creating variables in Swift. let helps you create immutable variables (constants) while on the other hand var creates mutable variables.

3. What does the mutating keyword mean?

The mutating keyword lets callers know that the method is going to make the value change.

@biosmanager
biosmanager / userChrome.css
Last active May 14, 2025 13:49
Firefox Proton macOS Close Tab Left (updated for version 113)
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
.tabbrowser-tab .tab-close-button {
opacity: 0;
margin-left: -4.5px !important;
margin-right: 2px !important;
}
.tabbrowser-tab:not(:hover) .tab-close-button {
display: none;
@joshdholtz
joshdholtz / Fastfile
Last active February 23, 2022 18:33
Check if fastlane is building in Xcode run script
lane :build do
gym(
xcargs: "FASTLANE=true"
)
end
@IsaacXen
IsaacXen / README.md
Last active May 23, 2025 21:39
(Almost) Every WWDC videos download links for aria2c.
@filsv
filsv / WatchSessionManager.swift
Last active April 8, 2023 21:33
WatchConnectivity Singleton (Swift 5+, iOS+WatchOS Targets) + How to (comment below)
import WatchConnectivity
class WatchSessionManager: NSObject, WCSessionDelegate {
static let sharedManager = WatchSessionManager()
private override init() {
super.init()
}
private let session: WCSession? = WCSession.isSupported() ? WCSession.default : nil
@bgromov
bgromov / readme.md
Last active September 30, 2023 15:35
Compiling Swift framework with mixed-in Objective-C code

Problem

You can't use bridging headers within a framework.

Solution 1 (umbrella header):

Xcode will automatically create umbrella header for you Cocoa Framework project. That will be the file named <FrameworkName>.h in the <FrameworkName> group/folder (where the rest of your sources are).

  1. To include the required Obj-C header you need to set it as Public: select it in the project explorer (left pane) and change the property Target Membership (left—Inspectors—pane) from Project to Public.
  2. Open umbrella header (<FrameworkName>.h) and import the required header as:
@shaps80
shaps80 / AVPlayer+Scrubbing.swift
Last active April 29, 2025 23:50
Enables smooth frame-by-frame scrubbing (in both directions) – similar to Apple's applications.
public enum Direction {
case forward
case backward
}
internal var player: AVPlayer?
private var isSeekInProgress = false
private var chaseTime = kCMTimeZero
private var preferredFrameRate: Float = 23.98
@MarcoSantarossa
MarcoSantarossa / AsyncOperation.swift
Last active August 2, 2023 13:23
How to write and use an asynchronous operation
import Foundation
class AsyncOperation: Operation {
enum State: String {
case isReady, isExecuting, isFinished
}
override var isAsynchronous: Bool {
return true
}
@lattner
lattner / TaskConcurrencyManifesto.md
Last active May 26, 2025 14:47
Swift Concurrency Manifesto