Thoughts from a NeXTStep Guy on Cocoa Development

All The C You Need to Know?

Jan 08, 2013 by Bill Dudney

It has been 10 and half months since I posted this question to everyone. It took a lot longer than I expected it to but I've finally shipped the result of your kind comments. You can find All the C You Need to Know in living color on your iPad here.

The current version is envisioned to be an iPad only book. I have had several requests to make it a PDF but I don't think the interactive content works as well in that format. So for now you'll have to file a bug with Apple to try and get iBooks on your Mac if you want to read it off your iPad.

Permalink     10 Comments - Add Yours

WWDC 2012 Preparation

May 21, 2012 by Bill Dudney

WWDC is one giant fire hose of knowledge. From Monday through Friday it's non-stop cool demo and amazing content. To get the most out of the sessions it's often helpful to go in with at least a passing familiarity with the content so your brain has some pre-processing done on the info and has some hooks to hang the new info on. To that end I offer a list of my favorite WWDC sessions from 2011. You can watch them on-line or download them to iTunes and sync them for watching on the flight in.

  • 100 - What's New in Cocoa Touch
  • 101 - What's new in Cocoa
  • 102 - Implementing UIVC Containment
  • 103 - Cocoa Autolayout
  • 104 - Advanced Scroll View Techniques
  • 111 - Visualizing Information Geographically with MapKit
  • 116 - Storing Docs in iCloud Using iOS 5
  • 117 - Performing Calendar Calculations
  • 121 - Understanding UIKit Rendering
  • 128 - Advanced Text Processing
  • 203 - Introducing App Sandbox
  • 204 - App Sandbox for the Mac App Store
  • 206 - Introducing XPC
  • 209 - Inside the accelerate Framework for IOS
  • 210 - Mastering GCD
  • 318 - iOS Performance in Depth
  • 319 - Effective Debugging with Xcode 4
  • 321 - Migrating from GDB to LLDB
  • 401 - What's new in OpenCL
  • 402 - Essential Game Technologies for iOS, Part 1
  • 403 - Essential Game Technologies for iOS, Part 2
  • 404 - Audio Dev for Games
  • 405 - Exploring AVFoundation
  • 408 - HTTP Live Streaming Update
  • 414 - Advances in OpenGL ES for iOS 5
  • 415 - Working with Media in AV Foundation
  • 416 - Tools for Tuning OpenGL ES Apps on iOS
  • 417 - Introducing AVFoundation Capture For Lion
  • 418 - Best Practices for OpenGL ES on iOS
  • 419 - Capture from Camera Using AVFoundation on iOS
  • 422 - Using Core Image on iOS and Mac OS X
  • 500 - What's new in Core Location
  • 503 - Hidden Gems for Web Apps
  • 504 - Building Newsstand Apps
  • 507 - iBooks
  • 509 - What New in CSS Effects and Animation
  • 516 - Understanding Layout and Gestures

Of course since the content is going to be downloadable shortly after the show so the most important thing is not the sessions. Make sure to read Jeff's guide. He has a ton of practical advice on how to survive/thrive at WWDC.

Permalink     1 Comment - Add Yours

vImage & Image Processing

Mar 22, 2012 by Bill Dudney

Last week at CocoaConf I went to Jeff's excellent talk on the Accelerate framework for the second time. After the first time I sat through it I promised myself I'd learn to hack on vImage just to see what's possible. The span between Raleigh and Chicago was enough that I was embarrassed that I'd done nothing. I went again and sat in the back and coded while Jeff talked. I was able to get a first cut working (filled with memory leaks and bogus image conversion) but that evening Jeff and I spent a couple of hours hacking around and making the code all nice and pretty.

I've done a bit more clean up and posted it to github here. It is not nearly everything I wanted to do but I figured if I posted about it that someone else might be able to take it further.

I blurred the faces in the picture. The image was taken at DisneyWorld in Downtown Disney at the LEGO store.

Permalink     Add A Comment

All the C you need to know?

Feb 27, 2012 by Bill Dudney

What do you find confusing about the C part of Objective-C?

As I'm preparing for the class I'm teaching with Daniel, I keep thinking about all the C stuff that I see people struggling with. I'd love to be able to do a mind meld and transfer a grok of C, but unfortunately it doesn't work that way.

And besides you don't really have to know C to be a competent iOS/Mac developer. For the most part you work in objects from UIKit, AppKit and Foundation. Only every once in a while do the quirks of C come up.

For example, you have to pass an NSError ** to methods that return an error. You don't really have to understand that C is "pass by copy" to use the pattern:

NSError *err = nil;
NSString *stuff = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&err];

You must pass the address of err to change the value of err in the current scope. You can build and deliver apps not understanding why. You just do what works and go on with solving real problems. After all we have to stay calm and ship apps.

But if you are like me, you can only do that for so long before it starts to make you nuts that you don't really understand it!

