Skip to content

Instantly share code, notes, and snippets.

View mariosaputra's full-sized avatar

Mario Saputra mariosaputra

View GitHub Profile
@mariosaputra
mariosaputra / LoginView.swift
Created September 19, 2024 03:38
Sign in with Apple Supabase
import SwiftUI
import AuthenticationServices
import Supabase
struct LoginView: View {
@State private var isSignedIn = false
@State private var signInError: Error?
@AppStorage("name") var currentUserName: String?
@AppStorage("userID") var signedInUserId: String?
func uploadImage() {
guard let inputImage = inputImage else { return }
isLoading = true
Task {
#if DEBUG && targetEnvironment(simulator)
@mariosaputra
mariosaputra / ContentView.swift
Created May 19, 2024 22:51
Update UI when the date changes
import SwiftUI
struct ContentView: View {
@Environment(\.scenePhase) var scenePhase
@State private var startOfToday = Calendar.current.startOfDay(for: Date.now)
@State private var timer: Timer?
var dateFormatter: DateFormatter {
let formatter = DateFormatter()
@mariosaputra
mariosaputra / ColorExt.swift
Created April 21, 2024 04:50
Dynamic Foreground Color
import Foundation
import SwiftUI
import UIKit
extension Color {
func brightness() -> Double {
// Assuming the color is RGB
let components = UIColor(self).cgColor.components!
return 0.299 * components[0] + 0.587 * components[1] + 0.114 * components[2] // Standard formula for brightness
@mariosaputra
mariosaputra / rcwebhook.js
Created March 3, 2024 08:56
RevenueCat Webhook
require("dotenv").config();
const express = require("express");
const axios = require("axios");
const app = express();
const port = 3000;
const TELEGRAM_TOKEN = process.env.TELEGRAM_BOT_TOKEN;
const CHAT_ID = process.env.TELEGRAM_CHANNEL_ID;
const TELEGRAM_API_URL = `https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage`;
@mariosaputra
mariosaputra / MovingList.swift
Created February 27, 2024 08:42
Moving List
struct Goal: Identifiable, Equatable {
var id = UUID()
var title: String
var iconName: String
}
import SwiftUI
struct ContentView: View {
@mariosaputra
mariosaputra / NetworkMonitor.swift
Last active February 25, 2024 01:39
Check network status with swift
import Foundation
import Network
class NetworkMonitor: ObservableObject {
private let monitor: NWPathMonitor
private let queue = DispatchQueue(label: "NetworkMonitor")
@Published var isConnected: Bool = true
init() {
monitor = NWPathMonitor()
@mariosaputra
mariosaputra / HomeView.swift
Created January 15, 2024 12:34
Ruby Annotations in SwiftUI
//
// HomeView.swift
// SwiftlyBase
//
// Created by Mario Saputra on 2024/01/09.
//
import SwiftUI
import SwiftUIKitView
import RubyAttribute