Files
AgentCompany/builtin-skills/iOS-Dev/mobile-development/SKILL.md
T
ZacharyZhang-NY e74dafcd36 Silence render-disposed spam, unbreak bundled skills, drop board wake
Three independently ugly bugs that all fed the same log flood:

* Electron's `WebFrameMain.send` writes every "Render frame was disposed"
  to stderr via `console.error`. When the worker fans a second
  agent-event past a reloading renderer, we produced thousands of
  identical lines and stalled the main loop on stderr I/O. Added a
  `mainFrame.detached` guard so the send is short-circuited before
  Electron's own catch block fires, and installed a targeted filter in
  `suppress-warnings.ts` (now actually imported from the entry point)
  so the specific `console.error("Error sending from webFrameMain:"…)`
  noise never reaches the terminal. Any other payload still surfaces.

* `dispatchAgentMessage` accepted the human-reader sentinel as a wake
  target when an agent replied to `__board__` — `wakeAgentIfPossible`
  then called `db.getAgent("__board__")`, threw, and the dispatcher
  kept repeating on every send. Strip `HUMAN_SENDER_ID` at
  `resolveMessageWakeTargets`, and keep a defense-in-depth guard in the
  heartbeat so a stray caller (future automation fan-out) cannot
  reintroduce the crash.

* Pi's skills loader rejects any SKILL.md whose frontmatter `name`
  diverges from its parent directory. The four bundled `my-writing-style`
  copies declared `name: writing-style-skill`, so every install emitted
  a warning and dropped the skill. They also lived as orphan gitlinks
  (mode 160000 without .gitmodules), and the global `*.md` gitignore
  hid every other SKILL.md from version control. Fixed the frontmatter
  to match the dir, converted the dangling submodules to plain trees,
  and allowlisted `builtin-skills/**/*.md` so a fresh clone carries the
  catalogue instead of silently losing it.
2026-04-20 08:13:48 -04:00

5.9 KiB

name, description, triggers, parameters, outputs, retry, observability, level, prerequisites, sasmp_version, bonded_agent, bond_type
name description triggers parameters outputs retry observability level prerequisites sasmp_version bonded_agent bond_type
mobile-development iOS (Swift, SwiftUI), Android (Kotlin, Compose), cross-platform (Flutter, React Native), and game development (Unity, Unreal).
ios
android
flutter
react native
mobile
swift
kotlin
unity
game development
platform project_type
type enum required
string
ios
android
cross-platform
games
true
type required description
string false Type of app (social, productivity, game, etc.)
recommended_stack learning_path portfolio_projects
type
object
type
array
type
array
max_attempts backoff
3 exponential
log_level
info
advanced
core-development
1.3.0 01-core-paths PRIMARY_BOND

Mobile Development Skill

Quick Reference

Platform Language Framework Timeline Job Market
iOS Swift SwiftUI 6-9 mo High
Android Kotlin Compose 6-9 mo High
Cross-Platform Dart Flutter 4-6 mo Growing
Games C# Unity 12-24 mo Moderate

Learning Paths

iOS Development

[1] Swift Fundamentals (4-6 wk)
 │  └─ Types, optionals, closures, protocols
 │
 ▼
[2] SwiftUI (4-6 wk)
 │  └─ Views, modifiers, state, binding
 │
 ▼
[3] Navigation + Data (3-4 wk)
 │  └─ NavigationStack, SwiftData/Core Data
 │
 ▼
[4] Networking + Async (2-3 wk)
 │  └─ URLSession, async/await, Combine
 │
 ▼
[5] Testing + App Store (2 wk)
    └─ XCTest, TestFlight, submission

2025 Stack: Swift 5.10 + SwiftUI + SwiftData + Xcode 16


Android Development

[1] Kotlin Fundamentals (4-6 wk)
 │  └─ Null safety, coroutines, data classes
 │
 ▼
[2] Jetpack Compose (4-6 wk)
 │  └─ Composables, state, effects
 │
 ▼
[3] Architecture (3-4 wk)
 │  └─ MVVM, Room, Navigation
 │
 ▼
[4] Networking + DI (2-3 wk)
 │  └─ Retrofit, Hilt, Flow
 │
 ▼
[5] Testing + Play Store (2 wk)
    └─ JUnit, Espresso, release

2025 Stack: Kotlin 2.0 + Jetpack Compose + Room + Hilt


Flutter (Cross-Platform)

[1] Dart Fundamentals (2-3 wk)
 │
 ▼
[2] Flutter Widgets (3-4 wk)
 │
 ▼
[3] State Management (2-3 wk)
 │  └─ Riverpod or Bloc
 │
 ▼
[4] Backend Integration (2 wk)
 │  └─ Firebase, REST APIs
 │
 ▼
[5] Deploy to Both Stores (1 wk)

2025 Stack: Flutter 3.x + Dart 3.x + Riverpod + Firebase


Game Development

[1] Game Basics (4-6 wk)
 │  └─ Game loop, input handling
 │
 ▼
[2] Unity/C# Fundamentals (6-8 wk)
 │  └─ GameObjects, Components, Scripts
 │
 ▼
[3] Physics + Graphics (4-6 wk)
 │  └─ Rigidbody, colliders, shaders
 │
 ▼
[4] Audio + Polish (2-4 wk)
 │
 ▼
[5] Publish (ongoing)
    └─ Steam, App Store, Play Store

2025 Stack: Unity 6 LTS + C# OR Unreal 5.4 + C++


Platform Decision Tree

Which platform?
│
├─► Apple ecosystem only?
│   └─► iOS (Swift + SwiftUI)
│
├─► Android ecosystem only?
│   └─► Android (Kotlin + Compose)
│
├─► Both platforms?
│   ├─► Performance-critical? → Native for both
│   ├─► Budget/time limited? → Flutter
│   └─► Web developer background? → React Native
│
└─► Making games?
    ├─► 2D/3D indie → Unity
    ├─► AAA quality → Unreal
    └─► Simple 2D → Godot

Game Engine Comparison

Engine Market Language Learning Best For
Unity 51% C# Medium Indie, mobile, VR
Unreal 31% C++/BP Hard AAA, high-fidelity
Godot 10% GDScript Easy Indie, 2D

Troubleshooting

Native vs Cross-platform?
├─► Need platform-specific APIs (HealthKit, ARCore)? → Native
├─► Performance-critical (AR/VR, complex animations)? → Native
├─► Budget or time limited? → Flutter
├─► Team knows JavaScript? → React Native
└─► Starting from scratch? → Flutter (best DX)

Simulator works, device doesn't?
├─► Missing entitlements/capabilities?
├─► Different iOS/Android version?
├─► Network connectivity issues?
└─► Always test on real devices from day 1

App rejected by store?
├─► Read rejection reason carefully
├─► Check App Store Review Guidelines
├─► Most common: metadata issues, crashes, spam
└─► Appeal if unjustified

Common Failure Modes

Symptom Root Cause Recovery
Slow UI Too many recompositions Profile, optimize state
Memory leaks Not cleaning up resources Use lifecycle-aware components
App rejected Guidelines violation Read guidelines BEFORE building
Game stutters Draw call overhead Object pooling, LOD, batching

Portfolio Projects

Mobile (Progressive)

  1. Todo App - CRUD basics
  2. Weather App - API integration
  3. Chat App - Real-time, auth
  4. Payment App - Stripe, security

Games

  1. 2D Platformer - Physics basics
  2. 3D Runner - 3D graphics, particles
  3. Multiplayer Game - Networking

Next Actions

Specify your target platform for a detailed learning plan.