NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:573136
用户头像

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

关注

评论

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

在小厂工作三年的程序员喊话大厂:Java 中高级岗面试为何越来越难?

Java 程序员 架构 面试 IT

为了彻底搞懂 hashCode,我钻了一下 JDK 的源码

沉默王二

Java

想不到阿里内部的神级项目和JDK源码阅读指南竟惨遭GitHub开源

Java 架构 面试 程序人生 计算机

我终于在六月份实现了跳槽九连杀:字节跳动 Java 研发岗

Java 编程 面试 IT 计算机

如何利用 Apache APISX 提升 Nginx 的可观测性

API7.ai 技术团队

nginx 开源 网关 APISIX

【SpringCloud技术专题】「原生态Fegin」打开Fegin之RPC技术的开端,你会使用原生态的Fegin吗?(中)

洛神灬殇

SpringCloud OpenFegin Fegin 8月日更

高可用架构(上)

编号94530

微服务 数据库设计 架构设计 高可用架构 高可用集群

滚雪球学 Python 第三轮,Python Web 之 Django 的世界

梦想橡皮擦

8月日更

Flink的DataStream API(v1_7)(五)

数据与智能

flink 并行 函数

同事吃透了这份“阿里 Java 面试核心知识手册”6月份居然斩获 11 张大厂 Offer!

Java 编程 架构 面试 IT

站在巅峰的阿里面试参考指南!居然能让我成功拿下 12 家大厂 offer?

Java 程序员 架构 面试 IT

合并两个有序数组

Memorys

Java 面试 算法

解读区块链技术在中小企业中的4种常见用例

CECBC

保险污名化?区块链赋予保险的「四个机会」

CECBC

书山有路,AI为径:科大讯飞如何在智能教育硬件赛场突出重围?

脑极体

字节大牛把算法常见面试:哈希、链表、队列、递归全部总结出来了

Java 程序员 面试 算法 计算机

神啦!最全“Java面试宝典+Java核心知识集”,一箭双雕杠秋招

Java 程序员 架构 面试 IT

链路压测中的支路问题初探

FunTester

性能测试 测试框架 压力测试 全链路压测 测试开发

套接字

一个大红包

8月日更

我要上首页!自荐好文,官方百万流量扶持

InfoQ写作社区官方

9月日更 11月日更 12月日更 热门活动 10月月更

react脚手架create-react-app学习笔记

Tao

React

阿里 Java 面试爆出内幕?十万字内部面试题总结(2021合格版)全网开源!

Java 编程 程序员 架构 IT

迈入 8K 时代,AI 驱动超高清 “视” 界到来

阿里云视频云

阿里云 高清视频 视频处理 视频制作 视频云

什么是通证经济?它和区块链又有什么关系呢?

CECBC

惨遭泄密!阿里P8大佬的架构笔记外泄:微服务分布式架构实践手册

Java 编程 架构 面试 架构师

三年豹变!拥抱Z时代,UDE迈向消费电子国际大展

科技热闻

人类高质量程序员如何过七夕?

InfoQ写作社区官方

话题讨论

涨薪 150%,从小厂逆袭,坐上美团 L8 技术专家(面经 + 心得)

Java 编程 程序员 架构 IT

我是一个下「笨功夫」的人

非著名程序员

个人成长 认知提升 个人提升 8月日更

AlertManager 告警发送频率探究

greatersecurity

从 async 和 await 函数返回值说原理

devpoint

Promise Async 8月日更

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