intro to perfect - la presentation

47
Full Stack Swift Opportunity for Adventures

Upload: tim-taplin

Post on 08-Jan-2017

339 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Intro to Perfect - LA presentation

Full Stack SwiftOpportunity for Adventures

Page 2: Intro to Perfect - LA presentation

Perfect.orgThe Future of Server-Side Development

Page 3: Intro to Perfect - LA presentation

Tim TaplinProblem Solver

Page 4: Intro to Perfect - LA presentation

June 8th, 2015

Page 5: Intro to Perfect - LA presentation

Why Swift?Easy to ReadLegacy FreeLess Code

Powerful, FasterStatically Typed

SafeThe PlaygroundEasy to Maintain

Memory ManagementDynamic Libraries

Page 6: Intro to Perfect - LA presentation
Page 7: Intro to Perfect - LA presentation
Page 8: Intro to Perfect - LA presentation

Currently: Fragmented Development

Different Languages allow Mobile Devices to Share Data

*Developers need BACK and FRONT languages (native).

Page 9: Intro to Perfect - LA presentation

Key “Mobile” ProblemsMultiple development teams (front-end and back-end)Multiple development teams (for different devices)Support for multiple languages and code basesFragmented training and support

What’s NeededA more modern syntax languageA mobile-first languageCross-platform, enterprise options*A native, cross-platform development language

Page 10: Intro to Perfect - LA presentation

Open Source Swift offers deployment opportunities

• Ubuntu Linux• Cloud services• OSX hosting• IOS• OSX desktop apps• Maybe Android?

Page 11: Intro to Perfect - LA presentation

Open Source Swift offers developer opportunities

• same language server and client• simpler process • simpler troubleshooting• better communication between

teams

Page 12: Intro to Perfect - LA presentation

PerfectDesigned in Swift to break the boundaries

Page 13: Intro to Perfect - LA presentation

27,000 Twitter followers 998,700 Tweet Reach

#3 in Swift on GitHubof 40,764 projects(top 99.992%)

#460 in all on GitHubof 3,164,266 projects(top 99.98%)

50 Articles ~48,000,000 Readers

Page 14: Intro to Perfect - LA presentation

Perfect.orgThe Future of Server-Side Development

Why Perfect? Why PerfectlySoft?

Page 15: Intro to Perfect - LA presentation

Sean Kyle Lucas

treefrog.ca lassosoft.com

Page 16: Intro to Perfect - LA presentation

~1995

Filemaker connection language~1996

Filemaker scripts

~1997 Filemaker licencesLasso as “CDML”

Claris Home Page

The Dawn of the Internet and WWW

Page 17: Intro to Perfect - LA presentation

What’s Next

~2015 Why not?

Page 18: Intro to Perfect - LA presentation

=

Page 19: Intro to Perfect - LA presentation

What is Perfect?1. Perfect Library2. Perfect Servers

(Apache Plugin)(Standalone HTTP Server)(Developer App)

3. Datasource Connectors(MySQL)(Postgres)(MongoDB)

Page 20: Intro to Perfect - LA presentation

What is Perfect?

Page 21: Intro to Perfect - LA presentation

Perfect realizes the Swift opportunity-built by same group that developed Lasso for over 20 years-brings full toolset to server side-simple deployment-flexible structure-modular architecture-3.0 SPM ready

Page 22: Intro to Perfect - LA presentation

Key Features of the Perfect LibraryUTF16Encoding UTF8EncodingWebRequestJSON LogManagerMimeReaderMustache SupportWebResponseWebSocketsHTTP2FrameMySQL ConnectorPostgres ConnectorMongoDB ConnectorApache FastCGI

BytesCURLDirEncodingFastCGIServerFile ManagementHPACKHTTP2 ServerHTTP ServerHTTPS ServerStand-alone ServerICU CookieGenerateFromPointerJSON

NotificationResponseRouteMapSessionConfigurationSocketFileDescriptorNetNamedPipeNetTCPNetTCPSSLNotificationPusherPageHandlerRegistryRoutingSQLiteSessionManagerStaticFileHandlerSysProcessThreading

Page 23: Intro to Perfect - LA presentation

PerfectDesigned in Swift over 5 months

Page 24: Intro to Perfect - LA presentation

Deployment

Page 25: Intro to Perfect - LA presentation

OpenSwift

*Logo not ratified

Page 26: Intro to Perfect - LA presentation
Page 27: Intro to Perfect - LA presentation
Page 28: Intro to Perfect - LA presentation

To Do1. Install it!2. Engaging (GitHub stars, Twitter, etc.)3. Stress testing, pipe-cleaning, bug-

finding4. Tutorials, Examples, Snippets,

Projects5. Benchmark Comparisons6. Propose it! We need examples of

usage.7. Consider it. @perfectlysoft

Page 29: Intro to Perfect - LA presentation

Questions before we setup and run

Perfect?Twitter: @perfectlysoft

LinkedIn Group: Server Side SwiftGitHub: PerfectlySoft

Page 30: Intro to Perfect - LA presentation

Setting up &

Using Perfect

Page 31: Intro to Perfect - LA presentation

A Mac Xcode 7.3

What you Need

Swift 2.2

Page 32: Intro to Perfect - LA presentation

Step 1. Navigate to the Perfect Releases

*http://GitHub.com/PerfectlySoft/Perfect (or perfect.org)

Page 33: Intro to Perfect - LA presentation

Step 2. Download release 1.0

Page 34: Intro to Perfect - LA presentation

Step 3. Expand zip and open ExamplesStep 4. Open Examples.workspace

Page 35: Intro to Perfect - LA presentation

Step 5. Ensure you have Xcode 7.3

(includes Swift 2.2)

Page 36: Intro to Perfect - LA presentation

Step 6. Click targets popup in Xcode

Page 37: Intro to Perfect - LA presentation

Step 7. Select target WebSockets Server

Page 38: Intro to Perfect - LA presentation

Step 8. Click Run to build and run server

Page 39: Intro to Perfect - LA presentation

Step 9. Click open in browser button

Page 40: Intro to Perfect - LA presentation

Step 10. Enter text in text area

Page 41: Intro to Perfect - LA presentation

Step 11. Submit and see results

Page 42: Intro to Perfect - LA presentation

Step 12. URL routes registration

Page 43: Intro to Perfect - LA presentation

Step13. Receiving connection (and reading and writing data)

Page 44: Intro to Perfect - LA presentation

Other ExamplesUploads Enumerator

Authenticator

Tap Tracker

Page 45: Intro to Perfect - LA presentation

Key Features of the Perfect LibraryUTF16Encoding UTF8EncodingWebRequestJSON LogManagerMimeReaderMustache SupportWebResponseWebSocketsHTTP2FrameMySQL ConnectorPostgres ConnectorMongoDB ConnectorApache FastCGI

BytesCURLDirEncodingFastCGIServerFile ManagementHPACKHTTP2 ServerHTTP ServerHTTPS ServerStand-alone ServerICU CookieGenerateFromPointerJSON

NotificationResponseRouteMapSessionConfigurationSocketFileDescriptorNetNamedPipeNetTCPNetTCPSSLNotificationPusherPageHandlerRegistryRoutingSQLiteSessionManagerStaticFileHandlerSysProcessThreading

Page 46: Intro to Perfect - LA presentation

Lets Build a Project ourselves

http://www.chrismanahan.com/creating-a-web-service-swift-perfect

Page 47: Intro to Perfect - LA presentation

Questions?Twitter: @perfectlysoft

LinkedIn Group: Server Side SwiftGitHub: PerfectlySoft