# HarmonyOS App Development 101

DevFeed: [HarmonyOS App Development 101](<https://devfeed.tech/articles/harmonyos-app-development-101-24549.md>)

Original publisher: [Read original article](<https://medium.com/snapp-mobile/harmonyos-app-development-101-a861590a45f3?source=rss----bcd96e620b02---4>)

Author: Jasper Morgan

Published: 2025-01-18T23:23:13Z

Content type: tutorial

Language: en

Sources: [Snapp Mobile - Medium](<https://devfeed.tech/sources/snapp-mobile-medium.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [Development](<https://devfeed.tech/topics/development.md>), [ide](<https://devfeed.tech/topics/ide.md>), [huawei](<https://devfeed.tech/topics/huawei.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>), [Package Management](<https://devfeed.tech/topics/package-management.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [apps](<https://devfeed.tech/tags/apps.md>), [code-completion](<https://devfeed.tech/tags/code-completion.md>), [debug](<https://devfeed.tech/tags/debug.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [development](<https://devfeed.tech/tags/development.md>), [harmony-os](<https://devfeed.tech/tags/harmony-os.md>), [huawei](<https://devfeed.tech/tags/huawei.md>), [ide](<https://devfeed.tech/tags/ide.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [package-management](<https://devfeed.tech/tags/package-management.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tools](<https://devfeed.tech/tags/tools.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-framework](<https://devfeed.tech/tags/ui-framework.md>)

## AI overview

An overview of HarmonyOS Next app development, covering the Huawei-based DevEco Studio IDE, project configuration, SDK versions, modules, and common development features. The article also outlines programming languages, UI frameworks, build tools, package management, execution, debugging, testing, and profiling.

## Source excerpt

Huawei have taken a big step in moving away from the Android platform with the launch of new devices running HarmonyOS Next. This is a brand new operating system that had been design specifically for devices. This means it is lightweight, supports a range of device types, is modular and extensible. In this article we aim to give you an overview of what is available to developers wishing to build apps on this new platform. To that end, we will be looking at the following topics: The IDE Programming Languages UI Framework Build Tools Package Management Running code (devices/emulators) Debugging Testing Profiling Other cool stuff If you are curious about the Harmony platform, its Open Source foundations (OpenHarmony) and its global reach (Oniro), we have written about it here. The IDE The development environment for Harmony apps is currently a Huawei-based IDE which is based on the JetBrains IDE platform. The good news is that JetBrains offers a world-class IDE platform and it makes for a very solid development experience for Harmony apps. For those, wanting to keep to the Open Source side of Harmony (OpenHarmony and Oniro), you are out of luck right now. DevEco Studio is proprietary, albeit free to use software. Let's look at a couple of IDE features -- these should not surprise you but hopefully demonstrates that the platform is already in a good place (as far as IDEs go). Project Creation Creating a project will look familiar already for many. There are a few project templates to choose from to bootstrap your project. New Project Templates You will also then need to configure a couple of options -- a couple of notes on these (which could probably be expanded into a separate article). Firstly, the bundle name is used for app signing and identity. Secondly, an app supports a single SDK version. (The latest SDK version is 13, however version 11 is still widely used.) Thirdly we can specify the module name. The default ('entry') isn't very descriptive. If you have a singl