All posts by swalloda

WWDC 08 — D3 wrap up

Day 3. The day when you take all the lessons from Tuesday and try to put them to good use.

I began the day getting an overview and detail of Core Graphics and Core Animation. In proper Apple style, these frameworks are slick and easy to use. I don’t think that some people appreciate the difficulty of designing a framework. You have to balance power (ie leverage) with flexibility. You have to put everyone else’s shoes on and make sure that you haven’t limited some cool innovative idea because of some arbitrary design decision. But as I said, Apple has passed with flying colors on both counts.
The only downside of the presentation was that we couldn’t get the demo code for how they do the photo ‘house of cards’ demo. If you have an Apple TV, you know what I’m talking about. That shows the power and slickness of Core Animation.
In terms of what I learned, the most useful piece of information was about rendering and how the coordinate system is used to do everything. What does this mean? It means that the renderer always understands how much ‘space’ or ‘resolution’ there is to draw something. So, it always draws it in the best way possible. For example, take an iphone and run either safari or the maps application. When you zoom in, the screen is fuzzy for a moment and then gets really clear. That is the renderer + coordinate system magic in action. What is the take away from this? All displayed graphics (especially text) will look good on any sort of device.

The next session was about controls, views and animation. This was a great walk-through of building a cool looking app from the ground up. What do I mean by ‘cool’? Basically, how to leverage all the built-in animation capabilities of Cocoa Touch as well as the low-level apis of Core Animation. I think the example code for this session will be a great blueprint for custom animation of any iphone/ipod touch application.
What really blew me away was how easy it was to do what I would have considered extremely complex. For example, you can define a path (straight line, circle, random, etc.) and have the animated item follow it. You can change acceleration and apply all manner of transformations too. Very cool.

Lunch was sort of lame today. I unfortunately sat at a table of mostly Apple Engineers and they didn’t seem to want to talk too much. On the plus side, the lunches have had great food (pretty much sandwiches with a side + dessert).

After lunch, I got in the know about the new Push Notification Service. I can’t talk too much about it, but I will say that it will give an well thought out application additional polish.

The next session was about multi-touch events and gestures. Again, very interesting. At the moment, nothing pops into mind about how to use them more effectively in the application.
The funny moment at Q&A was a developer who wanted 6+ concurrent touches but wouldn’t explain what his program was trying to do. I have trouble with 2 touches. I can’t imagine using 6.

I finished up the day with with a lot(4+ hours) of programming trying to incorporate everything I have learned so far into the now infamous Wine Tool. I’m pretty happy with the result and I think the user experience (which was my theme of the day) has vastly improved.

WWDC 08 — Apparel

Here are shirts/fleec that are available at the store. Let me know if anyone wants anything. Store closes on Friday at 2pm local time. Note that there is only one women’s shirt (the white one) and I didn’t photograph the kid shirts, but they are there too.

WWDC 08 — D2 wrap up

Day 2. The day when developers get down to the nitty gritty of building software with the energy inspired by Day 1’s keynote messages (pseudo-sarcasm).

I began the morning talking with a networking expert who offered several opportunities to optimize my client/server interaction. The key was the program tcpdump that let me view all the interaction on the socket. I also learned something cool about the Core Foundation event run loop (which in hindsight I should have realized). Basically, it is completely event driven. What does this mean? It means that you can do cool things like sending a bunch of socket requests via the ‘async’ api and not have to mess around with threads.

Inspired by how neat the networking stack was on mac/iphone, I decided to go to the Bonjour session and see how good their service discovery model worked. Short answer: pretty awesome. In true Apple fashion, they have created a very simple and intuitive way to register, browse, and connect to servers anywhere. I haven’t thought of a great way to use this feature in Wine Tool…yet.

I had lunch by myself but managed to meet some garrulous folks from Kansas City (Missouri, not Kansas). They (and this other guy from Manhattan) were new to iPhone development, so I ended up talking more than listening: explaining objc, slamming xcode, and wondering what Apple would do next.

I had a very productive session talking with a user interface guy (not a coder, but a looks and feels expert). He provided a lot of good ideas about the interaction which I will be incorporating to the future release of the Wine Tool.

For some crazy reason, I decided to go and learn about the Core Audio architecture. After being a bit perplexed about the api (because I wanted to do simple record/play), I thought this session would be the answer. Unfortunately, the session didn’t really deliver. It seemed in violent opposition to the simplicity of a service like Bonjour. Ah well.

After going to an xcode session later in the day, my fears were realized as certain features that I thought were bog standard on an IDE would be coming soon. The long and short of it is that I don’t think xcode was designed with keyboard people in mind. And as far as I can tell, a lot of the engineers seem to be more ‘mousey’ than ‘keyboardy’.

