416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com...
Transcript of 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com...
![Page 1: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/1.jpg)
© 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
#WWDC14
Modern Frameworks
Session 416 Chris Parker Engineer
Tools
![Page 2: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/2.jpg)
![Page 3: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/3.jpg)
![Page 4: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/4.jpg)
![Page 5: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/5.jpg)
Live Views
![Page 6: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/6.jpg)
Extensions
![Page 7: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/7.jpg)
Sharing Code Between Multiple Applications
![Page 8: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/8.jpg)
Publishing a Framework
![Page 9: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/9.jpg)
![Page 10: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/10.jpg)
What Goes in It?
![Page 11: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/11.jpg)
Choosing Framework ContentsLive views
Views
Controls
Custom appearance
![Page 12: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/12.jpg)
Choosing Framework ContentsExtensions
Views
Controls
Custom appearance
View controllers
Service API
Resources
!
![Page 13: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/13.jpg)
Choosing Framework ContentsBetween multiple applications
Views
Controls
Custom appearance
View controllers
Service API
Resources
!
![Page 14: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/14.jpg)
Choosing Framework ContentsPublishing frameworks
Views
Controls
Custom appearance
View controllers
Service API
Resources
!
![Page 15: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/15.jpg)
![Page 16: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/16.jpg)
![Page 17: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/17.jpg)
![Page 18: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/18.jpg)
![Page 19: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/19.jpg)
![Page 20: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/20.jpg)
![Page 21: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/21.jpg)
![Page 22: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/22.jpg)
If the code appears more than once, it probably belongs in a framework.
![Page 23: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/23.jpg)
Frameworks Are API
![Page 24: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/24.jpg)
insert:at:
![Page 25: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/25.jpg)
insert:at:
![Page 26: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/26.jpg)
insertObject:atIndex:
![Page 27: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/27.jpg)
insertObject:atIndex:
![Page 28: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/28.jpg)
setBkgndColor:
![Page 29: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/29.jpg)
setBkgndColor:
![Page 30: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/30.jpg)
setBackgroundColor:
![Page 31: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/31.jpg)
setBackgroundColor:
![Page 32: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/32.jpg)
displayName:
![Page 33: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/33.jpg)
displayName:
![Page 34: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/34.jpg)
- (void)sendAction:(SEL)aSelector :(id)anObject :(BOOL)flag;
![Page 35: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/35.jpg)
- (void)sendAction:(SEL)aSelector :(id)anObject :(BOOL)flag;
![Page 36: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/36.jpg)
- (void)sendAction:(SEL)aSelector toObject:(id)anObject forAllCells:(BOOL)flag;
![Page 37: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/37.jpg)
- (void)sendAction:(SEL)aSelector toObject:(id)anObject forAllCells:(BOOL)flag;
![Page 38: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/38.jpg)
func containsCharacter (string: String character: Character) -> Bool
![Page 39: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/39.jpg)
func containsCharacter (string: String character: Character) -> Bool
containsCharacter(“Buddy”, “u”)
![Page 40: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/40.jpg)
func containsCharacter (#string: String #character: Character) -> Bool
![Page 41: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/41.jpg)
func containsCharacter (#string: String #character: Character) -> Bool
containsCharacter(string: “Buddy”, character: “u”)
![Page 42: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/42.jpg)
- (void)presentPopoverFromRect:(CGRect)r inView:(UIView *)v permittedArrowDirections: (UIPopoverArrowDirection)aD animated:(BOOL)a;
![Page 43: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/43.jpg)
func presentPopoverFromRect(rect: CGRect, view: UIView!, arrowDirections: UIPopoverArrowDirection, animated: Bool)
![Page 44: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/44.jpg)
presentPopoverFromRect(someRect, someView, .Any, true)
![Page 45: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/45.jpg)
func presentPopoverFromBarButtonItem( barButtonItem: UIBarButtonItem, arrowDirections: UIPopoverArrowDirection, animated: Bool)
![Page 46: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/46.jpg)
func presentPopover( fromBarButtonItem item: UIBarButtonItem, #arrowDirections: UIPopoverArrowDirection, #animated: Bool)
func presentPopover( fromRect rect: UIBarButtonItem, inView view: UIView, #arrowDirections: UIPopoverArrowDirection, #animated: Bool)
![Page 47: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/47.jpg)
presentPopover(fromBarButtonItem: someItem, arrowDirections: .Any, animated: true)
presentPopover(fromRect: someRect, inView: someView, arrowDirections: .Any, animated: true)
![Page 48: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/48.jpg)
func presentPopover( fromRect rect: UIBarButtonItem, inView view: UIView, arrowDirections: UIPopoverArrowDirection = .Any, animated: Bool = true)
![Page 49: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/49.jpg)
presentPopover(fromBarButtonItem: someItem, arrowDirections: .Any, animated: true)
presentPopover(fromRect: someRect, inView: someView, arrowDirections: .Any, animated: true)
![Page 50: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/50.jpg)
presentPopover(fromBarButtonItem: someItem)
presentPopover(fromRect: someRect, inView: someView)
![Page 51: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/51.jpg)
“Coding Guidelines for Cocoa” developer.apple.com
![Page 52: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/52.jpg)
“The Swift Programming Language” developer.apple.com
![Page 53: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/53.jpg)
Publishing a FrameworkVersioning
![Page 54: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/54.jpg)
Publishing a FrameworkVersioning
1 1 1 1
![Page 55: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/55.jpg)
Publishing a FrameworkVersioning
1 1 1 12 2
![Page 56: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/56.jpg)
Publishing a FrameworkVersioning
Framework versions
Keyed archiving • Key-value pair semantics are consistent
• Missing keys return `nil` (or the equivalent)
• Compatibility opportunities on encode and decode
• Make keys unique
Feature availability • respondsToSelector: • NSClassFromString()
![Page 57: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/57.jpg)
Practicum…or “great, but how does this all work in real life?”
![Page 58: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/58.jpg)
![Page 59: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/59.jpg)
![Page 60: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/60.jpg)
Budstagram
![Page 61: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/61.jpg)
![Page 62: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/62.jpg)
![Page 63: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/63.jpg)
BudstagramApplication
Allows posting and editing of photos • (as long as there’s a picture of Buddy being included)
Allows comments on existing photos (feed)
Shares a posting view controller with the plug-in
![Page 64: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/64.jpg)
BudstagramExtension
Allows posting and editing of photos from within other applications
Doesn’t allow comments on existing photos (no feed)
Shares the posting view controller with the application
![Page 65: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/65.jpg)
BudstagramFramework
Contains • Shared posting view controller
• Shared networking code for posting
!
![Page 66: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/66.jpg)
Demo
![Page 67: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/67.jpg)
Related Sessions
• Creating Extensions for iOS and OS X, Part 1 Mission Tuesday 2:00PM
• Creating Extensions for iOS and OS X, Part 2 Mission Wednesday 11:30AM
• Sharing code between iOS and OS X Presidio Friday 9:00AM
![Page 68: 416 Modern Frameworks DF - Apple Developer...“Coding Guidelines for Cocoa” developer.apple.com “The Swift Programming Language” developer.apple.com Publishing a Framework Versioning](https://reader036.fdocuments.net/reader036/viewer/2022081621/612583ea78abf830f6248dc6/html5/thumbnails/68.jpg)