Cory: What was your vision behind creating Transactions, and why did you pursue this idea and turn it into an iPhone application?
Kyle: When working with a platform that is as new as the iPhone the goal is to try and find niches that haven't yet be filled or not properly filled. While I was out jogging with Ian one evening it hit me that a lot of businesses have a need to accept credit cards anywhere. It felt like a perfect solution for the iPhone so we started to research the feasibility.
Ian: One of the driving influences for us has been to take advantage of the "democratizing force" of the platform. We have Authorize.net for the higher end, more professional users who will use this app on a day to day basis. We also felt we needed to make this application accessible to the farmer who's selling his or her produce at the farmer's market. Or the craftsperson selling his or her wares at a trade show. That was the motivation for including the Paypal option. It doesn't require a merchant account. That's a *big deal*.
Continue reading to hear more from Kyle and Ian about their iPhone programming experience, and advice for prospective iPhone developers.
Cory: How long have you guys been programming on the iPhone, and do you have programming experience with the Mac? What other applications do you have besides Transactions? Which platform do you prefer to work with, Mac or iPhone?
Kyle: I started working on the iPhone right before the App Store went live, I have been writing Mac software at a commercial level since April 2004. Together we have an iPhone App called Handshake. I also have several Mac apps and another iPhone game series called Trivial. At first I preferred working on the Mac, but now I think I like the iPhone more. It requires a higher awareness as a programmer to keep memory and CPU use very low. Those skills translate back into Mac programming.
Ian: I've been working with the iPhone since the Jailbreak days (1.x) and was lucky enough to get a beta slot for iPhone OS 2.0. Before that, I released Changes.app for the Mac. Cocktails+ and the recently "Sherlocked" Handshake are also apps that I've developed. Cocktails+ was developed with Martin Doudoroff and Handshake was developed with Kyle Richter. Prefer is a pretty strong word, but I'd have to say I prefer working with UIKit (iPhone) to AppKit (on the Mac). On the Mac, I really love some of the technology like Garbage Collection, which hasn't made it to the iPhone yet.
Cory: How long did it take you to develop Transactions? Did you have any difficulties getting this type of application on the device?
Kyle: In the end it took just about 6 weeks to get everything we wanted in there and get it to market. We had two major challenges, the first being to get the account settings onto the device and to keep everything secure. The second being the user interface, we spent about 80 hours and 11 revisions getting it so it was easy to learn and powerful at the same time.
Cory: In my review of Transactions, I found several new features in the application that I don't believe I've seen on the iPhone before. One such feature was the ability to setup your PayPal and Authorize.net accounts through an email link. Can you explain the features that are new to the iPhone, and why you chose to use them?
Ian: Most of the innovation in Transactions centers around the realization that text input on the device is hard for users. If you have a 25 character alphanumeric string which you have to enter into the settings view of the application, the likelihood of failure is 99.999999%. In order to help our users out with this, we decided to shift this burden to the web, where it made sense. Thus, the credentials tool was born. We also wanted to make the upgrade path from Lite to Pro a snap, so Kyle sat down and implemented the "Transfer Settings..." feature, so you wouldn't have to retype all of those strings.
Cory: Being the developers of Handshake for iPhone, the service that allows users to share contacts and photos over-the-air, were you at all disappointed at Apple's announcement of the contact sharing built-into their next iPhone OS?
Ian: As a user, I'm thrilled Apple has taken this step. It means I won't have to have other people download my app in order to share things with them . As a developer, I'm a bit disappointed my app has been obsoleted (I think it's only human), but the pros definitely outweigh the cons here. The community benefits when Apple takes a feature set and makes it accessible to everyone.
Kyle: No, not at all. We created the technology to fill a gap in the iPhone, and we did the best we could with the restrictions that we had to work with. I am really glad that Apple came along and did it right. Being "Sherlocked" is a great honor and I am glad this is the way Handshake ended, I couldn't think of a better way to move on to the next project.
Cory: Could you clarify what "Sherlocked" is?
Kyle: Sure, "Sherlocked" is a made up word. It is used around the Mac development community as a way of saying that Apple has created new software inspired by your software and makes yours obsolete. It was coined after the features in Karelia Software's Watson were duplicated by Sherlock 3 in 10.2.
Cory: Speaking from a development standpoint, where do you see the iPhone heading? Where do you think this platform will be in 5 years or so?
Ian: The iPhone is the logical progression of the NeXT platform, which had its start back in the late 1980s. The iPhone and the iPod touch are full-fledged personal computers which just happen to be phones or iPods. As Apple continues to expand the scope of what developers can do with the platform, applications will be created to fill just about every niche. It's an exciting time, and the sky is the limit at this point.
There are some interesting caveats though. Competition could siphon off some of the talent you're seeing clustered around this device and Apple needs to get a better handle on the review and feedback process for the App Store, before it alienates developers. However, I'm hopeful in this area, as I've seen a marked improvement by Apple on this front.
Kyle: That is a very hard question to answer. In the few short years that we have had the iPhone it has changed tremendously already. I think that Apple will continue to work at integrating the iPhone into our daily lives, we are starting to see the beginnings of this with the DJ feature in the new Remote App. Apple seems to be looking at the devices we carry around with us and bringing them one at a time into the iPhone. More and more developers keep coming to the platform and bringing new innovations with them, with more parts of the iPhone being opened up with each OS the possibilities are almost limitless. I think that we will all be very shocked with how the iPhone ends up. A lot is also going to be required from Apple if they intend to stay at the front of the mobile horse race. They need to fix some flaws with ratings, approvals, and feedback to keep developers and consumers coming back for more.
Cory: For anyone looking to be a part of the iPhone developer program, what would you say to them? Where should someone who wants to be an iPhone developer begin?
Ian: In a lot of ways, iPhone development is more difficult than Mac development. Not only do you need to learn and understand Objective-C and all of the APIs Apple has exposed, but you need to be aware of the memory, CPU, and networking restrictions imposed on a mobile platform. I think the fine folks at WWDR have done an excellent job of creating Tech Talks, Sample Code, and other training documentation which should be able to get most new developers up and running. Plus, there are the Developer Forums, which all registered iPhone developers have access to as well. Finally, I've been seeing some really good content on Stack Overflow, especially the material targeted at iPhone and Cocoa Touch developers.
If you have the cash, you should also consider some classes from Aaron Hillegass at the Big Nerd Ranch. The most important thing is to *write code*. Get involved in open source, create a project, just get it out there. The only way you can improve is by doing.
Kyle: I think the best place to start as an iPhone developer is on the Mac. iPhone development takes a lot of commitment and dedication to make it work. Everyone is currently focusing on the gold rush and that is not a good reason to be moving to the platform. Winning big with the iPhone right now is like winning the lottery, its probably not going to happen. If you are serious about writing apps for the iPhone then you should be coming home from work or school and writing code all night. There are many great resources available to a new developer such as the developer forums at Apple and cocoabuilder. Most importantly, though, start small and work your way up; trying to tackle a huge project is a good way to get frustrated and quit. Remember you don't have to publish everything you code.