Skip to content

Instantly share code, notes, and snippets.

View indyfromoz's full-sized avatar
🏠
Working from home

Indrajit Chakrabarty indyfromoz

🏠
Working from home
View GitHub Profile
@indyfromoz
indyfromoz / iOS-Tooling-For-Agents.md
Created November 1, 2026 19:25
iOS Tooling and Agents

Rules for Agents

  1. Never delete the iPhone 18 Pro (E4FFD953…). Create your own simulators for project setups, name them <Project> <purpose> (for example AppAlpha de-DE screenshots, or <Project> Slimmed for unit tests), and delete them when you're done.
  2. Wait until the simulator has fully booted before running tests. Run xcrun simctl bootstatus <UDID> -b first; it boots the simulator and returns only when it's ready. On a brand-new simulator, also let the first boot settle. Example: in RunwayBrief, two lock-timeout tests failed on a cold, brand-new simulator and passed 6/6 once it was warm.
  3. Always pass simulator UDIDs, never names. Duplicate names exist.
  4. Don't run xcodebuild test on a simulator someone set up by hand. It replaces the installed app. Ask first, or use another simulator.
  5. Keep both iOS 27.2 runtimes. 24B91016s isn't a duplicate: it's the Duo's separate UIKit fork. Use the Duo simulator only for Duo work. Take simulator screenshots only; never capture
@indyfromoz
indyfromoz / gist:ddcbe63a81fd41b36eab3514e33f8eca
Last active April 25, 2026 21:36
ChatGPT Mobile Design Prompt

https://x.com/justddev/status/2047047815361163309?s=20

create a clean, pastel mobile app design sheet for a [WHAT THE APP DOES] app called “[APP NAME]”

style:
soft pastel colors, warm modern UI, rounded cards, soft shadows, minimal but playful, iOS-style, consistent illustrations

layout:
title + mascot top left 
@indyfromoz
indyfromoz / AMAlbumDetailsView.swift
Created October 28, 2024 20:12 — forked from tarrouye/AMAlbumDetailsView.swift
Sample code replicating the album details / track list screen from Apple Music
struct AMAlbumDetailsView: View {
let albumArt: Image
let title: String
let artist: String
let genre: String
let releaseYear: String
let quality: String
let tracks: [String]
@State private var playingTrack: String?
@indyfromoz
indyfromoz / clean_android_studio.sh
Created April 21, 2023 02:52
Clean Android Studio installation
# Deletes the Android Studio application
rm -Rf /Applications/Android\ Studio.app
# Delete All Android Studio related preferences
# The asterisk here should target all folders/files beginning with the string before it
rm -Rf ~/Library/Preferences/AndroidStudio*
rm -Rf ~/Library/Preferences/Google/AndroidStudio*
# Deletes Studio's plist file
rm -Rf ~/Library/Preferences/com.google.android.*
# Deletes Emulator's plist file
rm -Rf ~/Library/Preferences/com.android.*
@indyfromoz
indyfromoz / VNC_Server_On_Ubuntu_22.04LTS.md
Last active April 29, 2026 20:54
VNC Server setup on Ubuntu 22.04 LTS

Setup

Install TigerVNC -

$ sudo apt install tigervnc-standalone-server

Configure VNC Server by running

@indyfromoz
indyfromoz / LICENSE
Created June 26, 2022 01:36 — forked from zach-klippenstein/SegmentedControl.kt
iOS-style segmented control in Compose
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
@indyfromoz
indyfromoz / DotsLoaders.kt
Created March 19, 2021 08:15 — forked from EugeneTheDev/DotsLoaders.kt
Dots loading animations with Jetpack Compose
import androidx.compose.animation.core.*
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@indyfromoz
indyfromoz / PreviewProviderModifier.swift
Created October 20, 2020 22:28 — forked from davidsteppenbeck/PreviewProviderModifier.swift
A SwiftUI view modifier for simple preview providers.
#if DEBUG
import SwiftUI
struct PreviewProviderModifier: ViewModifier {
/// Whether or not a basic light mode preview is included in the group.
var includeLightMode: Bool
/// Whether or not a basic dark mode preview is included in the group.
var includeDarkMode: Bool
import SwiftUI
import UIKit
private struct ColorConversionError: Swift.Error {
let reason: String
}
extension Color {
var uiColor: UIColor {