SOA layer which handles all server interaction: turning the application layer objects into server requests and turning the xml server responses back into appropriate application layer objects
Hard disk and memory cache for both images and application objects to reduce server load and increase responsiveness
Online/Offline mode allowing the user to interact with the application when no data or internet service available; offline changes syncing with server at the next opportunity
Created a number of reusable component libraries which provide commonly needed iPhone functionality (screencasts section below)