写点什么

Ionic Capacitor:使用 JavaScript 开发原生应用

  • 2019-07-07
  • 本文字数:912 字

    阅读完需:约 3 分钟

Ionic Capacitor:使用 JavaScript 开发原生应用

CapacitorIonic给出的一种混合应用开发新框架,可替代自 2009 年提出以来就广为使用的Apache Cordova解决方案。


Ionic 决定创建该替代 Cordova 的解决方案,主要出于两个方面的考虑。一是 Cordova 的插件系统已经落后于时代,二是 Cordova 管理原生平台的方法存在局限。


Cordova 和 Capacitor 都提供了插件系统,支持 JavaScript 和蓝牙、RFID 等原生平台间的通信功能。Cordova 插件系统近些年一直在尽力跟上最新的技术发展。


其中一个很好的例子是针对Swift语言。该语言由苹果公司在 2014 年提出,但是直到 2019 年才具有 Cordova 插件(虽然更早由第三方提供了支持 Swift 的插件)。


落伍的插件系统损害了整个生态系统,尤其是当生态系统严重依赖于第三方插件时。


Capacitor 插件系统提供更直观的开发过程,支持最新的技术。


由于 Capacitor 插件生态系统的规模相对还比较小,目前开发人员可在 Capacitor 中使用大多数 Cordova 插件。但这种兼容只是临时的解决方案,意在确保开发人员可获取主要的平台特性。


Capacitor 为行业带来的第二个变革是原生项目管理。Cordova 在构建时生成原生平台代码。开发人员使用包含构建应用指令的共享配置文件,该文件进而被 Cordova 的原生构建过程使用。此方法虽然简化了构建过程,但代价是导致原生项目访问受限。


虽然 Cordova 提供的解决方案易于使用,也适用于一些小型项目,但那些更大、更复杂的项目对此提出了挑战。此类项目通常需要对原生项目代码和配置拥有更大的控制权。


为了解决该问题,Ionic Capacitor 采用了一种降低侵入性、增加灵活性的方法。 Capacitor 为原生平台生成并同步 JavaScript 代码,并要求开发人员直接管理原生平台代码。这样的原生代码管理需要开发人员做一些额外的工作,但可以更好地控制项目的原生特性。


Cordova 和 Capacitor 的应用范围均已扩展到移动应用开发之外,现在支持(使用 Electron)创建 PWA 和桌面应用。尽管相比二者对混合移动应用开发的支持,对这些功能的支持尚不完备。


Ionic Capacitor是遵循 MIT 许可的开源软件。欢迎依据“Capacitor贡献者指南”对项目做出贡献。贡献者也需要遵循“Capacitor行为准则”。


原文链接:


Ionic Capacitor: Creating Native Applications with JavaScript


2019-07-07 08:006399
用户头像

发布了 391 篇内容, 共 158.1 次阅读, 收获喜欢 257 次。

关注

评论

发布
暂无评论
发现更多内容

一次“诡异”的JVM缓存加载问题排查

AI乔治

Java 缓存 架构 JVM

记一次 Java 服务性能优化

AI乔治

Java 架构 性能优化 高性能

JVM系列-java内存模型(JMM)

诸葛小猿

JMM Java内存模型 共享变量读写

大量类加载器创建导致诡异FullGC

AI乔治

Java 架构 JVM GC

免费图床+CDN:GitHub+jsDeliver

jiangling500

GitHub CDN 免费图床 jsDeliver

Java 集合(8)-- ArrayList 源码解析

秦怀杂货店

Java 源码 集合 ArrayList

transient关键字的作用以及几个疑问的解决

秦怀杂货店

序列化 反序列化 transient

Java 集合(9)-- Vector超级详细源码解析

秦怀杂货店

Java 源码 集合 ArrayList vector

踩了一个java命令行参数顺序的坑

AI乔治

Java 架构 stream

ARTS打卡 第24周

引花眠

微服务 ARTS 打卡计划 springboot

Java 集合(6.1)-- Collection 和Collections什么关系?

秦怀杂货店

Java collection 集合 Collections

JDBC【1】-- 初级入门之增删改查

秦怀杂货店

数据库 jbdc crud

Java反射说得透彻一些

秦怀杂货店

Java 反射 java反射

你还在使用迭代器删除集合数据,out了,Java 中函数removeIf 不香么

Geek_6f0746

Java JAVA集合 Java迭代器

Java 集合(5)-- Collections源码解析

秦怀杂货店

Java 集合 Collections

Java 集合(6)-- Collection源码解析

秦怀杂货店

Java 源码 collection 集合 JAVA集合

Mybatis【2.1】-- 从读取流到创建SqlSession发生了什么?

秦怀杂货店

数据库 mybatis SQLSession

Mac 安装Homebrew慢的问题解决

秦怀杂货店

Mac homebrew

JDBC【2】-- 工作原理以及简单封装

秦怀杂货店

Java JDBC 工作原理

JDBC【3】-- SPI技术以及在数据库连接中的使用

秦怀杂货店

数据库 spi

serialVersionUID作用是什么以及如何生成的?

秦怀杂货店

Java 序列化 serialVersionUID 反序列化

架构师训练营第八周作业

四夕晖

Scala语法特性(二):控制语句及函数方法

正向成长

Scala函数 Scala控制语句

Mybatis【1】-- 第一个Mybatis程序

秦怀杂货店

mybatis 入门 教程

Mybatis【2】-- 多个mapper文件以及namespace作用

秦怀杂货店

mybatis Mapper namespace

ARTS打卡 第23周

引花眠

微服务 ARTS 打卡计划 springboot

四周 习题与总结

水浴清风

甲方日常 51

句子

工作 随笔杂谈 日常

线程池运用不当的一次线上事故

AI乔治

Java 架构 高并发 线程池

Java 集合(7)-- List 接口源码解析

秦怀杂货店

Java List 源码 集合 java集合使用

常用Git命令速查手册

jiangling500

git

Ionic Capacitor:使用 JavaScript 开发原生应用_大前端_Guy Nesher_InfoQ精选文章