哪个更容易编码:Android 应用程序与 iOS 应用程序? [关闭]

Posted

技术标签:

【中文标题】哪个更容易编码:Android 应用程序与 iOS 应用程序? [关闭]【英文标题】:Which is Easier to code: Android App vs iOS App? [closed] 【发布时间】:2011-05-27 04:29:38 【问题描述】:

我想提高我的编码技能,所以我计划编写一个移动应用程序。需要在 Apple 的 ios 或 Google 的 android 之间进行选择。

我的背景: 我在大学里用 .Net、C/C++、Python 和 php 完成了基本编程,所以涵盖了 OOP 概念。关于我的技能水平,我只知道概念和基本语法。但不能写复杂的应用程序,如果被问到:(

所以决定磨练我的技能,我想知道对于编程 n00b 来说哪个更容易学习。

A) 使用 Objective C 的 iOS B) 使用 Java 的 Android

我想根据难度来决定

【问题讨论】:

这在很大程度上取决于您要做什么。各种平台上的各种事情都“更容易”。 您也可以查看这些链接以从开发人员那里获得一些观点:whereoscope.wordpress.com/2010/12/07/…androidpolice.com/2010/11/14/… 我想知道,自 2010 年以来发生了什么变化。 【参考方案1】:

我为 iOS 开发一年多一点,为 Android 开发大约六个月。两者都提出了自己的挑战,但归根结底,我想说的是,iOS 更容易学习,原因有几个。

1) Interface Builder - 使用 iOS 设置 GUI 要容易得多,因为您可以在 IB 中进行布局,然后链接到代码中的对象。节省大量时间。 Android 最接近的是 DroidDraw,它不直接链接到代码,只是在布局 xml 文件上生成粗略的草稿。它比以编程方式创建视图要好,但不如 IB 的简单性和健壮性。

2) API - Apple API 的存在时间更长,并且得到了进一步的开发。 Android 肯定正在迎头赶上,但仍有很多领域,特别是在以移动为中心的 API 方面,Apple 的 API 在可用内容和文档方面更好。很多低级的事情可以通过更高级别的 API 来完成,这有助于降低进入门槛。

3) 硬件和操作系统碎片化(或缺乏碎片化)——Apple 为推动用户群更新到同时适用于所有外形尺寸的最新 iOS 版本做了很多工作(iPad 卡在 3.2 中)一段时间是一个例外)。您可以非常安全地定位 iPhone 硬件平台,并通过很少的额外工作实现与 iTouch 和 iPad 的交叉兼容性。 Android 有大量设备可供选择,其中许多设备都进行了特定于设备的操作系统修改,这在测试时可能会导致很多麻烦。还需要处理不同的屏幕尺寸和分辨率。

我想强调一下,出于不同的原因,我喜欢在这两个平台上工作,但从更容易学习的角度来看,我不得不投票给 iOS。当然,这一切都是平等的。 Objective-C 语法 可能 很难习惯,如果您已经熟悉 Java,那么一些基本的 Objective-C 概念将是新的,可能需要一些时间来适应,另外您将被重新引入内存管理,因为没有像 Java 那样的垃圾收集器。最后,如前所述,如果您没有(或无法使用)Mac,则无法为 iOS 编程。

【讨论】:

【参考方案2】:

它们都同样复杂,因此归结为您熟悉的内容。

仅根据您所了解的情况来判断,Android 开发会感觉更轻松。语法将接近您已经认识的。

Objective-C 的 OO 语法不同于您在帖子中列出的任何语法。需要一点时间来适应。

【讨论】:

Objective-C 技能集由于其使用受限得多,因此无法转移到其他类型的应用程序(非 Apple)。 嗯?如果您了解 Objective-C,那么您肯定了解 C,并且很可能已经学习了一点 C++。您还了解 Java、SmallTalk、Python 和 Ruby 对象模型。 Objective-C 技能非常容易转移。 谢谢,我决定使用 Android 是因为 1) 从长远来看,我预计 Android 将在全球范围内拥有超过 iOS 设备的数量。 2)这也给了我一个很好的借口来学习 java.java 有很多样板,我一直因为这个原因而避免它 3)我拥有一个 android 设备,所以对平台更熟悉一些。祝我好运! 我用 C、C++、Java、C# 编程过。在我看来,Objective-C 只有一个不必要的怪异需要时间来适应:消息样式语法。你写的是[object method:parameter],而不是object.method(parameter)。在我看来,内存管理也是这种语言最大的弱点,因为你需要手动完成;不过,新的标准 ARC 功能使它更容易。除此之外,它只是带有 OO 附加组件的纯 C。现在我真的开始喜欢消息样式功能了,因为它提供了命名参数,我觉得这很酷且很有帮助。【参考方案3】:

