For years our slogan—We Design Books!—served us well. And now with the evolution in book publishing we’re expanding that phrase: We Design Books & Apps!
We’re primarily interested in the development and design of book apps. Yes, that’s a broad category ranging from e-books to apps that don’t even resemble the traditional notion of a book.
But also we’re still designing printed books. Despite all the euphoria over e-books and apps, the demand for traditional book design hasn’t slowed a bit.
We also just have a really strong interest in where the book as app is heading. Soon I’ll be sharing my adventures with developing on the iPad/iPhone platform and previewing some of the books apps that we’re working on.
Developing native apps for Apple’s iOS devices (currently: iPod Touch, iPhone, iPad) is certainly a complex process. Of course, that’s true for almost anything worthwhile. Fortunately, app developers are usually the type accustomed to learning new tools & skills. Back when I managed technology in universities, I hired programmers based on not what they knew but on their aptitude and skills for learning. And I still think that’s valid for hiring developers on salary to work in-house, but I suspect most publishers will contract their app development to firms specializing in those skills.
While there is a significant learning curve for new app developers, Apple provides an extensively documented environment for building apps. The learning curve is about three months to obtain a firm understanding of developing apps in Objective C and Apple’s SDK (known as Xcode). Clearly, though, the learning of new techniques and more involved aspects of the iOS SDK is an ongoing and never ending process. Again, that’s also true for any development environment.
Some sort of programming background is essential for coming to terms with the tools for iOS app development. Experience in a C-based language is helpful but not necessary, though having a basic understanding of how a programming language functions is essential. Those with only a background in scripting languages such as PHP or JavaScript will have a slightly harder time but not so much harder. Personally, I actually find Objective C a lot simpler to understand that JavaScript but that might simply be the way my own mind is wired.
Developing a native app requires a very different mindset than developing for the Web. The screen dimensions is only one aspect. Apple provides great guidance in its interface guidelines. And there are many technical issues. You must deal with memory management. Xcode provides both an iPhone & iPad simulator but what works on the simulator may not work on the actual device, which has much stricter memory limitations than a desktop machine. The complexity of loading views (i.e., a screen of information) is not nearly as simple as making an href link to a new Web page. In iOS a lot more is going on behind the scenes. Of course, that also opens up a great deal of functionality, features, and capabilities that can be presented in a native app.
Knowing how to take advantage of those features in native apps requires an understanding of the possibilities presented by iOS. And that’s where the design of the app is so very important, and not just the visual, graphic design but the underlying structure and functionality of the app. The value of an app rests in the functionality, which really needs to be something more than a page curl animation. That’s merely eye candy. The task of conceptualizing an app is the most difficult part of working in Apple’s app world. But that’s nothing new. System analysis and design always has been more difficult than programming.