
Harmonyos App
This is a comprehensive guide for building HarmonyOS apps with the modern Stage model and ArkTS. It's laser-focused on the hard rules that trip up developers coming from other frameworks: strict typing with no dynamic types, immutable state updates for reactive UI, and proper component composition. You get practical patterns for state management decorators (@State, @Link, @Provide), a clear project architecture, and real code examples showing both the wrong and right way to handle common scenarios. If you're building for HarmonyOS NEXT or working with distributed capabilities, this covers the core patterns and gotchas you need to know upfront.
- skills.sh installs
- 366
- GitHub stars
- 153
- last updated
- Jun 3, 2026
Install
$ npx -y skills add majiayu000/claude-arsenal --skill harmonyos-app --agent claude-codeInstalls into .claude/skills of the current project.
Files
HarmonyOS Application Development
Core Principles
- ArkTS First — Use ArkTS with strict type safety, no
anyor dynamic types - Declarative UI — Build UI with ArkUI's declarative components and state management
- Stage Model — Use modern Stage model (UIAbility), not legacy FA model
- Distributed by Design — Leverage cross-device capabilities from the start
- Atomic Services — Consider atomic services and cards for lightweight experiences
- One-time Development — Design for multi-device adaptation (phone, tablet, watch, TV)
Hard Rules (Must Follow)
These rules are mandatory. Violating them means the skill is not working correctly.
No Dynamic Types
ArkTS prohibits dynamic typing. Never use any, type assertions, or dynamic property access.
// ❌ FORBIDDEN: Dynamic types
let data: any = fetchData();
let obj: object = {};
obj['dynamicKey'] = value; // Dynamic property access
(someVar as SomeType).method(); // Type assertion
// ✅ REQUIRED: Strict typing
interface UserData {
id: string;
name: string;
}
let data: UserData = fetchData();
Sponsors
Details
- Repository
- github.com/majiayu000/claude-arsenal
- First seen
- Jun 3, 2026