先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
正文
HelloWorld
万事俱备,开始HelloWorld吧,我仍然不会告诉你怎么创建,但我会告诉你不知道的就用默认的。
比如那个Model不知道选择Stage还是FA,那就用默认推荐的Stage。本身就已经跟不上时代的步伐了,你再去了解FA这些还没学就过时的东西纯属浪费时间。再比如它下面的Enable Super Visual,其实就是一个将可视化编辑的内容转为ets文件的功能,对于喜欢拖拽控件的来说比较适合,但我总感觉没有代码写出来的准确。
好吧,项目创建出来了,是不是该运行到模拟器了呢?别急,你先来体验一把Previewer,其实如果你做过Compose开发,你不会奇怪它相比于AndroidView的xml预览它居然能响应点击等事件了。最后,新建模拟器并运行。
目录结构
ArkUI目录结构大致可以分为三部分
AppScope
主要用于存放公共的信息和资源,比如字符串、布局文件、多媒体、全局信息配置等。
配置文件采用的是json和json5,既然它抛弃了java采用ArkTs开发,其实就可以猜到会采用json配置了,我之前做过一段时间uni-app开发,所以对于这种配置也没啥新鲜感了。
entry
entry稍显复杂,ets下有两个目录分别存放Ability文件和ArkTs文件,比如默认的Index页面。resources显然是用来存放当前模块下的资源文件,经常用到调试的还可以关注下ohosTest测试文件夹,至于其它的,基本上都是些配置文件。
其它
oh_modules是项目的依赖包,存放工程依赖的源文件,它都直接标黄了,一般不用管。
根目录的其它文件基本上都是些配置文件,或者脚本。再其它没介绍到的也是基本上不用管的,有好奇心是应该的,但是把时间浪费在用不到的知识上是非常不推荐的。
Hello工程里面的几个文件
…/AppScope/app.json5
至于AppScoped中的另外几个文件具体的内容就不一一介绍了,相信你一眼就能明白,其实app.json5里面也没啥特别的,唯一一个新词语就是vendor供应商,写自己公司名称就得了。当然还有其它一些没有在hello工程里面体现的可以去文档查看。
…/entry/src/main/ets/entryability/EntryAbility.ts
它继承自UIAbility,它对应于最近任务列表中的任务。而我们以前安卓开发时,一般情况下一个应用在任务列表只会出现一个,而UIAbility可以出现多个,一个UIAbility也是对应多个页面而不是照搬Activity。
UIAbility也是一个具有生命周期的系统调度的单元,我将Hello工程的该文件代码方法顺序按生命周期执行顺序做了调整,并添加相应的注释如图。
…/entry/src/main/module.json5
我们都知道,不管是什么程序,它都应该会有一个入口,之所以程序会执行到上面的EntryAbility文件中,就是该module.json5进行配置的,类似于安卓开发的清单文件。
至于内容,一眼就能猜到是啥,猜不到的我稍后会把官方文档地址发出来。
不要一听到文档就嫌弃。可能是因为以前见到的很多官方文档都是翻译过来的,由于翻译水平或者个人能力原因,读起来有些枯燥无味,但鸿蒙系统毕竟是国人开发的,所以还是比较容易理解的。至于重点,目前做鸿蒙应用开发的大多数都是安卓转过来的,所以哪些是重点,哪些是开发中常用的都是知道的。
…/entry/src/main/ets/pages/Index.ets
千呼万唤始出来,终于到了小白最关心的页面部分了,文章也接近了尾声。我虽然没学过ArkTS,不知道@Entry、@Component、@State这些叫做装饰器,也不理解struct Index定义了一个自定义组件,也不知道ArkTS的具体语法。但我毕竟学过Compose开发和flutter开发,一眼就知道它想做的同一件事儿就是:“抛弃传统的xml布局,直接在代码中声明和展示”。
当然对于这种新的开发方式,就更应该注重架构、设计模式等的设计,否则当业务复杂时,可能一个文件承担的功能太多。
至于语法之类的内容,等你打算好了入坑再慢慢学吧,最后贴几张Compose、flutter的UI做个对比。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
-1713639483057)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!