我们即将构建一个Blackberry应用程序,但是对于是否使用J2ME(基于MIDlet)或Blackberry原生(UIApplication)实现一些意见。
我理解一些权衡。如果我们想将应用程序移植到其他设备,J2ME将更加灵活。 RIM对Blackberry原生有更好的支持。
但我仍然缺乏信息的地方是UI方面。我们希望构建一个具有出色用户体验的应用程序,以及一个看起来像BB用户习惯的其他应用程序的应用程序。如果我们走J2ME路线,我们可以这样做吗?
对问题的主观性和技术性较低表示道歉。
答案 0 :(得分:24)
我尝试过两种方式 - 构建一个纯粹的MIDP应用程序,在BlackBerry和非BLackBerry平台上运行,并构建一个单独的BlackBerry应用程序(通常使用与MIDP应用程序相同的业务逻辑和网络代码)。绝对是黑莓原生路线。
所有关于BB UI类。它们将使您能够(除其他外)响应不同类型的菜单事件(轨迹球和菜单键),响应BB特定的键码,如果您对Storm感兴趣,可以利用方向传感器和触摸支持。此外,它们是一组更丰富的UI元素。你可以在纯MIDP中构建很多(但不是全部)它们所做的事情,但最终会为每个平台定制大量的内容,最终你不会保存任何东西。从BB UI开始,自定义可以节省大量的时间和精力。
即使在游戏应用程序或自定义绘制所有组件的应用程序中,您也可以更好地访问BlackBerry图形API并获得更好的BlackBerry本机应用程序路由性能。您仍然可以获得有关输入事件的更多详细信息。
最后,您可以使用BlackBerry本机应用程序执行一些不错的生命周期事项,例如推送到后台,或者在系统启动时自动运行,而MIDlet无法执行此操作,这可能会对您的应用程序感兴趣。
还要考虑市场 - 如果你计划立即支持黑莓手机,然后可能会推出其他MIDP平台,那么在初始平台上执行最佳功能通常是一个更好的计划。如果您没有先在BlackBerry上取得成功,那么稍后可能没有太多理由移植到MIDP。
答案 1 :(得分:10)
BlackBerry是一个非常难以编程的平台。我走了原生路线,发现它的记录非常糟糕,整体而言只是一个可怜的设计。我确实认为这是必要的,因为如果你走J2ME路线,你将失去某些功能(滚轮?)的能力。这是一个权衡,您必须选择更适合您特定需求的那个。
答案 2 :(得分:4)
自2002年以来,我一直在使用J2ME,当时Nextel / Motorola手机处于J2ME功能的最前沿。我主要处理非游戏应用程序。今天随着J2ME的发展和更多的手机符合JSR,我的应用程序继续顺利移植。今年我终于开始将它转移到Blackberry设备上了。两天后,我的应用程序在Blackberry上完全正常运行。该应用程序是纯粹的通用J2ME,并使用许多JSR(位置,蓝牙,xml等)。强大的UI设计有助于。我扩展了一些UI类以支持QWERTY / SureType键盘。我已经使用了Blackberry设备上的各种原生应用程序(不是游戏),我还没有理由冒险进入RIM API,看看我会从中获益。其他程序员在上面提出的论点进一步证明,除非你纯粹致力于Blackberry设备平台,否则几乎没有什么好处。
答案 3 :(得分:2)
在不知道应用程序范围的情况下,意味着您要定位哪些设备,您需要考虑的另一件事是每个BlackBerry型号的输入差异不断扩大。一些设备,如Curve和Bold,是标准的QWERTY垫,其他设备,如PEARL,有SureType垫。然后是Storm,它根据屏幕的方向支持两者。此外,如果用户按此方式设置,则SureType打击垫需要用作标准数字键盘。本机API支持所有这些,您将无法使用标准MIDP。
在设计用户体验时的另一个提示是,我会亲自操作一些不同的BlackBerry型号,然后尝试一些标准的应用程序,因为有很多用户习惯使用的快捷方式,甚至可能都没有实现存在。例如,SPACE栏向下翻页。这对于阅读文档来说是巨大的,但是我有一个没有这个功能的第三方RSS提要阅读器,我总是先尝试使用它,然后再记住它在这个应用程序中不存在。这种小细节可以为黑莓用户带来巨大的变化。
答案 4 :(得分:1)
介于两者之间:您可以在J2ME中使用J2ME-Polish和本机代码。波兰语将在某种程度上添加原生BlackBerry应用程序的外观和感觉。这样做的好处是可以将您的应用程序移植到其他J2ME手机上,而不仅限于BlackBerry。
答案 5 :(得分:0)
我同意Anthony的观点,我会使用BlackBerry特定的BlackBerry应用程序API。 J2ME只是不可移植,黑莓对其专有API有更好的支持。
答案 6 :(得分:0)
根据我的经验:坚持使用原生BlackBerry UiApplication。它是BlackBerry的最佳选择,可为BlackBerry用户提供最佳用户体验。您无法轻松地使用J2ME复制它。
答案 7 :(得分:0)
J2ME开发简单。而且,BlackBerry API有许多功能,您也可以使用简单签名的限制类。黑莓出售他们的标志证书,价格便宜。 20 $。您可以使用此证书签署并使用所有受限制的类。在J2ME中,有时您必须使用多个证书,即使您无法使用所有电话功能。所以,我的建议是,使用BlackBerry原生API和一些J2ME Wrapper Codes。因此,您可以轻松编写J2ME代码,并可以使用BlackBerry本机API的所有功能。