《HarmonyOS:领航者说》技术公开课来啦,大咖分享、实战解码,不容错过 了解详情
写点什么

Tabris 1.0:使用 JAVA 进行跨平台移动开发

  • 2013-05-06
  • 本文字数:1494 字

    阅读完需:约 5 分钟

经过三年的开发,EclipseSource 终于发布了 Tabris 1.0,这是一个支持 iOS 和 Android 的跨平台 Java 移动开发框架。Tabris 定位于企业,与其他移动解决方案不同的是,它使用了不同的方法:

  • 大多数编程工作都使用 JAVA 完成
  • 业务逻辑和客户端 UI 的二进制表示运行在服务器端的 Eclipse RAP
  • 一个很薄的客户端应用运行在移动设备上
  • 服务器端通过 JSON 格式与客户端通信,发送数据和命令让客户端 创建可视的 UI
  • 客户端使用原生组件生成界面
  • iOS 的客户端使用 Object-C 编写,而 Android 的客户端则使用 Java 编写

Tabris 自带了一个构建于的 Java SWT API 之上的 UI 工具包。该工具包增加了两个主要功能部件:页面(Page) 和动作(Action)。前者包含的是应用的基本内容,而后者主要用来执行用户的命令。下面是一个 Tabris 示例应用的截图,其中页面显示为红色,而动作显示为绿色:

页面可以互相链接并导航,而动作既可以是整个应用的全局动作,也可以是当前页面的局部动作。

在处理完一个 组件后,应用的服务器端会将一个JSON 片段发送到客户端,比如下面的例子是创建一个按钮:

客户端应用则会使用iOS 或Android 的原生组件渲染该按钮。

InfoQ 采访了 EclipseSource 的 Tabris 服务器端的团队负责人 Holger Staudacher ,以了解关于该框架的更多信息。据 Staudacher 介绍,Taris 定位于企业,而且需要一直连接到服务端:

Tabris 用于现场移动类应用。这意味着它最好工作在受控的环境中。我所说的受控的意思是使用固定的网络连接,诸如此类。我们的客户——如医院——所有的设备都连接到同一网络。此类应用程序通常是由企业开发的。

Tabris 不支持脱机工作。移动用户界面基本就是一个会话。因此,如果用户的设备断开了连接,则会话会变为无效。在移动客户端可以进行错误处理。我们 实现了标准的错误处理,比如重新发送 http 请求等等。但应用开发人员可以使用原生扩展加以扩充。

当被问及Tabris 是否适合开发一般应用时,Staudacher 说理论上是可以的,但那并非它的最佳使用场景 :

对于一般的应用,这意味着服务器的负载会很高。我们使用的是标准的Java EE 技术。所以, 面对这样的高负载,可以使用Java EE 集群机制。目前我们尚未测试数以百万计的用户负载。但从技术的角度看应该是可行的。

Tabris 支持许多 SWT 组件,还增加了对一些原生感应器(如摄像头和地理定位设备)的支持。

目前,Tabris 支持平板电脑,但这样的应用每次只能显示一个页面。将来会添加对多个页面的支持。此外,Tabris 可以扩展到其他移动平台,如果有动力的话,该框架获或许会支持 Windows。

在不久的将来,Tabris 团队打算增加如下功能:

  • 支持地址簿
  • 支持设备的不同方位状态(垂直或水平)
  • 支持用于处理客户端事件的客户端脚本
  • 支持 XCallbackUrl

根据 FAQ 所述,使用 Tabris 创建的应用能通过 App Store 部署,“只要你遵守 App Store 的规则”。在 Google Play 上有一个针对 Android 的示例应用

Tabris 并不开源,但企业授权用户能获得源代码。更多详情,请访问 EclipseSource 的价格体系页面

『号外』:JavaOne 2013 大会将于 7 月 22–25 日在上海世博中心举行,内容涵盖使用 Java SE 构建现代应用程序、打造针对下一代智能设备的移动和嵌入式 Java 应用程序、编制基于 Java EE 的复杂企业解决方案以及在云环境中安全、无缝地构建和部署业务应用程序等,报名或查看详情请点击

