SlideShare a Scribd company logo
3rd of July 2014 
SWIFT 
The Apple programming language 
by Romain Francez
3rd of July 2014 
What is SWIFT ? 
● Apple programming language 
● Released during WWDC 
● Mac & iOS development
3rd of July 2014 
Anyone can code 
Simple 
An empty file is a program 
A one line file is a program 
println("Hello Steamhouse") 
Basic concepts are similar to other languages 
Everybody is starting at the same level 
Beginner
3rd of July 2014 
Anyone can code 
Less error prone 
var aText = "A string" // Type inference 
aText = 1.2 // Cannot convert the expression’s type to String 
var numberOverflow: UInt8 = UInt8.max + 1 // Arithmetic operation '255 + 1' (on type 
'UInt8') results in an overflow 
var tenBillion = 10000000000 
var tenBillionReadable = 10_000_000_000
3rd of July 2014 
But can they? 
Tricky concepts 
Optionals 
var anOptional: String? 
Inheritance 
class DataViewController: UIViewController, UITableViewDataSource, UITableViewDelegate 
Are there a class and two protocols or three protocols?
3rd of July 2014 
But can they? 
Adoption 
1,200,000 apps on the iOS App Store 
It will take time to migrate 
Sparse documentation 
One official document 
Unfinished language 
No expert on the subject
3rd of July 2014 
Language
3rd of July 2014 
Basics 
Variables and constants 
let greetings = "Hello" // Constant 
var person = "World" // Variable 
person = "Steamhouse" // Can change the value of a variable 
greetings = "Goodbye" // Error, cannot change the value of a constant
3rd of July 2014 
Basics 
Optionals 
There is a value… or maybe not 
var anOptional: String? = nil // nil means no value 
var notAnOptional: String = nil // Error 
Accessing the value 
if anOptional { 
println(anOptional!) 
}
3rd of July 2014 
Basics 
Functions and closures 
func add(a: Int, b: Int) -> Int { 
return a + b 
} 
func adder(a: Int) -> (Int) -> Int { 
var _a = a 
func add(b: Int) -> Int { 
_a += b 
return _a 
} 
return add 
}
3rd of July 2014 
Basics 
Tuples 
let (latitude, longitude) = (48.85341, 2.3488) 
let paris = (48.85341, 2.3488) 
paris.0; paris.1 
let parisExplicit = (latitude: 48.85341, longitude: 2.3488) 
parisExplicit.latitude; parisExplicit.longitude
3rd of July 2014 
Basics 
For-In 
for i in 0..10 { 
i 
} // 0 1 2 3 4 5 6 7 8 9 
for i in 0...10 { 
i 
} // 0 1 2 3 4 5 6 7 8 9 10 
for _ in 0..10 { 
println("Wake up") 
}
3rd of July 2014 
Basics 
Switch 
let point = (+24, -1_302) 
switch point { 
case (0..5, _): 
println("A bit on the right") 
case (5..100, _): 
println("Somewhat on the right") 
case (100...1_000_000, _): 
println("On the right") 
case (let x, _) where x > 1_000_000: 
println("Very far on the right") 
default: 
break 
} // Somewhat on the right
3rd of July 2014 
Demo
3rd of July 2014 
What the future holds 
The APIs are still old style 
They will migrate them in a near future
3rd of July 2014 
Questions ? 
For online questions, please leave a comment on the article.
3rd of July 2014 
Join the community ! 
(in Paris) 
Social networks : 
● Follow us on Twitter : https://twitter.com/steamlearn 
● Like us on Facebook : https://www.facebook.com/steamlearn 
SteamLearn is an Inovia initiative : inovia.fr 
You wish to be in the audience ? Contact us at 
learn@steamhouse.fr

More Related Content

DOCX
as400 built in function- %ABS
PDF
Steam Learn: Faster php testing process with Atoum
PDF
Steam Learn: Introduction to NoSQL with MongoDB
PDF
Steam Learn : Varnish or How to reduce the load of your web server
PDF
2015.02.05 alexis von glasow - faster php testing process with atoum
PDF
Steam Learn: Cheat sheet for Vim
PDF
Steam Learn: Composer
PDF
Steam Learn: Introduction to RDBMS indexes
as400 built in function- %ABS
Steam Learn: Faster php testing process with Atoum
Steam Learn: Introduction to NoSQL with MongoDB
Steam Learn : Varnish or How to reduce the load of your web server
2015.02.05 alexis von glasow - faster php testing process with atoum
Steam Learn: Cheat sheet for Vim
Steam Learn: Composer
Steam Learn: Introduction to RDBMS indexes

