Java 哪个更容易编码:Android 应用程序与 iOS 应用程序?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4471798/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Which is Easier to code: Android App vs iOS App?
提问by CuriousMind
I want to improve my coding skills, so I have planned write a Mobile Application.need to choose between Apple's iOS or Google's Android.
我想提高我的编码技能,所以我计划编写一个移动应用程序。需要在 Apple 的 iOS 或 Google 的 Android 之间进行选择。
my background:I have done basic programming in .Net,C/C++,Python and PHP in college, so got OOP concepts covered. about my skill level, I just know concepts and basic syntax. But can't write complex applications, if asked :(
我的背景:我在大学期间用 .Net、C/C++、Python 和 PHP 完成了基本编程,因此涵盖了 OOP 概念。关于我的技能水平,我只知道概念和基本语法。但不能编写复杂的应用程序,如果问:(
So decided to hone my skills, And I wanted to know which is easier to learn for a programming n00b.
所以决定磨练我的技能,我想知道对于编程 n00b 来说哪个更容易学习。
A) iOS which uses Objective C B) Android which uses Java
A) 使用 Objective C 的 iOS B) 使用 Java 的 Android
I want to decide based on difficulty level
我想根据难度级别决定
采纳答案by Justin Niessner
They're both equally complex, so it boils down to what you're familiar with.
它们都同样复杂,因此归结为您熟悉的内容。
Judging solely based on what you know, Android development will feel easier. The syntax will be close to what you already recognize.
仅根据您所知道的来判断,Android 开发会感觉更容易。语法将与您已经认识的接近。
Objective-C has an OO syntax that is unlike anything you have listed in your post. It would take a little while to get accustomed to.
Objective-C 的 OO 语法与您在帖子中列出的任何内容都不一样。需要一段时间才能习惯。
回答by JOTN
I think you're asking the wrong question. The programming language makes little difference in the difficulty to develop something. The API and how well it's documented can make a big difference. If you've never done GUI, I think I'd start with something that isn't mobile as that makes it more difficult.
我认为你问错了问题。编程语言在开发某些东西的难度上几乎没有区别。API 及其记录的程度可以产生很大的不同。如果你从来没有做过 GUI,我想我会从非移动的东西开始,因为这会让它变得更加困难。
回答by james
i have been writing android applications for a few months, and then i went over to create the same applications for the iPhone. I quickly started to prefer many things about iphone development apposed to android(core data is awesome, holding onto/passing around complex data is easy).
我已经写了几个月的 android 应用程序,然后我开始为 iPhone 创建相同的应用程序。我很快就开始喜欢与 android 相关的许多有关 iphone 开发的东西(核心数据很棒,保持/传递复杂数据很容易)。
there are many differences which may make either platform easy/hard, but it all depends on what kinds of apps you are making. Some projects may be easier to write on the iOS platform whereas others, Android is easier
有许多差异可能会使任一平台变得容易/困难,但这一切都取决于您正在制作的应用程序类型。一些项目在 iOS 平台上可能更容易编写,而其他项目,Android 更容易
Overall, I had a harder time learning iOS development than learning Android development.
总的来说,我学习 iOS 开发比学习 Android 开发更难。
回答by Edwin Buck
Both are going to be just as difficult, but only in different ways. How hard or easy a program is to use is typically determined by the programmer's effort in making the program "easy to use".
两者都将同样困难,但只是方式不同。程序使用的难易程度通常取决于程序员使程序“易于使用”的努力。
If you cannot program a complex application, odds are good it has nothing to do with your coding skills and a lot to do with your software development skills. Although it isn't exactly in-line with your question, I would recommend you strengthen you skill set where it is weakest.
如果您无法编写复杂的应用程序,则很有可能这与您的编码技能无关,而与您的软件开发技能有很大关系。尽管这与您的问题不完全一致,但我建议您在最薄弱的地方加强技能。
Programming is probably a maximum of 20% of a well run project. The rest is describing the problem to be solved (aka gathering the requirements), creating an architecture which simplifies the chunks of the solution, and testing. If you can code, but can't handle a big or complex project, it's because you need to develop your skills in each of these fields (no need to be an expert, but it helps) and you need to know how they work together.
编程可能最多占运行良好项目的 20%。剩下的就是描述要解决的问题(也就是收集需求),创建一个简化解决方案块的架构,以及测试。如果您可以编码,但不能处理大型或复杂的项目,那是因为您需要在这些领域中的每一个领域发展自己的技能(不需要成为专家,但它会有所帮助)并且您需要知道它们如何协同工作.
Once you expand your knowledge to the entire process, you will find that big projects just look like a lot of work, but each "next" step is rather simple. There's a lot of ways you can make all of these items happen, one that I recommend is OpenUP.
一旦你将知识扩展到整个过程,你会发现大项目看起来像很多工作,但每个“下一步”都相当简单。有很多方法可以实现所有这些项目,我推荐的一种是 OpenUP。
回答by cesarislaw
I've been using developing for iOS for a little over a year and for Android for about six months. Both presented their own challenges but at the end of the day I'd say that all things being equal iOS is easier to learn for a few reasons.
我已经使用 iOS 开发一年多一点了,Android 使用了大约六个月。两者都提出了自己的挑战,但归根结底我会说,由于一些原因,iOS 更容易学习。
1) Interface Builder - Setting up your GUI is a lot easier with iOS because you can lay it out in IB and then link to objects in your code. Saves a lot of time. The closest thing Android has is DroidDraw which doesn't link directly to code and just generates a rough draft on the layout xml files. It's better than creating the views programmatically but falls short of IB's simplicity and robustness.
1) 界面生成器 - 使用 iOS 设置 GUI 容易得多,因为您可以在 IB 中进行布局,然后链接到代码中的对象。节省大量时间。Android 最接近的是 DroidDraw,它不直接链接到代码,只是在布局 xml 文件上生成一个粗略的草稿。它比以编程方式创建视图要好,但不如 IB 的简单性和健壮性。
2) API's - The Apple API's have been in existence longer and have been developed further. Android is definitely catching up but there's still a lot of areas, especially in the mobile centric API's, where Apple's API's are better in terms of what's available and documentation. A lot of low level things can be done by higher level API's which helps reduce the entry barrier.
2) API's - Apple API's 存在的时间更长并且得到了进一步的发展。Android 肯定正在迎头赶上,但仍有很多领域,尤其是在以移动为中心的 API 中,Apple 的 API 在可用内容和文档方面更好。许多低级的事情可以通过更高级别的 API 来完成,这有助于降低进入门槛。
3) Hardware and OS Fragmentation (or lack there of) - Apple does a lot to push the user base to update to the latest iOS version which is available across all form factors at the same time (iPad being stuck in 3.2 for a while is the one exception). You can very safely target the iPhone hardware platform and achieve cross compatibility with the iTouch and iPad with very little extra work. Android has a huge selection of devices many with device specific OS modifications which can lead to a ton of headaches when testing. There's also the different screen sizes and resolutions to deal with.
3) 硬件和操作系统碎片化(或缺乏碎片化)——Apple 做了很多工作来推动用户群更新到最新的 iOS 版本,该版本同时适用于所有外形尺寸(iPad 在 3.2 中停留了一段时间是一个例外)。您可以非常安全地定位 iPhone 硬件平台,并通过很少的额外工作实现与 iTouch 和 iPad 的交叉兼容性。Android 有大量设备可供选择,其中许多设备具有特定于设备的操作系统修改,这在测试时可能会导致很多麻烦。还有不同的屏幕尺寸和分辨率需要处理。
I want to stress that I enjoy working with both platforms for different reasons but coming at this from a which is easier to learn perspective I'd have to vote iOS. Of course that's all things being equal. The Objective-C syntax canbe hard to get used to, if you're already comfortable with Java then some of the basic Objective-C concepts will be new and may take some time getting used to, plus you'll be reintroduced to memory management as there is no garbage collector like in Java. And lastly as has been mentioned if you don't own (or have access to) a Mac you can't program for iOS.
我想强调的是,由于不同的原因,我喜欢在两个平台上工作,但从更容易学习的角度来看,我必须投票给 iOS。当然,这一切都是平等的。Objective-C 语法可能很难习惯,如果您已经熟悉 Java,那么一些基本的 Objective-C 概念将是新的,可能需要一些时间来适应,而且您将被重新引入内存管理,因为没有像 Java 那样的垃圾收集器。最后,如果您没有(或无法访问)Mac,则无法为 iOS 编程。
回答by Christian 'fuzi' Orgler
I code in both languages and practiced a lot and I would say you can do a lot with the Objective-C language but you should have a pre-known about C so if you are a 'noob'-programmer I would prefer Java..
我用两种语言编写代码并练习了很多,我会说你可以用 Objective-C 语言做很多事情,但你应该对 C 有一个预先了解,所以如果你是一个“菜鸟”程序员,我更喜欢Java..
;-)
;-)
回答by Karoo
I would start with Google's amazing App Inventor, which is the simplest way to make mobile apps.
When using App Inventor, instead of writing code, you visually design the way the app looks and use blocks to specify the app's behavior. It doesn't require any programming knowledge.
You can find more information here.
我将从 Google 令人惊叹的App Inventor 开始,这是制作移动应用程序的最简单方法。
使用 App Inventor 时,您无需编写代码,而是直观地设计应用程序的外观并使用块来指定应用程序的行为。它不需要任何编程知识。
您可以在此处找到更多信息。
回答by Kris
I have only been a web developer, with a little bit done in .NET (C# and VB), anways my employer wanted to start releasing apps on both iPhone and Android, since the other developer was busy with a major project, was the one put to task to learn both android and iOS (well iPhone SDK at that time).
我只是一名 Web 开发人员,在 .NET(C# 和 VB)方面做了一些工作,但我的雇主一直想开始在 iPhone 和 Android 上发布应用程序,因为另一个开发人员正忙于一个主要项目,是那个投入到学习android和iOS的任务中(当时iPhone SDK很好)。
I first started with iOS. I read a couple books, downloaded a bunch of sample projects from Apples developer reference. I would say it took me about 2-3 weeks before I became a little bit comfortable developing in it.
我首先从 iOS 开始。我读了几本书,从 Apples 开发人员参考中下载了一堆示例项目。我会说我花了大约 2-3 周的时间才开始适应它。
After a month of developing the app on iOS, my employer wanted me to port it to android. So I did the same process as I did for iOS, read a couple books, downloaded a bunch of sample projects. It took me a lot longer until I started feeling comfortable in android. I just didn't understand it at all at first.
在 iOS 上开发该应用程序一个月后,我的雇主希望我将其移植到 android。所以我做了和 iOS 一样的过程,读了几本书,下载了一堆示例项目。我花了很长时间才开始对 android 感到舒服。我只是一开始完全不明白。
Now after spending a year developing for both platforms, I prefer iOS. I find their documentation amazing, and I just find coding fun on the platform.
现在在为两个平台开发一年后,我更喜欢 iOS。我发现他们的文档很棒,而且我发现在平台上编码很有趣。
I hate android simulator, it is just way too slow, can only test on actual device. I find coding for it a chore. I would say it takes about same amount of time for me to develop an app on either device, but I just enjoy doing it on iOS. Everything just clicks for me
我讨厌安卓模拟器,它太慢了,只能在实际设备上测试。我发现为它编码是一件苦差事。我会说在任一设备上开发应用程序所需的时间大致相同,但我只是喜欢在 iOS 上开发。一切都为我点击
回答by user1500287
If you know .Net,C/C++,Python and PHP you will find Java/Android a million times easier to learn than Objective-C. The IOS API's are nice but Objective-C is totally different than any other mainstream languages and frankly a pain if you're used to .Net, Java or C++.
如果您了解 .Net、C/C++、Python 和 PHP,您会发现 Java/Android 比 Objective-C 容易学习一百万倍。IOS API 很好,但 Objective-C 与任何其他主流语言完全不同,坦率地说,如果您习惯了 .Net、Java 或 C++,那会很痛苦。