Category Archives: Developer

WWDC keynote upcoming thoughts

Well, the keynote will take place in a couple hours and though I find myself in California, I’m not at the Moscone Center standing in line. Though I think the keynote and the whole conference is a fun event, I’m happy to not have the stress of working on a must-do side project.

All that being said, I think I will write down my predictions and see how I do. To be fair, I have read a lot of the web sites and it is only 3 hours before the keynote, but better late than never.

I think we will see the following bits related to an iPhone:

  • 32GB storage
  • Increased RAM: 256M total with half available for developer usage
  • Video features (video recording and perhaps a second/swivel camera for chat)
  • Faster Processor
  • Magnetometer
  • Some preview of background processes
  • New app organizer (either via iTunes or actively on the device) — Personally I’m hoping for a ‘today’ screen when the device is locked.  I really think that would be quite useful.
  • More APIs to in the SDK: iCal event programming, address book features, etc.

Do I think that Steve Jobs will show up?  I tend to doubt it, but it might make an appearance and show something if Phil Schiller does a ‘One More Thing’.  It would be a strong ending into what might otherwise be a lame keynote.

iPhone apps — next steps

So now that I have finished rev 1.0 of my first official iPhone app, I ponder which app is next.  Assuming I get some love for the first app, I will of course keep adding features.  I have a ton in mind, but I would like to base future functionality more on feedback rather than just do whatever peaks my fancy.

From an *easy* point of view, I could create iTasteBeer (or something like it since that domain is already taken).  In a lot of ways, it makes sense; however, I think it would have to change a bit because beer is simpler and there would have to be more value added screens.

I’m still amazed that someone hasn’t written an address book app that ‘beams’ contact info from one iPhone to another.  It’s pretty easy, and I might do it because I think it’s so useful.

I had started a prototype of iRemote.  This was before apple released Remote (which I must say is pretty cool for all the music management).  The goal of this was to create a universal remote with state (very similar to what logitech harmony does.  I had this working with some special hardware that emits infra red and a java server.  This was done before I focused more fully on iTasteWine.  I’ve seen some interesting home automation iPhone apps come out, but nothing that would handle the scope of what I wanted to accomplish.

Thoughts?

iTasteWine submitted

Yesterday morning, I submitted iTasteWine 1.0 to Apple.  I’m currently crossing my fingers that everything will be approved.  In case you don’t know what that is, it is an app for the iPhone that manages wine tastings (and a whole lot more).  Be sure to check out the iTunes page on release for screen shots and full app features.

 

Though bare bones right now, there will be more information showing up at the iTasteWine web site.

WWDC 08 — all wrapped up

So I’m writing this final blog about WWDC 08 sitting comfortably in my NYC apartment.  Things were a bit too busy yesterday and I was trying to maximize time with my program and the Apple engineers.  After that, I unfortunately had no wifi access to do blog posting.

Due to the excessive partying that occurred on Thursday night, I unfortunately missed out on the two really interesting sessions (Master Table Views, Tips and Tricks). Ah well. I should be able to catch the videos in a day or two.

I had one more session with Apple User Interface engineers which (though not as productive as the first session) added some new ideas.

The rest of the day was spent in the iPhone lab implementing those and other ideas.

So…final thoughts:

  • Developer conferences are exhausting. Aside from the Thursday night debacle, there is a lot of work keeping up with all the sessions. Though there is a lot of energy in this environment, it also takes a lot of energy to get the full value add. This was a similar experience to the Java One conferences I attended several years ago
  • Don’t wait until the last day to buy apparel at the Apple store. They don’t have much selection and all the sizes that make sense
  • iPhone platform development is big. There are a lot of people trying to get in it because they see the vast potential.
  • This has to be the only event I have attended that included an usually large number of men with pony-tail hair cuts

That’s all for WWDC 08. Later.

WWDC 08 — Day 4 wrap up

I started the day with a session looking at the address book api. No big surprises, but I was excited to learn that I could leverage the ‘viewers/editors’ without actually saving the data to the database. I think that the ‘contact’ viewer/editor is actually a great ad-hoc widget which has applications outside of the address book space.

Next, I went to yet another session about debugging and profiling iphone programs with xcode and the associated tools. Session didn’t teach me too much, but occasionally you see some feature and go ‘yeah, that’s cool’. I left early so that I could ask all of my address book questions in the lab.

While in the lab, I met some guys that were doing professional iphone development(Kyle, Oskar). We talked a lot and their experiences and advice were very useful. Conversation went through most of lunch, so I ate quickly and headed to the next session.

Probably one of the first ‘not a beginner’ sessions was ‘Mastering View Controllers’. It wasn’t really mastering, but it was a refreshing change of pace from the ‘here is a view controller’ session.

I spent the rest of the day in the lab trying to improve the Wine Tool program. Well, until about 6:15 pm when the lab was closed for the party.

The party was at Yerba Buena gardens. It was crazy filled with people, which isn’t really surprising when you consider 5000+ attendees and associated apple engineers and related staff. I drank some crappy red wine and listened to the Bare Naked Ladies. They claimed to be Apple afficianados and were cracking jokes about Apple stuff all night. I liked their music and had a pretty good time (with the one exception of being really cold–San Francisco has crazy weather). I even got interviewed for some company in Santa Monica(I won’t be moving there any time soon). I bumped into Aaron and Curtis (and new guy Danny) at the end of party and we hit a bar (Dave’s). Let’s just say that I was over-served, but there were some good times.

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.