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)

DAY 1

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)
– DIY
  – 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!

DAY 2

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

– Grown you apps slowly and
 organic
– 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

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

Summary

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

Published by Sérgio Estêvão

Hello my name is Sérgio and I’m an experienced Mobile Software Architect living in Edinburgh.

Leave a comment

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 )

Google photo

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

Twitter picture

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

Facebook photo

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

Connecting to %s

%d bloggers like this: