CocoaConf PDX wrap-up / Raleigh preview

Photo courtesy of Gordon Hughes

Last weekend I attended CocoaConf PDX in Portland, OR.  Dave Klein really upped his game with keynotes from Daniel Pasco and Brent Simmons, and speakers such as James Dempsey and Collin Donnell.  The event was sold out (the second one to do so I believe, the other being Chicago), so there was a good crowd of about 100 developers on hand.  As always it’s a great vibe with so many people eager to learn and share.

Recap

I presented talks on matrix transformations and collection views.  This was the 4th time I’ve given my matrix transformation talk, “Enter The Matrix: Reloaded“, and I feel like it’s really starting to hit its stride.  I revamped it in August to include a lot more information about flipping and folding animations as well as some general graphics performance tips.  Apparently it was voted the 2nd favorite session of the conference, losing out by a single vote to Jonathan Penn‘s UIAutomation talk.  I consider that a great compliment because Jonathan is a fantastic speaker and his automation talk is really a lot of fun (no, really!) and gets the crowd cheering by the end.  The slides are available here and the code is on GitHub.

My second talk, “Introducing Collection Views”, was a new talk.  I sought to cover the basics of collection views, layouts, and attributes while also covering the more advanced topics of custom layouts and animations and providing specific tips borne from personal (sometimes painful) experience.  The talk is accompanied by a sample app that displays a single collection view with five different layouts.  The slides are here and the code is on GitHub.

Next

I will be presenting at CocoaConf RTP in Raleigh, NC at the end of this month.  Tickets are still available and it looks to be another great conference.  Bill Dudney will be there (including an all-day graphics tutorial) – need I say more?

I will be presenting the same two talks for Raleigh.  I’m looking forward to the additional polish and reworking I can bring to the collection views talk for its second rendition.


Title: Introducing Collection Views

Abstract: UICollectionView, introduced in the iOS 6 SDK, is Apple’s new class for visualizing data in a grid or really any format other than a vertical list.  We’ll cover the basics and then explore the intricacies of UICollectionViewLayout,  UICollectionViewFlowLayout and related classes.  Along the way we’ll learn how to make both horizontal and vertical grids, cover flow, iPhoto-like stacks, and other custom layouts.  Apple has provided yet another tool that makes it easier and faster for you to provide rich experiences for your users – come learn how to hit the ground running with UICollectionView.  Plenty of source code will accompany the talk.


Title: Enter The Matrix: Reloaded

Abstract: Matrix transformations can make your user interfaces come to life: translate, scale, and rotate. Each on its own is relatively simple and straightforward. Yet many developers are daunted when 2 or more operations need to be combined. What if you need to rotate or zoom about an off-center (or even off-screen) point? How do you combine multiple transformations into a single animation? How do you make advanced, polished 3D animations such as folding and flipping views? Learn everything you need to know to get started with complex matrix transformations in CoreGraphics and CoreAnimation and take an in-depth look at folding and flipping animations. We’ll also cover related topics such as anti-aliasing, avoiding off-screen render passes, shadows, and rendering retina images. Tons of demos and full open-source source code provided.

I hope to see you in Raleigh at the end of the month – it’s going to be a good time!

CocoaConf PDX 2012

I am proud to announce that I will be presenting at CocoaConf PDX in Portland, OR this October.  I’ll be debuting a new talk on something I can’t talk about quite yet.  But it’ll be about something new and fun to play with for you to create great interfaces for your users.

Update: Now that the NDA on iOS 6 has been dropped, I can reveal that my new talk will be on UICollectionViews.

Title: Introducing Collection Views

Abstract: UICollectionView, introduced in the iOS 6 SDK, is Apple’s new class for visualizing data in a grid or really any format other than a vertical list.  We’ll cover the basics and then explore the intricacies of UICollectionViewLayout,  UICollectionViewFlowLayout and related classes.  Along the way we’ll learn how to make both horizontal and vertical grids, cover flow, iPhoto-like stacks, and other custom layouts.  Apple has provided yet another tool that makes it easier and faster for you to provide rich experiences for your users – come learn how to hit the ground running with UICollectionView.  Plenty of source code will accompany the talk.

I’ll also be giving my matrix transformations talk, which now has even more rotational and graphical goodness.  That one is a longer session, so there will be plenty of time to get into all the minutiae of shadows, timing curves, anti-aliasing, rendering layers as bitmaps, etc.  If you’re interested in either FlipBoard-style page-flipping animations or Clear-style folding animations, then you won’t want to miss this session.

