Skip to content

Instantly share code, notes, and snippets.

View seyhunak's full-sized avatar
🏆
Winning The Life

Seyhun Akyürek seyhunak

🏆
Winning The Life
View GitHub Profile
const MY_DOMAIN = 'rezaarkan.com';
const SLUG_TO_PAGE = {
'': '882cd6dd6e1e482d823b464f326213e5',
'now': '25b7df64071d420d8f609bf76d9f4114',
'portfolio': '6000547bed0d441793bfba1498c063e2',
'resume': '0934b80d2d1544f99dedadb00be9d146',
'recommendations': '29115129efa44f1a870f390dd2c0a6c0',
'photos': 'e78c0492a5ec486aa51f4cdb2c6f4603',
'blog': '29bb193c1a104ba2b832788b57d58cd6',
@seyhunak
seyhunak / HomeRecap.swift
Last active July 7, 2021 17:47
HomeScreen
//
// HomeRecap.swift
// iosApp
//
import SwiftUI
import shared
struct HomeRecap: View {
@seyhunak
seyhunak / README.md
Last active June 22, 2021 15:12
IOSEngineerCodingChallenge
@seyhunak
seyhunak / EmployeeApiService.swift
Last active November 9, 2023 08:02
Swift 5 - MVVM - ViewController, ViewModel, Model, Datasource, Webservice
import Foundation
class APIService : NSObject {
private let sourcesURL = URL(string: "http://dummy.restapiexample.com/api/v1/employees")!
func apiToGetEmployeeData(completion : @escaping (Employees) -> ()){
URLSession.shared.dataTask(with: sourcesURL) { (data, urlResponse, error) in
if let data = data {
let jsonDecoder = JSONDecoder()
let empData = try! jsonDecoder.decode(Employees.self, from: data)
@seyhunak
seyhunak / AppDelegate.swift
Last active July 6, 2020 08:22
Initializer
import Lokalise
func applicationDidBecomeActive(_ application: UIApplication) {
Lokalise.shared.checkForUpdates { _, _ in }
}
@seyhunak
seyhunak / AnalyticsManager.swift
Last active June 14, 2020 12:17
AnalyticsManager - Multiple Analytics Provider - Google, Firebase, Mixpanel, Facebook
import UIKit
import Firebase
import FirebaseAnalytics
//MARK - Analytics Service
protocol AnalyticsService {
func initialize(application: UIApplication, launchOptions: [UIApplication.LaunchOptionsKey: Any]?)
func track(event: AnalyticsEvent, parameters: [AnalyticsEventParameter : String])
var trackingEvents: [AnalyticsEvent] { get }
@seyhunak
seyhunak / DispatchQueue+Extensions.swift
Created June 2, 2020 05:58
DispatchQueue extension for situations where one needs to run an expensive operation in background and then use its result in the main thread
import Foundation
extension DispatchQueue {
func asyncConsumeInMainQueue<T>(
work: @escaping () throws -> T,
mainSuccess: @escaping (T) -> Void,
mainError: @escaping (Error) -> Void) {
async {
do {
let result = try work()
@seyhunak
seyhunak / AnalyticsManager.swift
Last active June 1, 2020 20:17
AnalyticsManager
import UIKit
public protocol AnalyticsServiceType {
var trackedEvents: [AnalyticsSectionEvent] { get }
func initialize(application: UIApplication, launchOptions: [UIApplication.LaunchOptionsKey: Any]?)
func track(event: AnalyticsEvent)
}
extension AnalyticsServiceType {
func shouldTrack(event: AnalyticsSectionEvent) -> Bool {
@seyhunak
seyhunak / DispatchGroup+Complete.swift
Created December 5, 2019 16:40 — forked from plummer/DispatchGroup+Complete.swift
DispatchGroup convenience wrapper for executing a series of blocks concurrently
import Foundation
extension DispatchGroup {
/// Completes a series of blocks and finally executes a completion handler.
///
/// - Parameters:
/// - label: An optional DispatchQueue label (defaults to bg)
/// - qos: An optional DipatchQos (defaults to background)
/// - blocks: The series of blocks to call.
@seyhunak
seyhunak / DynamicValue.swift
Last active September 6, 2019 11:22
DynamicValue
import Foundation
typealias CompletionHandler = (() -> Void)
class DynamicValue<T> {
var value : T {
didSet {
self.notify()
}
}