360iDev Conference Day 1

    • Tweet
    September 27th, 2009 Posted by: - posted under:Articles

    Today was the beginning of the 360iDev conference in Denver Colorado. So far, I must say I am very impressed. There have been some great speakers and some very smart dudes in attendance. In case you are unfamiliar with 360iDev, here is a bit about it (from their website).

    360|iDev is the premiere iPhone, iPod Touch developer conference in the world. We bring together the best speakers and sponsors in the industry under one roof!

    The conference is a 3 day (technically 4 day) event held at the Curtis hotel. Here is some info about the sessions I attended today:

    1. Advanced Debugging – Kendall Helmstetter Gelner

    I know, sounds boring right? It was actually very informative. Proper debugging is something that is often overlooked in software development, especially iPhone development. With everyone trying to push out apps so fast, they often miss many simple memory issues that are detrimental to their apps.

    This talk discussed many of the tools available to help you debug including:

    • Instruments – From here you have a huge range of tools available to you. You can even create your own custom tools in order to help you as much as possible. Here are some of the instruments we used.
      • UIRecorder – This is crazy cool. It allows you to record your actions in the iPhone simulator. So if you can reproduce a bug, but it takes many steps (tapping table cells, typing, etc…), you can record the steps, and the next run will do exactly what you just did.
      • Object Allocations – Shows you information about every object in memory. This is useful to determine which objects are taking up memory and slowing down your apps
      • DTrace Instrument – This allows you to define your own custom instrument. We used it to notify us what object were calling specific methods in our code.
    • GDB – This seems scary to most, but can prove to be quite useful. We learned how to set breakpoints, dive into the stack, and even “go back in time”
    • NSZombieEnabled – Cool name ehh? This allows you to see objects that get deallocated but still get referenced in memory.

    You can check out Kendall’s blog here.

    2. Code Injection – Saurik

    For those of you unfamiliar with the name Saurik, he is the creator of Cydia. Cydia is like the App Store for jailbroken iPhones. This guy really knows his stuff.

    He started off by giving us a “state of the union” on the jailbroken world and then began to go into detail about how he managed to hack the iPhone. It starts off relatively simple and then gets very complex, very quickly.

    This talk was a little over my head as much of it was done in assembly, but it was still very informative. The coolest part was his code demo. He spent about 2 hours or so and hacked the Google Maps app on the 3GS. He said that he didn’t like that the map rotated when you rotate the phone and only wanted to the direction indicator to rotate. So, he did just this.

    Saurik hacked away, explaining as he went and didn’t refer to the Apple documentation once. You would have thought he wrote the SDK as he had in depth knowlege of all of the underlying files and private frameworks. Most of his coding was in C and assembly. BTW – he was coding on a Windowz machine. This dude was awesome, makes me want to jailbreak my phone.

    As for tonight, we had a part hosted by MediaLets. Food, beer, and of course Rockband. Here’s a pic from the party:

    I have 3 more days of 360iDev and am very stoked for the next classes. There will be everything from push notifications to game dev. I will be sure to post info about each session along the way. Also, I will have some killer tutorial ideas by the end. For those of you who didn’t make it this year, I would highly recommend it (based on what I have seen so far). Another post coming tomorrow.

    To keep up with what’s going on at the conference in real time, just follow the search term 360idev on twitter. (http://twitter.com/#search?q=360idev)

    Happy iCoding!