天涯论坛

 找回密码
 立即注册
搜索
查看: 73|回复: 3

从0初始在鸿蒙OS中制作一个APP!

[复制链接]

2946

主题

2万

回帖

9997万

积分

论坛元老

Rank: 8Rank: 8

积分
99979427
发表于 2024-6-29 16:19:34 | 显示全部楼层 |阅读模式

作者:若离链接:https://www.zhihu.com/question/420404904/answer/1465546442

他来了他来了,他带着质疑走来了。论怎么说,鸿蒙OS 2.0的颁布针对程序员群体来讲应当是值得记住的时刻。毕竟有可能将来研发程序的时候,制品经理必定会问:兼容鸿蒙OS吗?

日前鸿蒙OS给大都数研发者的印象便是一个PPT系统。今天和同事们聊了聊鸿蒙OS颁布,大都数人仍然持质疑的态度,似乎想要认真回答题主的问题,从0起始运用鸿蒙制作一个APP似乎是一个不错的想法。

期盼这个应用研发完成后,我和你都有了自己的答案。

「利益关联:一名普通的前端工程师。安卓研发经验,研发过程中智障行径请谅解。」

零、现周期遇到的BUG汇总

我会将研发过程中遇到的bug汇总到这儿期盼能帮到Harmony框架的研发人员

IDE -- Project列表文件法选中:能够选中文件夹,经过键盘操作移动到文件打开,然则有时候鼠标点击法选中文件。比较频繁IDE -- 初次运行IDE提示安装模拟器。在Chrome浏览器环境下,DevEco调转到网页法停留在授权页面,引起法触发登录回调(可能是首次登录才会这般)。

1、环境搭建

华为为HarmonyOS设计了专门的研发IDE:DevEco Studio,日前只支持Windows10,日前而言针对常年运用MacOS的前端不太友好,不外这不是问题,bootcamp起步(mac的双系统) !

HUAWEI DevEco Studio(以下简叫作DevEco Studio)是面向华为终端全场景多设备的一站式集成研发环境(IDE),为研发供给工程模板创建、研发、编译、调试、颁布等E2E的HarmonyOS应用研发服务。按照华为的描述,这个IDE支持多语言的研发,构建,颁布并支持多模拟器。同期必须注册华为研发者账号。

IDE压缩包616M

DevEco支持多种语言,运用JS研发的话必须安装Nodejs。看起来HarmonyOS是支持运用HTML+CSS+JS方式研发WEB应用的。同期咱们重视到DevEco支持的标签语言是HML,应该是华为对其进行了有些定制化的设置。

