Upload
others
View
49
Download
0
Embed Size (px)
Citation preview
© 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
Developer Tools #WWDC16
Session 415Going Server-side with Swift Open Source
Philippe Hausler Frameworks EngineerJohn Ponzo IBM MobileFirst CTOPatrick Bohrer Swift Technical Lead, IBM
BenefitsServer-side Swift
Same code runs in both placesReduce development time by sharing codeLeverage great APIs on the serve
Architecture
System Libraries
Standard Library
Darwin Linux
System Libraries/Frameworks
Standard Library
Architecture
System Libraries
Standard Library
Core Libraries
Darwin Linux
System Libraries/Frameworks
Standard Library
Overlay
Architecture
System Libraries/Frameworks
Standard Library
OverlayApplication
System Libraries
Standard Library
Core LibrariesApplication
Darwin Linux
Included projectsWhat’s In
Linux and Mac Platform supportStandard LibraryFoundation, Dispatch, and XCTest
Included projectsWhat’s In
Linux and Mac Platform supportStandard LibraryFoundation, Dispatch, and XCTestCompiler Command Line Tools
Bringing Swift to the serverSwift @ IBM
Community enablement• Swift Sandbox• Swift Package Catalog
Consistent developer experience• Kitura Web Framework• Core swift.org contributions
Bringing Swift to the serverSwift @ IBM
Community enablement• Swift Sandbox• Swift Package Catalog
Consistent developer experience• Kitura Web Framework• Core swift.org contributions
Cloud enablement• IBM Cloud Deployment• IBM Cloud Tools for Swift
IBM Swift SandboxCommunity Enablement
http://swiftlang.ng.bluemix.net
Code runs since December 4, 2015
1.5M+
IBM Swift SandboxCommunity Enablement
http://swiftlang.ng.bluemix.netCross-platform Interest
Other56%
iOS/ Mac44%
IBM Swift Package CatalogCommunity Enablement
1,500+IBM Swift Package Manager Packages
http://swiftpkgs.ng.bluemix.net
Kitura web frameworkConsistent Developer Experience
System Libraries/Frameworks
Standard Library
OverlayApplication
System Libraries
Standard Library
Core LibrariesApplication
Darwin Linux
Open sourced in February 2016
Kitura web frameworkConsistent Developer Experience
System Libraries/Frameworks
Standard Library
OverlayApplication
System Libraries
Standard Library
Core LibrariesApplication
Darwin Linux
Open sourced in February 2016Modular package-based web framework
Kitura web frameworkConsistent Developer Experience
System Libraries/Frameworks
Standard Library
OverlayApplication
System Libraries
Standard Library
Core LibrariesApplication
Darwin Linux
Open sourced in February 2016Modular package-based web frameworkLeverages libdispatch and Foundation
Kitura web frameworkConsistent Developer Experience
System Libraries/Frameworks
Standard Library
OverlayApplication
System Libraries
Standard Library
Core LibrariesApplication
Darwin Linux
Open sourced in February 2016Modular package-based web frameworkLeverages libdispatch and FoundationDriving IBM’s contributions into swift.org
Kitura web frameworkConsistent Developer Experience
System Libraries/Frameworks
Standard Library
OverlayApplication
System Libraries
Standard Library
Core LibrariesApplication
Darwin Linux
Open sourced in February 2016Modular package-based web frameworkLeverages libdispatch and FoundationDriving IBM’s contributions into swift.orgUsed at IBM for Swift server-side applications
Kitura web frameworkConsistent Developer Experience
System Libraries/Frameworks
Standard Library
OverlayApplication
System Libraries
Standard Library
Core LibrariesApplication
Darwin Linux
Open sourced in February 2016Modular package-based web frameworkLeverages libdispatch and FoundationDriving IBM’s contributions into swift.orgUsed at IBM for Swift server-side applicationsAvailable at github.com/ibm-swift/kitura
Kitura web frameworkConsistent Developer Experience
System Libraries/Frameworks
Standard Library
OverlayApplication
System Libraries
Standard Library
Core LibrariesApplication
Darwin Linux
BluePicEnd-to-end Swift
Sample photo sharing appRich client interface written in Swift
BluePicEnd-to-end Swift
Sample photo sharing appRich client interface written in SwiftSwift Server built with Kitura, IBM Cloud, Watson,
BluePicEnd-to-end Swift
Sample photo sharing appRich client interface written in SwiftSwift Server built with Kitura, IBM Cloud, Watson,and OpenWhisk
BluePicEnd-to-end Swift
Sample photo sharing appRich client interface written in SwiftSwift Server built with Kitura, IBM Cloud, Watson,and OpenWhiskAvailable at github.com/IBM-Swift/BluePic
BluePic design patternEnd-to-end Swift
Response
iOS App
ModelControllersViews
User Interaction
Request
BluePic design patternEnd-to-end Swift
Response
iOS App
ModelControllersViews
User Interaction
Request
Application Server
Client and ServiceIntegration
Routing Service Logic
BluePic design patternEnd-to-end Swift
Other Services
Object Storage
Watson Image Recognition
Cloudant
Core Cloud Services
Response
iOS App
ModelControllersViews
User Interaction
Request
Application Server
Client and ServiceIntegration
Routing Service Logic
BluePic design patternEnd-to-end Swift
Application Server Other Services
Client and ServiceIntegration
Core Cloud Services
UsersPhotos
Image Insights = TagsPush Notifications Mountain, Sunset,
River
Meta Data
Application tiersEnd-to-end Swift
Clients
Application Server Other Services
Mountain, Sunset, River
Meta Data
Cloud
BluePic development setupEnd-to-end Swift
macOS
Develop and Debug Application Server Other Services
Mountain, Sunset, River
Meta Data
Cloud
Other Services
Cloud
Develop and Debug
macOS
Develop and Debug
Mountain, Sunset, River
Meta Data
BluePic development setupEnd-to-end Swift
Other Services
Cloud
Develop and Debug
macOS
Develop and Debug
Mountain, Sunset, River
Meta Data
IBM Cloud Tools for Swift (Mac App)
BluePic development setupEnd-to-end Swift
+
Develop and Debug Develop and Debug Other Services
Mountain, Sunset, River
Meta Data
CloudmacOS
End-to-end Swift DevelopmentIBM Cloud Tools for Swift
IBM reviewReal-world Server-side Swift
Open source contributionsHelping to grow the communityBuilding tools for a consistent world
Related Sessions
Swift API Design Guidelines Presidio Tuesday 10:00AM
What's New in Foundation for Swift Mission Tuesday 4:00PM
Understanding Swift Performance Mission Friday 11:00AM
Concurrent Programming with GCD in Swift 3 Pacific Heights Friday 4:00PM
Labs
Swift Open Hours Developer Tools Lab A Friday 9:00AM
Cocoa Lab Frameworks Lab A Friday 1:00PM
GCD Lab Frameworks Lab D Friday 5:00PM