快速上手,使用 Kotlin 把支付宝小程序装进自己的 App

写一个 Android App 或许不难,但企业对于移动应用的要求愈来愈高,不只要求开发速度、稳定度、质量等,甚至希望能具备动态扩展的架构设计、在 App 中自启动小程序。面向这些需求,若是有好的开发工具及平台的支持,将可以大大降低开发及运维的成本。本次网络研讨会特别邀请到支付宝高级无线开发工程师温盛章为大家演示用 Kotlin 开发移动应用,并集成 mPaaS 让 App 具备小程序能力。

主题分享

本次分享共有三个关键字:Kotlin 、 小程序 、 mPaaS 。温盛章首先从用户、开发、技术、平台等四大视角,向大家说明小程序是什么?简单来说,小程序就是一种拥有完整生命周期、应用间相互隔离、独立运行于宿主应用内的应用。而小程序从工作型 App、平台型 App、超级 App 到新阶段一路的演化历程,目前已经可以有接近 Native 的体验和顺畅、也可以有 H5 的快捷发布的优势。

对小程序有概念后,温盛章就以 Android Studio 演示如何在一个 Mobile App 里,以 Kotlin 撰写 Mobile App 的代码,并接上 mPaaS 平台,让 App 有自启动小程序的能力。要接入 mPaaS,首先需在 Android Studio 里安装 mPaaS 插件,并到阿里云的 mPaaS 后台创建一个新建用。接着,在 Android Studio 里通过插件介入 mPaaS 后下载设置文件及基线。再来,依照项目的需求,下载所需的 mPaaS 组件。完成这些设置后,在 Native 部份,仅需 App、Activity、Plugin 三个文件,就可以做出一个接上小程序的简单应用。

小程序的部份,可以通过 mPaaS 的 IDE 撰写 HTML、CSS、JS 完成小程序端的开发,上传至 mPaaS 后台后,就可在 App 里启动。不仅如此,mPaaS 的 SDK 还可以将 Native 端与小程序间打通,两者可以交互传递信息,只要照着文档示例操作,一个具备小程序能力的移动应用,就在不到 1 小时内完成!

听完这场分享后,相信大家都能体验小程序在开发及部署的好处、Kotlin 语法的简洁及 mPaaS 服务的完整性。通过这样的工作流,可帮助您实现“代码仅需撰写一次,便可多端投放”,从而深度提升研发效率。

Q&A

Q. 学习 Kotlin 可以完全不用懂 Java 吗?或者了解下 Java 的一些基本知识就够了?

温盛章:Kotlin 在设计上有许多语法糖,像是 Extension 可以轻松的依据需要做扩展、Lambda 表达式可以构成 DSL 的能力、Coroutine 把线程封装后更好使用,加上现在 Google 的 Android 团队采用 Kotlin 做为官方语言,所以我觉得可以先以 Kotlin 为主去学习 Android 开发。不过,别忘了 Kotlin 最终还是编译成 JVM 的字节码,所以要搞清楚底层的话,一些基本功还是不能落下。

范圣佑补充:学习 Android 时,可以到 Google 的 Code Lab 上学习,非常适合初学者。

Q. 我的理解是 Kotlin 是负责数据的处理,而像获取安卓手机信息这个功能只需要调用安卓的一些组件就能实现了是吗?

温盛章:这个东西需要隔离开来看,我们可以先把 Kotlin 理解成一个槌子,调用安卓组件我们可以简单的理解成钉子。怎么把钉子打到墙里面,你可以用槌子、也可以用剪刀,只要能完成任务就行。但很明显的,用剪刀把钉子打到墙里估计要比槌子难,所以 Kotlin 在这里就是扮演着槌子的角色。就我自己使用的经验来说,Kotlin 在提升效率这方面带来非常大的帮助。原本用 Java 得写又臭又长的代码,改用 Kotlin 后就变得非常的简洁。

我这边要特别强调一下 Kotlin 里 Null Safety 的特性,以前在 Java 里一个变量是否为 Null 需要在逻辑层里自行解决,但在 Kotlin 里可以用问号,通过编译器就可以预先做好对空值的处理。这部份的强化和提升是我非常喜欢的。

Q. 用 Kotlin 开发安卓,用 Andriod Studio 比较好还是用 IntelliJ IDEA 更方便些,有哪些好用的插件了可以推荐下?

范圣佑:Android Studio 和 IntelliJ IDEA 是使用相同的 IntelliJ Platform 打造出来的,所以在 UI、快捷键操作上其实都很雷同,许多插件也是可以互通的。若你只需要开发 Android 的话,用 Android Studio 其实就可以满足你的需求;但若你不仅需要开发 Android,还需要开发像 Web、数据库的工作,那会推荐使用 IntelliJ IDEA Ultimate 版才能满足各方面的需求。

