iVX刚推出的时间不长,现在还处于公测阶段,个人用户和工具使用都是免费的,应用处于运营阶段才收费。
总体来说(如下图),相当于“一款零代码可视化编程语言”+“IDE的集成开发环境(自带编译器)+“配套云端IAAS资源”
可以实现:一站式研发、一站式部署、一站式维护的完整的在线开发体系。
iVX平台整体
一、“前后台”一体
前端和后台的能力都很强大,支持中大型各种应用的开发,同时支持各种目标平台的应用。
应用场景包括:
- 企业内部系统(OA HR CRM 文档协作 BPM工作流引擎 表单引擎 Bi引擎 ERP 任务管理系统 各种网站系统 …)
- 工业及物联网iot系统(MQTT相关使用 组态应用 大屏幕应用 MES iot各种系统…)
- 电商系统(支持各种复杂的电商逻辑…)
- 智慧城市/园区/展厅/…超大屏幕
- 中小型游戏开发(纸牌、灵活、视频类、益智类、动作类…)不建议做MMORPG
- 营销应用(H5、网站)
支持的操作系统包括:
- Web云原生
- 微信小程序/阿里系小程序/字节系小程序
- Android/iOS
- Win/Mac/Linux桌面应用
二、Web IDE,实现“云研发”——一站式应用“全生命周期管理”
简单说就是,登陆网页就可以使用iVX的开发IDE(集成开发环境),不用下载安装任何软件插件,所有开发的“逻辑”,需要的资源,测试,部署…都在网页里面完成。
只要打开一个网页,就可以完成“应用开发”>>>“应用调试”>>>“应用发布”>>>“二次开发(运维)”
这是一个真正的IDE,类似(微软)Visual,Eclipse等。
这里需要说明的,由于iVX是新一代开发语言,这种语言的“原代码”就是一种“逻辑构成”,类似AST“抽象语法树”,而不再是一行行“代码”。而这种AST会直接编译成前后台的可执行文件。
三、iVX“图灵完备”,具有自身的编译器,是一种真正的语言
“图灵完备”是一个难点,如何用一套新的方式来表达“程序逻辑”?iVX采用的方式是“触发式的逻辑的编辑面板”,如下图
四、iVX是一套完整的开发体系
Debug、多人开发、版本管理,强大的后台云端资源的支持,iVX全部都具备。
值得一提的“多人开发”的机制,iVX创建了一套类似git的产品,这套产品之所以说类似git,主要是git是基于“一行行代码的文本的”多人开发协作管理系统,而iVX是基于对象的,所以需要独立开发一套全新的适合iVX自己的git系统出来。
五、iVX将建立完整的自己语言生态
主要包括以下四个生态:
- 组件、小模块生态(组件是开放的,iVX开发者可以通过JS代码的方式自己编写,插入)
- 模版生态(包括单个模版和组模版,各种应用和场景)
- 外包生态(项目提供方和开发者/团队在该平台自由选择,通过iVX直接开发,iVX负责平太管理)
- 云市场(类似阿里云市场,钉钉等)(这部分还待开发)
六、iVX对程序员友好
- iVX编辑内部支持内嵌函数,JS语法;例如可以对数据进行自有算法处理;
- iVX体系开放,支持开发者引入自己编写的“组件”,需要按照iVX规定的格式(map)即可;
七、iVX对现有数据资源和服务无缝对接
- 支持前后端API的形式对接,支持API在线调试;
- 支持直接接入MySQL,并控制;(用户名+密码);
- 支持DBO,写SQL语法来对接现有的数据库;(Oracle/ SQL Server/MySQL…)
八、iVX支持应用导出私有化部署
iVX网站有详细文档,请参考
导出部署
。
iVX前端技术栈
- React Core:前端生成代码核心,以及前端IDE都是通过React实现的;
- Vue的框架:相当于是用React将Vue的框架实现了一遍,将Vue的简洁+React的高效融为一体;
- 3D组件:three.js,3D实现基于three.js,能实现强大的3D在线编辑功能,可能控制对象旋转、运动、镜头等;能实现720云相关效果;
- Pixi.js:物理引擎实现;(类似egret)
- 基于对象的Git:【iVX自有专利技术】
- 支持自定义组件导入:根据Map格式,自行代码开发或导入npm包,支持React和Vue组件的导入
- 图标组件:Echart
- 富文本编辑器:Quill
- 全景组件:Krpano
- 默认UI组件:antD
iVX后台技术栈
- Go:后台开发语言;
- Go-Micro:微服务架构;
- 中台业务逻辑编译:node.js + 【iVX自有专利技术】
- AWS IaaS:后台能力集成
- 腾讯WebRTC
iVX不适合做的事情
- 直接用iVX实现比较复杂的算法(正确的姿势是把算法封装到一个对象中,或者直接通过API的方式进行调用,而不是直接通过iVX实现),技术上可以,但是没有必要,可能更麻烦;
- 不要用来做MMORPG等超大规模的游戏;
- 复杂硬件对接或协议对接;(现在iVX支持WebSocket,支持http/https,支持MQTT协议访问,特别是对MQTT做了重点支持)