Skip to content

Instantly share code, notes, and snippets.

View damodarnamala's full-sized avatar

Damodar damodarnamala

  • Hyderabad
View GitHub Profile
@damodarnamala
damodarnamala / UIApplication+Extensions.swift
Created September 15, 2022 18:40 — forked from DanielCardonaRojas/UIApplication+Extensions.swift
UIApplication extensions. Bundle marketing and build versions
extension UIApplication {
static var appVersion: String? {
return Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String
}
static var buildVersion: String? {
return Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String
}
static var fullVersion: String? {
@damodarnamala
damodarnamala / UIStackViews.swift
Created September 15, 2022 18:43 — forked from rolandleth/UIStackViews.swift
SwiftUI influences in UIKit
import UIKit
class VStack: UIStackView {
init(alignment: UIStackView.Alignment = .fill, spacing: CGFloat = 10, _ arrangedViews: UIView...) {
super.init(frame: .zero)
axis = .vertical
self.alignment = alignment
self.spacing = spacing
@damodarnamala
damodarnamala / Data+PrettyPrint.swift
Created September 15, 2022 18:54 — forked from cprovatas/Data+PrettyPrint.swift
Pretty print JSON string from Data in Swift 4.1 (especially useful printing to Xcode console)
import Foundation
extension Data {
var prettyPrintedJSONString: NSString? { /// NSString gives us a nice sanitized debugDescription
guard let object = try? JSONSerialization.jsonObject(with: self, options: []),
let data = try? JSONSerialization.data(withJSONObject: object, options: [.prettyPrinted]),
let prettyPrintedString = NSString(data: data, encoding: String.Encoding.utf8.rawValue) else { return nil }
return prettyPrintedString
}
@damodarnamala
damodarnamala / Demo.swift
Created September 15, 2022 18:56 — forked from AliSoftware/Demo.swift
NestableCodingKey: Nice way to define nested coding keys for properties
struct Contact: Decodable, CustomStringConvertible {
var id: String
@NestedKey
var firstname: String
@NestedKey
var lastname: String
@NestedKey
var address: String
enum CodingKeys: String, NestableCodingKey {
@damodarnamala
damodarnamala / Activity.swift
Created September 15, 2022 18:59 — forked from zwaldowski/Activity.swift
os_activity_t for Swift 3
//
// Activity.swift
//
// Created by Zachary Waldowski on 8/21/16.
// Copyright © 2016 Zachary Waldowski. Licensed under MIT.
//
import os.activity
private final class LegacyActivityContext {
final class Loader: BindableObject {
let didChange = PassthroughSubject<Data?, Never>()
var task: URLSessionDataTask!
var data: Data? = nil {
didSet {
didChange.send(data)
}
}
init(_ url: URL) {
@damodarnamala
damodarnamala / AutoLayoutDSL.swift
Created September 16, 2022 03:22 — forked from V8tr/AutoLayoutDSL.swift
Auto Layout DSL
import UIKit
/// Represents a single `NSLayoutConstraint`
enum LayoutAnchor {
case constant(attribute: NSLayoutConstraint.Attribute,
relation: NSLayoutConstraint.Relation,
constant: CGFloat)
case relative(attribute: NSLayoutConstraint.Attribute,
relation: NSLayoutConstraint.Relation,
@damodarnamala
damodarnamala / ContentView.swift
Created September 16, 2022 03:25 — forked from mshafer/ContentView.swift
Slide-over card (like in Maps or Stocks) using SwiftUI
import SwiftUI
struct ContentView : View {
var body: some View {
ZStack(alignment: Alignment.top) {
MapView()
SlideOverCard {
VStack {
CoverImage(imageName: "maitlandbay")
Text("Maitland Bay")
@damodarnamala
damodarnamala / collectionview.swift
Created September 16, 2022 03:28 — forked from chriseidhof/collectionview.swift
SwiftUI Flow Layout
//
// ContentView.swift
// DeleteMe
//
// Created by Chris Eidhof on 02.02.21.
//
import SwiftUI
/*
// Authoer: The SwiftUI Lab
// Full article: https://swiftui-lab.com/scrollview-pull-to-refresh/
import SwiftUI
struct RefreshableScrollView<Content: View>: View {
@State private var previousScrollOffset: CGFloat = 0
@State private var scrollOffset: CGFloat = 0
@State private var frozen: Bool = false
@State private var rotation: Angle = .degrees(0)