I had enough sessions for the day, so I decided to spend the last ‘period’ in the iphone lab where I could ask more UIKit and xcode questions. Based upon some of the xcode engineers I will grudgingly admit that things weren’t as bad as I originally made them out to be. Not surprising, as learning is the whole point of this conference. I also got to work with the designer/implementor of UITableView which was great as I had a ton of questions for him. It’s pretty cool being able to talk to the designer and find out what they were thinking in terms of apis and how they would be used.

Going to try and incorporate everything I have learned tonight so that I can start a whole new set of questions tomorrow.

WWDC 08 — D1 wrap up

I didn’t get to post this until this morning as my hotel wireless doesn’t work and I chose to go out last night.

Anyway, the first day was pretty good.

There was lunch following the keynote. I didn’t know for sure if there was going to be food, but it appears that the high-priced entry ticket includes all you can eat/drink throughout the day. I ate with several guys(Aaron and Curtis) that I meant standing in line all morning. They were both here for the IT track and worked for educational institutions.

After lunch, there were several more ‘state of the union’ speeches. The first was for Max OSX. There was a lot of information there, but I have to admit that I nodded off in a couple sections (probably due to a mix of the jet lag and food coma). Things of note:

  • Apple thinks multiple threads are bad and that you should use GCD(Grand Central Distribution) along with this block concept. Perhaps they read the Knuth essay that says parallelism is bad because it makes algorithms hard (paraphrasing).
  • Snow leopard will be out in a year. No new features and will incorporate all the slimmed down QuickTime stack that has already been used for the iphone/ipod
  • System apps will be 64-bit compatible
  • etc. I didn’t take notes, but I’m sure there were a couple other items

The second was for the development tool set. There was a lot of rah-rah about how xcode was the best IDE because it was so integrated. I might start to sing the same song if I can find keyboard equivalents for all the things that I can do so effortlessly in Intellij (eg goto a class). The one thing of note I will say is that developing web apps that look native on the iphone appears to now be effortless.

The third was for graphics and media; however, I skipped it to check out the open labs session to see ‘how it all worked’. And it was a good thing, too. I learned that I was actually supposed to sign up for certain labs so that I could have 1:1 time. So, I have an ‘Interface Design’ session today and an ‘App Store’ session tomorrow. Should be educational.

At 6:15, security came through the lab and said in not so many words: “get out and go to the party so that we can close out this area”. So, off to the ‘party’. It was a bit of a mess: extremely crowded, everybody waiting for the food line, and the food was very appetizer-ish. I met some other people(Heidi, Jake, Mike, John) and we went to a ‘real party’. It was a bar called Gallery 111 which contained paintings, some sculptures and drinks. Apparently, this was agreed upon ‘after party’ so there were Apple faithful in abundance. It always amazes me to see a crowded bar on a Monday night. I suspect that the place expects this kind of thing with all the conventions that happen around here.

WWDC 08 — Keynote thoughts

So, the keynote happened and some of the rumors came true.

What do I like?

  • $199 8GB 3G iphone
  • push notification for the sdk
  • GPS (tracking was very cool)
  • full calendar, contact sync over-the-air (about time!)

What do I wish had happened?

  • video conferencing
  • 32GB iPhone
  • Jobs didn’t look well

I love the MacBook Air

So I’ve only been using it for a couple days. To boot, it’s not even mine (thanks Su!).

Why do I like it?

  • I have been blogging with it. It’s very portable and effortless to take out and use. Very useful when you are waiting around waiting to get into WWDC but still have wifi access.
  • I have been doing iPhone development on it via the simulator. All I can say is that it kicks the mini’s ass in terms of performance and usability. The processor speed of the Air is negligibly faster so I’m not sure why; all I can say is that I’m a very happy user.
  • It looks cool. I was chatting with this other guy about how the latest MacBook Pro is a beast. Sure it has ‘power’ but Apple really needs to refresh that line and put their high-end laptops on a diet.

’nuff said?

WWDC 08 — D1 — More waiting

We got some basic snacks (eg water, coffee, bread stuffs). Apple really does like making people wait.

Looks like the rumor sites are in fine form. Could there be a new fusion, new iphone, upgraded hw? All will be revealed soon enough.

More photos of the masses snaking through the convention center, and up the escalator to my current location.

WWDC 08 — Day 1 — In the queue

I got here crazy early, but it seems worth it. The word from the staff is that “if you’re right here, you will be in the hall”. There is a lot of good energy here and everyone is very friendly.

It appears that we will be waiting inside the lab area for about an hour. Then we will make our way in for breakfast. Then I guess the auditorium to build up the hype for the event at 10am.

WWDC 08 — Day 1 — Crazy Early

So I finally got use of the hotel ‘internet’.  I think it’s a 20 year old modem and the wireless is at best flaky.

It’s roughly 5:37am SF time right now and I’m about to head on over to Moscone West and stand in line with the rest of the Apple faithful.  I hope it’s not too cold and that the 10am keynote will be worth it.

I’ll post more when I get to the better internet at the conference.