In the current edition of our book Chris does a great job of going over the stuff you need to know about C to become a proficient iOS developer. But iOS proficiency is the goal. We did not have the space to dig into the details of how pointers work or what "pass by copy" really means.

In addition to preparing for the studio, I've also been doing some web programming with HTML5 (HTML, CSS3 and JavaScript). I'm on that side of the divide where I'm 'copy and paste programming'. I see something on a blog, copy and paste it into my document, and only marginally understand it. But it works so I go on with solving the actual problem instead of taking the time to really 'get it'. I know exactly how it feels to be in that spot, and I hate it! :)

Which brings me to the point of this post. What do you find confusing or not understand with the C part of Objective-C?

Here is a list of topics I know I want to address:

  • pointers
  • function call semantics
  • extended types, struct, typedef, enum and #define
  • ObjC Strings with @"" vs C Strings with ""
  • dynamic memory & malloc/free
  • Core Foundation

Some of those items are abstractions of real world problems I've seen people struggle with, but I'm sure there are lots of others. Please send me an email with what you've struggled with and I'll do my best to address that as well.

If you are coming to ObjC from a scripting language, Scott Stevenson has a great tutorial on several C concepts that you might find useful... Very good stuff.

Permalink     6 Comments - Add Yours

Experimenting with iBooks Author

Feb 08, 2012 by Bill Dudney

It was killing me to be on vacation with iBooks Author shipping. I could not wait to get home to experiment with the new shiny bits.

Well for the last week I've avoided doing any of the real work I'm supposed to be doing and instead focused on building an iBook. Very cool, there are a few things that I don't know how to do better and a few process oriented things that I'm still working on but overall a great experience.

This iBook is about loading images on iOS. If you heard me a few weeks ago on the wonderful iDeveloper Live #33 episode I spend a bit of time going on about how cool Image I/O is. This book does a bit of investigative digging on how much better Image I/O is at loading images than using the 'really simple approach'.

Without further ado, here (open the link on your iPad and you can 'Open In iBooks', otherwise drag to iTunes and sync) is the book for your iPad reading pleasure.

Please let me know what you think!

Permalink     6 Comments - Add Yours

iOS SDK Book now in Beta

Dec 14, 2011 by Bill Dudney

Finally shipping! Completely rewritten from the ground up for iOS 5 and Xcode 4.

You can grab your very own copy here.

You can participate in the forums here.

You can report stuff we got wrong here.

Permalink     1 Comment - Add Yours

The NeXT Big Thing

Oct 06, 2011 by Bill Dudney

I've never been much on rules. I finished High School at the very top of the 3rd quartile. I always looked at my time in high school as more or less a tedium to be endured. I floated around a bit after HS wondering what I'd do with my life. I took a couple of classes at a local community college but those teachers were not much more inspiring that my high school teachers.

The second year after graduation a friend convinced me to join him at a 'live in' junior college. I enjoyed my history class, the teacher was crazy. He brought history to life, encouraged me to get into the minds of the people that lived it. But the rest was just more tedium, endured to get a grade that proved I could sit for 3 hrs a week and regurgitate some facts...

Another friend was headed to Texas A&M to study Aero-Space engineering, I loved Star Trek growing up and that sounded about as close as I'd ever get to a warp drive. So I joined him.

I loved the classes, they challenged me to stretch, learn and think deeply about very technical topics. And, it seemed like life building the stuff that got astronauts into space and kept them alive would be pretty cool. And maybe, just maybe I'd have a shot at becoming one of those fortunate few that got into space.

My junior year I joined a group of 3 other students working on keeping planes from going into flutter. Flutter is very bad for planes, it's like the opera singer hitting just the right note, but instead of a wine glass its a dad/son/mother/daughter and a $30M plane being destroyed. The professor was brilliant, the topic deep and difficult and intensely mathematical.

Naturally, we used Mathematica to explore the problem.

To use Mathematica we had to have a beefy computer and our department had just acquired a beautiful new NeXT cube. I instantly fell in love with this computer. Everything about it was new and exciting. After working non-stop on the flutter problem for a couple of months I decided I wanted to go deeper and figure out how to build my own apps.

As the new semester rolled around I had a new infusion of student loan money, that, along with the limit of 2 credit cards gave me the buying power to get my very own NeXT slab.

I had found my calling, that crazy thing that my heart, my intuition knew about. I wanted to build stuff, crazy stuff, beautiful stuff. AeroSpace Engineering and the potential of becoming an astronaut were now secondary.

Thanks Steve for picking up the pieces of what must have felt like a monumental failure and doing something great with it. I owe my entire professional life to you having the courage to keep on keeping on.

I will cary on that legacy by being the absolute best me that I can be. And I will always remember:

Your time is limited, so don't waste it living someone else's life. 
Don't be trapped by dogma — which is living with the results of other people's thinking.
Don't let the noise of others' opinions drown out your own inner voice. 
And most important, have the courage to follow your heart and intuition. 
They somehow already know what you truly want to become. 
Everything else is secondary.

