Skip to content

Instantly share code, notes, and snippets.

View Codelaby's full-sized avatar

Codelaby Codelaby

View GitHub Profile
import Foundation
fileprivate extension String {
func containsConsecutiveCharacters(length: Int) -> Bool {
let characters = Array(self)
for i in 0..<(characters.count - length + 1) {
let substring = String(characters[i..<(i + length)])
if substring.allSatisfy({ $0 == substring.first }) {
return true
}
import SwiftUI
import AuthenticationServices
class AppleAuthViewModel: ObservableObject {
@Published var shouldShowAlert: Bool = false
@Published var alertTitle: String = ""
@Published var alertMessage: String = ""
//get notified when autherization state gets change
init() {
import SwiftUI
struct CustomGlyphPicker: View {
@State private var name: String = "Default Name"
@State private var selectedImage: String = "defaultImage"
@State private var images: [String] = [
"face.smiling.inverse",
"list.bullet",
"house.fill",
"star.fill",
@Codelaby
Codelaby / ContentView.swift
Created October 22, 2024 21:56 — forked from Lofionic/ContentView.swift
Shader fun
import SwiftUI
struct ContentView: View {
@State private var start = Date.now
var body: some View {
VStack {
TimelineView(.animation) { timeline in
let time = start.distance(to: timeline.date)
Rectangle()
@Codelaby
Codelaby / RemotePhotoDemoModel.swift
Last active October 22, 2024 13:53
Prefetch big images
struct RemotePhotoDemoModel: Identifiable {
let id: UUID = .init()
let image: String
var imageData: Data?
static let allPhotos: [RemotePhotoDemoModel] = [
//RemotePhotoDemoModel(image: "https://images.unsplash.com/photo-1531737212413-667205e1cda"), // error sample
RemotePhotoDemoModel(image: "https://images.unsplash.com/photo-1510001618818-4b4e3d86bf0f"),
RemotePhotoDemoModel(image: "https://images.unsplash.com/photo-1504284992506-f6d82d0f2f2a"),
RemotePhotoDemoModel(image: "https://images.unsplash.com/photo-1465447142348-e9952c393450"),
import SwiftUI
import MetalKit
struct Particle {
let color: SIMD4<Float>
let radius: Float
let lifespan: Float
let position: SIMD2<Float>
let velocity: SIMD2<Float>
}
@Codelaby
Codelaby / gist:859d6601e497dc15b068ab98527a343b
Created October 3, 2024 13:14
timezone_playground.swift
import SwiftUI
fileprivate extension Date.FormatStyle {
func withTimeZone(_ timeZone: TimeZone?) -> Date.FormatStyle {
var copy = self
if let timeZone = timeZone {
copy.timeZone = timeZone
}
return copy
}
@Codelaby
Codelaby / DemoSplashScreen.swift
Created September 23, 2024 09:14
Demo SplaschScreen
import SwiftUI
struct SplashScreen: View {
var body: some View {
ZStack {
Rectangle().fill(Color.blue.gradient)
Image(systemName: "apple.logo")
.resizable()
@Codelaby
Codelaby / tmd_movie.json
Created August 23, 2024 09:24
TMD Movie json
{
"adult": false,
"backdrop_path": "/ifUfE79O1raUwbaQRIB7XnFz5ZC.jpg",
"belongs_to_collection": {
"id": 2602,
"name": "Scream Collection",
"poster_path": "/p3EjClFy20jjT0u06dzBs4lvvhi.jpg",
"backdrop_path": "/oUcscMECv8DOBsAPCh3KnDZqAC4.jpg"
},
"budget": 24000000,
//
// CoverFlowCarousel.swift
// ClockSample
//
// Created by Codelaby on 25/7/24.
//
import SwiftUI
//RandomAccessCollection & MutableCollection & RangeReplaceableCollection & Equatable & Hashable
struct CoverFlowCarousel<Content: View, Data: RandomAccessCollection>: View where Data.Element: Identifiable {