This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Extension+Logger.swift | |
// | |
// Created by Robert DeLaurentis on 3/13/24. | |
// Last Modified on 10/4/24. | |
// https://gist.github.com/bobdel/8baab707f7532fa61994a1718b96aa8f | |
///** | |
/// General purpose global logging and signpost configuration file | |
/// tested on Xcode 16, iOS 18, Swift 6 toolchain, and strict concurrency |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
import StoreKit | |
enum ProductsId: String { | |
case subsWeekly24 = "WeeklyId" | |
case subsAnnual24 = "AnnualId" | |
} | |
@MainActor | |
class PurchaseManager: NSObject, ObservableObject { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import androidx.compose.animation.AnimatedContent | |
import androidx.compose.animation.core.tween | |
import androidx.compose.animation.fadeIn | |
import androidx.compose.animation.fadeOut | |
import androidx.compose.animation.togetherWith | |
import androidx.compose.runtime.Composable | |
sealed class RequestState<out T> { | |
data object Idle : RequestState<Nothing>() | |
data object Loading : RequestState<Nothing>() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import SwiftUI | |
extension View { | |
public func searchable_iOS16(text: Binding<String>, isPresented: Binding<Bool>, placement: SearchFieldPlacement) -> some View { | |
modifier(Searchable_iOS16(text: text, isPresented: isPresented, placement: placement)) | |
} | |
} | |
public struct Searchable_iOS16: ViewModifier { | |
@Binding var text: String |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[versions] | |
accompanist = "0.29.2-rc" | |
androidGradlePlugin = "7.4.2" | |
androidxComposeBom = "2023.01.00" | |
androidxComposeCompiler = "1.4.6" | |
androidxCore = "1.10.0-rc01" | |
androidMaterial = "1.9.0-alpha02" | |
androidxAppCompat = "1.7.0-alpha02" | |
androidxActivity = "1.7.1" | |
markdownDependency = "0.3.2" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import FirebaseFirestore | |
// MARK: - async | |
extension Query { | |
func addSnapshotListener<T>( | |
includeMetadataChanges: Bool = false | |
) -> AsyncThrowingStream<[T], Error> where T: Decodable{ | |
.init { continuation in | |
let listener = addSnapshotListener(includeMetadataChanges: includeMetadataChanges) { result in |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// CacheAsyncImage.swift | |
// | |
// Created by Costantino Pistagna on 08/02/23. | |
// | |
import SwiftUI | |
struct CacheAsyncImage<Content, Content2>: View where Content: View, Content2: View { | |
private let url: URL? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import FirebaseFirestore | |
@available(swift 5.0) | |
public extension Query { | |
func addSnapshotListener( | |
includeMetadataChanges: Bool = false, | |
listener: @escaping (Result<QuerySnapshot, Error>) -> () | |
) -> some ListenerRegistration { | |
addSnapshotListener(includeMetadataChanges: includeMetadataChanges) { snapshot, error in | |
if let error { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// DebouncingTextField.swift | |
// LocationSearchResults | |
// | |
// Created by Labtanza on 8/13/22. | |
// https://stackoverflow.com/questions/66164898/swiftui-combine-debounce-textfield | |
// https://stackoverflow.com/questions/62635914/initialize-stateobject-with-a-parameter-in-swiftui | |
import SwiftUI |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* This file containes interfaces that represent the content of the | |
* webhook request's body. I won't be using all of these but figured | |
* someone might find this useful one day <3 | |
* | |
* Copyright (C) 2022 Joseph Diragi | |
* | |
* This program is free software: you can redistribute it and/or modify | |
* it under the terms of the GNU General Public License as published by | |
* the Free Software Foundation, either version 3 of the License, or |
NewerOlder