Viewers also liked (7)

PDF
Steam Learn: Speedrun et TAS
PDF
Steam Learn: Zen SQL
PDF
Steam Learn: REST Good practices
PDF
Steam Learn: How to write good tests
PDF
Steam Learn: Email deliverability
PDF
Steam Learn: An introduction to Redis
PDF
Steam Learn: Javascript and OOP
Steam Learn: Speedrun et TAS
Steam Learn: Zen SQL
Steam Learn: REST Good practices
Steam Learn: How to write good tests
Steam Learn: Email deliverability
Steam Learn: An introduction to Redis
Steam Learn: Javascript and OOP
Ad

Similar to Steam Learn: Introduction to SWIFT (20)

PPT
Developing iOS apps with Swift
PDF
The Swift Programming Language - Xcode6 for iOS App Development - AgileInfowa...
PDF
The swift programming language
PDF
Swift Tutorial Part 1. The Complete Guide For Swift Programming Language
PDF
Swift Programming Language
PDF
NSCoder Swift - An Introduction to Swift
PPTX
Developer’s viewpoint on swift programming language
PDF
Intro toswift1
PPT
Javascript
PDF
Workshop Swift
PDF
Ios 12 App Development Essentials Learn To Develop Ios 12 Apps With Xcode 10 ...
PDF
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02)
PPTX
Introduction to Swift (tutorial)
PDF
Welcome to Swift (CocoaCoder 6/12/14)
PDF
Javascript - Tutorial
PDF
Think sharp, write swift
PDF
NUS iOS Swift Talk
PDF
To swiftly go where no OS has gone before
PDF
Workhop iOS 1: Fundamentos de Swift
PDF
Developing Swift - Moving towards the future
Developing iOS apps with Swift
The Swift Programming Language - Xcode6 for iOS App Development - AgileInfowa...
The swift programming language
Swift Tutorial Part 1. The Complete Guide For Swift Programming Language
Swift Programming Language
NSCoder Swift - An Introduction to Swift
Developer’s viewpoint on swift programming language
Intro toswift1
Javascript
Workshop Swift
Ios 12 App Development Essentials Learn To Develop Ios 12 Apps With Xcode 10 ...
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02)
Introduction to Swift (tutorial)
Welcome to Swift (CocoaCoder 6/12/14)
Javascript - Tutorial
Think sharp, write swift
NUS iOS Swift Talk
To swiftly go where no OS has gone before
Workhop iOS 1: Fundamentos de Swift
Developing Swift - Moving towards the future
Ad

More from inovia (18)

PDF
10 tips for Redux at scale
PDF
10 essentials steps for kafka streaming services
PDF
Redux at scale
PDF
DocuSign's Road to react
PPTX
API Gateway: Nginx way
PPTX
Kafka: meetup microservice
PPTX
Microservice: starting point
PPTX
Correlation id (tid)
PPTX
Meetic back end redesign - Meetup microservices
PPTX
Security in microservices architectures
PPTX
Building a Secure, Performant Network Fabric for Microservice Applications
PPTX
Microservices vs SOA
PPTX
CQRS, an introduction by JC Bohin
PPTX
Domain Driven Design
PPTX
Oauth2, open-id connect with microservices
PPTX
You probably don't need microservices
PPTX
Api Gateway - What's the use of an api gateway?
PDF
Steam Learn: Asynchronous Javascript
10 tips for Redux at scale
10 essentials steps for kafka streaming services
Redux at scale
DocuSign's Road to react
API Gateway: Nginx way
Kafka: meetup microservice
Microservice: starting point
Correlation id (tid)
Meetic back end redesign - Meetup microservices
Security in microservices architectures
Building a Secure, Performant Network Fabric for Microservice Applications
Microservices vs SOA
CQRS, an introduction by JC Bohin
Domain Driven Design
Oauth2, open-id connect with microservices
You probably don't need microservices
Api Gateway - What's the use of an api gateway?
Steam Learn: Asynchronous Javascript

Recently uploaded (20)

PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PPTX
Patient Appointment Booking in Odoo with online payment
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PPTX
assetexplorer- product-overview - presentation
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
Nekopoi APK 2025 free lastest update
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Salesforce Agentforce AI Implementation.pdf
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
AutoCAD Professional Crack 2025 With License Key
Advanced SystemCare Ultimate Crack + Portable (2025)
Patient Appointment Booking in Odoo with online payment
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Computer Software and OS of computer science of grade 11.pptx
Operating system designcfffgfgggggggvggggggggg
Monitoring Stack: Grafana, Loki & Promtail
assetexplorer- product-overview - presentation
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Download FL Studio Crack Latest version 2025 ?
Nekopoi APK 2025 free lastest update
Weekly report ppt - harsh dattuprasad patel.pptx
Odoo Companies in India – Driving Business Transformation.pdf
Digital Systems & Binary Numbers (comprehensive )
Salesforce Agentforce AI Implementation.pdf
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
AutoCAD Professional Crack 2025 With License Key

Steam Learn: Introduction to SWIFT

  • 1. 3rd of July 2014 SWIFT The Apple programming language by Romain Francez
  • 2. 3rd of July 2014 What is SWIFT ? ● Apple programming language ● Released during WWDC ● Mac & iOS development
  • 3. 3rd of July 2014 Anyone can code Simple An empty file is a program A one line file is a program println("Hello Steamhouse") Basic concepts are similar to other languages Everybody is starting at the same level Beginner
  • 4. 3rd of July 2014 Anyone can code Less error prone var aText = "A string" // Type inference aText = 1.2 // Cannot convert the expression’s type to String var numberOverflow: UInt8 = UInt8.max + 1 // Arithmetic operation '255 + 1' (on type 'UInt8') results in an overflow var tenBillion = 10000000000 var tenBillionReadable = 10_000_000_000
  • 5. 3rd of July 2014 But can they? Tricky concepts Optionals var anOptional: String? Inheritance class DataViewController: UIViewController, UITableViewDataSource, UITableViewDelegate Are there a class and two protocols or three protocols?
  • 6. 3rd of July 2014 But can they? Adoption 1,200,000 apps on the iOS App Store It will take time to migrate Sparse documentation One official document Unfinished language No expert on the subject
  • 7. 3rd of July 2014 Language
  • 8. 3rd of July 2014 Basics Variables and constants let greetings = "Hello" // Constant var person = "World" // Variable person = "Steamhouse" // Can change the value of a variable greetings = "Goodbye" // Error, cannot change the value of a constant
  • 9. 3rd of July 2014 Basics Optionals There is a value… or maybe not var anOptional: String? = nil // nil means no value var notAnOptional: String = nil // Error Accessing the value if anOptional { println(anOptional!) }
  • 10. 3rd of July 2014 Basics Functions and closures func add(a: Int, b: Int) -> Int { return a + b } func adder(a: Int) -> (Int) -> Int { var _a = a func add(b: Int) -> Int { _a += b return _a } return add }
  • 11. 3rd of July 2014 Basics Tuples let (latitude, longitude) = (48.85341, 2.3488) let paris = (48.85341, 2.3488) paris.0; paris.1 let parisExplicit = (latitude: 48.85341, longitude: 2.3488) parisExplicit.latitude; parisExplicit.longitude
  • 12. 3rd of July 2014 Basics For-In for i in 0..10 { i } // 0 1 2 3 4 5 6 7 8 9 for i in 0...10 { i } // 0 1 2 3 4 5 6 7 8 9 10 for _ in 0..10 { println("Wake up") }
  • 13. 3rd of July 2014 Basics Switch let point = (+24, -1_302) switch point { case (0..5, _): println("A bit on the right") case (5..100, _): println("Somewhat on the right") case (100...1_000_000, _): println("On the right") case (let x, _) where x > 1_000_000: println("Very far on the right") default: break } // Somewhat on the right
  • 14. 3rd of July 2014 Demo
  • 15. 3rd of July 2014 What the future holds The APIs are still old style They will migrate them in a near future
  • 16. 3rd of July 2014 Questions ? For online questions, please leave a comment on the article.
  • 17. 3rd of July 2014 Join the community ! (in Paris) Social networks : ● Follow us on Twitter : https://twitter.com/steamlearn ● Like us on Facebook : https://www.facebook.com/steamlearn SteamLearn is an Inovia initiative : inovia.fr You wish to be in the audience ? Contact us at learn@steamhouse.fr