Title: Enter The Matrix: Reloaded

Abstract: Matrix transformations can make your user interfaces come to life: translate, scale, and rotate. Each on its own is relatively simple and straightforward. Yet many developers are daunted when 2 or more operations need to be combined. What if you need to rotate or zoom about an off-center (or even off-screen) point? How do you combine multiple transformations into a single animation? How do you make advanced, polished 3D animations such as folding and flipping views? Learn everything you need to know to get started with complex matrix transformations in CoreGraphics and CoreAnimation and take an in-depth look at folding and flipping animations. We’ll also cover related topics such as anti-aliasing, avoiding off-screen render passes, shadows, and rendering retina images. Tons of demos and full open-source source code provided.

I’m super excited to visit Portland and looking forward to Chris Adamson‘s Core Audio Workshop.  There’s even a place where you can get bacon on maple-frosted pastries.

Bacon maple goodness – so wrong and yet so right

Early Bird registration ends Sept 14th.

iOSDevCampDC wrap-up

Last Saturday I had the privilege of speaking at and attending iOSDevCamp DC (which actually took place in Reston, VA).  iOSDevCamp DC is a single day, single track conference that is now in its 4th year.  This was my 2nd year attending.  Unlike most conferences, this one groups all the attendees in a single (large) room for the day (stocked of course with plenty of beverages and snacks as well as breakfast and lunch).  This aspect really helps facilitate the mingling and conversations that make attending conferences so valuable.

I was the 4th of 6 speakers and I gave my matrix transformations talk for the 3rd time in 5 months.  This time I deliberately cut the introductory material somewhat and spent more time on folding and flipping animations plus touched on some general graphics tips like anti-aliasing, rendering retina bitmaps, and avoiding off-screen render passes.  I think it went well.  I forgot to sacrifice to the demo gods beforehand though and got the dreaded bootstrap server error that prevented me from running my demo app in the iOS Simulator.  Fortunately, I had it on my iPad and with the help of the HDMI adapter was able to run Instruments while projecting the iPad screen.

I enjoyed the other 5 talks, but especially Ken Yarmosh‘s talk on gestures and Jonathan Blocksom‘s iOS concurrency talk.  I think I picked up about 3 different nuggets from Jonathan’s talk alone that made attending worthwhile.

Slides from my “Enter The Matrix: Reloaded” talk can be found here (latest version here), and the code can be found on GitHub.

(Presenter tip: If you use a retina MacBook Pro or a new 2012 MacBook Air to present, remember to pack a MagSafe to MagSafe 2 converter so that you can charge your laptop using the power adapter that’s hopefully installed on the podium.)

iOSDevCampDC 2012

I am pleased to announce that I will be speaking at iOSDevCampDC in Reston, VA on August 11.  This is a single track, single day mini-conference (for a mini price, just $50) that brings together a lot of DC-area developers.  It’s on a Saturday, so work conflicts are minimal.  Ticket sales end this Saturday (July 14), so if you’d like to go, act soon.

Update: registration has been extended until July 24.

I will be doing my “Enter The Matrix” presentation on matrix transformations, but I’ll probably fine-tune it to the more advanced audience I expect to quickly review the basics and then spend more time examining flipping and folding animations (and related ephemera such as anti-aliasing, avoiding off-screen render passes, shadows, rendering retina images, etc.)

So if you’re in the area (or will be), I hope to see you there!  (Seriously, for $50 you can’t beat the price for 6 technical sessions plus the opportunity to network with a cadre of local devs.)

CocoaConf DC wrap-up

Last weekend I had a great time at CocoaConf DC on my home turf of northern Virginia.  In many ways CocoaConf is the antithesis of WWDC.  Capped at 100 attendees, it’s small where WWDC is enormous, and intimate where WWDC can be impersonal.  It’s a conference where you can meet (and spend time chatting with) every speaker and every attendee, if you put your mind to it.  And really, although the sessions are the ostensible reason to attend conferences (the way we justify them to our bosses or to ourselves), for me at least it’s the personal connections you make that are the real value.  As developers we tend to spend most of our time isolated in our cubicles (and in some cases our homes), so it’s doubly important to take the time to reach out to the like-minded individuals we encounter at conferences.  CocoaConf is a great venue for that.  And with 3 tracks of 30 sessions over 2 days (preceded by an optional full-day intensive tutorial), there’s plenty of knowledge to be gained as well.  A common theme I heard throughout last weekend was the “which of these sessions should I attend next?  They all sound great” dilemma (trilemma?).

