8 ms·
Does anyone else feel like maybe the entire iOS development experience is batshit insane?
by davidbanham 12y ago
Does anyone else feel like maybe the entire iOS development experience is batshit insane?
- tl 12y agoI wouldn't say the entire experience is insane, but a lot of things feel unnecessarily difficult (hello crash symbolication, auto-layout debugging, etc...) compared to their web development counterparts. On the other hand, you do get greater performance and stability (but not perfect stability, after all it wouldn't be an iOS release if Apple didn't break something and completely ignore radars).
- coldcode 12y agoNot really, I work on iOS code much more complex and rarely have to stoop to so many tricks. Due to having to support iOS 6 I still have to use XCode 5 so some of this isn't even available to me. After a while you figure out the problems just from the symptoms. My current project was written by Elbonians who were paid a pittance so there is lots of fun debugging. That said figuring out bugs in iOS is a major league PITA. I have one now in NSURLSession which is batshit insane.
- mikeash 12y agoThere's a lot of extremely frustrating and stupid aspects to it... but none of those are in any way related to anything discussed in the article, so I find your comment a bit odd. What makes iOS development so frustrating to me is the constant struggle with code signing, device provisioning, Xcode crashes, random failures to install or run programs, and all the craziness around App Store review.
- faizmokhtar 12y agoI agree. I just started to learn iOS development at my current job (around 4 months), and configuring with code signing & XCode configuration is a pain in the ass.
- ktran03 12y agoI struggled with those, but after a few years doing iOS dev, it isn't so bad. It all eventually sticks. And autolayout is freakin awesome imo, though I hear a lot of people groak about it.
- mikeash 12y agoStill hasn't become "not so bad" for me after many years.
- antimagic 12y agoAutolayout is horrible in the sense that when something isn't working, it's really hard to figure out what went wrong. My personal favourite is when you forget to set translatesAutoresizingMaskIntoConstraints to NO on a container view. A whole bunch of implicit constraints pop into existence that conflict with your actual programmed constraints, and the error message that tells you that you have constraint conflicts really doesn't help you in figuring out where the constraints are coming from. Eventually you figure this out, and you don't get caught out by it any more, but in the learning phase, it's quite painful. Something else I really dislike when it comes to constraints - they don't play well with animations, at least in my experience. I recently created a view that had a variable number of square buttons in it that were laid out in a grid two rows high. Making a nice animation when you add a new button, fading in the new button, and sliding the others out of the way was nigh on impossible (ie 'not possible without writing more code than if I had just done the layout manually). And yet, this seems to be the perfect use case for auto layouts...
- archagon 12y agoIt's really, really nice for making static layouts in IB, but as soon as you do anything dynamic — programmatic views, animations, etc. — the whole thing becomes a burden. I often wish we had something akin to autolayout for CSS.
- dimillian 12y agoThis is exactly why I don't use it. I do iOS development since the first SDK public release, I have a love/hate relationship with Interface Builder. I used to use it a lot, but now I use it only in small projects. Storyboard is awesome for small apps. But for my big projects I do 100% of the UI in the code, if the UI use a lot of custom control, it just not worth it to use IB, the end result is that what you see is not at all what you get. BUT it improved a lot with Xcode 6, because now it can render custom views live in Interface Builder. Auto layout on the other side.... it's just broken.... Every time I try to use it I got what you mentioned in your first paragraph. And I do a lot of animations in my apps, and playing with 10 constrains instead of a simple frame is just .... too much of a burden. Again, for big custom apps I don't use it, but I love those functionalities for small & simple apps.
- alayne 12y agoNot compared to my experience with other mobile platforms.
- mogui 12y agohave you ever developed something on Android? Oh man, that is insane!
- Sephiroth87 12y agoDebugging is insane?
- archagon 12y agoNo. I have never had to use the assembly/decompiling tips described in this article, and 99.9% of programmers will never have to do it, either. Even with a problem like this, you can fix it or get around it with a bit of trial and error. As with any other black box technology. (Still useful to know, though.)
- serve_yay 12y agoSeems so, but then I am a JS developer, and you know what they say about glass houses. And really, everything we do is completely nuts if you think about it.
- coldtea 12y agoNo, sounds fairly typical native development experience, if not one of the best ones. Plus the term "batshit insane" has been overused. What you'd use to call some really bizarro thing when you do see one?
- zackmorris 12y agoYes. It all begins with having to provision your own device, and slowly slides into "people are strange when you're a stranger" territory from there on. The worst part is pointing out each individual folly, only to have it met with skepticism, criticism and fanaticism by Apple fanbois. Luckily Stack Overflow has unveiled thousands, if not tens of thousands of pitfalls in iOS development so I don't think anyone can argue that it represents any kind of elegance anymore, only that it is better than some other environments (which often isn't saying much). Yet this is how I earn my living, so in the end, I guess I accept it despite its (numerous) flaws.