HarmonyOS Terms – Developer Rant Edition



This content originally appeared on DEV Community and was authored by fan

HarmonyOS Terms – Developer Rant Edition

These HarmonyOS Terms Are No Joke

When I first started with HarmonyOS, my initial thought was, “Isn’t this just Android with a new skin?” Then I opened the docs: FA, PA, Stage, HAP, atomic services, widgets… so many new terms, my head was spinning. Don’t panic—once you get these terms down, development gets a lot smoother. Here’s my own pitfall diary, with some rants, for the next dev in line.

Common Terms – Must-Know for Devs

abc file

  • Full Name: ArkCompiler Bytecode
  • What’s it for: The binary file generated by compilation, with a .abc extension, eventually packed into the HAP.
  • Dev’s Take: Don’t worry about how it’s made, it’s auto-generated during packaging. Want to see the source? Don’t bother with abc files—look at the project source and build process. You’ll rarely need to touch this, and if something breaks, it’s usually another part’s fault.

ANS

  • Full Name: Advanced Notification Service
  • What’s it for: The system-level notification service, handling subscription, publishing, and updates.
  • Dev’s Take: Can’t do push or notifications without it. Watch out for permissions—if the user doesn’t grant them, your messages go nowhere. Don’t ask how I know, just trust me.

Atomic Service

  • What’s it for: Mini-apps with independent entry points, no install needed—just tap a card and it’s ready, installed in the background.
  • Dev’s Take: Great for lightweight stuff like weather, delivery, calendar reminders. Make the entry obvious—don’t make users hunt for it. Huawei is pushing this hard, so if you want to get featured, dig in.

ArkUI

  • Full Name: Ark Development Framework
  • What’s it for: HarmonyOS’s own UI framework, focused on high performance and cross-device support.
  • Dev’s Take: Use ArkUI for UI, it’s much easier for cross-device. It’s not like Web/Android UI—read the official samples. Don’t try to copy-paste React/Vue code, you’ll hit a wall.

ArkCompiler

  • Full Name: Ark Compiler
  • What’s it for: The core compiler for HarmonyOS, supports multiple languages and chipsets.
  • Dev’s Take: You won’t touch it most of the time. If you get weird build errors, check compatibility. When in doubt, restart your IDE and clear the cache—it works wonders.

DFX

  • Full Name: Design For X
  • What’s it for: Design philosophy for the whole product lifecycle; X can be reliability, testability, etc.
  • Dev’s Take: Don’t just focus on features—think about performance, testing, and maintenance. Everyone says this, but few actually do it.

DV

  • Full Name: Device Virtualization
  • What’s it for: Virtualizing devices, merging multiple device capabilities.
  • Dev’s Take: Essential for distributed scenarios, device interconnection, and capability sharing. If the docs don’t make sense, just try it out—real device debugging is king.

ExtensionAbility

  • What’s it for: Stage model extension component, for cards, input methods, and special scenarios.
  • Dev’s Take: Use it to extend app capabilities, but don’t confuse it with UIAbility. If you have a lot, draw a flowchart or you’ll get lost.

FA/PA

  • Full Name: Feature Ability / Particle Ability
  • What’s it for: FA has UI, handles interaction; PA is headless, for background services.
  • Dev’s Take: Honestly, these are “ancient relics.” Don’t use FA/PA for new projects—Huawei barely maintains them, and the docs are drying up. Stage model is the way to go. If you stick with FA/PA, you’ll soon find new features don’t work and upgrades are a pain. Migrate old projects slowly, but ignore them for anything new.

HAP

  • Full Name: Harmony Ability Package
  • What’s it for: The app package for HarmonyOS, contains all code, resources, configs, with a .hap extension.
  • Dev’s Take: You can’t package, publish, or install without HAP. Multi-module projects will have several HAPs. If packaging is slow, just be patient.

HML

  • Full Name: HarmonyOS Markup Language
  • What’s it for: HTML-like markup for page structure.
  • Dev’s Take: You have to use it for page structure. It’s similar to HTML but not the same—don’t copy web code blindly. Attribute and event names are different, so double-check when copy-pasting.

Hop (Seamless Flow)

  • What’s it for: Distributed operations across devices—like editing an email on your phone, then continuing on your tablet.
  • Dev’s Take: Must-have for multi-device seamless experience. Design your flow logic well, it really boosts UX. Multi-device debugging tests your patience—simulators are useless, use real devices.

IDN

  • Full Name: Intelligent Distributed Networking
  • What’s it for: Distributed networking, getting device lists and statuses.
  • Dev’s Take: Use it for device discovery and distributed comms. If devices don’t show up, it’s probably a permissions issue.

Kit

  • What’s it for: Functionality bundles, like Reader Kit, Image Kit, etc.
  • Dev’s Take: Only import what you need—don’t bloat your app. Don’t be greedy.

MSDP

  • Full Name: Mobile Sensing Development Platform
  • What’s it for: Distributed sensing, merging sensor data from multiple devices.
  • Dev’s Take: Must-have for health, fitness, and spatial awareness apps. Sensor data lag is normal—don’t sweat it.

Multi-device collaboration

  • What’s it for: App flow and collaboration across devices.
  • Dev’s Take: Great for boosting experience, but syncing logic across devices is bug-prone. Test thoroughly.

OpenHarmony

  • What’s it for: The open-source base for HarmonyOS, all core capabilities rely on it.
  • Dev’s Take: Want to dig into the OS or customize? Study OpenHarmony. The source is huge—be patient downloading.

SDK

  • Full Name: Software Development Kit
  • What’s it for: Dev toolkit, all official capabilities are in the SDK.
  • Dev’s Take: Upgrade as needed, but watch compatibility. SDK upgrades can break things—back up old projects first.

Service widget

  • What’s it for: Desktop widgets for instant info and quick actions.
  • Dev’s Take: Great for weather, calendar, delivery info, etc. Keep interactions simple—if your widget is too complex, users won’t bother.

Stage Model

  • What’s it for: The new app model, supports UIAbility, ExtensionAbility, etc.
  • Dev’s Take: Strongly recommended for new projects—lifecycle and componentization are much clearer. Huawei is all-in on this, and there are fewer pitfalls.

Super virtual device

  • What’s it for: Combines multiple device capabilities into a single virtual device for unified management.
  • Dev’s Take: Use for distributed services and capability pooling. Not much documentation—just experiment.

UIAbility

  • What’s it for: UI component in the Stage model, handles UI and interaction.
  • Dev’s Take: Use for main pages and entry points. Totally different from the old FA—don’t mix them up.

UX

  • Full Name: User Experience
  • What’s it for: The overall user experience—if your product sucks, this is why.
  • Dev’s Take: Always think from the user’s perspective. PMs nag about it, but devs should care too.

Pitfalls and Pro Tips

  • There are a ton of terms—don’t try to memorize them all, just look them up as you go.
  • Don’t mix FA/PA and Stage model—pick one and stick with it. FA/PA is really outdated, avoid if possible.
  • For distributed and seamless flow features, only real device testing is reliable—simulators don’t support much.
  • Read the official docs a few times, and check out community tips. Docs are sometimes incomplete—try the code yourself.
  • If you’re new, start with ArkUI and Stage model—fewer pitfalls, faster dev.

Official Docs & Community (Worth a Look)

If you want more terms or detailed usage, leave a comment!


This content originally appeared on DEV Community and was authored by fan