什么是iPhone SDK缺失?

时间:2009-01-13 13:43:21

标签: iphone cocoa-touch

我一直在做移动应用程序开发很长一段时间(2001年?),但我们当时使用的系统是专用的移动开发环境(Symbian,J2ME,BREW)。 iPhone SDK是Mac OS X和Apple对移动设备(Cocoa Touch)的奇特混合体。

但缺少其他移动系统的一些东西,IMO。具体做法是:

  • 申请背景处理
  • 短信/彩信应用程序路由(在后台向我的应用程序发送短信)
  • 用于访问电话功能/通话记录/呼叫拦截的API

我意识到Apple完全有理由以他们的方式发布SDK。我很好奇SO上的人认为SDK 缺失以及如果他们是Apple的工程产品经理,他们将如何修复/添加它。

14 个答案:

答案 0 :(得分:11)

我认为最大的缺点是支持将许可与发行分开。

我的意思是应该可以下载应用程序的试用版,然后购买该应用程序的许可证(来自应用程序内部的API调用或应用程序商店)。这样可以让你在购买之前更轻松一些,并且可以摆脱许多应用程序与'lite'版本的当前副本。

答案 1 :(得分:9)

我认为缺少针对应用的推送通知是我们现在所缺少的重点。使用push,您可以注册您的应用程序以执行任务(例如从Web服务获取最新数据),即使它没有运行,也是操作系统决定最佳的时间和频率。在理想的世界中,随着iPhone应用程序的现有概念快速加载并在最后一次停止的地方恢复,这解决了不在后台运行的问题。我知道使用这种策略会有一些任务变得更困难或者更不可能,但它仍然是第三方应用程序和iPhone有限硬件之间的一个很好的折衷方案。

最初推送计划于去年9月推出,但它已从测试版SDK中删除,此后一直没有提及。

答案 2 :(得分:7)

API我个人在寻找:

  • Apple80211作为公共API(私有,当前API,如果有文件记录,则可以使用)
  • 访问音量按钮(可通过Celestial进行半访问,私有,需要新的API)
  • 访问日历(私人,API状态未知)
  • 访问蓝牙+ SPP配置文件(状态未知)
  • 访问相机(直接,API状态未知)
  • 访问JavaScript运行时(直接,不通过UIWebView,API状态未知)
  • WebKit访问权限低于UIWebView(私有,当前API很好)
  • 访问音乐库(私人,当前API很好)

答案 3 :(得分:5)

垃圾收集。

答案 4 :(得分:3)

缺少CoreData。

答案 5 :(得分:2)

你已经提到了一些重要的东西 - 复制和放大粘贴(或实际上任何应用程序协作的方式)是另一个巨大的遗漏。

它似乎也缺少桌面同步框架(至少如果它存在我找不到它)。

语言独立性,特别是缺乏脚本编写是另一个令人讨厌的问题 - objective-c非常好,但更多可供选择的语言会很好。

无法通过脚本或其他方式动态扩展应用程序是另一个重大遗漏。这部分是SDK / OS问题,部分是许可。

答案 6 :(得分:1)

我的名单按优先顺序排列:

  • 映射抽象(MapKit看起来很棒),但这需要新的Google Maps TOS
  • 音乐库
  • 相机(照片+视频)访问更多
  • UIViews,Apple为他们的应用程序设计了一些非常好的自定义
  • 更好的UIWebKit抽象

答案 7 :(得分:1)

我看到它缺少的功能是

  • 访问短信
  • 直接访问Google地图应用。您应该可以访问此权限,以便扩展应用程序以使用Google地图提供的内置功能。<​​/ li>
  • 访问手机的蓝牙功能。
  • 访问日历。为什么不允许访问只是为用户发布日历事件。
  • 访问Active Sync。如果我们可以直接访问它并与Exchange Server进行通信,那就太好了。
  • 核心形象。他们提供核心动画,但缺少核心图像。我希望很快就会将其添加到API中。

这些是我的客户过去可以访问的一些功能,当它们不可用时会被取消。

答案 8 :(得分:1)

我们绝对错过了日历API和短信访问。如此多的应用程序可以利用这些API。 iPhone允许用户将所有东西放在口袋里,但只要开发人员无法在他们的应用程序中利用这种集成,它几乎是无用的。

答案 9 :(得分:1)

具有适当命名空间的语言。

答案 10 :(得分:0)

一个让我烦恼的限制是无法访问需要root或setuid的系统功能。例如:打开特权IP端口。

我不确定是否有一个很好的解决方案,只要Apple的政策是保持设备锁定。

答案 11 :(得分:0)

允许程序为您的应用程序设置某种本地定时事件,以便在用户同意(如任何日历应用程序)时显示警报并启动您的应用程序。你可以通过推送通知来做到这一点,但是在很多情况下我不得不依赖整个服务器基础设施和网络连接来基本上做一些定时的事情。

了解用户面临的方向。我不敢相信新款iPhone使用的GPS芯片无法报告方向。

答案 12 :(得分:0)

我个人很乐意看到

  • 访问CoreTelephony框架(目前为私有)。允许访问所有电话功能(特别是发送彩信/短信)。
  • 某种在后台运行东西的能力。虽然推送通知对于大多数事情都是可以的,但是利用CoreLocation有点困难(即让应用程序在某个位置显示通知)。当然,这可能需要一个开/关按钮或特定的应用程序,如push is。

答案 13 :(得分:0)

动画视图将减少开发人员制作一个很酷的应用程序,当然核心业务本地仍需要考虑更多,但视图层可以更容易使用....