【问题标题】:Writing a mobile phone radio station app - is Javascript/HTML/CSS viable, or do we need to go native?编写手机电台应用程序——Javascript/HTML/CSS 可行,还是我们需要原生?
【发布时间】:2010-10-15 13:26:50
【问题描述】:

我想编写一个应用程序,将 MP3 从服务器流式传输到美国三种主要智能手机操作系统(iPhone、Blackberry 和 Android)中的任何一种。

这是我关心的权衡:如果我在本地编写应用程序,它将带来最佳的用户体验,并让我能够根据需要添加更多功能,但我将拥有 3 个独立的代码库,这违反了 DRY 原则。

如果我使用其中一个框架以 Javascript/HTML 编写它(例如 Rhomobile Rhodes),那么我有一个适用于所有主要平台的代码库,所以我没有违反 DRY 并且开发过程更简单在这方面,但是 a) 用户体验会受到影响,b) 我使用SoundManager 在 iPhone 上使用 Javascript 播放 MP3 文件做了一些简单的测试,它立即开始糟糕(例如,第二阶段的实验之后“酷,我可以播放 MP3”是“我无法访问 ID3 标签?太糟糕了。”)。

我想知道有没有为多个移动平台开发经验的人可以证实或否定我的印象:使用 Javascript 和 HTML 进行跨平台开发是否可行(尤其是对于多媒体应用程序)?或者是“开发和维护三个独立的原生代码库”?

提前致谢。

编辑:这个问题假设我必须作为一个应用程序来做这个。我知道只提供 mp3 并让用户 iPhone/Android/Blackberry Media Player 处理它们可能会好得多,但出于我的目的,这些解决方案超出了这个问题的框架。

【问题讨论】:

  • 如果你只是在玩网络电台,那为什么不让用户自己的播放器来处理它,建立一个移动网站呢?这样一来,您将拥有更广泛的受众,他们不必下载您的应用,并且可以使用他们已经习惯的东西。
  • 我希望它有一个自定义 UI 和品牌,所以虽然你的观点绝对有效,但我要说明问题的一个假设是我们必须将其作为app - 唯一的问题是它是原生的还是使用跨平台的 JS/HTML 框架。谢谢

标签: javascript iphone android blackberry rhodes


【解决方案1】:

我曾为 Pandora(主要是 BlackBerry)开发过多个移动应用程序,我可以告诉您,如果不将每个应用程序都作为原生应用程序,要以我们想要的方式获得用户体验将非常困难(如果不是不可能的话)应用。跨平台框架可能适用于“典型”移动应用程序,该应用程序在一些树形菜单中导航、显示信息、对后端服务进行一些调用等。但我还没有看到一个公开全面的多媒体 API 的框架。我也能理解为什么——每个平台在播放媒体时肯定都有其怪癖。即使像在播放列表中预加载下一首曲目这样简单的事情也需要自定义代码。或者选择将音频路由到哪个音频路径(蓝牙?耳机?)在 BlackBerry 上,流式音频具有特殊的网络要求,因为您不能使用默认的 BIS 或 BES 传输 - 它必须通过 Direct TCP、WAP2 或 Wi-Fi (如果可供使用的话)。再说一遍,更多的自定义代码。

如果有什么安慰的话,可以在 BlackBerry 和 Android 之间共享一些代码 - 即不使用本机 API 的业务逻辑。由于 BlackBerry 使用 J2ME,它只是 Android 使用的 J2SE 的一个子集。

【讨论】:

  • 我同意基于附加信息,基本上是在 PhoneGap 和原生之间做出决定。根据我自己的经验,您可以使用 JS/HTML 应用程序框架制作非常引人注目的应用程序,但是对于音频媒体播放器来说,本机可能更好。您会遇到的另一个问题是支持背景音频播放。
【解决方案2】:

我会选择“开发和维护三个独立的本机代码库”。正如您所说,您将提供更加集成和原生的用户体验,并提供 HTML/JavaScript 尚不可用的功能。

我已经成功地构建和维护了一个在 Android、iPhone、J2ME 和 Symbian 上运行的应用程序,这不是什么大问题。

【讨论】:

    【解决方案3】:

    谢谢,看看 Jango , www.jango.com ,从外观上看,它都是 HTML / JS。效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多