I had the chance with around 80 other people to attend the iPhone Developer Day in Zurich yesterday. The event was co-organized by Keynode and Trifork. I was warmly welcomed by the organizers Jorn, Christian and Andy. The organization was good, with break after every talk that allows having a fresh mind for the next presenter. If you have only one thing to retain about software development for the iPhone is that you have to manage memory.
The first talk ” iPhone Intelligence: Everything you need to know about launching an iPhone app” was given by Raven Zachary of Small Society. He made the iPhone application for the Obama campaign. He presented the iPhone software market. I liked his vision that iPhone was to the mobile phone market the equivalent of Google for the web search market: a late comer that changed the market.
The next presentation “SBB Mobile iPhone Application and Dynamic Dialog Language” was given by Jonas Schnelli of Include 7. He is famous for having developed in seven days the first iPhone timetable application for the Swiss Railways (SBB)… without their permission ;o) He has then worked with them to evolve the application that allows now to buy a ticket with a iPhone. He also started his presentation from a market perspective, saying that the gaming and productivity applications market was already crowded, but there are still things to do in the information domain. An idea was to develop an application that will make practical information available and then “sell” the concept to a sponsor. He shared with us five golden rules learned from his SBB experience:
* the importance of memory management
* avoid XIB files
* test on the devices
* importance of QA
* learn the software development frameworks
For the SBB application, Jonas is used a dynamic dialog language. He is trying to build an open source version of this tool. People interested can look a this project on http://www.include7.ch/idevzh/
The last talk of the morning “Phone Application Architecture: Forget the examples, how to architect a complex iPhone application ” was presented by Alex Cone of CodeFab. It is difficult to start developing large iPhone applications, because the examples in the documentation lack of this perspective. The main design challenges are to manage long running tasks, concurrency, variable connectivity, data, state and complexity. He made a very interesting remark that an iPhone application is like a software haiku: you have to aim at simplicity and elegance.
The afternoon started with Adrian Kosmaczewski with “Ten Commandments for iPhone development“. His ten commandments are:
1. Manage memory properly
2. Remove compiler warnings
3. Read the Human Interface Guidelines
4. Optimize for performance
5. Test in the device
6. Know your developer tools
7. Use PNG files
8. Use static analysis
9. Have project management hygiene
10. Have fun and be creative!
The next presentation was “Build an iPhone application in 45 minutes” by Patrick Linskey of 17th Street Software. His presentation discussed in details how Objective C works. Unfortunately for me, the presentation took more than one hour instead of the planned 45 minutes, even with a lot code that was “cut and pasted”. I could therefore not stay to watch the last presentation on continuous integration, as I had to get back to my place on the other side of Switzerland for the evening.
On overall, it was a very interesting day providing valuable knowledge on the specificity of developing for the iPhone platform from the market to the code perspective. Two tutorials were organized at the end of the day for beginners and advanced developers. The slides of the presentation are available here.