安装什么太多的配置,下载好软件后只要电脑能够联网,DevEco会下载关联依赖。(例如Java以及关联工具链,看起来环境变量自动配置了,很适合我。(能够好评)

安装完成后就会进入到软件主界面了,到日前为止还遇到坑。

2、研发一个小的Demo

咱们回归到题主的问题,这个系统的前景怎么样。这个问题说实话此刻回答为时尚早,毕竟一个系统有前途,非常多时候不是这个系统决定的。

然则有一点能够肯定,一个好的系统,其生态圈是相对容易创立的。简单来讲倘若我这种接触过HarmonyOS的人能快速研发一个App,那他最少已然在答题卡上涂过答案了。

咱们先写一个各大前端框架介绍特性时最常用的例子:TODO List2.1 创建 App点击Create HarmonyOS Project:日前看来HarmonyOS支持TV,Wearable,Lite Wearable三种设备,有点少,思虑到Huawei是中国机构,应该不存在翻译问题,因此能够日前来看HarmonyOS不支持PC与Mobile制品

咱们选取一个空的JS模板。(重视运用JS模板你必须安装Nodejs,倘若是初学者的话很简单的,在官网下载以后就下一步下一步下一步。。。而后欢迎你作为前端工程师

日前为止还比较顺畅,初学者能够开启一个应用。

2.2 起步应用

这儿重视到新建项目后 IDE起始运用gradle下载关联败兴。其他的回答已然有人确认这次HarmonyOS不是安卓套壳了,因此我就重复证明了,起始写代码。

JS UI

看了下官方示例,运用JAVA UI采用XML编写页面。做为前端切图仔,怎么可能用那样后端的办法呢,看了看文档,华为供给另一一种编写方式:JS UI。

按照华为的描述,JS UI是采用类HTML与CSS来进行页面研发同期支持了JS FA的研发模式,能够将JS与JAVA混合研发。(我是不晓得混合研发有什么用,或许是后端程序员的保持吧。狗头)

初次运行必须安装模拟器,根据DevEco的文档说明安装模拟器是有提醒的,然则实质测试我这儿提示。程序还跑起来,我就发掘三个bug:后续我会把运用过程中的bug放到开头,期盼能帮到华为的同行们。

IDE初次运行弹出安装模拟器的提示,会影响运用者体验refresh模拟器列表反复需求登录华为研发者账号,然则已然登录了。登录触发IDE内部的登录成功回调(运用chrome会显现这个问题)Project列表文件法选中:可以选中文件夹,经过键盘操作移动到文件打开,然则有时候鼠标点击法选中文件。频率比较频繁开启模拟器后,将代码稍微做一下改动:

开启模拟器后,将代码稍微做一下改动:

从UI框架来看 HarmoneyOS应用与传统应用研发差异不大,数据双向绑定的语法来看有些类似Vue。

2.3 新建一个有状态的List

今天看了许多评论,大众的发言都特别有道理。

咱们先来知道一下这个小demo的需求:

一个有状态的List,能够勾选与取消想要完成的任务能够新增新的任务尽可能多的调用系统API能力,肯能能调用 HarmonyOS 硬件的时间,声音,网络测试css性能,能否支持有些CSS3的动画特性调用有些HarmonyOS的分布式任务能力

咱们先来测试一下HarmonyOS自带组件。List,华为在文档里供给了各组件的api,位置如下:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-components-container-list-0000000000611496

根据文档的例子,咱们将src → js → index中的页面代码简单修改一下

//index.hml

<div class="container"

>

    <text class="title"

>

         {{title}}

    <list class="todo-wraper"

>

<list-itemfor="{{todolist}}" class="todo-item"

>

            <text class="todo-title"

>{{$item.title}}

            <text class="todo-title"

>{{$item.date}}

//index.js

export

 default {

data: {

        title: "今日事,今日毕"

,

        todolist: [

            {title: 吃饭,date: 10:00:00

,},

            {title: 睡觉,date: 12:00:00

,},

            {title: 打豆豆,date: 20:00:00

,}

        ],

    },

    onInit

() {

    }

}

/* index.css */

.container {

display: flex;

    justify-content: center;

    align-items: center;

    flex-direction:column;

    left: 0px;

    top: 0px;

    width: 80%;

    height: 100%;

}

.title {

    font-size: 40px;

}

.todo-wraper{

     padding:20px;

}

.todo-item{

    line-hight:100px;

    flex:1;

}

.todo-title{

    font-wight:bold;

    margin-right:20px;

}

全部JS UI构建页面的方式与小程序是基本相同的,基本上是模板指令的一套。

谢谢@nobody 的评论

「这个是快应用,类似微X小程序同样的东西,这个框架是由于小米、中兴、华为、金立、联想、魅族、努比亚、OPPO、VIVO等九家联合制定标准的。」

看起来HarmonyOS内核上原生程序UI构建应该都会是这种模式。但我认为HarmonyOS与快应用有本质的区别,HarmonyOS并不只是供给了UI层MVVM的框架。

「Ability是应用所具备的能力的抽象,一个应用能够包括一个或多个Ability。Ability分为两种类型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是应用的基本构成单元,能够实现特定的业务功能。FA有UI界面,而PAUI界面。」

咱们此刻编写的程序UI是便是一个FA,而PA包含Service与Model,分别做数据处理和规律处理的工作。(这不便是全栈吗 (#`O′))

废话不多说,咱们继续为应用增多有些交互能力。(后续文案中...)

反馈一个bug:input type是checkbox时第1个元素的样式会错位

吐槽一下:热加载和ui调试工具研发效率太低了。。

---END---

举荐阅读:升级了,Android 11 正式颁布,偏重3大主题!支付宝二面:Mybatis接口Mapper内的办法为啥不可重载吗?我直接懵逼了...Android RecyclerView自定义LayoutManager知乎高赞:iOS 为何感觉比 Android 流畅?Android | 自定义上拉抽屉+组合动画效果重磅!!Gradle 6.6 颁布,大幅提高性能!Flutter(Flare) 最有趣用户交互动画之一怒爬某破Hub站资源,只为撸这个鉴黄平台!Flutter 10天高仿大厂App及小技巧累积总结阿里巴巴官方最新Redis研发规范!涉嫌侵害用户权益,这101款App被点名!

更文很难,点个“在看”支持一下





上一篇:开源百宝箱《HelloGitHub》第 64 期
下一篇:小程序与公众号有什么区别
回复

使用道具 举报

2986

主题

3万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569167
发表于 2024-9-25 21:41:10 | 显示全部楼层
论坛的成果是显著的,但我们不能因为成绩而沾沾自喜。
回复

使用道具 举报

2996

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109194
发表于 2024-10-11 11:53:41 | 显示全部楼层
外链发布社区 http://www.fok120.com/
回复

使用道具 举报

2986

主题

3万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569167
发表于 2024-11-8 00:01:13 | 显示全部楼层
真情实感,其含义为认真了、走心了的意思,是如今的饭圈常用语。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-22 23:31 , Processed in 0.157091 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.