3 ms·
Is learning objc really so difficult compared to learning all the obscure things you have to do to make a native-like html5 app?
by gonewest 13y ago
Is learning objc really so difficult compared to learning all the obscure things you have to do to make a native-like html5 app?
- slieberman87 13y agoIn my experience, no. I would recommend to almost anybody to just learn objc if you want to build a native iOS app.
- jack9 13y agoIt's not just learning objc. You need to learn objc, ios and android. It's far more effort to learn them AND all their compatibility bugs and workarounds, even if you don't know javascript. This trolling article, about PhoneGap not doing everything for you is really hard to understand. PG is a wrapper for an existing, complete, javascript application. Literally a single build step that's agnostic. Of course it's not a framework...wait, http://hessian.caucho.com/ http://hessian.caucho.com/ doesn't do everything for me, in terms of organizing my java project, either? No it doesn't you idiot.
- zerr 13y agoNo, it's about avoiding iOS SDK. The objc language itself is one of the easiest [but not quite, entirely ugly] language I've encountered. Being cross-platoform/mobile pays as well.
- marknutter 13y agoIt's not just learning objective-c, obviously, it's learning that along with Java, .Net, etc.
- ofacup 13y agothis may come as a surprise, but objective c only runs on ios
- zackmorris 13y agoLearning objc isn't too bad but it introduced a lot of (in my mind) unnecessary complexity because now you have two code paths (message passing vs. ordinary functions). It's quite a verbose language so you have to declare member variables several times, and ARC has drawbacks over garbage collection so it's not always clear when something should be declared strong or weak, making it nearly impossible to prove that an app is free of leaks in low memory conditions. Apple's iOS frameworks have a lot of trouble with inheritance, so you might have code that works with regular buttons but can't work with toolbar buttons for example, because they don't share a root class. So I generally find iOS development to be remarkably complex and tedious for even the simplest GUI elements, especially if you are trying to do something beyond the vanilla layouts that Apple has in mind. You also really can't develop for iOS without Stack Overflow, which to me is a red flag for any API. Xcode has numerous bugs, especially with XML, so you may find that some change you made to a .xib file is not revertible because of a caching issue, and when you examine the XML you see that something was named slightly differently, so you have to be diligent with your version control and snapshots. Apple is unable or unwilling to acknowledge many of these problems, much less solve them, so I constantly fight against issues that I thought would have been fixed by iOS 6. I think out of every API I've learned, iOS is the hardest, not because of conceptual problems (their threading system is actually fairly good) but because of poor implementation choices where Apple omitted something for political reasons so you have to reinvent the wheel. What we really need is a cross platform middleware that provides a consistent event system and API like win32 for all platforms, and then someone could write language hooks for that in javascript, lua, ruby, whatever. Without that middle layer, it's too constraining to work with pure html5 IMHO. I've only touched the tip of the iceberg here - there are so many hurdles to even getting an app published natively that I think making a cross platform app is still an open problem.
- drewying 13y agoMaybe I'm different and strange but I found learning Objective-C and the CocoaTouch/iOS libraries pretty easy. I think it makes a huge difference getting a formal education and just screwing around/googleing your way. When I tried to teach myself just using Google searches progress was slow and frustrating. But the second I switched to learning via Stanford's online courses in iTunes U, I was able to pick it up after just a few lessons. It really is a pretty simple framework after you get the core concepts down.