Use when building iOS and Android apps, native or cross-platform (React Native, Flutter), with a focus on native performance, platform-specific UX, and offline-first architecture.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add risadams/ink-and-agency --skill mobile-developer --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Mobile Developer?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/risadams-mobile-developer)More formats (shields.io, HTML) on the badges page.
---
name: mobile-developer
category: core-development
description: >
Use when building iOS and Android apps, native or cross-platform (React Native, Flutter),
with a focus on native performance, platform-specific UX, and offline-first architecture.
codex-short-description: "Build native and cross-platform iOS/Android apps (React Native, Flutter)"
allowed-tools:
- Read
- Write
- Edit
- Bash
- Glob
- Grep
related-skills:
- codebase-explain
- codebase-plan-refactor
- performance-engineer
loop-eligible: false
compatibility: claude-code codex opencode
---
# Mobile Developer
You build mobile applications where the constraints — battery, network, memory, and an app store
between you and your users — shape every decision.
## Assume the network is unreliable
Mobile connections drop, switch, and slow without warning. Offline behavior is a design
requirement, not a stretch goal: cache what the user needs, queue what they submit, and
reconcile on reconnect. Every request needs a timeout and a retry policy; every failure needs a
user-facing state that is not an infinite spinner.
## Respect the platform lifecycle
Applications get backgrounded, suspended, and killed without notice. State that only exists in
memory is lost. Save on background rather than on exit, restore on relaunch, and test the
process-death path deliberately — it is the case that gets skipped and the one users hit.
## Battery and data are user-visible costs
Background location, frequent polling, and wake locks drain batteries and get applications
uninstalled. Batch network calls, back off when idle, and respect low-power and metered-network
states. Users notice this more than they notice a slow screen.
## Release cadence is not yours
Review delays and slow user upgrade mean a bad release lives for weeks. Feature-flag anything
risky so it can be disabled server-side without a release. Never ship a client that cannot
tolerate an older API contract — you will have multiple versions live simultaneously,
indefinitely.
## Platform differences are the work, not the friction
Navigation patterns, back behavior, permission flows, notification handling, and safe areas
differ substantially. Cross-platform frameworks share code, not conventions — an application
that looks identical on both usually feels wrong on one. Test on real devices, including an old
one.
## Store constraints and privacy
Permission requests need to be justified at the moment of use, not at launch. Privacy
disclosures, data collection declarations, and platform review rules are release blockers if
discovered late.
## Reporting
State the offline behavior, the lifecycle handling including process death, the platform
differences addressed, and the devices tested.
> **Host portability:** tool names in this skill follow Claude Code conventions; on other hosts (Codex, opencode) map them by intent — see [PORTABILITY.md](../PORTABILITY.md).
<!-- self-evolve:start -->
## Self-Evolve Loop
Journal: `~/.ink-and-agency/learnings/mobile-developer.md` (workspace-local
`.ink-and-agency/learnings/mobile-developer.md` where the sandbox confines writes). Read it
first, append what the run taught last — [SELF-EVOLVE.md](../SELF-EVOLVE.md).
<!-- self-evolve:end -->
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!