当前位置: 首页 > 科技观察

Kotlin在鸿蒙开发中的实践

时间:2023-03-16 11:17:03 科技观察

了解更多请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com先说kotlin,我们知道:kotlin目前是Android首选编程语言。Android正在逐渐抛弃java拥抱kotlin,这是一个大趋势。kotlin最大的优势就是与java的互操作性。kotlin编译出来的产物和java一样都是字节码(不找借口,本文只讲kotlinforjvm)。Kotlin是一种现代高级语言。Java也是一种高级语言,但是开发效率很低。kotlin作为一门现代语言,语法更加简洁,还有很多高级特性,比如:NullSafe、DataClass、扩展、运算符重载、lambda表达式、闭包等。第一次尝试使用的鸿蒙ide是开发生态工作室3.0.0.800。使用kotlin必须配置相应的gradle插件、ide插件等gradle插件(功能:编译.kt文件)在项目buildscript{dependencies{classpath"org.jetbrains.kotlin的gradle.build中配置applyplugin:kotlin-gradle-plugin:1.6.10"}}entry'sgradle.build:The'kotlin'ideplugin(功能:让ide识别.kt文件,高亮,语法提示等)DevEcoStudio3.0.0.800基于IntelliJIDEA212.5457.46,所以我们找到对应的版本下载https://plugins.jetbrains.com/plugin/6954-kotlin/versions/stable/150173将下载的zip包直接拖到DevEco界面,会自动安装.在MainAbilitySlice中构建一个kotlin数据类,UserdataclassUser(valname:String,valage:Int)使用UserpublicclassMainAbilitySliceextendsAbilitySlice{@OverridepublicvoidonStart(Intentintent){super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);Userandy=newUser("andy",28);//使用DataClass,就像javaclassTexttext=(Text)findComponentById(ResourceTable.Id_text_helloworld);text.setText(andy.getName());}}结果:可以识别.kt文件,并且有语法高亮没问题,说明ide插件配置成功。但是编译失败,提示The'java'pluginhasbeenapplied,butitisnotcompatiblewiththeHapplugins..我的理解是org.jetbrains.kotlin:kotlin-gradle-plugin和com.huawei.ohos:hap冲突。这个问题超出了我的能力范围。还有别的办法吗?第二次尝试。由于org.jetbrains.kotlin:kotlin-gradle-plugin和com.huawei.ohos:hap冲突,我们建一个java库模块,把.kt文件放在这个模块下,可行吗?答案是:可行!直接看源码---->https://gitee.com/andych008/HMkt总结虽然我们已经尝试过,在鸿蒙app开发中可以使用kotlin,但是我还是不建议大量使用在实践中。说不定哪天,DevEcoStudio就完全不支持Kotlin,这样之前写的代码维护起来会很不方便。但是,如果有一些平台无关的代码,比如在安卓和鸿蒙上都用到了,那我们就可以放心的用kotlin去实现了。此外,在华为开发者大会(2021-10-22)上,华为表示将发布自研编程语言。难用的java先忍一忍吧。华为自研的编程语言,肯定会具备与kotlin、swift等现代语言相同的特性。现在学习使用kotlin,以后肯定有用!了解更多请访问:Harmonyos技术社区https://harmonyos.51cto.com与华为官方共建