Skip to content

Instantly share code, notes, and snippets.

View perpeer's full-sized avatar
🏠
Working from home

Ekrem TAŞKIRAN perpeer

🏠
Working from home
  • Istanbul
View GitHub Profile
@perpeer
perpeer / CustomBottomSheet.swift
Last active January 7, 2025 11:30
Custom bottom sheet for iOS15, iOS16
public extension View {
func rSheet<Content: View>(
isPresented: Binding<Bool>,
detents: RPresentationDetent = .medium,
@ViewBuilder content: @escaping () -> Content
) -> some View {
self.modifier(
RPresentationDetentModifier(
isPresented: isPresented,
detents: detents,
@perpeer
perpeer / Ping.swift
Created February 21, 2024 07:28
The provided code defines a Ping struct with methods to measure ping time to a given host using both synchronous and asynchronous approaches, leveraging URLSession
final class PingVM {
private let session: URLSession
private(set) var pingTime: Int?
init() {
let sessionConfig = URLSessionConfiguration.default
sessionConfig.timeoutIntervalForRequest = 5.0
sessionConfig.timeoutIntervalForResource = 5.0
self.session = URLSession(configuration: sessionConfig)
}
@perpeer
perpeer / FirebaseStoreImporter.swift
Created December 4, 2022 14:19
Swift Firebase Store Importer
import FirebaseFirestore
import FirebaseFirestoreSwift
struct FirebaseStoreImporter {
private let firestore: Firestore
init() {
self.firestore = Firestore.firestore()
}
@perpeer
perpeer / SwiftUIKeyboardCloseButton.swift
Last active September 6, 2022 16:51
SwiftUI Keyboard Close Button
extension TextField {
func showCloseKeyboardButton() -> some View {
self.toolbar {
ToolbarItemGroup(placement: .keyboard) {
Spacer()
Button {
UIApplication.shared.endEditing()
} label: {
Image(systemName: "keyboard.chevron.compact.down")
}
@perpeer
perpeer / factory-pattern.swift
Created October 11, 2020 14:26
Swift Factory Method Pattern
enum ButtonStyle: String, RawRepresentable {
case dark, light, `default`
}
protocol ButtonStyleProductProtocol {
var style: ButtonStyle { get set }
var font: UIFont { get set }
var description: String { get }
}
@perpeer
perpeer / SwiftUIFontExtension.swift
Created September 26, 2020 13:09
SwiftUI Font Extension
import SwiftUI
enum YanoneKaffeesatz: String {
case bold = "YanoneKaffeesatz-Bold"
case extraLight = "YanoneKaffeesatz-ExtraLight"
case light = "YanoneKaffeesatz-Light"
case medium = "YanoneKaffeesatz-Medium"
case regular = "YanoneKaffeesatz-Regular"
case semiBold = "YanoneKaffeesatz-SemiBold"
@perpeer
perpeer / PerspectiveTransform.swift
Created June 24, 2020 20:12
Perspective Transform
import UIKit
class PerspectiveTransformView: UIView {
override func awakeFromNib() {
super.awakeFromNib()
addPanGesture(self)
}
@perpeer
perpeer / ToggleableOrReversibleEnum.swift
Created May 26, 2020 16:47
Toggleable Or Reversible Enum
protocol Toggleable {
mutating func toggle()
}
enum CardOrientation: String, Toggleable {
case Horizontal = "hor"
case Vertical = "ver"
mutating func toggle() {
switch self {
import UIKit
final class Element {
init() {
print("Element init is called")
}
deinit {
print("Element deinit is called")
}
@perpeer
perpeer / EnumAssociatedValues.swift
Last active March 7, 2020 10:19
EnumAssociatedValues
import UIKit
typealias MimeTypeIdentifier = String
enum DefaultMimeType: MimeTypeIdentifier {
case pdf = "application/pdf"
case jpeg = "application/jpeg"
}
enum MimeType {