Database Reference
In-Depth Information
CHAPTER 1
Enterprise iOS Applications
Enterprise application development is never a particularly fun endeavor. You tend to
end up in large teams. There's lots of process to follow and layers of management all
eager to make sure things are proceeding on course. There are lawyers who have to get
involved with every piece of paperwork that you need signed. And, of course, you're
frequently stuck having to slap a fresh coat of paint onto aging legacy software that can
be fragile and difficult to interface with.
By contrast, the entire Apple development universe is about making thing fun and easy
to use and producing eye-popping user interfaces that do incredible things. Unfortu-
nately, when these two worlds collide, one or the other of the philosophies tends to
end up on the losing end of the stick. Either you abandon all the practices that your
management chain places such value in, and hope they can be understanding about it,
or you have to sacrifice speed and functionality to appease the Gods of Process.
But there is a middle ground! Over the last year, I've been involved in a pioneering
mobile application at a large, established software vendor. It's the first mobile product
the company ever created, the first use of Apple technology by the company, and the
first time Objective-C has ever found its way into the source control system. And in
spite of the steep learning curve that was required to get the processes and people up
to speed on the Way of Apple, we shipped on time and with a full feature set.
This topic is an attempt to distill some of the lessons learned and best practices that
we developed over that year (and continue to evolve as we head toward our 2.0 release).
But before we jump in to the nuts and bolts of iOS development in an enterprise envi-
ronment, it's worth noting some of the reasons that it can be such a difficult effort.
Apple Developers—An Army of One
To start with, the Apple model of development, as embodied by Xcode, strongly favors
a single developer model. That isn't to say that it is impossible to create applications
using concurrent development, and in fact, recent versions of Xcode have drastically
improved support for source control and merging. But the project-central nature of
 
Search WWH ::




Custom Search