查看英文原文 Tabris 1.0: Cross-platform Mobile Development in Java


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-05-06 06:573500
用户头像

发布了 81 篇内容, 共 27.0 次阅读, 收获喜欢 5 次。

关注

评论

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

【推荐】贵阳市等保测评机构看这里!

行云管家

贵阳 等保 等级保护 等保测评

【活动回顾】Data + AI 时代下的云数仓设计 @Qcon

Databend

和鲸 × 于峻川丨以遥感领域为例,浅谈 AI for Science 带来的数据开放、跨学科协同及产学研一体

ModelWhale

遥感 AI for Science 协同科研 数据开放 产学研一体

架构师日记-到底该如何搭建一个新系统 | 京东云技术团队

京东科技开发者

架构 架构设计 工程架构 企业号 7 月 PK 榜

性能测试的理解误区

老张

性能测试 稳定性保障

DHorse v1.2.1 发布,基于k8s的发布平台

tiandizhiguai

DevOps k8s

向量数据库的崛起:从矢量搜索到深度学习 (二)

极限实验室

深度学习 数据库 搜索 极限科技

中航机载新技术预研与应用工程师万胜来《IoTDB 在中航机载智能云制造系统》

Apache IoTDB

时序数据库 IoTDB Apache IoTDB 中国航天

手把手教你用 NebulaGraph AI 全家桶跑图算法

NebulaGraph

人工智能 图数据库

sharding-jdbc分库连接数优化 | 京东物流技术团队

京东科技开发者

分库分表 Sharding sharding-jdbc 企业号 7 月 PK 榜

壹米滴答助力制造业、商贸业及电商企业提升商业流通效率

联营汇聚

实时社群技术专题(二):百万级成员实时社群技术实现(消息系统篇)

JackJiang

网络编程 即时通讯 IM

掌握这些写简历投简历的“黑魔法”,告别简历已读不回!

王中阳Go

golang 简历优化 面试技巧 求职面试 后端面试

我们搬家啦!新家园,新征程,新篇章

KaiwuDB

KaiwuDB 剪彩 揭牌

人人都是架构师-清晰架构 | 京东物流技术团队

京东科技开发者

架构 架构设计 企业号 7 月 PK 榜 清晰架构

极客欢聚,燃动夏日!开发者嘉年华等你来

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨

使用GPT探索学习新东西的乐趣与惊喜 💡|社区征文

Five

学习 安卓 GPT 年中技术盘点

思维导图软件哪个好?试用百款导图软件只留下这15个。

彭宏豪95

思维导图 在线协作文档 mac思维导图 效率软件 笔记工具

经过半年的努力,我终于成为了谷歌开发者专家(GDE)

拭心

android 面试 谷歌 GDE

常规LED广告显示屏的运营成本怎么估算

Dylan

广告 项目 运营 成本 LED显示屏

浅析JVM GC配置指南 | 京东云技术团队

京东科技开发者

JVM 垃圾回收 GC 企业号 7 月 PK 榜

飞腾开发者平台上线龙蜥专区,为开发者提供硬核技术支持

OpenAnolis小助手

开源 开发者 生态 龙蜥社区 飞腾

2023IKCEST “一带一路” 国际大数据竞赛重磅启动!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

云管平台和云服务器一样吗?两者有啥区别?

行云管家

云计算 云服务器

MobPush 工作台操作指南:查看推送数据

MobTech袤博科技

大数据 前端 后端

视频交友源码开发搭建平台用户资料功能:小功能有大用处!

山东布谷科技

软件开发 视频 实时音视频 源码搭建 交友

Kubernetes:快速入门指南

NGINX开源社区

nginx Kubernetes 微服务

龙蜥开发者说:参与开源要敢于担任不同角色 | 第 21 期

OpenAnolis小助手

开源 标准化 sig 龙蜥开发者说 T-one

Tabris 1.0:使用JAVA进行跨平台移动开发_Java_Abel Avram_InfoQ精选文章