Download - Intro to Perfect - LA presentation
![Page 1: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/1.jpg)
Full Stack SwiftOpportunity for Adventures
![Page 2: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/2.jpg)
Perfect.orgThe Future of Server-Side Development
![Page 3: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/3.jpg)
Tim TaplinProblem Solver
![Page 4: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/4.jpg)
June 8th, 2015
![Page 5: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/5.jpg)
Why Swift?Easy to ReadLegacy FreeLess Code
Powerful, FasterStatically Typed
SafeThe PlaygroundEasy to Maintain
Memory ManagementDynamic Libraries
![Page 6: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/6.jpg)
![Page 7: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/7.jpg)
![Page 8: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/12.jpg)
PerfectDesigned in Swift to break the boundaries
![Page 13: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/14.jpg)
Perfect.orgThe Future of Server-Side Development
Why Perfect? Why PerfectlySoft?
![Page 16: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/16.jpg)
~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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/17.jpg)
What’s Next
~2015 Why not?
![Page 18: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/18.jpg)
=
![Page 19: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/20.jpg)
What is Perfect?
![Page 21: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/23.jpg)
PerfectDesigned in Swift over 5 months
![Page 24: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/24.jpg)
Deployment
![Page 25: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/25.jpg)
OpenSwift
*Logo not ratified
![Page 26: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/26.jpg)
![Page 27: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/27.jpg)
![Page 28: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/29.jpg)
Questions before we setup and run
Perfect?Twitter: @perfectlysoft
LinkedIn Group: Server Side SwiftGitHub: PerfectlySoft
![Page 30: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/30.jpg)
Setting up &
Using Perfect
![Page 31: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/31.jpg)
A Mac Xcode 7.3
What you Need
Swift 2.2
![Page 32: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/32.jpg)
Step 1. Navigate to the Perfect Releases
*http://GitHub.com/PerfectlySoft/Perfect (or perfect.org)
![Page 33: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/33.jpg)
Step 2. Download release 1.0
![Page 34: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/34.jpg)
Step 3. Expand zip and open ExamplesStep 4. Open Examples.workspace
![Page 35: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/35.jpg)
Step 5. Ensure you have Xcode 7.3
(includes Swift 2.2)
![Page 36: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/36.jpg)
Step 6. Click targets popup in Xcode
![Page 37: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/37.jpg)
Step 7. Select target WebSockets Server
![Page 38: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/38.jpg)
Step 8. Click Run to build and run server
![Page 39: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/39.jpg)
Step 9. Click open in browser button
![Page 40: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/40.jpg)
Step 10. Enter text in text area
![Page 41: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/41.jpg)
Step 11. Submit and see results
![Page 42: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/42.jpg)
Step 12. URL routes registration
![Page 43: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/43.jpg)
Step13. Receiving connection (and reading and writing data)
![Page 44: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/44.jpg)
Other ExamplesUploads Enumerator
Authenticator
Tap Tracker
![Page 45: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/46.jpg)
Lets Build a Project ourselves
http://www.chrismanahan.com/creating-a-web-service-swift-perfect
![Page 47: Intro to Perfect - LA presentation](https://reader035.vdocuments.us/reader035/viewer/2022062400/5871235c1a28abe4448b58f3/html5/thumbnails/47.jpg)
Questions?Twitter: @perfectlysoft
LinkedIn Group: Server Side SwiftGitHub: PerfectlySoft