温盛章:单纯开发 Android 或 Android 与其他工程混在一起的项目,我会推荐用 Android Studio;但假如是纯 Java 或 Kotlin 的项目,我就会推荐用 IntelliJ IDEA,而且非常推荐使用 Ultimate 版,因为 Ultimate 版相比 Community 版提供了更多的功能,非常的好用。

两位推荐的插件包括:

1)在演示过程中可以显示快捷键提示的 Presentation Assistant 插件

2)让 IntelliJ IDEA 可以有像 Vim 一样操作模式的 IdeaVim 插件

3)本次演示的主角 mPaaS 插件(目前仅支持 Android Studio)

4)用 Annotation 让 Java 有一些类似 Kotlin 特性的 Lombok 插件

Q. 有办法可以 Android 模拟器调试吗?

温盛章:以开发 mPaaS 应用来说,因为没有提供 x86 及 x64 的 Native 支援,所以很遗憾的目前没有办法以 Android 模拟器调试,只真机调试。对于 Android 开发者来说,因为 Google 及许多平台的 SDK 对 x86 的支持也不是那么的好,加上考虑自己的电脑是不是够快,所以 Android 开发我还是强调建议真机调试。

Q. 请问手机投屏的软件是?

温盛章:付费版的 Vysor。

Q. 请问小程序怎么不选择 Flutter 作为引擎?

温盛章:小程序的好处是上层使用的语言(也就是使用 HTML、CSS、JS)及下层搭配用 Web View 显示已经固定且稳定,所以 mPaaS 优先支持这样的架构。而 Flutter 在下层使用的引擎不同,我们其实已经有在做尝试,但现阶段还不适合商业公开。等到技术上够成熟后,会再公开 mPaaS 与 Flutter 的版本。


原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最佳实践:使用阿里云CDN加速OSS访问

简介: 用户直接访问OSS资源,访问速度会受到OSS的下行带宽以及Bucket地域的限制。如果通过CDN来访问OSS资源,带宽上限更高,并且可以将OSS的资源缓存至就近的CDN节点,通过CDN节点进行分发,访问速度更快&#…

IDEA 2022 CPU占用100%的问题及解决方法

禁用下面这三个插件然后重启IDEA即可: Package Checker Package Search Ktor 下面的内容可以不用看了,只要禁用这仨插件就行

无服务计算应用场景探讨及 FaaS 应用实战