This time I presented two talks.  I debuted a talk on custom container view controllers (using the iOS 5 containment API), which in addition to containment covered the iterative process of designing and refining the UI and API for a page-flipping control (demo app shown above).  The slides are available here and the code (open source and attribution-only licensed) is up on GitHub.

My other talk, “Enter The Matrix”, I gave for the second time.  It’s about using matrix transformations in Quartz drawing, UIKit animations, and CoreAnimation (with obligatory, gratuitous references to the Matrix movies).  Since Chicago in March, I’ve significantly improved the accompanying sample app, completely revised the slides for fold and flip animations, and introduced a section on skew and perspective.  The slides are available here (latest version here) and the code is on GitHub.

I think one new talk is the most I can manage per conference.  A great deal of work goes into each presentation (code, slides, and speech).  I like this picture of Saul Mora, Scott McAlister and me all preparing for our talks on the first day of the conference.  We work on our presentations up until the last minute not because we’re ill-prepared, but rather because we care.

One little touch that I really appreciated as a speaker: a MacBook power adapter installed on the presenter’s table in each of the rooms.  Sometimes, it’s the attention to little details that really stand out.

I hear that CocoaConf may be back in DC next March.  If so, I hope I can be a part of it again, either as speaker or attendee.

CocoaConf DC 2012

I am extremely pleased to announce that I will be speaking at CocoaConf DC (actually in Herndon, VA) at the end of June.  This time I will be giving two presentations: one on container view controllers and the other on matrix transformations.

There are a slew of expert speakers on the schedule, and I’m really looking forward to attending as well as speaking.  At CocoaConf Chicago last month I met a bunch of great developers, watched some excellent presentations, learned many things, and just generally renewed my enthusiasm for iOS development.  And the conference hotel is just a few miles from the Air & Space Museum where Discovery now resides.  So book now while early bird tickets at $200 off are still available!


Title: Implementing Custom Container View Controllers

Abstract: iOS 5 introduced the ability to create your own custom container view controllers. Prior to iOS 5 you had to use only the stock controllers (tab, navigation, splitview, etc.) or attempt to roll your own, which was a complex endeavor and often hacky. Custom container view controllers are a great way to give your app a unique look and feel. Learn how to implement your own custom container view controller using the new API. We’ll build a page-flipping controller and cover the various gotchas that can arise along the way. The final product will be an open-source controller that you are free to use in your own apps or just study and take apart.



Title: Enter The Matrix

Abstract: Matrix transformations can make your user interfaces come to life: translate, scale, and rotate.  Each on its own is relatively simple and straightforward.  Yet many developers are daunted when 2 or more operations need to be combined.  What if you need to rotate or zoom about an off-center (or even off-screen) point?  How do you combine multiple transformations into a single animation?  How do you make advanced, polished 3D animations such as folding and flipping views?  Learn everything you need to know to get started with complex matrix transformations in CoreGraphics and CoreAnimation.  Tons of demos and full open-source source code provided.

CocoaConf Chicago wrap-up

I really enjoyed CocoaConf last weekend in Chicago,.  Dave Klein and his family really know how to put on a great conference: the sessions were informative, diverse, and entertaining, the venue was amenable and the hotel reasonably priced, the attendees were friendly, passionate, and eager to learn, and the whole atmosphere was one of community.  In addition to the technical learning, it was great to meet up with old developer friends and make new ones.

I debuted a new talk, “Enter The Matrix”, on using matrix transformations in drawing and animations (with obligatory, gratuitous references to the Matrix movies).  Based on the feedback, people seemed to enjoy it and find it helpful.  The talk includes a comprehensive sample app that contains 7 different demos.  My favorites are the Flip and Fold demos that involve rendering faux 3D animations in 2D courtesy of CATransform3D.  Slides can be downloaded here (latest version here), and you can follow the project on GitHub.

CocoaConf Chicago 2012

I’m pleased to announce that I will be speaking at CocoaConf in Chicago in March.  My talk will be about using matrix transformations of UI elements with a focus on animation.  It was inspired by some recent client work that involved quite a bit of rotating, scaling, and translating in the animations.

Title: Enter the Matrix
Abstract: Matrix transformations can make your user interfaces come to life: translate, scale, and rotate.  Each on its own is relatively simple and straightforward.  Yet many developers are daunted when 2 or more operations need to be combined.  What if you need to rotate or zoom about an off-center (or even off-screen) point?  How do you combine multiple transformations into a single animation?  Learn everything you need to know to get started with complex matrix transformations in CoreGraphics and CoreAnimation.