NSConference 2012


NSConference is an iOS developer community conference.

The presentations are more developer and designer oriented instead of business.
The programme was divided between session ( the main presentations), blitz talks ( smaller/faster presentations) and workshops where you can talk with the experts of one of the core techs
Bellow you can view the conference program and my notes for each presentation. I have highlighted some of the more interesting presentations ( red for coders, green for ux/ui)


Session 1    10:30-11:00 Opening Keynote (Scotty)

General presentation of the app

Blitz Talk A  11:07-11:22 Five sure-fire ways to sabotage a release (Kevin Hoctor)

– Money Well app owner/boss
– Money Well 2.0 took 4 years to develop
– A lot of mistakes where done
– Here are the errors he mande on the way (lessons):
  – Announce future releases/features (Keep your mouth shut)
  – Canibalize new features in free releases ( Don’t give away code)
  – Rewrite all code ( Don’t rewrite functional/good code just becouse you feel like it)
  – Do documentation last (Build documentation and code together)
  – Extend Crunch Time for Months! (Don’t do it, maximum a couple of weeks)

Session 2    11:30-12:00 Patterns & Techniques For Cross-Platform Objective-C Code (Graham Lee)

 – Strategy Pattern, One interface several implementations for each platform
 – Cross plataforms compilers
   – Gnu Step (shell only, all platforms)
   – Cocoa Tron ( module for XCode, only 2 plataforms)

Blitz Talk B  12:07-12:22 Open Source Home Automation with Open Remote (Eric Bariaux)

– Talked about an open source plataform for home automation
– Try to push the standard to developers and tell him to avoid provider lock in.

Session 3    12:30-13:15 Know Your Tools (Nathan Eror)

– A lot of tips about XCode
– Keyboard shortcuts
– Custom Behaviors ( Shorcurts for code only views and others)
– Custom Breakpoints ( can avoid a lot of logging in code)
– Use Keynote to customize animations (it shares the same animation engine and effects as the ios)
  – script files to delete db files, launch then when building.
  – script for rescaling of images to lower formats
  – Automator for renaming files.
– Your body is your best tool ( sleep/eat well/exercise)

Session 4    1415-14:45 Being a Subject Matter Expert (Marcus Zarra)

– Bussiness models
  – Write you own apps
  – Write for others
  – Solve domain tech problems ( CoreData, OpenGLES, Network, Audio)
– Tools: Github, BoxCard
– Payments tips:
  – Payment first – source code after
  – Payment first – app submited to store after
  – If conflitct call Apple and tell them that the app infriges code copyrights
   – Apple will take app out of the store until an agreement is made

Blitz Talk C  14:52-15:07 Dealing with a race condition (Jakob Egger)

– Didn’t see because I was networking with the previous speaker.

Session 5    15:15-15:45 You Too Can Speak Unicode (Ross Carter)

– Very geek talk about unicode strings!

Blitz Talk D  15:52-16:07 A Case Study in Storyboards (Martin Winter)

– An example of an full app developed using storyboards
– Good for initial storyboards.
– Big nib files!
– iOS 5 only
– it crashes
– can lead you to a lot of repeated code.
– Use categories for view dismissal

Session 6    16:15-16:45 Not Another Design Talk (Drew McCormack)

– Code Design
  – Organize your views like this: View 1 -> View 2 -> Window -> VC1 -> VC2
  – Create a Model Controlle for all your model operations, avoid to put model code inside view events.
 – UX Design
  – Optimizing for one type of user always make it worst for other users
  – Use the iceberg principle ( show only a small part of your app on the beginning and then build from it)
 – Graphical Design
  – Contrast,  Repitition, Proximity
  – Good Book: The non-designers designers book

Blitz Talk E  16:52-17:07 Core Data Bit Me (Frédéric Sagnes)”

– Problems with core data, things to be carefull about
 – Relationships (can cause faults even in simple operations)
– Trafeods betweens CoreData/SQLite/Plists

Session 7    17:15-18:00 WWSJD (Mike Lee)

– Talking about Steve Jobs live
– Didn’t like the book, nobody like it
– Its all about good products
– Is writing is own book about Jobs!


Session 8    10:30-11:15 Think Organic. (Tim Isted)

– Grown you apps slowly and
– Don’t try do it all in one go.
– Listens to the users feedback.
– First impressions matter!
– Funny examples with music

Blitz Talk F  11:22-11:37 How to successfully sell iOS frameworks (Peter Steinberger)

– The speaker sell a iOS framework PSPdfKit, an PDF parsing library.
– How to promote the library:
  – StackOverflow – answers framework related problems, and point to your library
  – Twitter
– How to sell it:
 – Don’t use PayPal ( a lot of issues with it)
 – Use FastSpring ()
 – Give users different choices:
   – binary only
   – binary and code
   – special hard to implement features, propose a price to do it and wait to see if someone buys it!
 – Automate all your build process

Session 9    11:45-12:15 KVO Behind the Magic Curtain (Danny Greg)

– How to implent KVO/KVC
– Check <objc/runtime.h> and see the “magic” methods
  – obj_callocateClassPair() ->  creates a new class
  – class_copyMethodList() -> copy methods
  –  method_setImplementation() -> change method implementation
    – IMP? function (id self, SEL _cmd, id newValue)
  – object_setClass() -> change class of an object

