Some of you may recall that I jumped into the world of iPhone development (with an SAP flavour) earlier this year, releasing the free app Benchmarking your NetWeaver knowledge in an iPhone App, a quiz for NetWeaver professionals.
In fact Uber Geek was part of a larger strategy for me to pursue for self-learning purposes the three broad categories of apps as outlined in the Apple Human Interface Guidelines …
- A native iPhone application
- A hybrid application, which is an iPhone application that provides access to web content primarily through a web-content viewing area, but with some iPhone iOS user interface elements
- Web only content (websites that behave like built-in iPhone applications)
Having already completed a native iPhone application (Uber Geek is an example of this), I set myself to the task of building a hybrid application, once again with an SAP flavour. The result is myHelp, which is a free app that returns searches from help.sap.com in a more readable format on an iPhone device.
Like Uber Geek, I should make it clear that I have shared this on the Apple iTunes store as an entirely free app, and devoid of any advertising. Think of it this way … many of us share knowledge by writing blogs, wikis etc. As a developer I like to spend my spare time writing apps instead (which themselves help to spread knowledge), and then sharing them with the SAP community.
Several of my SAP colleagues have asked about what is involved with iOS iPhone / iPad development. Here are some of my learnings …
- Firstly, you can’t do it without an Intel Mac with a relatively recent Mac OS X
- iOS development can be fun and rewarding, but also frustrating at times (you need to keep a very close eye on memory management)
- The development IDE is great to use (very responsive like Eclipse), and especially rewarding is the Simulator (the screenshots above were taken from the Simulator)
- Start with a Hello World tutorial, and move on from there. There are many web resources available (see links below). For anyone considering a book, I would recommend Head First iPhone Development because it has less words, and more pictures.
- If you are familiar with MVC (from your BSP or Web Dynpro work) and other Object Oriented design patterns, you will be in good shape. If not, look positively at it … you will understand these patterns better and bring your learnings back to your SAP development
- The SDK is free to download, however if you want to deploy to your device or submit an app to the store, you will need to register as a developer in the iOS Developer Program, which (at time of writing) costs $US99/year.
- If you are looking to publish an app, make sure you read in detail the Apple Human Interface Guidelines.
Finally, I should mention that I am not an Apple evangelist, although I do like my iPhone. If I could afford an Android device as well I would look at developing on that platform as well.
Here I would like to share some useful links that I harvested over the past few months …
- Apple iOS Dev Center (of course!)
- Code snippets (very handy)
- Embedding a navigation controller inside a tab bar controller (used for myHelp)
- MVC in an iPhone app (a very useful site)
- Parsing XML files (used for myHelp, but also useful for integrating with RESTful services from an SAP system)
- Enabling in-app email (used for myHelp)
- Localization of apps (used for myHelp to provide English and German text)
- Memory debugging (used for debugging myHelp)
- Pre-submission checklist (used for myHelp – note that Apple have subsequently revealed their own internal checklist used to assess apps, however I believe this link is only available to registered developers)
I would like to acknowledge Daniel Da Vinci, who gave me the idea to implement this as my hybrid app project, Dagfinn Parnas who helped me find the right contacts at SAP to achieve permission to incorporate SAP’s copyrighted content in the app, and Sascha Wenninger who provided the language translations in German. THIS is the SAP Community at work!
I am aware of and watching closely the recent excitement about the Sybase acquisition and how that may influence mobility approaches in the SAP world. Maybe my thoughts on that in a future blog.
In my next blog, I will share experiences with Web only content approaches …