SlideShare a Scribd company logo
Full Stack Swift
Opportunity for Adventures
Perfect.org
The Future of Server-Side Development
Tim Taplin
Problem Solver
June 8th, 2015
Why Swift?
Easy to Read
Legacy Free
Less Code
Powerful, Faster
Statically Typed
Safe
The Playground
Easy to Maintain
Memory Management
Dynamic Libraries
Intro to Perfect - LA presentation
Intro to Perfect - LA presentation
Currently: Fragmented Development
Different Languages allow Mobile Devices to Share Data
*Developers need BACK and FRONT languages (native).
Key “Mobile” Problems
Multiple development teams (front-end and back-end)
Multiple development teams (for different devices)
Support for multiple languages and code bases
Fragmented training and support
What’s Needed
A more modern syntax language
A mobile-first language
Cross-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
Perfect
Designed in Swift to break the boundaries
27,000 Twitter followers
998,700 Tweet Reach
#3 in Swift on GitHub
of 40,764 projects
(top 99.992%)
#460 in all on GitHub
of 3,164,266 projects
(top 99.98%)
50 Articles
~48,000,000 Readers
Perfect.org
The Future of Server-Side Development
Why Perfect?
Why PerfectlySoft?
Sean Kyle Lucas
treefrog.ca lassosoft.com
~1995
Filemaker
connection
language~1996
Filemaker
scripts
~1997 Filemaker licences
Lasso as
“CDML”
Claris
Home Page
The Dawn of the
Internet and WWW
What’s
Next
~2015 Why not?
=
What is Perfect?
1. Perfect Library
2. 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 Library
UTF16Encoding
UTF8Encoding
WebRequest
JSON
LogManager
MimeReader
Mustache Support
WebResponse
WebSockets
HTTP2Frame
MySQL Connector
Postgres Connector
MongoDB
Connector
Apache FastCGI
Bytes
CURL
Dir
Encoding
FastCGIServer
File Management
HPACK
HTTP2 Server
HTTP Server
HTTPS Server
Stand-alone Server
ICU
Cookie
GenerateFromPointer
JSON
NotificationResponse
RouteMap
SessionConfiguration
SocketFileDescriptor
NetNamedPipe
NetTCP
NetTCPSSL
NotificationPusher
PageHandlerRegistry
Routing
SQLite
SessionManager
StaticFileHandler
SysProcess
Threading
Perfect
Designed in Swift over 5 months
Deployment
OpenSwift
*Logo not ratified
Intro to Perfect - LA presentation
Intro to Perfect - LA presentation
To Do
1. Install it!
2. Engaging (GitHub stars, Twitter, etc.)
3. Stress testing, pipe-cleaning, bug-finding
4. Tutorials, Examples, Snippets, Projects
5. Benchmark Comparisons
6. Propose it! We need examples of usage.
7. Consider it.
@perfectlysoft
Questions before we
setup and run Perfect?
Twitter: @perfectlysoft
LinkedIn Group: Server Side Swift
GitHub: 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 Examples
Step 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 Examples
Uploads Enumerator
Authenticator
Tap Tracker
Key Features of the Perfect Library
UTF16Encoding
UTF8Encoding
WebRequest
JSON
LogManager
MimeReader
Mustache Support
WebResponse
WebSockets
HTTP2Frame
MySQL Connector
Postgres Connector
MongoDB
Connector
Apache FastCGI
Bytes
CURL
Dir
Encoding
FastCGIServer
File Management
HPACK
HTTP2 Server
HTTP Server
HTTPS Server
Stand-alone Server
ICU
Cookie
GenerateFromPointer
JSON
NotificationResponse
RouteMap
SessionConfiguration
SocketFileDescriptor
NetNamedPipe
NetTCP
NetTCPSSL
NotificationPusher
PageHandlerRegistry
Routing
SQLite
SessionManager
StaticFileHandler
SysProcess
Threading
Lets Build a Project ourselves
http://www.chrismanahan.com/creating-a-web-service-swift-perfect
Questions?
Twitter: @perfectlysoft
LinkedIn Group: Server Side Swift
GitHub: PerfectlySoft

More Related Content

PPTX
.Net Core 1.0 vs .NET Framework
PDF
Phalcon Framework: San Antonio Web Developers Group
PPTX
C#: Past, Present and Future
PPTX
Getting Started with ASP.net Core 1.0
PDF
PHP - Programming language war, does it matter
PPTX
Moving forward with ASP.NET Core
PDF
Dot Net Core
PPTX
.NET Core: a new .NET Platform
.Net Core 1.0 vs .NET Framework
Phalcon Framework: San Antonio Web Developers Group
C#: Past, Present and Future
Getting Started with ASP.net Core 1.0
PHP - Programming language war, does it matter
Moving forward with ASP.NET Core
Dot Net Core
.NET Core: a new .NET Platform

What's hot (20)