Blitz Talk G  12:22-12:37 Enhancing Early Years Education with Speech Recognition (Emily Toop)

– A lot of kids with iPads
– Some nice apps out there: Booksy for Tiptap
– Some APIs out there Dragon/Siri/Google Voice/CMU Sphinx
– They are not optimized for kids speaking
 – missing letters
 – saying silence letters
 – stoping in the beggining of words or breaking words in parts
– TinyEars is an API/project that tries to takles this problems

Session 10   12:45-13:15 Backstage Awesome (Jeff LaMarche)

– General recomendations to make your code easy to read and support
– Use good class, method, variables names instead of a lot of comments
– Only use comments to explain the “strange”/unusual code

Session 11   14:15-14:45 Consuming RAILS services from iOS (Matt Long)

 – Missed it because I was in CoreData workshop

Blitz Talk H  14:52-15:07 The grown-up way to build and distribute iOS apps (Martin Reichart)

– Missed it because I was in CoreData workshop

Session 12   15:15-15:45 How to Create a Successful App (Michael Simmons)

– Missed it because I was in CoreData workshop

Blitz Talk I   15:52-16:07 iOS 5 Skinning: Make your Apps Lickable! (Nik Kuh)

– Missed it because I was in CoreData workshop

Session 13   16:15-16:45 Tools and Editors (Dave Addey)

– NSPredicateEditor (Mac editor for CoreData objects)
– Chameleon
– MacMapKit ( port of map kit to Mac OSX)
– Use GameKit to syncornize between simulator and devices
– Use NSFileManager to sync files between Mac and iOS simulator

Blitz Talk J  16:52-17:07 DEVONimboEverPad (Simon Wolf)

– Talk about how organize your notes worflow
– Talked a lot about Evernote

Session 14   17:15-18:00 Understanding the Medium (Aral Balkan)

– Talk about of user exprience
– Show a lot of UI mistakes
– Finished with examples of QRCode fails
– Organizer of the Update conf.

Session 15   10:30-11:15 Design Considerations for Educational Apps (Fraser Spiers)

– Teacher in an school in Scotland where all the kids have an IPad, provided by the school
– Avoid constant push notification in your app ( imagine all your kids receiving notifications at the same time during the class)
– Avoid buy buttons in you app, specially with names like “more fun”
– Avoid inApp buy ( hard to update content to all users)
– Don’t lock the content inside your app, allow to export to email/pdf/dropbox at least.
– If you do multiplayer test in scenarios with more than 16 devices in one room
– Don’t depend on youtube for video content, normally is blocked on school devices.
– Facebook, Twitter integrations also blocked on school device
– Don’t beg for stars, the kids cannot do it
– Do audio and text localization for the areas ( remember of the Gov. funding for localized apps in Wales and Scotland)
– Do easy apps where the level of dificulty grows slow, remember they are kids.
– Don’t ask for shaking
– Be carefull with the language you use in the app, kids joke with everything
– Lookout for ads in your app (what kind of content will be display in the adds?)
– Do guides for parents/teaches in how to use your app for teaching
– Support photo apps integration, makes sharing workflow easy.
– See IWork as an example of UI
– User AirPlay and AirStream, makes easy to show content to all class
– fraserspiers.com

Blitz Talk K  11:22-11:37 Automated UI testing using the Calabash framework (Miklas Saers)

– Demonstration of the Calabash test framework
– Allows user interface testing trough the use of accesibility features
– LessPainfull, a company that does testing for third parties in several devices using Calabash scripts

Session 16   11:45-12:15 Making Broad Decisions and Narrow Promises (Guy English)

– General talk about optimizations

Blitz Talk L  12:22-12:37 An introduction to localising your first app (Robert Lo Bue)

 – Localization increases visibility fo you apps in countries stores
 – Linguan – http://www.cocoanetics.com/apps/linguan/
 – iLocalize – http://www.arizona-software.ch/ilocalize/
 – Use a good UTF-16 compatible editor (Ex: BBEdit, TextMate, …)
 – Don’t wait for the end to localize your app
 – http://applingua.com/

Session 17   12:45-13:30 Core Data & iCloud (Daniel Pasco)

 – Using Core Data and iCloud presents a lot of chalenges
 – All mechanism is based on transaction logs between devices
 – Delete of the database isn’t notified to the app
 – Migrate in and out of an iCloud Core Data is easy.
 – All the changes in an database are sync, there is no way to filter by fields or tables.
   – You can create two db one sync to icloud and the other not.
 – Get a second machine/device to check the syncronization
 – Use this app key to see log messages:
   – com.apple.coredata.ubiquity.loglevel 3
 – If things get corrupted delete the database
   – On Mac: rm -rd ~/Library/Containers/your.appid
   – On iOS: delete app
– You can’t detect or be notified to:
 – new data is available.
 – or data is arriving and if its finished
 – detect if something got corrupted

Session 18   14:30-15:15 Real World User Experience (Matt Gemmell)

– User exprience Talk

Blitz Talk M  15:22-15:37 Runtime Foolery (Saul Mora)

– More examples of using runtime.h

Session19    15:45-16:30  The Cocoa Rumble  (Scotty & Guests)

– Funny stuff


Good conference regarding iOS development, if attending you should consider to stay in the conference hotel all 3 day. You will get to know the people in  the community and get more inside knowledge.

More Info







Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: