Skip to content

Instantly share code, notes, and snippets.

View jamonholmgren's full-sized avatar

Jamon Holmgren jamonholmgren

View GitHub Profile
@jamonholmgren
jamonholmgren / react-native-macos-release-notes-0.79.0.md
Created April 9, 2025 18:47
This is just a sample release note for react-native-macos

React Native for macOS 0.79 released!

We are happy to announce that React Native macOS 0.79 is now available! This brings us in alignment with the main React Native version.

Highlights

  • Faster Metro startup time
  • JSC is now a community package
  • Swift-Compatible native modules
  • Removed remote JS debugging
@jamonholmgren
jamonholmgren / Trees.gd
Created March 15, 2025 23:14
Godot 4.4 MultiMeshInstance3D Tree scattering implementation
@tool
class_name Trees extends MultiMeshInstance3D
# Dimensions of the area to scatter the trees
@export var width: float = 2000.0
@export var height: float = 2000.0
@export var terrain: Terrain3D = null
@export var tree_spread_region_size: float = 20000.0
@jamonholmgren
jamonholmgren / 0-JamminList.md
Last active March 3, 2025 06:55
Easily maintain lists of items in regular UI nodes or GridContainers in Godot 4.x with JamminList

JamminList

In Godot's 2D UI, I often find myself needing to dynamically add and subtract rows of data (such as in a multiplayer lobby system, an inventory system, etc).

JamminList makes updating lists and grids really easy! Build your UI and provide a template row (and an optional header row), along with a function to update every item in the list/grid, and then let JamminList do the rest.

JamminList.update_list(nodes: Array[Node], items: Array[Variant], header: bool, update_func: Callable)

Example:

@jamonholmgren
jamonholmgren / Sync.gd
Last active February 20, 2025 05:54
*In-progress, doesn't work (yet).* A simpler sync system for Godot.
class_name JamminSync extends Node
# In-progress, doesn't work (yet).
# A simpler sync system for Godot.
# Add as an autoload named "Sync" or let JamminSync handle it.
# Usage:
# Sync.sync_prop_reliable(self, "prop_name")
# Sync.sync_prop_unreliable(self, "prop_name")
@export var log_syncs: bool = true
@jamonholmgren
jamonholmgren / Deconstructible.gd
Created December 30, 2024 10:25
Godot 4.3 Deconstructible subclass for CollisionShape3D. Lets you deconstruct subnodes from RigidBody3D's (etc) and have them lifelessly fall to the ground.
# Allows a model to be deconstructed into various parts with physics
# Attached to a CollisionShape3D, which has a reference to a node that it'll
# deconstruct with.
# Just set this as the script of any CollisionShape3Ds that you want to do this
# with and then edit the nodes in your editor
class_name Deconstructible extends CollisionShape3D
# Any nodes you want removed from the original parent and
# added to the new RigidBody3D parent
@export var parts: Array[Node3D] = []

Lobby API Documentation

The Lobby node handles Godot 4.x multiplayer game session management, including hosting, joining, and basic player state synchronization.

You can use this to

Setup

  1. Copy all 3 files (Lobby.gd, LobbyClient.gd, and LobbyServer.gd) into your project
  2. Make Lobby.gd a Global in Project Settings and name it "Lobby"
@jamonholmgren
jamonholmgren / react-native-skills.md
Created November 7, 2024 20:58
Important React Native skills - as of 2024

In rough order, skills that I find important for React Native developers:

  • React fundamentals -- JSX, useState, useEffect, useMemo, useContext, useRef, providers
  • Other useful React APIs
  • TypeScript
  • Expo & Expo ecosystem
  • State management (at least 1)
  • React Navigation
  • Debugging skills, tools
  • AI coding assistants familiarity
@jamonholmgren
jamonholmgren / not-authorized-system-events.md
Created November 1, 2024 22:04
execution error: Not authorized to send Apple events to System Events.

I just ran into this error when trying to run an Expo / React Native app:

28:69: execution error: Not authorized to send Apple events to System Events. (-1743)

This issue is relevant, but locked so I can't add info to it:

expo/expo#1966

You are an email prioritization assistant. Analyze the following email and determine its priority level.
Consider these factors for priority classification:
GENERAL FACTORS:
- Sender importance and relationship
- Time sensitivity of the content
- Required actions or responses
- Impact of delayed response
- Complexity of the request
@jamonholmgren
jamonholmgren / rubymotion-post.md
Last active August 28, 2024 15:58
Forum post that I made about RubyMotion in Jan 2016

(Fetched from https://web.archive.org/web/20171113033553/http://community.rubymotion.com/t/so-react-native-impacts-on-rubymotion/1363)

So, React-Native -- impacts on RubyMotion

Bill - 2016-01-25 15:36:44 UTC

Really don't want to stir up controversy here, but what impacts are we as a community facing or expecting from React-Native? The React-Native story seems compelling, but I have a deep aversion to JavaScript in all its forms and variants. It's one reason I'm doing RubyMotion rather than Rails. 😏

I confess to being at least slightly concerned/disturbed by the significant interest being shown in it by Infinite Red, who have produced gems I rely on. I'm fairly distanced from the broader reaches of the tech community (the nice way to say I'm narrowly focused, I guess) so have no clue how this is landing in the development world at large. But I'm concerned for RubyMotion as I find it a wonderful platform for iOS development. I'm expecting the same to emerge for Android as the various gems prolife