• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content




My talk about CoconutKit 2.0, held at Cocoheads Switzerland in December 2012

My talk about CoconutKit 2.0, held at Cocoheads Switzerland in December 2012



Total Views
Views on SlideShare
Embed Views



3 Embeds 12

https://twitter.com 8
http://www.linkedin.com 3
https://www.linkedin.com 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    CoconutKit CoconutKit Presentation Transcript

    • CoconutKitSamuel Défago, le studioCocoaheads — December 2012
    • Who am I?• iOS developer at le studio (www.hortis.ch)• Mail: defagos (at) gmail (dot) com• Twitter: @defagos• Blog: http://subjective-objective- c.blogspot.com/• Open-source: https://github.com/defagos
    • What is CoconutKit?• Open source project• A library, not a framework• Collection of useful and robust components• Supports ARC and non-ARC projects• Compatible with iOS 4, 5 and 6
    • Brief history• July 2010 — Birth• August 2011 — First public release 1.0• October 2011 — Softshake event• November 2012 — Version 2.0
    • My goals• Eliminate cumbersome tasks• Provide robust components• Fill system framework gaps• Keep components easy to use ...• ... and documented• Have fun!
    • Why you should use it?• Spend more time on your application• Spend less time on debugging• Create more robust applications• Create beautiful applications more easily• Write better code
    • Links• Official github page (https://github.com/ defagos/CoconutKit)• Wiki (https://github.com/defagos/ CoconutKit/wiki)• Binaries (https://github.com/defagos/ CoconutKit/downloads)
    • Adding to a project• Easy to integrate (~ 2 minutes)• Easy to update• Two methods • Binaries (.staticframework) • Cocoapods (https://github.com/ CocoaPods/CocoaPods)
    • Components (1)• View controller containers & API• Animations• Dynamic localization• Core Data extensions• Controls (label, cursor, text field, etc.)
    • Components (2)• Easy view and cell instantiation from nibs• Lightweight logger• And more!
    • Containers• High-quality containers • Composition (placeholder VC) • Navigation (stack controller)• Custom CA transitions• Storyboard support• Compatible with UIKit containers
    • Placeholder• Embed one or several VCs into another Example 1 Example 2 -setInsetViewController:atIndex:
    • Stack • Push / pop view controllers -pushViewController:withTransitionClass:animated: -popViewController:animated:-insertViewController:atIndex:withTransitionClass:animated: -removeViewControllerAtIndex:animated:
    • Stack
    • Autorotation• Use iOS 6 methods for all HLSViewController subclasses• autorotationMode container property • Available for CoconutKit containers... • ... and for UIKit ones (no more subclassing)
    • Why CoconutKit containers?• Easily change interface and transitions• Cleanly separate your code• Manage complex VC hierarchies easily• Circumvent UIKit limitations (e.g. modal, 3D flip animations)• API to create your own containers
    • Animations• Create in a declarative way• Combine UIView and CA animations• Pause and resume, cancel• Set start time and delay, loop, repeat count• Play with duration / instantaneously• Correct behavior when app sent to the background
    • [self.listAnimation playAnimated:YES];[self.listAnimation reverseAnimation] playAnimated:YES];
    • Localization• Change localization at runtime• nib localization without outlets
    • - (void)localize { [super localize]; // View controller localization code }[NSBundle setLocalization:@”en”] [NSBundle setLocalization:@”ar”]
    • LS/Country of residence ULS/Country of residence LLS/Country of residence CLS/Country of residenceStrings file Pays de résidence PAYS DE RESIDENCE pays de résidence Pays De Résidence
    • Core Data extensions• Managed object context (MOC) stack• Validation done right• Text field bindings
    • MOC stack context-free methods
    • Validation• Validations written once• Called separately or globally• Error-chaining done right
    • Text field bindings• Bind text field to underlying model object field• Optional formatter
    • Label• Vertical alignment• Font size adjustment even for nbrLines >= 2
    • Cursor
    • And more!• Search bar• Alert view done right• Slideshows (cross-fade, Ken Burns, ribbon)• Text field moving to avoid being hidden by the keyboard
    • And more!
    • Thanks for your attention!
    • Questions?