With Elias Limneos (@limneos), Christian Heusinger (@iRealSMS), and Luke (@qwertyoruiop) in our repertoire, Behind The Code has had a great start and seemingly a bright future. All developers, no matter what their contribution, are a staple to the jailbreak community and it is an honor to have them working on the "frontlines" bringing in innovation that is otherwise exempt from the native iOS. So far, the Behind The Code series has solidified a foundation for future "behind the code" exclusives to come. ModMyi, once again, is excited to bring another developer to the table. Despite many weeks of hit and miss communication, finals, vacations etc., it is a pleasure to introduce to you Grant Paul, famously known as @chpwn.
Known for Infiniapps (e.g. Infinifolders/Infinidock), Covert, and Gridlock, Grant has dedicated much of his time to coding within the jailbreak community. According to him, he has lately been focusing on updating applications and working on capabilities with other respective applications. More in-depth discussion of this nature is below within the interview.
You will be amazed by his answers below as he has worked on much more behind the scene work then most people may know. He has been a delight to get to know him and I hope that this interview will gain you a deeper look into the jailbreak world from the eyes of chpwn.
JOSH: So, first, tell us a little about yourself. Your name, age, where you're from, and whether you're in school or not.
GRANT: Hey! I'm Grant Paul (chpwn), and I'm from San Francisco. I am currently in school, but I'm on break for now, which gives me more time to work on apps. Yay! You can probably find my age if you look hard enough, but I'd prefer to keep it somewhat private.
You might know me from Twitter or IRC, but some of you might not. If you don't, you might have heard of some of the stuff I've done:
- ProSwitcher (my app with Ryan Petrich http://rpetri.ch/) was a visual interface for multitasking before Apple supported it.
- Infinidock, Infiniboard, Infinifolders (the "Infiniapps"), and Gridlock are my tweaks to mess around with icons on the home screen.
- I've also done some work on Cydia itself which you've probably seen in Cydia 1.1.1.
- I also designed and wrote the UI for Spirit, greenpois0n, and JailbreakMe. If you've been jailbreaking for a while, you've probably used at least one thing by me.
JOSH: I'm assuming the name chpwn is a play on words from the bash command - can you tell our readers what it means?
GRANT: The Unix command "chown" is used to change the "owner" of a file and it happened to be the last command I typed when creating the name. The "pwn" part comes from jailbreaking. A lot of stuff is named with variations on "pwnage" (as in PwnageTool, etc) so I merged that in.
One question I get a lot is how you pronounce "chpwn". I used to claim it was impossible to pronounce but Dustin Howett (@DHowett) and Jay Freeman (@saurik) both say "cee-aitch pone". Since then, I've adopted it as the "correct" way to say it. Feel free to say it however you want although I do have to say that "chip-one" is most definitely incorrect.
JOSH: What as the very first application that you ever created for the jailbreak community?
GRANT: The first app I created for jailbreak (and iOS, actually) was a Cydia "competitor" called "Pakage". I discontinued it after realizing that a package manager isn't something you can just "do". There's a lot of thought, planning, and some really intense coding required. And that's just to get to the level Cydia was at then, let alone what it is today. Even though Pakage never worked (you could never install packages), it was a great way to learn all the different parts of Cocoa Touch, so I'm not too sad about it.
And, many of the interface ideas from Pakage made their way into Cydia 1.1: the "preparing filesystem" screen on first launch is directly from Pakage and same for the redesigned loading screens. The backend to Pakage was awful (especially compared to Cydia), but the good parts didn't go to waste.
JOSH: Out of all the apps, tweaks, etc. that you've created, which one is your favorite (if applicable)? Which one took the most amount of work and time to create?
GRANT: It may sound a bit silly but my favorite of my tweaks is probably the first one I wrote: "MobileVolumeSound". All it does is add the little volume adjustment beeps from Mac OS X into iOS. It worked — without a single update — from iOS 3.1.2 to iOS 4.3.3, and it adds something that I still can't understand why Apple didn't put in there.
My most complex tweak is probably VoiceActivator. Nobody ever looked into the VoiceServices framework or the voice recognition code before so I had to discover how it all worked and how to add new commands. Compared to my other tweaks, VoiceActivator definitely took the longest time to develop. But it ended up really awesome and I think people like it too.
JOSH: Are you doing any App Store work currently?
GRANT: I'm not doing anything in the iOS App Store right now. However, I have been porting my app Paste to the various app stores on different platforms to compare development and the stores on all of them. Paste has been out on the App Store since last November or so and I've recently released ports for webOS and Android.
It's really interesting how all the platforms compare. For me, webOS was definitely the easiest to develop for and release to users. iOS had the most difficult submission process but I like the SDK and it feels more mature than the others. Android's SDK is Java-based (ugh!), and the submission website was a bit confusing, so it was definitely not my favorite. I still haven't tried Windows Phone 7 (it's the only platform without a Mac-compatible SDK!), but I've heard good things about it. If I wasn't mostly doing iOS stuff, I'd be doing webOS. Palm (now HP) has done a great job with it, and I'm going to be looking into the TouchPad when that comes out.
JOSH: Do you have any awesome upcoming projects that you're working on? Can you elaborate on any of them?
GRANT: Right now I'm just getting to a bunch of things that I've been meaning to work on for months. I just finished updating all my Infiniapps to work with SBRotator and I have a few other improvements planned for those pretty soon. I'm also working on a few new features for VoiceActivator, and assuming I fix the last few issues with those, I should be able to get that out this week. I've resisted the temptation to add any new projects (MobileNotifier was quite tough to avoid working on), but I do have some interesting ideas I've been throwing around. Hopefully, a few of them might turn into some cool new extensions.
JOSH: You've been working on Cydia a lot lately - anything you're particularly excited about which is already happened or is planning on happening soon?
GRANT: I personally haven't done much since Cydia 1.1 was released but I do have some plans for the future. I'm hoping I can turn into reality this summer. Specifically, I'm looking into removing the "search" tab of Cydia and instead adding a search field to every screen; kinda like in the iPod/Music app. I'm not sure what saurik's plans are for the future, though, so that may or may not end up being in next update to Cydia. I'll let him say what direction he wants to move the project.
JOSH: Do you have any recommendations for those who are starting to learn how to code?
GRANT: I would suggest not trying to start with iOS or any other mobile platform. Instead, I'd suggest one of these: the web or the desktop. Starting out on the web is really easy and there's tons of tutorials for making your own website. You can do basic stuff entirely within your browser. It's also good because you get to see your results quickly and it's pretty easy to do a lot of different things. The downside, though, is that you aren't going to learn how to program well — or even in a way that can be easily transferred to other platforms or programming languages. If you're interested in that, I'd suggest learning Python 3.1(http://python.org/). It's a little harder to start getting results but there's also tons of tutorials online that will help you get started. This site (http://syntensity.com/static/python.html) is also cool because (in a modern browser) you can try out Python on the web, although I'd still install it. The benefits of learning Python is that it forces you to learn good programming practices: it won't even run a lot of code if you don't do it as you should. It doesn't teach everything, but if you really understand your Python code, other languages probably won't be that difficult afterwards.
JOSH: What features are you most looking forward in iOS 5? Do you see iOS 5 as a window of new opportunities or a hinderance for jailbreak development?
GRANT: I'm looking forward, mostly, to this rumored Twitter integration. I spend quite a bit of time on Twitter so anything that makes it easier is awesome news to me. In terms of jailbreak development, I think anything new is a good thing for us. There's only so many ways you can modify what's in iOS 4 but I'm sure there's tons more ways to change the new stuff in iOS 5. (And no, I don't know what the status of the jailbreak is for iOS 5, but I'm pretty sure it won't take too long.)
JOSH: If someone had questions, bug fixes, implementation suggestions etc. for you, what would be the best way to contact you?
GRANT: The best way would be to click the email developer button in Cydia.
Grant (chpwn)'s website is a great source of information for his applications and a direct link to his github (for those developers out there). Follow @chpwn on Twitter for updates via him about his developments and other similar information
Source(s): Grant Paul (@chpwn), chpwn