代码之家  ›  专栏  ›  技术社区  ›  Eduardo Scoz

MonoTouch是iPhone开发的可行平台吗?[关闭]

  •  17
  • Eduardo Scoz  · 技术社区  · 15 年前

    MonoTouch似乎是一个很好的iPhone开发平台,但我担心将其部署到苹果商店。在iTunes上有没有用它构建的应用程序的例子?

    我们正在为iphone启动一个新的项目,将整个堆栈保存在c中是很好的,但是我们不想承担由于单触式操作而被苹果商店拒绝的风险。

    我读过一些游戏,目前使用单声道(不是单声道)的三维图形,但找不到任何关于单声道的东西。

    3 回复  |  直到 12 年前
        1
  •  55
  •   Rory Blyth    15 年前

    在我的电话里敲出这个,所以要简短一点-为此道歉。

    无论如何:

    -如前一个答案所述,已经向应用商店发布了单触式应用程序。不管是两个还是一个巴吉利昂都不重要。一和零的区别是无限的-答案是明确的:是的,苹果将批准单触式应用程序。

    -按照苹果的规则,单触式游戏。它吐出本地的部分。没有对代码的解释,也没有任何抖动。您的MonoTouch应用程序和其他应用程序一样是一个捆绑包,它和其他应用程序一样包含一个本机二进制文件。

    -单触式应用程序 比用苹果的栈写的要大。这是因为您的MonoTouch应用程序依赖Mono/.NET框架的一个子集。不过,在这方面,一旦你下定决心 船舶 单触式应用程序没有什么特别的不同。我在一家公司工作,在那里我们根据我们的定制框架构建了我们的应用程序(用苹果的堆栈开发)。它增加了我们的应用程序的规模,但同时也大大缩短了生产时间(这总是权衡,对吧?)另外,编译后应用程序包的大小可能有欺骗性。因为捆绑包是为应用程序商店压缩的,所以大小会急剧减小-您可以轻松地编写一个单触式应用程序 在可接受的应用程序交付OTA的大小限制内(我提出这个问题是因为这是Mt N0obs(正确的)倾向于提出的问题)。因此,苹果没有任何真正的理由根据规模拒绝。

    -无论是单点触摸还是像我以前使用过的定制内部框架,当你的应用程序附带时,单点触摸的东西是 只是另一个可以用Objective-C编写的框架 .

    -如果您担心使用整个MonoTouch堆栈配置应用程序以进行分发,以及这可能如何影响您的批准机会,您可以告诉MonoDevelopment(或命令行中的mtouch实用程序)输出Xcode项目。您将看到您的代码已经被转换了——您将看到本机程序集(而不是某种风格的IL)。你可以在Xcode内部构建和运行你的MonoTouch生成的应用程序,到那时MonoTouch基本上已经不在图片中了(除了作为你构建的框架(比如MapKit))。

    出于某种原因,所有这些都困扰着一个非常小但声音响亮的iPhone开发者,他们无论出于什么原因,都无法忍受那些他们不认识的人使用不同的工具来构建应用程序的想法。但他们的仇恨并不能改变 事实 苹果已经接受了单触式应用程序(以及很久以前的Unity应用程序)。

    你将看到被拒绝的mt应用的最大原因是mt devs,以我的经验(我已经和很多人谈过了-在做了一些讨论之后,发布到论坛,邮件列表,这里…)是他们还没有学会如何开发一个 苹果手机 应用程序。这是iPhone开发者必须做的事情。 怎样 他们编写应用程序。MonoTouch并不是障碍——它知道,例如,苹果希望你的应用程序看起来有一定的方式并以一定的方式工作——它应该看起来、感觉和行为像其他(好的)iPhone应用程序,并且不应该是尝试为一部手机编写桌面应用程序的例子(这是你的普通开发人员在测试时犯的第一个错误)。转向移动开发)。

    最终,只要你选择的工具能创造出符合苹果规则(如单触式)的比特,它就不重要了。真正的障碍是学习iPhone的应用程序设计方法。

    .NET应用程序开发人员,无论是在Windows、Windows Mobile上,还是在Mono(非MonoTouch)运行的任何地方,都习惯于根据自己的喜好开发应用程序。这在iPhone世界里是行不通的。

    一触式安全。如图所示,苹果 批准MT应用程序。

    您真正需要做的事情(同样,无论您选择哪个dev堆栈)是 阅读苹果的iPhone应用程序设计文档及其指南 . 有一大群开发者把他们的应用拒绝归因于苹果是邪恶的(或者其他什么——基本上是不知情的借口),而事实是他们的应用是垃圾,很明显开发者没有遵守规则(甚至懒得阅读规则)。

    最后,在许多情况下,当使用MonoTouch时,您编写的代码要少得多,而且所需的成本是一个更大的应用程序包(如我所说,在压缩分发后,它的大小会非常合理)。

    这不是什么大问题。使用3G,用户可以轻松下载2-3MB大小的应用程序。如果它小到可以发送在线旅行社,一切都很好。如果你的应用超出了限制,它很可能是嵌入的资源(媒体-图像、视频等-这就是捆绑包通常扩展到仅WiFi大小的方式),这也是客观的C开发人员必须处理的问题,所以这不是单点接触问题。

    所以,忽略那些讨厌的人(他们甚至没有尝试过单点触摸,也没有费心去了解它是如何工作的),并且放心,只要你的应用符合苹果的指导方针,就有 他们拒绝的理由。这并不意味着只要你设计正确,你的应用程序就一定能被接受(很多应用程序没有明显的理由被拒绝),但你可以或多或少地认为自己与使用苹果工具的开发者处于同等地位。

    希望这有帮助:)

        2
  •  10
  •   Jb Evain    15 年前

    MonoTouch社区正在维护 list of MonoTouch applications 今天在苹果商店有售,而且是用 MonoTouch .

        3
  •  3
  •   Oded    15 年前

    这个 unity 游戏开发平台正在使用相同的单触式代码库来提供C支持(并为该项目做出了贡献)。