前言

我们每天都在使用手机 App:聊天、购物、刷视频、导航、学习……

但是,一个 App 到底是怎么开发出来的?为什么有的 App 运行在 Android 手机上,有的 App 只能在 iPhone 上使用?鸿蒙开发又和 Android、iOS 有什么关系?

如果你刚开始接触移动开发,看到 Kotlin、Swift、ArkTS、Android Studio、Xcode、DevEco Studio 这些名词,很容易感觉比较混乱。

其实不用一开始就学习所有细节。我们可以先从整体上认识三种主流移动开发平台:

  • Android 开发

  • iOS 开发

  • HarmonyOS 开发

本文不深入讲复杂代码,而是用比较容易理解的方式,介绍它们的语言、工具、界面框架、开发流程和主要区别。


一、什么是移动端开发?

移动端开发,简单来说,就是为手机、平板、手表、车机等移动设备开发应用程序。

一个完整的移动 App,通常包含下面几部分:

部分作用举例
用户界面让用户看到并操作首页、按钮、列表、输入框
业务逻辑决定程序应该做什么登录、计算、下单、搜索
数据存储保存用户数据账号、设置、聊天记录
网络请求和服务器交换数据获取商品、发送消息
系统能力使用手机提供的功能相机、定位、通知、蓝牙
打包发布让用户安装和使用应用安装包、应用商店

可以把移动 App 想象成一家餐厅:

  • 界面是餐厅的门面和菜单;

  • 业务逻辑是后厨的做菜流程;

  • 数据存储是仓库;

  • 网络请求是和供应商、外卖平台沟通;

  • 操作系统则像餐厅所在的商场,规定了很多运行规则。


二、Android 开发是什么?

2.1 Android 是什么?

Android 是一种移动操作系统,广泛运行在手机、平板、电视、手表、车机等设备上。

不同厂商可以基于 Android 制作自己的设备和系统,因此 Android 设备种类比较多,屏幕尺寸、硬件配置和系统版本也可能不同。

2.2 Android 常用开发语言

Android 早期大量使用 Java 开发,现在 Kotlin 是官方重点推荐的语言之一。

如果你已经学习过 Java,那么学习 Android 会有一定基础,因为下面这些知识依然非常有用:

  • 类和对象

  • 继承和接口

  • 异常处理

  • 集合

  • 多线程

  • 网络请求

Kotlin 和 Java 有很多相似之处,但 Kotlin 的代码通常更加简洁。例如,定义变量时可以少写很多代码,还提供了空安全、扩展函数、协程等能力。

2.3 Android 常用开发工具

Android 开发最常见的工具是 Android Studio。它可以用来:

  • 创建 Android 项目;

  • 编写 Kotlin 或 Java 代码;

  • 设计应用界面;

  • 运行模拟器;

  • 连接真实手机调试;

  • 打包 Android 应用。

Android Studio 本质上是一个专门为 Android 开发准备的集成开发环境。

2.4 Android 的界面开发方式

传统 Android 项目经常使用 XML 和 View 创建界面。

现在也可以使用 Jetpack Compose。Compose 是 Android 官方推荐的现代 UI 工具包,采用声明式的方式描述界面:你告诉程序“界面应该长什么样”,当数据变化时,界面会自动更新。Android 官方文档

一个非常简单的 Compose 页面如下:

@Composable
fun WelcomePage() {
    Text(text = "Hello Android")
}

这段代码的意思是:创建一个显示“Hello Android”的界面。

初学者暂时不需要记住所有注解,只要先理解:Compose 用代码描述界面,界面会随着状态变化而变化。


三、iOS 开发是什么?

3.1 iOS 是什么?

iOS 是苹果为 iPhone 等设备设计的移动操作系统。苹果同时还有 iPadOS、watchOS、macOS 等系统。

苹果设备的型号和系统生态相对统一,所以 iOS 开发通常更加重视统一的设计规范、系统体验和应用审核流程。

3.2 iOS 常用开发语言

iOS 开发目前主要使用 Swift,也有一些历史项目使用 Objective-C。

Swift 是苹果推出的现代编程语言,特点是:

  • 语法比较简洁;

  • 重视类型安全;

  • 支持面向对象和函数式编程;

  • 适合开发 iPhone、iPad、Mac 等平台的应用。