我只是一名 Web 开发人员,在 .NET(C# 和 VB)方面做了一点工作,但我的雇主想开始在 iPhone 和 Android 上发布应用程序,因为另一位开发人员正忙于一个重大项目,是学习android和iOS(当时还有iPhone SDK)的任务。

我最初是从 iOS 开始的。我读了几本书,从 Apples developer reference 下载了一堆示例项目。我会说我花了大约 2-3 周的时间才开始适应它。

在 iOS 上开发了一个月的应用程序后,我的雇主希望我将其移植到 Android 上。所以我做了和 iOS 一样的过程,读了几本书,下载了一堆示例项目。我花了很长时间才开始对 android 感到舒服。我只是一开始完全不明白。

在为这两个平台开发了一年之后,现在我更喜欢 iOS。我发现他们的文档很棒,而且我发现平台上的编码很有趣。

我讨厌安卓模拟器,太慢了,只能在实际设备上测试。我发现为它编码是一件苦差事。我想说,我在任何一种设备上开发应用程序都需要同样多的时间,但我只是喜欢在 iOS 上做。一切都只为我点击

【讨论】:

与我的故事基本相同,我已经在 Android 领域待了几天,并开始真正感受到您在上面描述的内容。与 iOS 相比,Android 是一个更强大的平台(对你可以做的事情的强制限制更少),但 iOS 的开发更加完善。 Android就像一个饼干罐,里面有很多人,到处都是面包屑。我相信这两个平台都会有我喜欢的功能,但从经验来看,我可以说 Objective-c 非常灵活。【参考方案4】:

我认为你问错了问题。编程语言在开发某些东西的难度上几乎没有什么区别。 API 和它的记录程度可以产生很大的不同。如果你从未做过 GUI,我想我会从非移动设备开始,因为这会增加难度。

【讨论】:

部分正确,你很难说服我编写 Objective-C 并不比 Java/C# 难。 呃,忘记安全选项。直接进入并编写一个移动应用程序。首先尝试 android,因为它更容易上手(通常需要 Mac 来运行 iOS 的东西),但花时间在任何一个上都会有回报。【参考方案5】:

我已经编写 android 应用程序几个月了,然后我继续为 iPhone 创建相同的应用程序。我很快就开始喜欢 iphone 开发而不是 android 的许多东西(核心数据很棒,持有/传递复杂数据很容易)。

有许多差异可能使任一平台变得容易/困难,但这完全取决于您制作的应用程序类型。有些项目在 iOS 平台上可能更容易编写,而其他项目,Android 更容易

总的来说,我学习 iOS 开发比学习 Android 开发更难。

【讨论】:

【参考方案6】:

我会从 Google 令人惊叹的 App Inventor 开始,这是制作移动应用程序的最简单方法。 使用 App Inventor 时,您无需编写代码,而是直观地设计应用程序的外观并使用块来指定应用程序的行为。它不需要任何编程知识。 您可以找到更多信息here。

【讨论】:

试用过 App Inventor,它不错,但应该没那么笨。这意味着应该有一种方法可以让我将 App Inventor 应用程序“导出”到 Eclipse 中。如果他们添加此功能,那么我就被卖了!【参考方案7】:

如果您了解 .Net、C/C++、Python 和 PHP,您会发现 Java/Android 比 Objective-C 容易上百万倍。 IOS API 很不错,但 Objective-C 与任何其他主流语言完全不同,坦率地说,如果您习惯于 .Net、Java 或 C++,这会很痛苦。

【讨论】:

我不同意这一点。是的,Java 稍微容易一些,但绝对不是“一百万次”。 Objective-C 使用与 C++ 相同的 OO 原理,并且将 C 作为子集,因此绝对不是“完全不同”。在 Objective-C 中主要的尴尬是方法调用的语法,你会在一段时间后习惯。 Java 的主要优点是垃圾收集和“一切都是对象”的概念。但正如其他人所说,更重要的是查看 API 的差异。【参考方案8】:

两者都将同样困难,但方式不同。程序的难易程度通常取决于程序员是否努力使程序“易于使用”。

如果您无法编写复杂的应用程序,则很有可能它与您的编码技能无关,而与您的软件开发技能有很大关系。尽管它与您的问题并不完全一致,但我建议您在最薄弱的地方加强您的技能。

编程可能最多占一个运行良好的项目的 20%。剩下的就是描述要解决的问题(也就是收集需求),创建一个简化解决方案块的架构,以及测试。如果您可以编码,但无法处理大型或复杂的项目,那是因为您需要在这些领域中的每一个领域发展自己的技能(无需成为专家,但这会有所帮助)并且您需要知道它们如何协同工作.

一旦你将知识扩展到整个过程,你会发现大项目看起来只是很多工作,但每个“下一步”都相当简单。有很多方法可以让所有这些事情发生,one that I recommend is OpenUP。

【讨论】:

OpenUP 看起来很有趣,但它适合单身开发者吗?我通常会维护一个需要在 Excel 表中完成的任务的待办事项列表。与遵循复杂的程序相比,它简单且节省了我的时间。 对于单身开发者来说,除了牛仔编码之外,很难不做任何事情;但是,只要有纪律,您就可以进行 OpenUP。好处将类似于拥有完整的发展计划的好处。成本与拥有一个完整项目团队的相同开销(仅由一个人承担)相同。如果您个人能够不成为可以通过完整流程检测和解决的各种问题的受害者(这应该会导致对问题/解决方案进行更多检查),那么您获得的收益不会超过开销超过牛仔编码。【参考方案9】:

我用两种语言编写代码并进行了很多练习,我会说您可以使用 Objective-C 语言做很多事情,但是您应该对 C 有所了解,所以如果您是“菜鸟”程序员,我会更喜欢Java..

;-)

【讨论】:

以上是关于哪个更容易编码:Android 应用程序与 iOS 应用程序? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C 和 Swift 语言,哪个更容易学习?

Vue.js 组件编码规范

iOS OpenGL ES 与 Android OpenGL ES 兼容吗?

哪个更安全:外部浏览器或 ChromeTab 进行授权?

Android - 获取位置(地理编码器/谷歌播放服务)?

现在java开源的工作流引擎 哪个比较好点