简介: 无服务计算本身是一个概念或者理论模型,落地到具体技术上主要有函数即服务(FaaS)以及后端即服务(BaaS)两种形式,阿里云提供函数即服务 FaaS 产品。 作者 | 宋文龙(闻可&#x…

想学 Python?那这套教程再适合你不过了!!

如果你想问最近这些年什么编程语言最值得学习,我相信很多人都会告诉你是Python!所以不仅是开发小白,甚至很多开发老手,也都开始学习Python,作为辅助第二语言来提高自己的职场竞争力。不过结合我最近这些年Python的学习…

springboot2 shardingjdbc4.x 分表

文章目录一、shardingjdbc3.x1. 依赖2. yml3. 自定义的算法二、shardingjdbc4.x2.1. 依赖2.2. yml2.3. 自定义算法一、shardingjdbc3.x 1. 依赖 <!--分表库分表中间件--><dependency><groupId>io.shardingsphere</groupId><artifactId>sharding…

2020-09-01

简介&#xff1a; 《5天入门视觉AI》电子书来了&#xff01;身份证识别、电子相册两大实践场景带你快速入门视觉AI应用开发&#xff01; 阿里云“在家实践”全新出击&#xff01; 《5天入门视觉AI》电子书正式上线&#xff01; 视觉AI训练营必备教材&#xff01; 身份证识别、电…

再见 Nacos,我要玩 Service Mesh 了!

作者 | 姜桥出品 | CSDN云计算&#xff08;ID:CSDNcloud&#xff09;前面的文章<<干货|如何步入Service Mesh微服务架构时代>>实战演练了Service Mesh微服务架构的具体玩法&#xff0c;该案例中通过IstioKubernetes的组合&#xff0c;一组以Spring Boot框架开发的服…

顶会论文看不懂?阿里巴巴技术专家为你全方位解读!

简介&#xff1a; 由阿里云开发者社区联合新零售智能引擎事业群共同打造的《KDD 论文精华解读》电子书重磅发布&#xff01;覆盖推荐系统、图神经网络预训练、买家秀视频标题生成、在线电视剧的受众竞争力预测和分析等 10 内容&#xff0c;免费下载电子书感受科技的震撼&#x…

springboot2 shardingjdbc4 yml单库分表

官网&#xff1a;https://shardingsphere.apache.org/document/legacy/3.x/document/cn/features/sharding/concept/sharding/ 1.下面已经实现了根据ID进行分表&#xff0c;使用的是shardingJDBC ID 生成策略为 SNOWFLAKE 2.自己传ID进来也可以根据ID进行分表 3.自己建表这些&…

Python C扩展的引用计数问题探讨

简介&#xff1a; # Python GC机制 对于Python这种高级语言来说&#xff0c;开发者不需要自己管理和维护内存。Python采用了引用计数机制为主&#xff0c;标记-清除和分代收集两种机制为辅的垃圾回收机制。 首先&#xff0c;需要搞清楚变量和对象的关系&#xff1a; * 变量&…

springboot2 shardingjdbc4 yml配置单库分表+根据年月份进行分表

文章目录1.下面已经实现了根据年份月份进行分表&#xff0c;使用的是shardingJDBC ID 生成策略为 SNOWFLAKE2.自己传ID进来也可以根据ID进行分表3.要注意配置文件中的每个参数名的配置层级&#xff0c;我在进行配置的时候&#xff0c;就是因为参数层级位置不对的问题弄了一下午…

终端安全 | 全面适配国产系统,打造政企合规终端

终端是网络的神经末梢、是数字化业务的生长细胞&#xff0c;它处在网络安全防御的第一线。 针对不同行业用户需求&#xff0c;以及种类繁多的终端架构&#xff0c;亚信安全推出“大终端”一体化安全解决方案&#xff0c;并通过强大的“泛载”与“泛在”能力&#xff0c;为政企…

云原生时代 RocketMQ 运维管控的利器 - RocketMQ Operator

作者 | 刘睿、杜恒 导读&#xff1a;RocketMQ Operator 现已加入 OperatorHub&#xff0c;正式进入 Operator 社区。本文将从实践出发&#xff0c;结合案例来说明&#xff0c;如何通过 RocketMQ Operator 在 Kubernetes 上快速搭建一个 RocketMQ 集群&#xff0c;并提供一些 Ro…

Spring Security BadCredentialsException: Bad credentials问题解决

问题描述&#xff1a; org.springframework.security.authentication.BadCredentialsException: Bad credentials 问题分析&#xff1a; 1、数据库里面的密码没有加密&#xff0c;导致输入正确密码也匹配不上。 解决办法&#xff1a;使用PasswordEncoder先将当前密码加密&…

携程在港挂牌:两次疫情两次上市 穿越周期初心不灭

携程香港联合交易所上市庆祝仪式现场 2021年4月19日9点30分,携程集团正式在香港联合交易所上市&#xff0c;股份代号&#xff1a;9961.hk。这是继2003年在美国纳斯达克上市后&#xff0c;携程在香港的第二次上市。在上海市凌空SOHO携程总部大楼前&#xff0c;8位携程客人代表数…

淘宝直播在智能互动领域的探索及落地

简介&#xff1a; 随着带宽成本的降低和端上算力的提升&#xff0c;在直播、短视频中基于流的互动玩法也将越来越丰富&#xff1b;无论是基于人脸、手势、分割算法的智能化贴纸&#xff0c;还是结合算法的小游戏有了越来越好的舞台&#xff1b;业界短视频和直播主要针对的娱乐性…

使用security 内置密码生成、比较测试案例

public static void main(String[] args) {BCryptPasswordEncoder bCryptPasswordEncoder new BCryptPasswordEncoder();String password bCryptPasswordEncoder.encode("123456");System.out.println("使用security加密后的密码->:"password);System…

基于实时计算Flink的机器学习算法平台及场景介绍

作者&#xff1a;高旸&#xff08;吾与&#xff09;&#xff0c;阿里巴巴高级技术专家 1. 前言 随着互联网“人口红利”的“消耗殆尽”&#xff0c;基于“T1”或者离线计算的机器学习平台及推荐系统转化率与效果日趋“平淡”。后疫情时代的新社会模式及经济形态必将催生出新的…

SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可监控)

简介&#xff1a; 本篇是“SpringCloud 应用在 Kubernetes 上的最佳实践”系列文章的第六篇&#xff0c;主要介绍了如何保障生产环境服务稳定&#xff0c;做到随时发布&#xff0c;从而加快业务的迭代和上线速度。 文&#xff1a;骐羽 前言 在应用发布上线的时候我们最担心的…

mPaaS:全新移动开发平台,只为打造性能更优越的App

简介&#xff1a; 基于移动开发现状与技术演进预判&#xff0c;提供移动开发强力解决方案&#xff0c;洞察 mPaaS 如何帮助企业有效降低技术门槛&#xff0c;减少研发成本&#xff0c;搭建更稳定、更流畅的移动 App。 mPaaS 是源自于支付宝的移动开发平台&#xff0c;为移动开发…