intro to perfect - la presentation
TRANSCRIPT
Full Stack SwiftOpportunity for Adventures
Perfect.orgThe Future of Server-Side Development
Tim TaplinProblem Solver
June 8th, 2015
Why Swift?Easy to ReadLegacy FreeLess Code
Powerful, FasterStatically Typed
SafeThe PlaygroundEasy to Maintain
Memory ManagementDynamic Libraries
Currently: Fragmented Development
Different Languages allow Mobile Devices to Share Data
*Developers need BACK and FRONT languages (native).
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
Open Source Swift offers deployment opportunities
• Ubuntu Linux• Cloud services• OSX hosting• IOS• OSX desktop apps• Maybe Android?
Open Source Swift offers developer opportunities
• same language server and client• simpler process • simpler troubleshooting• better communication between
teams
PerfectDesigned in Swift to break the boundaries
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
Perfect.orgThe Future of Server-Side Development
Why Perfect? Why PerfectlySoft?
~1995
Filemaker connection language~1996
Filemaker scripts
~1997 Filemaker licencesLasso as “CDML”
Claris Home Page
The Dawn of the Internet and WWW
What’s Next
~2015 Why not?
=
What is Perfect?1. Perfect Library2. Perfect Servers
(Apache Plugin)(Standalone HTTP Server)(Developer App)
3. Datasource Connectors(MySQL)(Postgres)(MongoDB)
What is Perfect?
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
Key Features of the Perfect LibraryUTF16Encoding UTF8EncodingWebRequestJSON LogManagerMimeReaderMustache SupportWebResponseWebSocketsHTTP2FrameMySQL ConnectorPostgres ConnectorMongoDB ConnectorApache FastCGI
BytesCURLDirEncodingFastCGIServerFile ManagementHPACKHTTP2 ServerHTTP ServerHTTPS ServerStand-alone ServerICU CookieGenerateFromPointerJSON
NotificationResponseRouteMapSessionConfigurationSocketFileDescriptorNetNamedPipeNetTCPNetTCPSSLNotificationPusherPageHandlerRegistryRoutingSQLiteSessionManagerStaticFileHandlerSysProcessThreading
PerfectDesigned in Swift over 5 months
Deployment
OpenSwift
*Logo not ratified
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
Questions before we setup and run
Perfect?Twitter: @perfectlysoft
LinkedIn Group: Server Side SwiftGitHub: PerfectlySoft
Setting up &
Using Perfect
A Mac Xcode 7.3
What you Need
Swift 2.2
Step 1. Navigate to the Perfect Releases
*http://GitHub.com/PerfectlySoft/Perfect (or perfect.org)
Step 2. Download release 1.0
Step 3. Expand zip and open ExamplesStep 4. Open Examples.workspace
Step 5. Ensure you have Xcode 7.3
(includes Swift 2.2)
Step 6. Click targets popup in Xcode
Step 7. Select target WebSockets Server
Step 8. Click Run to build and run server
Step 9. Click open in browser button
Step 10. Enter text in text area
Step 11. Submit and see results
Step 12. URL routes registration
Step13. Receiving connection (and reading and writing data)
Other ExamplesUploads Enumerator
Authenticator
Tap Tracker
Key Features of the Perfect LibraryUTF16Encoding UTF8EncodingWebRequestJSON LogManagerMimeReaderMustache SupportWebResponseWebSocketsHTTP2FrameMySQL ConnectorPostgres ConnectorMongoDB ConnectorApache FastCGI
BytesCURLDirEncodingFastCGIServerFile ManagementHPACKHTTP2 ServerHTTP ServerHTTPS ServerStand-alone ServerICU CookieGenerateFromPointerJSON
NotificationResponseRouteMapSessionConfigurationSocketFileDescriptorNetNamedPipeNetTCPNetTCPSSLNotificationPusherPageHandlerRegistryRoutingSQLiteSessionManagerStaticFileHandlerSysProcessThreading
Lets Build a Project ourselves
http://www.chrismanahan.com/creating-a-web-service-swift-perfect
Questions?Twitter: @perfectlysoft
LinkedIn Group: Server Side SwiftGitHub: PerfectlySoft