Skip to content

Instantly share code, notes, and snippets.

View byaruhaf's full-sized avatar
🏄
Surfing Xcode

Franklin Byaruhanga byaruhaf

🏄
Surfing Xcode
View GitHub Profile
import SwiftUI
struct FullScreenView: View {
@Environment(\.dismiss) var dismiss
@State private var name = "Taylor"
var body: some View {
ZStack {
Color.primary.edgesIgnoringSafeArea(.all)
VStack {
@byaruhaf
byaruhaf / PhotosGridViewDraggableX.swift
Last active November 3, 2023 23:19
PhotosGridViewDraggableX
//
// ContentView.swift
// TestDrag
//
// Created by Franklin Byaruhanga on 23/09/2023.
//
import SwiftUI
struct ColorItemView: View {
@byaruhaf
byaruhaf / libs.versions.toml
Created September 16, 2023 16:16 — forked from BobbyESP/libs.versions.toml
A very complete TOML file for Android Development mainly thought for the new Jetpack Compose framework
[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"
Company:
Role:
Full-time:
Remote OK:
Sponsorship:
Salary Range: [Actual range, not "Based on experience or skillset, location" or so forth]
Contact:
Location:
Relocation Assistance:
Brief Description:
@byaruhaf
byaruhaf / Searchable_iOS16.swift
Created July 18, 2023 00:31 — forked from marcoarment/Searchable_iOS16.swift
Backporting iOS 17's SwiftUI .searchable($isPresented) binding for iOS 16
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
//
// WheelView.swift
// ShowcaseShareCard
//
// Created by Ryan Gittings on 10/07/2023.
//
import SwiftUI
struct ContentView: View {
@byaruhaf
byaruhaf / LocalNotifications.swift
Created June 30, 2023 23:08 — forked from SwiftfulThinking/LocalNotifications.swift
Local Push Notifications for iOS (incl. convenience methods and async support)
import Foundation
import UIKit
import UserNotifications
import CoreLocation
enum NotificationTriggerOption {
case date(date: Date, repeats: Bool)
case time(timeInterval: TimeInterval, repeats: Bool)
case location(coordinates: CLLocationCoordinate2D, radius: CLLocationDistance, notifyOnEntry: Bool, notifyOnExit: Bool, repeats: Bool)
@byaruhaf
byaruhaf / Query+AsyncTrowingStream.swift
Created June 28, 2023 01:19 — forked from yimajo/Query+AsyncTrowingStream.swift
Wrap Firestore's addSnapshotListner method for use with AsyncThrowingStream.
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
@byaruhaf
byaruhaf / Query+Result.swift
Created June 28, 2023 01:19 — forked from yimajo/Query+Result.swift
FirebaseFirestore Query Snapshot listener to Result conversion wrapper.
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 {
import SwiftUI
struct CodeTesting: View {
@State private var presentView:Bool = false
@State private var date: Date = .init()
var body: some View {
VStack(alignment: .center) {
Button {
withAnimation(.easeOut) {