All skills
simota avatar

/native

@e307415
by shingo imotasimota/agent-skills85 stars
15

Implementing production iOS/Android/macOS native features (SwiftUI, Compose) and iterating a screen against a reference design. Not for cross-platform RN/Flutter (Port) or web (Artisan).

Use this Skill: https://skilld.dev/gh/simota/agent-skills/native

This session only. Nothing lands on disk.

referencerecipes.md

≈1.7k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Native Recipe Behavior Notes

Purpose: Key gotchas, thresholds, and runtime constraints per Recipe Subcommand. Read when: Activating a Recipe via subcommand dispatch and the "Read First" reference is loaded.

Each entry is a 1-line summary — load the Recipe's "Read First" reference (see SKILL.md ## Recipes table) for full implementation detail.


Recipe Behavior
swiftui iOS Swift 6.3 + @Observable + SwiftData/Core Data, T1 offline default, Liquid Glass on iOS 26 (chrome only). Concurrency: Xcode 26 default MainActor isolation ⇒ @MainActor implicit; mark off-main work @concurrent, helpers nonisolated, cross-actor types Sendable. List (not LazyVStack) for 1,000+ items; AsyncImage has no cache. Close with the SwiftUI VERIFY Gate (patterns.md) — strict-concurrency build + no main-thread blocking + chrome-only glass + #Preview.
compose Android Material 3 Expressive + Strong Skipping + Type-safe Navigation 2.8+, targetSdk 35/36, edge-to-edge day 1. Stability: Strong Skipping default ⇒ pass List<T> by reference; ImmutableList only on a measured recomposition problem (not reflexive). collectAsStateWithLifecycle() + key={it.id} mandatory. 16KB native libs (useLegacyPackaging=false). Close with the Compose VERIFY Gate (patterns.md) — lifecycle collect + measured stability + no deprecated M3 + edge-to-edge/predictive-back + Baseline Profile.
liquidglass iOS 26 adoption: new SwiftUI material APIs + 4-variant icons (Icon Composer) + dynamic tab-bar shrink + iOS 17/18 fallback. VERIFY: .glassEffect() on chrome only (never content); iOS 17/18 fallback path renders without glass; 4-variant icons exported via Icon Composer; recompiled on Xcode 26 (2026-04-28 submission deadline).
expressive M3 Expressive: replace deprecated BottomAppBar/indeterminate CircularProgressIndicator with FloatingToolbar/LoadingIndicator, spring motion, new shape library. VERIFY: zero deprecated BottomAppBar/indeterminate CircularProgressIndicator; spring motion on dismiss/shape-morph/predictive-back; BOM 2026.05 (M3 1.4+) pinned.
offline Per-domain T0-T3 tier → local DB → write queue → conflict policy (LWW / CRDT / server reconciliation). VERIFY: each domain's tier (T0-T3) is explicit not implicit; write queue is idempotent + retry-capped; conflict policy chosen (not defaulted); flush wired on network restore.
push iOS APNs + UNUserNotificationCenter + Live Activities (max 8h + 4h stale, ~4KB, no ads); Android FCM + Notification Channels + POST_NOTIFICATIONS runtime perm. Soft pre-prompt mandatory. VERIFY: soft pre-prompt before the system prompt (iOS first-denial is sticky); cadence ≤ ~1 user-visible/10 min (>3/day → opt-out risk); silent push never used for analytics; token-refresh PATCH wired.
deeplink Universal Links (AASA) + App Links (assetlinks.json) + Coordinator/NavController routing. Firebase Dynamic Links retired. Custom scheme = fallback only. VERIFY: AASA + assetlinks.json reachable at /.well-known/ with android:autoVerify="true"; Universal/App Link is primary (custom scheme fallback only); cold-start AND warm (onOpenURL/onNewIntent) both route; deferred deep link for post-install.
bg iOS BGTaskScheduler, Android WorkManager/JobScheduler. ~80% of OS window budget; plan Doze/App Standby/Low Power; Foreground Service Types on Android 14+. VERIFY: work completes within budget (iOS ~30s refresh / Android ≤10 min expedited); constraints set (network/charging); Foreground Service Type declared (Android 14+); tested under Doze/Low Power.
passkey Passkey (FIDO2/WebAuthn) default for new flows. iOS ASAuthorizationController + Secure Enclave + Keychain; Android Credential Manager. Sign in with Apple alongside any third-party social. VERIFY: Passkey is the default path for new sign-up; keys in Secure Enclave/Keychain (iOS) / Credential Manager (Android); Sign in with Apple offered whenever a third-party social login is (App Store 4.8); graceful fallback on unsupported devices.
privacy Apple Privacy Manifest + Required Reasons API (3rd-party SDKs since 2025-02-12); Google Data Safety form (all tracks). Hand off to Cloak. VERIFY: PrivacyInfo.xcprivacy Required Reasons declared for the app and every 3rd-party SDK; Data Safety form accurate on all tracks; DPIA / data-flow handed to Cloak.
rollout iOS TestFlight phased (1/10/50/100% over 7d); Android Play Staged (5/20/50/100%). Halt + hotfix on regression; server-driven flags as primary kill switch. VERIFY: server feature flag is the primary kill switch (native code is slow-rollback, store-mediated); halt criteria (crash-free %) defined before launch; hotfix path rehearsed; OTA-of-native is out of scope (CodePush/Shorebird are RN/Flutter only).
store Pre-submission compliance: Privacy Manifest, Data Safety, 5-tier Age Rating (in effect since 2026-01-31), DSA, DMA, Sign in with Apple, AI disclosure (5.1.2(i) + Play AI Content), Photo Picker, Foreground Service Types, Liquid Glass icon variants. VERIFY: every applicable item present pre-submission — Age Rating refreshed to the 5-tier system, Privacy Manifest + Data Safety, Sign in with Apple, AI disclosure, Photo Picker scope, Foreground Service Types, icon variants.
cli Terminal automation. iOS: xcrun-cli.md (simctl/devicectl/xctrace/xcresulttool/notarytool/atos). Android: adb-cli.md (pm/am/logcat/dumpsys/pair/Perfetto/monkey). adb reference includes iOS↔Android command map. VERIFY: commands are non-interactive + reproducible; artifacts captured to file (xcresult/Perfetto/logcat), not stdout-only; no hardcoded device/UDID — resolve dynamically.
visualloop Agent-in-the-loop screen work against a named target (reference image / token set / numeric spec). SPECIFY → IMPLEMENT → BUILD → OBSERVE → SCORE → ADJUST, ≤ 3 passes then escalate. Observe by accessibility tree first, pixels only for spacing/color/type. Tool layer: Xcode 26.3+ xcrun mcpbridge (RenderPreview) / XcodeBuildMCP (headless) / mobile-mcp / Android Studio Agent Mode + Match UI to Target Image. VERIFY: target is a named artifact, not "make it nice"; accept decision comes from a numeric diff (ImageMagick RMSE) with a threshold set before the loop; dynamic regions masked before scoring; one screen per loop; BUILD success gates OBSERVE (never score a stale binary); per-pass metric reported — an unscored visual claim is UNVERIFIED.

Source: SKILL.md on GitHub

No alerts13d4 checks · Risk SAFE
  • Gen Agent Trust Hub13d

    The skill is a high-quality engineering reference suite for native mobile and desktop development (iOS, Android, macOS). It provides detailed architectural patterns, CLI tool references, and compliance checklists. No malicious patterns, obfuscation, or insecure data handling were detected.

  • Socket13d

    No alerts

  • Snyk13d

    Risk: LOW · No issues

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at e307415. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated 2 weeks ago

README badge

README badge for simota/agent-skills/native