Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I was given the opportunity to work with iOS at one of my former employers and I quickly agreed (I was a backend developer back then). It was a rather popular application at a rather large Austrian media company, with around 50k unique monthly users.

Boy did I regret that decision!

- 100KLOC

- Initial development outsourced to India. Comments, variable names in Indian.

- Subsequent development outsourced to Belarus. Add comments, variable names in Russian.

- "Why use ObjC OO features when we can write buggy and incoherent C"?

- Global, implicit state everywhere. Tapped on something? Hope it didn't mess up the state you are relying on.

- Obviously no tests, and no testers.

- Inheritance chains of up to 20 classes.

- iOS kindly forces MVC, but you can obviously write empty controllers and all spaghetti-logic into your views. Needless to say, that was what they did.

- Complete lack of proper structure. Several views iterated up their parent controllers to the desired one, grabbed its views, iterated over them until the right view was found and something was done to that view.

- Building and running the application was controlled by 10+ env variables (the other dev was fired after he pushed a dev build to the App store, which mysteriously passed review. "Whoopsie, forgot to set one of the env variables correctly").

- about 80% of the logic was copy-pasted for the iPad build instead of reusing anything. It was not a different target, it was a separate project.



You were "given the opportunity" huh? :)

How long did you work on that before you threw in the towel?


About six months. I managed to actually get a new feature into that hot mess while fixing bugs that would take days to weeks to track and handling compatibility with a new iOS major version, but then I got an offer to work in the space industry and quickly left.

A while later I heard they threw everything away and started an in-house rewrite in Swift. Some people do seem to learn from their mistakes.

EDIT: clarification on the opening statement.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: