Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone应用程序:网络应用程序还是本机应用程序?_Iphone_Objective C_Web Applications_Iphone Web App - Fatal编程技术网

iPhone应用程序:网络应用程序还是本机应用程序?

iPhone应用程序:网络应用程序还是本机应用程序?,iphone,objective-c,web-applications,iphone-web-app,Iphone,Objective C,Web Applications,Iphone Web App,我计划为我们的在线网络应用程序创建一个iPhone应用程序版本。我还不熟悉iPhone应用程序的开发,所以我不知道是选择iPhone原生应用程序还是在iPhone浏览器上运行的网络应用程序 这个要求实际上相当基本。iPhone应用程序需要提交数据并从网络应用程序使用的数据库获取数据。用户将有相同的访问webapps的权限,只是我希望这是特定于iPhone的,因为使用webapps和iphoneapps的用户体验会有所不同。我也有兴趣在Apple store上销售该应用程序 根据您的经验,对于这种

我计划为我们的在线网络应用程序创建一个iPhone应用程序版本。我还不熟悉iPhone应用程序的开发,所以我不知道是选择iPhone原生应用程序还是在iPhone浏览器上运行的网络应用程序

这个要求实际上相当基本。iPhone应用程序需要提交数据并从网络应用程序使用的数据库获取数据。用户将有相同的访问webapps的权限,只是我希望这是特定于iPhone的,因为使用webapps和iphoneapps的用户体验会有所不同。我也有兴趣在Apple store上销售该应用程序

根据您的经验,对于这种需求,iPhone原生版还是webapps,有什么更好的选择?构建在iPhone浏览器上运行的本机iPhone应用程序和Web应用程序有哪些缺点?此外,我是否仅限于使用Objective-C构建本机iPhone应用程序?或者有没有其他的框架


请对我温柔一点,我不是在发动火战

你可以吃蛋糕,也可以吃

通过使用
UIWebView
实例,您可以轻松地将web应用程序和本机应用程序混合使用,例如,在Cocoa/Objective-C代码中实现性能敏感的部分,并将WebKit视图插入到耗时而无法重写为本机的部分

如果您想要应用商店分发,您甚至可以将整个web应用包装在本机软件包中-请参阅

若用户将你们的页面添加到他的主屏幕上,你们也可以开发一个看起来不像是通过Safari发布的纯web应用程序——请参阅

缺点: Web应用程序的速度可能不如本机应用程序快,但通过HTML5离线支持和特定于WebKit的扩展(如转换和动画),您可以走得更远。确保使用-Safari delays
onclick

很难让纯web应用程序感觉像是合适的本机应用程序。例如,mobile WebKit不支持复制顶部导航栏所需的
position:fixed
,web视图的滚动速度与表视图不同。它是可修复的,但需要使用JavaScript

优势: 快速发展。当我不得不在
UIView
s中复制应用程序时(InterfaceBuilder只适用于半固定布局),我真的很欣赏CSS/HTML对于复杂布局的帮助

你已经为苹果突然憎恨和禁止另一件事投保了。如果他们从AppStore中删除你的应用程序,你可以让用户通过网络访问它(谷歌通过语音和纬度应用程序实现了这一点)

将网络应用移植到Android和其他系统(WinMo、HP Pre、最新黑莓等)更容易。苹果排名第一,但它的思想份额与市场份额并不成正比。其他人正在迎头赶上

如果你选择母语 你必须按照苹果的方式来做:Objective-C和Cocoa(你可以用普通的C或C++完成部分应用程序)。有很多关于这个主题的教程和书籍,所以我不会在这里重复。只是一些随机的建议:

  • plists虽然是“原生”的iPhone格式,但并不适合于客户机-服务器通信。即使按照XML标准,XML plist的开销也很高,而二进制plist的生成和调试可能会很困难。实际上更快,通常更容易使用

  • 如果只获取少量信息,
    n连接
    只会使事情复杂化。您只需在通过
    performSelectorInBackground:
    启动的方法中使用
    [NSData dataWithContentsOfURL:

  • UITableView
    滚动时,不会发送通知。如果希望在表中延迟加载图片,请使用回调加载并设置它们

    • ,Noah提到,这绝对是一条可以进行HTML+javascript开发并将其打包以供发布的路线,同时还可以利用iPhone的许多优秀本地功能

      其余的都依赖于一些您尚未共享的元素。您希望UI/搜索的响应速度和流畅程度如何?在这种情况下,web应用程序的延迟(即使是在3G上)可能会鼓励您寻找一种替代方案,在本地更快地呈现它(使用所有本地,甚至使用Objective-C)


      其他地方,听起来不像是在你的道路上,寻找你可能想要直接做Objective-C的地方,是围绕动画的较重的图形和操作(尽管javascript+Canvas和HTML5让我成为一个骗子),使用相机和/或麦克风录制多媒体,或者需要大量密集处理的东西。最后一个问题是,你能在哪里完成这项工作?你想在哪里完成这项工作?在服务器上(典型的谷歌风格选择)还是在设备上?

      如果你想在iTunes应用商店上安装应用程序,你必须在Objective-C中编写应用程序。 以下是引自iPhone OS 4.0开发者协议的一段话。我强调了最相关的部分

      3.3.1-应用程序只能以以下方式使用记录的API 由苹果公司规定,不得使用 或者调用任何私有API。应用 必须最初用英文书写 ObjtoE-C、C、C++或JavaScript AS 由iPhone操作系统WebKit执行 引擎,并且只有用C编写的代码, C++和ObjuleC可以编译 直接链接到记录的 API(例如,链接到 通过 中间翻译或 兼容层或工具是 禁止)。

      这当然不适用于操作系统3.1或3.2,目前还不清楚一旦操作系统4.0面世,苹果是否会追溯删除任何使用此类工具的现有应用程序。从理论上讲,如果你在4.0发布之前成功地将应用程序推出,并且你很幸运,那么也许你可以利用PhoneGap之类的工具,但在这一点上花时间使用这些工具似乎是一场真正的大赌博

      也就是说,Objective-C其实没那么难