PDF
.Net standard 2.0
PPTX
ASP.NET Core: The best of the new bits
PPTX
What's New in ASP.NET Core 2.0
PPT
Lua vs python
PDF
PHP is the King, nodejs is the Prince and Lua is the fool
PDF
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
PDF
Rapid Web Development with Python for Absolute Beginners
PDF
Introduction to ASP.NET Core
PPTX
Azure Functions
PPTX
.Net Core - not your daddy's dotnet
PPTX
ASP.NET Core 1.0 Overview
PPTX
.Net Core
PPTX
Itea dev ops_course_topic1
PPTX
PHP Frameworks, or how I learnt to stop worrying and love the code
PPTX
.NET MeetUp Amsterdam 2017 - .NET Standard -- Karel Zikmund
PPT
Python for pentesters
PDF
What's New in ASP.NET Core 3
PPTX
What's New in WCF 4.5
PPTX
Introduction to Python - Code Heroku
.Net standard 2.0
ASP.NET Core: The best of the new bits
What's New in ASP.NET Core 2.0
Lua vs python
PHP is the King, nodejs is the Prince and Lua is the fool
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Rapid Web Development with Python for Absolute Beginners
Introduction to ASP.NET Core
Azure Functions
.Net Core - not your daddy's dotnet
ASP.NET Core 1.0 Overview
.Net Core
Itea dev ops_course_topic1
PHP Frameworks, or how I learnt to stop worrying and love the code
.NET MeetUp Amsterdam 2017 - .NET Standard -- Karel Zikmund
Python for pentesters
What's New in ASP.NET Core 3
What's New in WCF 4.5
Introduction to Python - Code Heroku
Ad

Viewers also liked (15)

PDF
Enumはデキる子 ~ case .Success(let value): ~
PDF
Guide to sell on Brandalley marketplace
PPT
Gold coast
PPTX
Evaluation question 3
PPTX
Media evaluation question 2
PDF
Neboshunit ibquestionsansmatrix-150920084740-lva1-app6892
PDF
Server Side? Swift
PDF
Untitled Presentation
PDF
Sistema de Indicadores de Distancia entre Imagen y Realidad (SIDIR), 2016
PDF
La imagen de España entre los alumnos extranjeros de las Escuelas de Negocio
PDF
What's new in c# 6
PDF
Sistema de Indicadores de Distancia entre Imagen y Realidad (SIDIR). Análisis...
PDF
La reputación de España en el mundo. Country RepTrak® 2014 (Real Instituto El...
PDF
Wei Zeng's Resume
PPTX
Exposure Risk Assessment Challanges
Enumはデキる子 ~ case .Success(let value): ~
Guide to sell on Brandalley marketplace
Gold coast
Evaluation question 3
Media evaluation question 2
Neboshunit ibquestionsansmatrix-150920084740-lva1-app6892
Server Side? Swift
Untitled Presentation
Sistema de Indicadores de Distancia entre Imagen y Realidad (SIDIR), 2016
La imagen de España entre los alumnos extranjeros de las Escuelas de Negocio
What's new in c# 6
Sistema de Indicadores de Distancia entre Imagen y Realidad (SIDIR). Análisis...
La reputación de España en el mundo. Country RepTrak® 2014 (Real Instituto El...
Wei Zeng's Resume
Exposure Risk Assessment Challanges
Ad

Similar to Intro to Perfect - LA presentation (20)

PPT
Tech talk: PHP
ODP
Web Server-Side Programming Techniques
PPTX
Web technologies lesson 1
PPTX
Normalizing x pages web development
KEY
Language Engineering in the Cloud
PPTX
After the LAMP, it's time to get MEAN
PPTX
Webtechnologies
PPT
Django, What is it, Why is it cool?
PDF
Server Monitoring (Scaling while bootstrapped)
PPT
A Microsoft primer for PHP devs
PPTX
World of Node.JS
PPT
Tuenti teams - Php Conference
PPTX
.Net: Introduction, trends and future
PPT
The Nuxeo Way: leveraging open source to build a world-class ECM platform
PPT
Building scalable and language-independent Java services using Apache Thrift ...
PPTX
PPT.pptxvkjvwbjbbikvhixhkiheihhiiihwxhhi
PDF
Hail hydrate! from stream to lake using open source
PPTX
Net Fundamentals
PDF
Experiences using CouchDB inside Microsoft's Azure team
Tech talk: PHP
Web Server-Side Programming Techniques
Web technologies lesson 1
Normalizing x pages web development
Language Engineering in the Cloud
After the LAMP, it's time to get MEAN
Webtechnologies
Django, What is it, Why is it cool?
Server Monitoring (Scaling while bootstrapped)
A Microsoft primer for PHP devs
World of Node.JS
Tuenti teams - Php Conference
.Net: Introduction, trends and future
The Nuxeo Way: leveraging open source to build a world-class ECM platform
Building scalable and language-independent Java services using Apache Thrift ...
PPT.pptxvkjvwbjbbikvhixhkiheihhiiihwxhhi
Hail hydrate! from stream to lake using open source
Net Fundamentals
Experiences using CouchDB inside Microsoft's Azure team

Recently uploaded (20)

PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
top salesforce developer skills in 2025.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
System and Network Administraation Chapter 3
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
AI in Product Development-omnex systems
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
Introduction to Artificial Intelligence
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Operating system designcfffgfgggggggvggggggggg
Which alternative to Crystal Reports is best for small or large businesses.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
top salesforce developer skills in 2025.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
System and Network Administraation Chapter 3
Design an Analysis of Algorithms I-SECS-1021-03
Navsoft: AI-Powered Business Solutions & Custom Software Development
AI in Product Development-omnex systems
Odoo Companies in India – Driving Business Transformation.pdf
Online Work Permit System for Fast Permit Processing
Introduction to Artificial Intelligence
CHAPTER 2 - PM Management and IT Context
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PTS Company Brochure 2025 (1).pdf.......
How to Migrate SBCGlobal Email to Yahoo Easily
Operating system designcfffgfgggggggvggggggggg

Intro to Perfect - LA presentation