我正在将我的应用程序从iOS移植到Android:我需要知道什么?[关闭]


15

我应该避免什么陷阱?

  • Objective-C开发人员始终误解哪些Java语言范例?我学会了用Java编程,但是多年来我一直在用Objective-C从事任何工作。
  • Android和iOS之间的设计模式有何不同?
  • 如果您自己进行了转换,那么Android的哪些部分会让您感到困惑或使您学得比应该花的时间更长?
  • Eclipse是适用于Android的最佳OS X IDE吗?

记录下来,我的应用与UIKit和Foundation紧密相连,因此“ porting”一词可能用词不当;实际上,我将完全为Android重写它。没有代码重用。另外,我这样做是为了学习Android,所以我宁愿在端口上失败并学习Android,也不愿走捷径。


作为背景知识,这个问题是由我在Stackoverflow上看到的问题类型提示的。通常,您可以通过尝试编写Obj-C时犯下的愚蠢错误来判断某人的背景(C#或Java)。我想避免使Java开发人员大失所望的各种错误,他们说:“愚蠢的Objective-C开发人员,他们会学吗?”


2
Is Eclipse the best OS X IDE for Android?是的,上一次我尝试使用ADT在netbeans上运行不佳。Eclipse是推荐的IDE。
Keyo

@Keyo:嗯?一年半以前,当我在Netbeans上试用它时,效果很好。当然在那段时间会变得更好吗?
TheLQ 2011年

回答@Nassign的评论即答案:如果我在Stackoverflow上发帖,我当然会得到很多答案,但是浏览程序员看来,这里有很多这类问题正在迁移。如果它更适合那个论坛,我可以在那边问。
kubi

我认为如果将其放置在stackoverflow中,将会得到更多答案。
Nassign 2011年

1
@kubi这是一个很好的提出这个问题的地方,并且符合本网站的目的:希望您能得到一些答案,我很感兴趣。

Answers:


11

我正在将一个应用程序从iOS移植到Android,这是我正在与其他人的应用程序一起进行移植的程序,但是仍然如此。

首先,我要说的是,已经向用户群提供了与他们的设备进行交互的不同方法。其中很多来自应用程序的实际设计以及设备的运行方式。

一些一般的事情:

  • 在Android设备上几乎需要使用风景
  • Android应用在不被积极使用时往往会继续运行,因此您需要考虑网络问题,gps等问题。
  • 设备细分,有大量的android设备和屏幕分辨率,这是相对布局和九个补丁图像非常方便的地方。

最初很多人都没有想到的很大的东西,Your UI can not be exactly the same on both devices可以肯定会很相似,但是将iPhone UI移植到Android设备上效果不佳。

原因如下:

  • 长按上下文菜单
  • 菜单弹出
  • 设备细分导致不同的分辨率和宽高比
  • 使用不同的控件

后端确实没什么大不了的,因为它的大部分只是将您正在使用的大部分内容实现为Java和Android SDK。我最大的问题来自用户的期望以及UI行为和差异,有时会更好,有时会更糟。这实际上取决于您的应用程序在做什么。

编辑

我只是意识到我没有回答您问题的实际部分,所以请继续(至少我最好的镜头)

我不会说Obj-C开发人员会误解任何大的语言范例,我会说Java从OOP的角度来实现我想要的功能可能更简单。(我应该说我只真正使用.NET和Java,并且只了解足够的Obj-C才能通过)。

我肯定会使用Eclipse,我厌倦了一段时间使用IntellijIdea的经历,这只是让我遇到很多问题,试图使其执行某些操作。


当您说“需要风景”时,您还说肖像吗?我的应用程序仅在iOS上在后台执行一些操作,如果我不需要在后台执行任何操作,是否需要明确选择退出在后台运行?
kubi

@kubi yea除了肖像之外,因为一组好的设备都具有硬件键盘,使用时会将设备置于横向。在后台,这是事实,当用户切换应用程序时,该应用程序将继续运行。
msarchet 2011年

+1(或更多):“将iPhone UI移植到Android设备上效果不佳。” 没错:实际上,UI可能完全不同,因为可用的lib不同。
丹·罗森斯塔克2011年

IntelliJ Idea对我来说非常适合Android开发。爱它。
2011年

3

[这个答案有点儿无聊。我打算删除它,但认为它可能很有趣:是否可以通过注释通知我,我应该删除它]。

我无法在Android上工作,但可以在Java和iOS(使用Obj-C)下工作。Java开发真正不同的一件事是IDE可以提供多少帮助(人们会告诉您不要使用IDE,这是对同一件事的完全不同的看法:但是很少有人建议使用Java)。 。XCode通常甚至无法正确检测到最简单的语法错误(由于语言的结构,我认为)。另一方面,在Java中,IDE使您的移动速度比没有它时快得多。您还可以做一些非常酷的事情,例如对调用科学进行编程,然后编写方法。例如,在Eclipse中,如果键入

blah.doIt(firstObj, secondObj);

firstObjsecondObjString情况下,IDE会给我做出与SIG的方法选择“公共无效doIt方法(字符串firstObj,字符串secondObj)。” 那真的很酷,而且只是冰山一角:IDE是您的朋友。我听说IntelliJ可能更酷(尽管在我的试用中还没有)。

这个答案有陷阱吗?也许是:认为IDE在Obj-C和Java中扮演着相同的角色。在Java中,IDE可以完成自己难以完成的工作。由于Java的方式,自动重构的功能比XCode强大100倍。这意味着您可以将一些设计问题推迟到以后。


多亏了AppCode,我对此的许多思考已改变。这很棒。尽管如此,它无法区分同名事物,但是它确实为您完成了很多工作。
Dan Rosenstark 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.