似乎有很多针对 Objective-C 的“快速构建您的 iPhone 应用程序”的第 3 方解决方案,但不确定它们中的任何一个是否有优势。我正在通过教程学习 Objective-C 并创建示例应用程序。我觉得我在慢慢地学习,但尽管如此,我正在学习它。这些第 3 方解决方案是好是坏?
8 回答
如果您有兴趣在 iOS、android、Windows、OS X、x86 Linux 上部署相同的应用程序并可能对用户界面进行一些细微的调整,那么 LiveCode 是一个很好的解决方案……很快还会在 Windows 8 和 arm Linux 上进行。还有一个服务器端脚本选项,因此可以实现一个可跨多个平台使用的库。该平台现在也是开源的,本月将首次发布代码。
这是一个“每个人都有自己”的世界,但我倾向于将 LiveCode 作为我的应用程序制作的一站式商店。正如前面提到的,有许多“快速创建一个糟糕的应用程序”的解决方案,但 LiveCode 努力使代码易于学习和使用,同时支持现代功能。使用较低级别的目标 C 并不适合所有人,但是当您需要一个尚不存在的功能时,您可以卷起袖子自己创建一个外部目标,或者联系 LC 社区。有一些专门提供出色的外部设备,例如 Monte。现在 LC 正在开源,引擎盖下的力量只会变得更好。
我会远离快速构建坏应用程序的工具,但我有点偏见。
我唯一的第一手经验是使用 Titanium Appcelerator,但在那短暂的时间内,我不得不编写一个脚本来修补自动生成的项目源以解决崩溃问题(并且它需要是脚本或对 SDK 的修改,因为每次构建都会覆盖自动生成的代码)。UI API 远非易于使用,我发现问题非常难以调试,因为您的代码被转换为在解释器中运行的压缩 JavaScript blob,并且它在 JS 线程和主线程之间传递东西所跳过的令人难以置信的循环几乎排除了用任何缺失的功能扩展它。我很这里有偏见,因为这是一个项目恢复(具有讽刺意味的是,最初的开发人员最终以原生方式编写了 Android 版本,并且可能花费了更多时间来尝试制作“跨平台”版本而不是制作原生 iOS 版本)。
我听说过关于 PhoneGap 的好消息,如果您需要的只是一个偶尔在本机代码中完成的 web 视图(据报道,用于在 JS 和本机代码之间传递东西的 API 很好),但这是一个很大的“如果”——它可能如果您不关心“原生”用户界面,或者作为添加原生功能的起点,那也没关系。
谷歌搜索 PhoneGap 为 trigger.io 提供了一个广告;我在示例页面上测试了我可以使用的应用程序:
- PlayerPro 的登录屏幕滚动(一个死的赠品),contentSize 太高了 20 像素,并且不使用原生 Facebook 登录。“使用 facebook 注册”按钮图像被拉伸,点击时不会发生明显变化。
- Fanium 的登录屏幕按钮在点击时不会明显改变。当您按下登录按钮时,导航栏中的“按钮”会消失并重新出现。
- Hojoki 的按钮不太对劲。登录页面垂直滚动,但只向一个方向滚动(而且它不需要!)。它不使用本机 Facebook 登录。
- Fetchnotes 的介绍屏幕有左/右按钮(带有未对齐的箭头)可以滚动;你不能只是正常滚动。滚动动画不是原生的。登录/注册屏幕上的后退按钮显然不是原生的,并且太靠近屏幕左侧(所有非原生按钮通常看起来有点不合适)。用户名/电子邮件/密码字段太高。点击一个字段会在键盘顶部显示一个上一个/下一个/完成栏,就像 Safari 一样。在用户名字段中,返回键显示“Go”,点击它会导致错误消息出现在prev/next/done 栏后面(该栏是半透明的,但足够暗,用户甚至可能不会注意到它)而不是切换到下一个字段。
- 在所有应用程序中,非原生按钮响应触摸的时间都比原生按钮长(在键盘上方的 prev/next/done 栏或与附属 Facebook/Yahoo/Google 登录 webview 关联的“关闭”按钮上)。
这就是他们的“应用程序展示”,我什至没有走多远,因为我不太关心创建一次性帐户,因为他们不会为支持本机登录(至少对于 Facebook 存在)而烦恼。
当然,如果您不介意古怪的非本地应用程序,那是您的选择。
这只是我的观点,但无论是什么程序创建的,我都可以在任何地方发现嵌入在 iPhone 应用程序中的 HTML/Javascript 解决方案。我更喜欢为设备而不是网络设计的应用程序,并且适合设备。我的 2 美分。
HTML/Javascript 应用程序对我的主要优势是调整大小以适应大多数设备。
Livecode 应用程序对我的主要优势是能够完全匹配它所针对的设备。
这取决于你想完成什么。
如果您想要跨平台的易用性,Titanium Mobile 的 Appcelerator非常好,尤其是如果您已经了解 JavaScript。然而,就我个人而言,我从未发现这些工具的性能和可扩展性与 Objective-C 的工具一样强大,但它们确实具有跨平台的主要优势。
如果你想要一个只有 iOS 内容驱动的应用程序,RareWire是一个很好的解决方案。它不需要 Mac,而且都是基于云的。我对 RareWire 唯一真正的问题是缺乏真正的处理能力和控制语句。
如果您只针对 IOS,最好使用 Objective C 开发应用程序。但是,如果您针对多个移动平台,如 android、iphone、blackberry,您可以使用其他框架,如 phonegap、kony 等。
电话差距的优势 了解 HTML、javascript 和 CSS 就足够了。
基本 Luva 编码的 Kony Knowledge 的优势就足够了。
如果您正在开发 Web 应用程序,像 phonegap 这样的框架会更好,如果是原生应用程序,使用原生框架会更好。这是我的建议。
两个主要原因:
- 由于缺乏硬件加速导致的性能问题。
- 您可以创建的应用程序类型缺乏灵活性。即仅受第 3 方支持的功能。而对于原生 Objective C,天空才是极限。
任何开发平台的最大优势是最大化您随着时间的推移为相同的工作产生的收入。
使用 Objective-C 定位 iOS 可以让您定位 iPhone、iPod Touch、iPad 的用户。这里没有刻薄的话——您正在学习 C 的面向对象的派生词——仅适用于 Apple 设备的派生词(这里也不要忘记 Mac OS X,尽管您有更多选择)。
多平台(特别是 LiveCode)还打开了所有主要桌面(Windows、Linux、Mac OS X)和 Android 设备。IDE 不是 Web 应用程序,您可以非常非常快速地测试您的想法。