Skip to content

Instantly share code, notes, and snippets.

View gubikmic's full-sized avatar

Michael Gubik gubikmic

View GitHub Profile
@nandorojo
nandorojo / widget.md
Last active May 9, 2025 08:19
How to create an iOS Widget with React Native (Expo / EAS)

First, copy the config plugin from this repo: https://github.com/gaishimo/eas-widget-example

You can reference my PRs there too (which, at the time of writing, aren't merged).

After adding the config plugin (see app.json) with your dev team ID, as well as a bundle ID, you can edit the widget folder to edit your code. Then npx expo run:ios (or npx expo run:android).

Workflow

After npx expo run:ios, open the ios folder, and open the file that ends in .xcworkspace in XCode. Make sure you have the latest macOS and XCode versions. If you don't, everything will break.

@cupnoodle
cupnoodle / IAPHelper.swift
Created July 21, 2020 09:51
In app purchase helper class
// Created by Soulchild on 21/07/2020.
// Copyright © 2020 fluffy. All rights reserved.
//
import Foundation
import StoreKit
// Need to install the TPInAppReceipt library first
import TPInAppReceipt
@bonniss
bonniss / better-sqlite3-cheatsheet.md
Last active April 23, 2025 10:16
better-sqlite3 cheatsheet

Refs:

// Init new db
// If the database file does not exist, it is created
// This happens synchronously, which means you can start executing queries right away
const Database = require('better-sqlite3');
@ddeveloperr
ddeveloperr / namecheap-netlify-dns-configuration.txt
Last active November 1, 2023 09:42
Netlify custom domain dns configuration with domain from namecheap
Please follow these steps to point your domain name from namecheap domain to the Netlify nameservers:
- Having logged into Namecheap account, go to your Domain List -> click 'Manage' next to the domain website.com -> locate the 'Nameservers' section;
- Choose ‘Custom DNS’ in the drop-down menu;
- Fill in your custom nameservers into empty lines;
4 lines in total :
dns1.p03.nsone.net
dns2.p03.nsone.net
dns3.p03.nsone.net
@jepers
jepers / hexdump.swift
Last active April 14, 2019 11:15
Like hexdump -C but in Swift 4.1
import Foundation
/// Writes a canonical hex+ASCII representation of `bytes` into `output`.
func hexdump<Target>(_ bytes: UnsafeRawBufferPointer, to output: inout Target)
where Target: TextOutputStream
{
guard bytes.count > 0 else { return }
var asciiString = ""
@d-a-n
d-a-n / EuropeaniOSDevConferences2018.md
Last active October 8, 2018 11:45
European iOS Dev Conferences for 2018

European iOS Dev Conferences for 2018

Dates Conference Location
Jan 29. dotSwift Paris
March 15. - 16. appdevcon Amsterdam
March 22. - 23. iOSCon London
April 16. - 17. Appbuilders Lugano
May 08. - 11. Craft-Conf Budapest
May 13. - 16. UIKonf Berlin
@gboudreau
gboudreau / AuthyToOtherAuthenticator.md
Last active May 12, 2025 11:23 — forked from Ingramz/AuthyToOtherAuthenticator.md
Export TOTP tokens from Authy

Exporting your 2FA tokens from Authy to transfer them into another 2FA application

IMPORTANT - Update regarding deprecation of Authy desktop apps

Past August 2024, Authy stopped supported the desktop version of their apps:
See Authy is shutting down its desktop app | The 2FA app Authy will only be available on Android and iOS starting in August for details.

And indeed, after a while, Authy changed something in their backend which now prevents the old desktop app from logging in. If you are already logged in, then you are in luck, and you can follow the instructions below to export your tokens.

If you are not logged in anymore, but can find a backup of the necessary files, then restore those files, and re-install Authy 2.2.3 following the instructions below, and it should work as expected.

@steipete
steipete / ios-xcode-device-support.sh
Last active May 11, 2025 13:30
Using iOS 15 devices with Xcode 12.5 (instead of Xcode 13)
# The trick is to link the DeviceSupport folder from the beta to the stable version.
# sudo needed if you run the Mac App Store version. Always download the dmg instead... you'll thank me later :)
# Support iOS 15 devices (Xcode 13.0) with Xcode 12.5:
sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/15.0 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
# Then restart Xcode and reconnect your devices. You will need to do that for every beta of future iOS versions
# (A similar approach works for older versions too, just change the version number after DeviceSupport)
@michaeldorner
michaeldorner / gist:746c659476429a86a9970faaa6f95ec4
Last active December 15, 2024 10:49 — forked from rgcottrell/gist:5b876d9c5eea4c9e411c
An FM Synthesizer in Swift using AVAudioEngine
import AVFoundation
import Foundation
// The single FM synthesizer instance.
private let gFMSynthesizer: FMSynthesizer = FMSynthesizer()
public class FMSynthesizer {
@mcmurrym
mcmurrym / MirrorDebugDecscription.swift
Last active October 3, 2024 14:09
A default protocol implementation for CustomDebugStringConvertible that uses Mirror for introspection
public extension CustomDebugStringConvertible {
var debugDescription: String {
return debugDescription()
}
func debugDescription(_ indentationLevel: Int = 0, includeType: Bool = true) -> String {
let indentString = (0..<indentationLevel).reduce("") { tabs, _ in tabs + "\t" }
var s: String