移植iPhone应用程序。如果您要从头开始重新启动应用程序,您会采取哪些不同的做法?

时间:2010-07-04 03:35:23

标签: iphone android qt porting

如果您要从头开始重新启动应用程序,那么您知道要移植到的平台会有什么不同吗? 这个问题来自我的团队即将开发针对iphone,android和qt的移动应用程序。我们的目标是首先完成iphone版本,然后移植到android和qt,知道从一开始就掌握/使用的任何提示或意识形态会很好,这将使移植过程尽可能无缝。 我相信你们中有几个人已经完成了他们的应用程序的iphone版本,然后开始开发一个Android版本。我很想知道你遇到的任何障碍,或者你希望从一开始就知道的事情。

编辑: 更具体地说,我们正在制作的应用程序将包含表单和一些视觉效果(图表)

3 个答案:

答案 0 :(得分:3)

我认为虽然“移植”在这种背景下是正确的动词,但这个概念可能并不正确。这可能是一个不受欢迎的答案,但这里有:

不要移植。从一个平台到另一个平台,一些类可以直接使用(仅使用语言翻译)。那些你移植的人。然而,可以而且应该允许UI在两个平台之间自由变化......不同的概念,更重要的是,不同的组件和不同的约定,从用户角度和开发者方面。

例如,iPhone和Android上的纽约时报应用程序。我确信他们设法保持大约一半的应用程序在共享代码上运行,但其余的被翻译为遵循每个平台的习语和SDK。从表面上看,它是相同的应用程序,但是当你真正进入它时,许多事情都是完全不同的。

因此,我建议您“在启动任何其他端口之前不要完成一个端口”,而是建议您确定应用程序的常见或可共享部分,并密切关注尽可能通用。该应用程序的其余部分可能应该是特定于平台的(显然,您的iPhone和iPad版本应该共享大约90%或更多的实际代码......)

答案 1 :(得分:2)

首先确定所有平台上可用的常用技术,并尽可能地坚持使用这些技术 - OpenGL,SQLite等。

接下来我建议在启动任何其他端口之前不要完成一个端口。从第一天开始,至少在其中一个平行线上开始一些基础工作。您可能会发现,您可以通过这种方式提前解决很多问题。您可能觉得自己没有开发资源,但我认为这比它看起来更重要。

请注意您的软件架构(MVC?虽然Qt是Model-View-Delegate)。总是倾向于让建筑纯度下滑,以便通过稍微肮脏,稍微粗糙的解决方案更快地进入市场。试着尽可能地抵制这个,因为你不得不很快就要咬这些子弹。

答案 2 :(得分:1)

正如西蒙指出的那样,至少在其中一个并行的基础上开始一些基础工作。在所有平台上以相同方式实现单个功能时,您将面临许多可行性问题,当我们尝试在所有平台上模仿相同的UI设计(控件的使用)时,就会发生这种情况。