Thank you for staying foolish and staying hungry.

Permalink     1 Comment - Add Yours

Leaving Apple

Jul 01, 2011 by Bill Dudney

As I tweeted a couple of weeks ago, I’m no longer at Apple. It was quite a difficult decision to leave, but as much as I love to help developers, as much fun as it was to plan WWDC, as cool as the evangelism team is, I wanted freedom to do my own thing. There is so much more to say here but it is still jumbled in a bunch of mixed emotions, as I continue to deconstruct stuff I’ll try to write coherent posts about the decision here.

One of the things I wanted to do is help Chris update the iOS SDK Development book. It was a ton of fun to write, it met with some reasonable success and had a great following on the PragProg forums. Given the history of the book it was making me sick that it was languishing with Xcode 3 screen shots and no iOS 4 or iOS 5 content. So I’m super happy to say I’ve signed on as a co-author for the next edition that will include iOS 5 and Xcode 4. I’ll be posting about the book over the upcoming weeks with updates as we approach beta.

I love helping and teaching developers, but I also love to write code that ships. As an evangelist I got to do a bunch of the prior but none of the latter. So I’m also chomping at the bit to get back to my apps, that will have to wait till the book is done. I’ll post about what I learn from converting iOS 2 and iOS 3 apps to iOS 5 as I get started on those transitions. I know most of you have probably already gone through this so I’ll mostly be writing those entries for myself :)

Since I love to teach I really missed being at conferences so I’m super happy to say I’ll be at CocoaConf in August. It’s a great line up of speakers, I wish I was going as an attendee so I could see all the other talks! It would be great to see you there.

Thanks for taking the time to read and I'm really looking forward to getting back into this side of the community!

Permalink     14 Comments - Add Yours

iOSDevCamp 2010

Aug 23, 2010 by Bill Dudney

I will write up the whole weekend but a lot of people wanted to see the demo we did on Sunday so I've made a quick screenshot video showing the two animations that we demo'd on stage at iOSDevCamp.

For those that do not follow me on twitter here is a brief recap. Andrew (my oldest son) and I went to iOSDevCamp last weekend. He won the "Best Upcoming Developer" award for his Unreal Model Viewer iPhone/iPad app, this is a screencast of the demo we gave on Sunday. If you ever have the chance you should make it to one of these, its a ton of fun!

Permalink     2 Comments - Add Yours

1 Infinite Loop Cupertino CA

Jan 25, 2010 by Bill Dudney

I'm very excited to announce that I have in my possession an offer from Apple to fill the position of Application Framework Evangelist. And I'm even more excited to say that I'm going to accept it. It has been a crazy ride getting here, but I'm really glad to have arrived.

Now for the why. Why would I go from Indie to working for the Man? Well in this case the Man is Apple, and I think we can all see the appeal there :) But seriously the thing I really enjoy doing is helping people build stuff for the Mac and iPhone. My favorite Amazon review is 0 to iPhone App in 6 months. I love that review because that person went from nothing to app, that one review made the book worth writing. Not saying the $ wasn't good too, but the real motivator is helping people. I love it.

As I thought about this job it is helping people x10. I don't just get to help the people that follow me on twitter or that buy the book or post to the forum but I get to help everyone doing Mac and iPhone stuff. And that totally rocks!

I feel like there should be a pithy movie quote or song lyric here, all that comes to mind is 'A dweeam wiffin a dweeam' and 'Heading out to San Francisco'. If more come to mind I'll be sure and post them :)

My start date is Feb 15, can't wait!

Permalink     39 Comments - Add Yours

Foto Brisko - First Review!

Jan 11, 2010 by Bill Dudney

The first review of Foto Brisko is up at TUAW.

Permalink     Add A Comment

Foto Brisko - Live!

Jan 06, 2010 by Bill Dudney

Well its finally here! Foto Brisko is finally live in the store!

Permalink     6 Comments - Add Yours

Foto Brisko - almost there!

Dec 04, 2009 by Bill Dudney

I have been extremely quite on my blog lately, partly because I'm posting a bunch on twitter but also partly because I've been scrambling to finish my latest iPhone app.

It has been a great time, and a mad scramble. I was honored to make the first cut with the Apps Fire people. I've embedded the 50 second preview here. If you are so inclined please go here and up-vote the app.

Permalink     5 Comments - Add Yours

Game Kit Preso - Voices That Matter:iPhone

Oct 17, 2009 by Bill Dudney

Voices that Matter talk finished, was great fun. Here are the slides.

The source code for Disk Smash (the demo code from the talk) is available here

Permalink     Add A Comment

Boulder Developer Day - Core Animation

Oct 12, 2009 by Bill Dudney

Here is my very brief introduction to Core Animation on the iPhone.

And you can find the source here; Photo Search source code.

Permalink     Add A Comment