skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
fadinglight9291117/arkts_skills213 installs

arkts-development

HarmonyOS ArkTS application development with ArkUI declarative UI framework. Use when building HarmonyOS/OpenHarmony apps, creating ArkUI components, implementing state management with decorators (@State, @Prop, @Link), migrating from TypeScript to ArkTS, or working with HarmonyOS-specific APIs (router, http, preferences). Covers component lifecycle, layout patterns, and ArkTS language constraints.

How do I install this agent skill?

npx skills add https://github.com/fadinglight9291117/arkts_skills --skill arkts-development
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill is a comprehensive developer guide and reference for HarmonyOS ArkTS development. It provides legitimate instructions, code templates, and documentation for using official ArkUI components, state management systems, and HarmonyOS CLI tools like hvigorw, codelinter, and hstack. No malicious patterns were detected.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

  • Runlayerwarn

    9/9 files flagged

  • ZeroLeakspass

    Score: 93/100 · 2 sections analyzed

What does this agent skill do?

ArkTS Development

Build HarmonyOS applications using ArkTS and the ArkUI declarative UI framework.

Quick Start

Create a basic component:

@Entry
@Component
struct HelloWorld {
  @State message: string = 'Hello, ArkTS!';

  build() {
    Column() {
      Text(this.message)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)
      Button('Click Me')
        .onClick(() => { this.message = 'Button Clicked!'; })
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}

State Management Decorators

V1 (Traditional)

DecoratorUsageDescription
@State@State count: number = 0Component internal state
@Prop@Prop title: stringParent → Child (one-way)
@Link@Link value: numberParent ↔ Child (two-way, use $varName)
@Provide/@ConsumeCross-levelAncestor → Descendant
@Observed/@ObjectLinkNested objectsDeep object observation

V2 (Recommended - API 12+)

DecoratorUsageDescription
@ComponentV2@ComponentV2 struct MyCompEnable V2 state management
@Local@Local count: number = 0Internal state (no external init)
@Param@Param title: string = ""Parent → Child (one-way, efficient)
@Event@Event onChange: () => voidChild → Parent (callback)
@ObservedV2@ObservedV2 class DataClass observation
@Trace@Trace name: stringProperty-level tracking
@Computed@Computed get value()Cached computed properties
@Monitor@Monitor('prop') onFn()Watch changes with before/after
@Provider/@ConsumerCross-levelTwo-way sync across tree

See references/state-management-v2.md for complete V2 guide.

Common Layouts

// Vertical
Column({ space: 10 }) { Text('A'); Text('B'); }
  .alignItems(HorizontalAlign.Center)

// Horizontal
Row({ space: 10 }) { Text('A'); Text('B'); }
  .justifyContent(FlexAlign.SpaceBetween)

// Stack (overlay)
Stack({ alignContent: Alignment.Center }) {
  Image($r('app.media.bg'))
  Text('Overlay')
}

// List with ForEach
List({ space: 10 }) {
  ForEach(this.items, (item: string) => {
    ListItem() { Text(item) }
  }, (item: string) => item)
}

Component Lifecycle

@Entry
@Component
struct Page {
  aboutToAppear() { /* Init data */ }
  onPageShow() { /* Page visible */ }
  onPageHide() { /* Page hidden */ }
  aboutToDisappear() { /* Cleanup */ }
  build() { Column() { Text('Page') } }
}

Navigation

import { router } from '@kit.ArkUI';

// Push
router.pushUrl({ url: 'pages/Detail', params: { id: 123 } });

// Replace
router.replaceUrl({ url: 'pages/New' });

// Back
router.back();

// Get params
interface RouteParams {
  id: number;
  title?: string;
}
const params = router.getParams() as RouteParams;

Network Request

import { http } from '@kit.NetworkKit';

const req = http.createHttp();
const res = await req.request('https://api.example.com/data', {
  method: http.RequestMethod.GET,
  header: { 'Content-Type': 'application/json' }
});
if (res.responseCode === 200) {
  const data = JSON.parse(res.result as string);
}
req.destroy();

Local Storage

import { preferences } from '@kit.ArkData';

const prefs = await preferences.getPreferences(this.context, 'store');
await prefs.put('key', 'value');
await prefs.flush();
const val = await prefs.get('key', 'default');

ArkTS Language Constraints

ArkTS enforces stricter rules than TypeScript for performance and safety:

ProhibitedUse Instead
any, unknownExplicit types, interfaces
varlet, const
Dynamic property access obj['key']Fixed object structure
for...in, delete, withfor...of, array methods
#privateFieldprivate keyword
Structural typingExplicit implements/extends

See references/migration-guide.md for complete TypeScript → ArkTS migration details.

Command Line Test (hvigorw)

Build, clean, packaging, and device installation are covered by the harmonyos-build-deploy skill — use it for those workflows. The complete hvigorw flag reference is in references/hvigor-commandline.md.

Test commands:

# Run all tests for a module
hvigorw onDeviceTest -p module=entry -p coverage=true --no-daemon   # On-device
hvigorw test -p module=entry --no-daemon                            # Local (host-side)

# Run a single test suite or single test (on-device)
hvigorw onDeviceTest -p module=entry -p testParam="{\"unittest\":\"TestClassName\"}" --no-daemon
hvigorw onDeviceTest -p module=entry -p testParam="{\"unittest\":\"TestClassName#testMethodName\"}" --no-daemon

Code Linter (codelinter)

codelinter is the code checking and fixing tool for ArkTS/TS files.

# Basic usage
codelinter                           # Check current project
codelinter /path/to/project          # Check specified project
codelinter -c ./code-linter.json5    # Use custom rules

# Check and auto-fix
codelinter --fix
codelinter -c ./code-linter.json5 --fix

# Output formats
codelinter -f json -o ./report.json  # JSON report
codelinter -f html -o ./report.html  # HTML report

# Incremental check (Git changes only)
codelinter -i

# CI/CD with exit codes
codelinter --exit-on error,warn      # Non-zero exit on error/warn
ParameterDescription
-c, --config <file>Specify rules config file
--fixAuto-fix supported issues
-f, --formatOutput format: default/json/xml/html
-o, --output <file>Save result to file
-i, --incrementalCheck only Git changed files
-p, --product <name>Specify product
-e, --exit-on <levels>Exit code levels: error,warn,suggestion

See references/codelinter.md for complete reference.

Stack Trace Parser (hstack)

hstack parses obfuscated crash stacks from Release builds back to source code locations.

# Parse crash files directory
hstack -i crashDir -o outputDir -s sourcemapDir -n nameCacheDir

# Parse with C++ symbols
hstack -i crashDir -o outputDir -s sourcemapDir --so soDir -n nameCacheDir

# Parse single crash stack
hstack -c "at func (entry|entry|1.0.0|src/main/ets/pages/Index.ts:58:58)" -s sourcemapDir
ParameterDescription
-i, --inputCrash files directory
-c, --crashSingle crash stack string
-o, --outputOutput directory (or file with -c)
-s, --sourcemapDirSourcemap files directory
--so, --soDirShared object (.so) files directory
-n, --nameObfuscationNameCache files directory

Requirements:

  • Must provide either -i or -c (not both)
  • Must provide at least -s or --so
  • For method name restoration, provide both -s and -n

See references/hstack.md for complete reference.

Code Obfuscation (ArkGuard)

Enable in build-profile.json5:

"arkOptions": {
  "obfuscation": {
    "ruleOptions": {
      "enable": true,
      "files": ["./obfuscation-rules.txt"]
    }
  }
}

Common rules in obfuscation-rules.txt:

-enable-property-obfuscation      # Property name obfuscation
-enable-toplevel-obfuscation      # Top-level scope obfuscation
-enable-filename-obfuscation      # Filename obfuscation
-keep-property-name apiKey        # Whitelist specific names

See references/arkguard-obfuscation.md for complete guide.

Reference Files

Development Environment

  • IDE: DevEco Studio
  • SDK: HarmonyOS SDK
  • Simulator: Built-in DevEco Studio emulator

Related Skills

  • Build & Deploy: See harmonyos-build-deploy skill for building, packaging, and device installation

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/fadinglight9291117/arkts_skills/arkts-development">View arkts-development on skillZs</a>