Live data from Hacker News

Dear business people, an iOS app actually takes a lot of work

kentnguyen.com

91–100 of 135 posts

Re: Dear business people, an iOS app actually takes a lot of work

#91
post #68

I agree with the overall sentiment of the page. A few questions to seasoned iOS devs: "With websites, you can simply add one more page, then create a link to that page when you needed. However, you can’t do that with iOS app, everything has to be set in the beginning, any changes might result in significant other changes that you might not be able to understand why." Isn't this what the Navigation Controller is for?…

I believe he might be talking about modifying a view, as he presents the example of adding an email button or a facebook one. It still doesn't make sense as you can use tools such as Interface Builder. The only thing that applies, you could still be building the view programmatically or need custom animations. That needs coding. And of course a facebook button needs to handle things such as authentication than an ema…

It still doesn't make sense as you can use tools such as Interface Builder.

I was bitten by this on my first major contract iOS app, so I think I know what he means. Interface Builder will get you most of the way fairly quickly, which is deceptive.

Then you start refining to try and match the photoshop mock-up for visual design, and find the built-in UI classes don't handle this. Buttons not supporting labels below an image by default, or multiple buttons next to each other on the navigation bar, or a background that moves with a table view, etc. etc. [1]

You get to work on custom subclasses (or adapting some open source ones). Interface Builder doesn't let you set properties of custom views, so your view controller starts being filled up with all sorts of stuff that really should be in the nib file.

Then you find out that actually, various labels and text views need to support multiple lines of text. This messes up your beautiful layout from IB. Struts & Springs are now useless for half your screen elements, and you put custom layouting code in a custom container view's layoutSubviews method or your view controller just to push stuff down the screen and resize your scroll view's contentSize. The complexity of this layout code grows for every supported orientation and device type.

Your NIB files are now a mere shadow of their existance at the beginning of the project, so at this point, making a change to move some views to a different screen (is that only on iPhone/iTouch or iPad too?) is no longer a trivial exercise at all.

Yes, it's all manageable. But there's a whole range of sudden complexity bumps at "80% done" where the existing tools leave you stranded. If you originally quoted for functionality covered by IB but then need to customise it, that will take a lot of time, and you'd better have budgeted for it.

[1] The situation has improved somewhat with iOS5, which makes supporting iOS4 (let alone 3) devices the IE of iOS development.

Re: Dear business people, an iOS app actually takes a lot of work

#93
post #85

It's the same problem on Web Development. It's actually worse. As JavaScript and the DOM are quite hard to handle (cross-browser issues too) to build the simplest features and interactions. I found out that it's not worth it to mingle with offline-small business. Their budget is usually $1,000-$2,000. That's barely enough to buy a stock template, a couple of plug-ins, setup WordPress and customize it a little. The pr…

> It's the same problem on Web Development. It's actually worse.

For me, on average, the same type of UI / interaction in iOS takes about 3-5x more to develop versus web.

Re: Dear business people, an iOS app actually takes a lot of work

#94
post #65
post #42

While trying to describe a rather large system change an SVP in a large company once told me: it's just an 'if' statement

I found the best answer is to respectfully state the logic the change needs, the inputs to the logic and where they come from, and any trouble spots in implementing that. If the reason for their view was ignorance, this will solve that. If it was malevolence, they'll refuse to budge and you'll know to run. Fast.

I would think to run in either case.

Re: Dear business people, an iOS app actually takes a lot of work

#95
post #59

Earlier quoted context omitted.

Don't hate me, I'm going by experience: I think this is backwards. Programming is cheaper than ever. As outsourcing tools because better (vWorker is what I have experience with) this is only going to get better. Programmers have to realize that there are hungry, capable people around the world who can do much of what you can for far cheaper. I'm not taking anything away from anyone, but that's the reality of globaliz…

Good for you. Most outsourcing projects don't go nearly that well. Which is a shame, but understandable. Why should the good Indian programmers work on the kind of projects people are willing to sell?

>"Most outsourcing projects don't go nearly that well."

Do you have a source for this? I'm a "business guy", but I read the hell out of Hacker News. I hear this a lot, but it hasn't been my experience, whatsoever.

Seriously, how is an outsider supposed to read these arguments as anything more than people on the inside trying to justify what they do and the prices they charge? Read that article again. It's written for other hackers, not for business people. He says, "making an app is hard, here is why" and lists a bunch of things that, to be frank, I don't care about. I need the product to meet my specifications for a good price. Nothing more, nothing less. And generally in my experience (which, again, is mostly small projects) that is fulfilled through outsourced work.

The fact that any mention of outsourcing draws the ire and down votes of this crowd is disappointing. At the end of the day, like it or not, people like me are also an essential part of this ecosystem.

Edit: after reading through many of the comments, it looks like there are varying degrees of this problem. I'm not talking about trying to get someone to build an app for my "big idea" for $200.

Re: Dear business people, an iOS app actually takes a lot of work

#98

Earlier quoted context omitted.

The author may be overstating how rigid they are. iOS apps can be much less dynamic than web apps, mostly because you're working at a "lower" level in the GUI stack. Instead of having a layout engine that recalculates the positions of your UI elements for you (eg, HTML and the box model), you mostly have to manage the position and sizes of everything yourself. You could create your own layout engine, but most develop…

> Instead of having a layout engine that recalculates the positions of your UI elements for you (eg, HTML and the box model), you mostly have to manage the position and sizes of everything yourself. I'm not sure that is strictly true. The autoresize model[1] will cover a lot of cases. The place where it does break down, and where HTML does shine, is with variable sized data such as paragraphs of text. However, that i…

I'm definitely aware of the autoresize tools, but like you said, as soon as you start to have variable sized data it all sort of falls down. Then you wind up having to switch to using a UIWebView, which means redoing a lot of work. It can also be a huge headache to support both portrait and landscape mode with only the autoresize tools.

Re: Dear business people, an iOS app actually takes a lot of work

#100

Earlier quoted context omitted.

The author may be overstating how rigid they are. iOS apps can be much less dynamic than web apps, mostly because you're working at a "lower" level in the GUI stack. Instead of having a layout engine that recalculates the positions of your UI elements for you (eg, HTML and the box model), you mostly have to manage the position and sizes of everything yourself. You could create your own layout engine, but most develop…

Interface builder (and now storyboards) have allowed WYSIWYG iOS interface layouts since 2008. There are definitely more dependencies and interrelation between a native app vs web app, but there is definitely a high-quality layout engine that makes basic formatting tasks easy.

The basics are definitely easy. A lot of apps need more than the basics; even changing between landscape and portrait can be tricky and more complex that a simple autoresizing mask can handle (I would know, since I'm neck-deep in developing an iPad app that needs this kind of complex layout and needs to support all orientations).
Post reply on HN