Live data from Hacker News

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

kentnguyen.com

81–90 of 135 posts

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

#81
post #48

I have no experience designing iOS apps. Could someone explain briefly why they are so inflexible? Tightly integrated code: 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. The way iOS co…

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 is starting to encroach on document territory anyway – meaning you'll probably want to use something like UIWebView to display that data.

Anyway, not trying to point out the obvious. I've just noticed that not all iOS devs are even aware of the autoresize functionality, so I figured it was worth noting.

[1] http://developer.apple.com/library/mac/#documentation/Cocoa/...

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

#82
post #48

I have no experience designing iOS apps. Could someone explain briefly why they are so inflexible? Tightly integrated code: 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. The way iOS co…

People are saying this is exaggerated and it probably is, somewhat. But there's some truth to it.

Take a list of things for example -- let's say a list of contacts. On the web that's probably a styled . On iOS, it's a UITableView.

So, let's say late in the game you're asked to sort contacts by first name, and put a little section indicator in for each letter.

On the web that's easy, sort the array, then as you're iterating over it and rendering, insert your section header when the first letter changes. If the list changes, ajax the changes in and use an id on each item to update. Done.

On iOS, first you'll need to set up a collation on your table view. Decompose your array of contacts into section arrays. For efficiency, you'll probably want to keep a pointer to that list. Change your section and row count delegates so they match the new structure. Now when you're rendering the cells, you'll need to locate the contact by section and row, and if a cell is tapped you'll need to change that too. If you support editing (delete, etc), there are several other places where you'll need to make similar changes. Speaking of which, what if the user deletes the last contact in a section? You can't delete the last row in a section without deleting the section as well, so you'll need to detect that and react appropriately. Can updates arrive while the list is displayed? You could just reload the whole list, but that will probably result in an annoying UI pause. Better to just update the cells that need to change, so you'll want to find each changed row in your collated lists and update it, being sure to watch for any sections you need to insert/delete...

...And on and on. None of this is rocket science, but the point is that there can be a lot of complexity behind a minor changes that someone with a web perspective would think of as trivial.

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

#83
post #8

Earlier quoted context omitted.

> It is 2012 not 1992 On the other hand, think of what you could accomplish with a weekend of work in 1992 and compare that to 2012. Our abilities as developers/designers/etc are vastly improved due to improved infrastructure, tools, communications, resources, etc. You could build a distributed photo hosting and viewing application back in 1992. But you'd probably be writing it in C++ and it might take you a long tim…

think of what you could accomplish with a weekend of work in 1992 and compare that to 2012 In 1992 I could bang out some really effective CUI applications in no time at all. People really hadn't transitioned to Windows at that point. Now, I have to write a web app, or a mobile app, and it takes hours upon hours to learn the ins and outs of each new API, weeks to figure out how to customize the flashy UI to what the c…

> So, yeah, programmer tools have gotten vastly better, but expectations and complexity have risen faster.

I am going to roll this into my conversations with non-tech friends. It is like the magic time saving appliances of the fifties...

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

#84
post #20

Please raise your hand if you're approached by on a weekly/monthly basis by some bright-eyed, overly optimistic, non-technical person who wants you to build them an "app", of any kind, for the quoted price of somewhere between $10K - $20K. That's the price of a demo.

Also, raise your other hand if you later hear some competitor has actually taken the job for $10K-$20K. As a bonus, wave both hands if some time late you hear said potential client has been screwed by said competitor, either by failing to deliver, delivering useless crap or ending up charging at least double that for "extra work".

If they charged at least double for extra work, they might have made a profit, while pretending they ould charge less than what you bid. Thats service contrct bidding alas...

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

#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 problem is not with small or medium businesses. You need businesses that works on the web. Their web presences is everything they are. They know how web dev. is hard and expensive and they also value it. Highly.

If you are a freelancer, find a few of them. Make a good relation. That's it. They'll make you a good salary.

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

#86
post #48

I have no experience designing iOS apps. Could someone explain briefly why they are so inflexible? Tightly integrated code: 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. The way iOS co…

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.

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

#87
post #70

As a "business person" I need to know three things to hire someone: 1) how much did it cost other people to build similar apps (comparative analysis) 2) that you are able to build the product successfully (reducing technical risk) 3) that the price is low enough that the estimated Rev will produce a return (ROI) - If you can present those points clearly you will be in a much better position to make more money with le…

I don't disagree with you but I think ROI is a business owners case to make. You know your projections and it is up to you to take what I say it cost to fairly compensate me and see if it matches with your expected ROI, if it does not, we can negotiate, if the numbers are not there, then they are not there. But I don't think it is on me to prove out your ROI. Chances are you already know this number, before you even…

agreed. ROI calculation is not for the developer but for business owner. Business owner should start with a budget, an idea of what he would like, and then the developer should tell what he can deliver for that budget.

And yes, building iOS apps is still hard and time consuming compared to webapps, business owners should know that:)

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

#88

Most enterprise projects don't want to pay for usability. That's the bottom hard cold fact. Enterprises want to move fast, if they can, but they can't because of the mistakes they've done in the past were covered with more processes to make sure that 1) it didn't happen again and 2) if it happened, we can blame the process. Sometime engineers don't understand 2 facts: 1) You will get fired if you made mistakes 2) You…

> Database issue. You just go there and change the data

I have heard stories of how very large financial institutions never ever delete a database column from a table, they just keep adding columns. They will not delete a data column for the very real fear that mission critical applications will stop working properly or fail silently.

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

#89

ios is a lot of work, programming in general is a lot of work. It is 2012 not 1992, business people in all fields should know programming is not cheap. Business people who do not do the research, don't bother with them. Avoid them at all cost. I've learn the best clients are the ones who value your work and are willing to pay for it. Their is a shortage of great programmers.

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…

I have to respectfully disagree, while outsourcing provided momentary relief for the enterprising all we did was utilize the capacity that these nations had. Technical people represent about 10% of the population, of that only a small fraction of them choose software development as a profession. Until that number changes no amount of outsourcing will improve the situation, because outsourcing causes innovation in the market that is outsourced to, consuming those resources. Therefore the equilibrium is only momentary disturbed.

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

#90
I wonder how much of this is because iOS apps are typically priced so cheaply. The thinking goes something like "If you can buy quality apps for $1.99 then how much could they cost to make?". Of course some apps make a lot of money at this price point, but it's widely reported that the vast majority make a loss on the developers' time. I suspect even the majority of non-junk apps (which rules out a lot of apps!) make a loss in this sense. If developers aren't valuing their work correctly, how/why would the people hiring them?
Post reply on HN