

What's the hardest thing about developing iOS apps? - inside_world

I want to break into the industry and I would appreciate the advice.
======
argonaut
I think there are a lot of answers that miss the big picture.

It's making money. Specifically, getting discovered.

Now, if what you meant was difficulty from an engineering standpoint (e.g. you
just want to develop iOS apps as an employee or contractor), then the answer
is: synchronizing data and UI.

Notice I stated something broad, rather than something really narrowly
specific. Provisioning is incredibly annoying, but spend a day reading some
tutorials and docs and you're done, so it's clearly not the hardest problem.
Same with backwards compatibility. Apple does a good job at maintaining
compat. And even then it's not _the_ problem you spend most of your time
hammering against.

The single greatest source of bugs, engineering effort, design patterns (MVC,
MVVM, etc.), and attempts to build huge new frameworks (see: React Native,
ReactiveCocoa, Realm, etc.), and so on, is synchronizing data and UI.

~~~
inside_world
You're absolutely right. My answer was a bit broad. My question was very
general because I'm a novice and I don't know what I don't know (so to speak).
I want to see if there's a general consensus on an aspect of iOS development
that brings frustration. Figure out the pitfalls and what not.

By the way, thanks for sharing. I agree 100% with UI being a pain. On the
other hand, I still don't have much experience with synchronizing data since
most of my projects have been with static data.

In addition, I agree that money is one (or the only) end goal but I guess
that's true for any career. I think if I had asked "How do I make tons of
money with iOS development?" I would've gotten little answers. LOL. It's very
difficult and the ones making the cash probably don't want their competition
knowing.

------
coryl
As an indie developer, the hardest thing is getting ranked highly for your
keywords and making money.

~~~
inside_world
True...ASO...more non-programming concepts to understand as an indie
developer.

------
srikz
UI implementation and polishing is a very time consuming process and is very
laborious (boring) at times. Also, I used to find chaining multiple server
requests without causing something to break for the user challenging, but now
have become better at it and I guess the tools / frameworks are also quite
good now.

~~~
inside_world
I'm curious. What are the tools/frameworks that you use for your work on
Distributed systems(?) ?

~~~
srikz
I'm not sure about what distributed systems you are referring to. I might not
have worked on anything that complex so far. I used to find chaining async
requests for fetching data from web services across different screens while
taking care of variations in app states a bit overwhelming. Now, I tend to
start with creating a substantial data model on the app side and unlinking the
network calls from the controllers as much as possible to ease this process.
Of course many of the things I do now are probably learnt by CS majors in
universities. I learnt them the hard way as I am a self taught programmer.

------
gketuma
I'm also developing my first iOS app and will keep an eye on this thread for
advice. Question to the OP, are you just starting out with the learning
process or are you ready to start deploying apps you have created?

~~~
inside_world
I just published my first app. It isn't very good. I still consider myself in
the learning process. What I find the most difficult is the UI/UX creation.
How about you? What's the hardest thing about iOS development?

~~~
gketuma
Right now my main concern is legacy code written in Objective-C. I have looked
at taking a side project to maintain an app for someone but because it was
written in Obj-C, I'm having some reservations. The good thing is that Xcode
integration is the same for both Swift and Obj-C, but the syntax of Obj-C is
very different.

------
tapirl
The cost, $99/y + Mac machine + iOS devices

~~~
coryl
You can get a used Mac mini relatively cheaply these days if you're on a
budget. Or turn your PC into a hackintosh (less ideal).

~~~
V-2
But on the top of that you still need an iPhone, right?

~~~
wattson12
you could (depending on the app) write and submit an app without ever running
it on a device. Obviously not recommended though

~~~
inside_world
I guess you most likely will need an Apple device. Otherwise, potential
headaches.

------
V-2
I'm an Android dev, does anybody develop for both platforms? How would you
compare the experience?

------
navanit
Constant fear of Apple breaking backward compatibility by shipping new
versions of their _operating system_ every year.

Apple is now running a beta versions of iOS 8.x _and_ iOS 9.

This puts a massive brake on the impulse towards creating new products if you
have fixed resources. It creates a strong bias towards optimising existing
products even after the point of diminishing returns.

~~~
srikz
While I have faced this issue a few times, especially with some UI elements
when moving from 1 version to another, I found that the situation is much
better in iOS (deprecated APIs are supported for a while before being removed)
when compared to Android (of course, its my anecdotal experience and I'm not
trying to generalise here) where some of the APIs were completely dropped or
the behaviour was totally different between incremental versions. In our case
we we had to implement the same feature in 2 different ways to support 4.0 and
4.1 Android versions.

------
marpstar
The provisioning process.

~~~
jbverschoor
That has been solved quite some time ago. I've spent days on this stuff. ow
xcode will do almost everything for you