如果只是了解 iOS 开发,不需要马上深入 Swift 语法。可以先知道:

Swift 大致相当于 iOS 生态中的主要开发语言。

3.3 iOS 常用开发工具

iOS 开发主要使用 Xcode。

Xcode 可以完成:

  • 创建 iOS 项目;

  • 编写 Swift 代码;

  • 使用模拟器运行 App;

  • 调试程序;

  • 分析性能;

  • 打包并提交应用。

Xcode 是苹果官方提供的开发工具,负责从创建项目到测试、发布的完整流程。Apple 官方文档

3.4 iOS 的界面开发方式

iOS 传统上经常使用 UIKit 创建界面,现在也可以使用 SwiftUI。

SwiftUI 和 Jetpack Compose 有一些相似之处,都属于声明式 UI 框架。开发者通过代码描述界面,而不是手动操作每一个界面元素的位置。SwiftUI 官方文档

一个简单的 SwiftUI 页面如下:

import SwiftUI
​
struct WelcomeView: View {
    var body: some View {
        Text("Hello iOS")
    }
}

这段代码会创建一个显示“Hello iOS”的页面。


四、HarmonyOS 开发是什么?

4.1 HarmonyOS 是什么?

HarmonyOS 是华为面向多种设备打造的操作系统和应用生态。

它关注的不只是手机,还包括平板、手表、智慧屏等设备。鸿蒙开发中经常会看到“多设备”“分布式”“跨设备协同”等概念。

初学阶段不用急着理解这些复杂概念,可以先把它看成一个独立的移动应用开发平台。

4.2 鸿蒙常用开发语言

HarmonyOS 应用开发主要使用 ArkTS。

ArkTS 的语法风格和 TypeScript 有一定关系,但它针对 HarmonyOS 应用开发进行了扩展和约束,强调类型安全、声明式 UI 和应用性能。ArkTS 官方介绍

如果你学习过 Java、JavaScript 或 TypeScript,那么理解 ArkTS 中的变量、函数、类和组件会相对容易一些。

4.3 鸿蒙常用开发工具

鸿蒙应用主要使用 DevEco Studio 开发。

DevEco Studio 可以用来:

  • 创建 HarmonyOS 项目;

  • 编写 ArkTS 代码;

  • 使用 ArkUI 创建界面;

  • 运行模拟器;

  • 连接设备调试;

  • 编译和打包应用。

4.4 鸿蒙的界面开发方式

ArkUI 是 HarmonyOS 的界面开发框架,采用声明式 UI 思路,提供了文字、按钮、列表、布局、动画等组件。

一个简单的 ArkUI 页面如下:

@Entry
@Component
struct WelcomePage {
  build() {
    Column() {
      Text('Hello HarmonyOS')
    }
  }
}

这段代码表示创建一个页面,并在页面中显示一段文字。

鸿蒙开发的官方技术体系,主要可以先记住三个名字:

名称作用
ArkTS开发语言
ArkUI用户界面框架
DevEco Studio开发工具

五、三种移动开发平台对比

下面这张表可以帮助我们快速建立整体认识:

对比内容AndroidiOSHarmonyOS
主要语言Kotlin、JavaSwift、Objective-CArkTS
开发工具Android StudioXcodeDevEco Studio
UI 框架Jetpack Compose、ViewSwiftUI、UIKitArkUI
主要设备手机、平板、电视、手表等iPhone、iPad、Mac、Watch 等手机、平板、手表、智慧屏等
常见应用包APK、AABIPA鸿蒙应用包等
主要特点设备种类丰富、生态开放体验统一、生态封闭多设备协同、国产生态

这三种平台虽然名字、语言和工具不同,但开发 App 时要解决的问题非常类似:

用户界面
   ↓
用户操作
   ↓
业务逻辑
   ↓
数据存储 / 网络请求
   ↓
系统能力调用
   ↓
测试、打包、发布


六、三种平台中有哪些相同概念?

6.1 页面

无论 Android、iOS 还是 HarmonyOS,都需要创建页面。

比如:

  • 登录页面

  • 首页

  • 商品详情页

  • 设置页面

  • 聊天页面

不同平台的写法不一样,但“页面”这个概念是相同的。

6.2 组件

按钮、文字、图片、列表、输入框都属于界面组件。

可以简单理解为:一个 App 的界面,是由许多组件组合起来的。

6.3 事件

用户点击按钮、输入文字、滑动页面,都会产生事件。

例如点击登录按钮后,程序可能会:

  1. 读取输入框中的账号和密码;

  2. 检查输入内容;

  3. 请求服务器;

  4. 根据结果显示登录成功或失败。

6.4 状态

状态就是“程序当前是什么情况”。

例如:

  • 当前用户是否登录;

  • 当前页面是否正在加载;

  • 输入框中有什么内容;

  • 网络请求是否成功;

  • 当前列表中有多少条数据。

当状态发生变化时,界面通常也需要跟着变化。

6.5 生命周期

手机 App 不会永远停留在屏幕前台。用户可能打开另一个 App、锁屏、返回桌面,系统也可能回收后台资源。

因此每个平台都有自己的生命周期机制,用来处理:

  • 页面创建;

  • 页面显示;

  • 页面暂停;

  • 页面恢复;

  • 页面销毁。

生命周期是移动开发中很重要的概念,但初学时先理解“页面会被创建、暂停、恢复和销毁”即可。

6.6 网络和数据存储

大多数 App 都需要从服务器获取数据,也需要在本地保存一些内容。

例如:

  • 网络请求:获取新闻列表;

  • 本地存储:保存登录状态;

  • 数据库:保存聊天记录;

  • 文件:保存图片和附件。

这些功能在三个平台上都存在,只是调用的 API 和代码写法不同。


七、原生开发和跨平台开发有什么区别?

7.1 原生开发

原生开发就是分别使用平台官方技术开发:

  • Android 使用 Kotlin 或 Java;

  • iOS 使用 Swift 或 Objective-C;

  • HarmonyOS 使用 ArkTS。

原生开发通常可以更充分地使用平台能力,性能和系统适配也更直接。

缺点是:如果想同时支持多个平台,可能需要分别学习多套语言和工具。

7.2 跨平台开发

跨平台开发是使用一套技术,同时生成多个平台的应用,例如:

  • Flutter

  • React Native

  • Kotlin Multiplatform

跨平台开发可以减少重复工作,但遇到某些系统特殊功能时,仍然可能需要编写平台相关代码。

可以简单理解为:

原生开发像分别建造三栋房子;跨平台开发像先设计一套通用户型,再根据不同地形进行调整。


八、初学者应该先学哪个平台?

没有绝对正确的答案,可以根据自己的情况选择。

选择 Android

适合:

  • 已经学习过 Java;

  • 想接触手机 App 开发;

  • 希望找到较多学习资料;

  • 想了解移动端的基础概念。

选择 iOS

适合:

  • 对苹果生态感兴趣;

  • 愿意学习 Swift;

  • 有 Mac 电脑;

  • 希望体验统一的开发工具和设备环境。

选择 HarmonyOS

适合:

  • 想了解国产移动生态;

  • 对多设备协同感兴趣;

  • 愿意学习 ArkTS;

  • 想接触 DevEco Studio 和 ArkUI。

如果你还没有明确目标,建议先学习一个平台,不要同时学习三套技术。掌握了页面、事件、状态、网络、存储这些通用概念后,再学习其他平台会轻松很多。


九、总结

Android、iOS 和 HarmonyOS 都可以用来开发移动应用,但它们属于不同的开发生态:

  • Android 主要使用 Kotlin、Java 和 Android Studio;

  • iOS 主要使用 Swift、Xcode 和 SwiftUI;

  • HarmonyOS 主要使用 ArkTS、DevEco Studio 和 ArkUI。

三种平台虽然技术细节不同,但核心思想很相似:

创建界面,响应用户操作,处理业务逻辑,保存和获取数据,最后完成测试和发布。

对于初学者来说,最重要的不是一次学会所有平台,而是先掌握一套完整的移动开发思维。理解了页面、事件、状态、生命周期、网络和存储之后,再学习其他平台就会容易很多。

如果你已经有 Java 基础,可以先从 Android 开发开始;如果对苹果生态感兴趣,可以了解 SwiftUI;如果想认识国产移动开发生态,可以从 ArkTS 和 ArkUI 入门。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