Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Swift on the Raspberry PI
Search
Simone Civetta
February 09, 2017
Programming
0
78
Swift on the Raspberry PI
Simone Civetta
February 09, 2017
Tweet
Share
More Decks by Simone Civetta
See All by Simone Civetta
2021: CI for Mobile: State of The Art
viteinfinite
0
340
MVI : une architecture robuste et moderne pour vos applications mobiles
viteinfinite
2
480
Cross-Platform Modules with Kotlin/Native (v. 2018.10)
viteinfinite
0
67
Face Recognition with Vision & Core ML
viteinfinite
1
850
Shared Cross-Platform Modules with Kotlin/Native
viteinfinite
1
240
Server-Side Swift @ Devoxx FR
viteinfinite
0
71
Server-Side Swift
viteinfinite
0
54
Be the Quality You Want to See in Your App [Swift Edition]
viteinfinite
1
320
Swift : Nouvelles du front
viteinfinite
0
60
Other Decks in Programming
See All in Programming
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
110
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
2
400
禅の心を手に入れよ
eltociear
1
430
SIMD Parallel Programming with the Vector API
josepaumard
0
240
Docker_OSS_ホスティング入門
satokoki645
0
110
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
3
360
Micro Frontends for Java Microservices - Utah JUG 2024
mraible
PRO
1
110
Sheets API使ってみた
toshi0383
2
170
Snowflakeで眠ったデータを起こそう!
estie
0
160
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
170
Goのエラースタックトレースの歴史と今後
sonatard
10
2k
Ruby Function Composition
bkuhlmann
1
340
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
Designing Experiences People Love
moore
136
23k
Typedesign – Prime Four
hannesfritz
36
2.1k
KATA
mclloyd
16
12k
Faster Mobile Websites
deanohume
300
30k
Adopting Sorbet at Scale
ufuk
69
8.6k
Why Our Code Smells
bkeepers
PRO
331
56k
Designing with Data
zakiwarfel
96
4.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Transcript
Swift on the Raspberry PI
None
TOC 1. Why 2. Building 3. GPIO 4. Tools
Why?
Just another language
Just another good language
Advantages 4 Expressive 4 Fast 4 Memory-efficient 4 C-compatible
Downsides 4 Not a real platform (such as Android Things)
4 Not many drivers 4 ARM Linux not officially supported by Apple (yet)
Building
Requirements 4 Raspberry PI 3 4 Micro-SD Card (8 or
16 GB) 4 Ubuntu Core (+ Ubuntu SSO Account) or Raspbian 4 External Screen (just for first booting) 4 HDMI Cable !
1. Ubuntu Core 1. Create an Ubuntu SSO Account 2.
Read https://developer.ubuntu.com/core/get- started/raspberry-pi-2-3 3. Install on the micro-SD card 4. ssh <USERNAME>@<RASPBERRY-IP>
2. The "Classic" mode 1. sudo snap install classic --edge
--devmode 2. sudo classic
3. Building Swift 6 Hours From sources
3. (not) Building Swift (The I've-just-got-30-minutes way) $ http://swift-arm.ddns.net/job/Swift-3.0-Pi3-ARM-Incremental/ lastSuccessfulBuild/artifact/
swift-3.0-2016-12-21-RPi23-ubuntu16.04.tar.gz or $ wget https://www.dropbox.com/s/cah35gf5ap22d11/swift-3.0.2-RPi23-1604.tgz Courtesy of @uraimo
4. Dependencies $ sudo apt-get install -y libpython2.7 libxml2 libicu-dev
clang-3.6 libcurl3 $ sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.6 100 $ sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.6 100
5. All set! $ swift --version > Swift version 3.0.1-dev
(LLVM a922364e5b, Clang 968470f170, Swift 0cca6668a2)
Resources 4 http://viteinfinite.com/2017/02/swift-on-the- raspberry-pi-part-1/ 4 http://dev.iachieved.it/iachievedit/building- swift-3-0-on-an-armv7-system/ 4 https://www.uraimo.com/2016/12/30/Swift-3-0-2- for-raspberrypi-zero-1-2-3/
GPIO
4 https://github.com/uraimo/SwiftyGPIO
let package = Package( name: "MyProject", dependencies: [ .Package(url: "https://github.com/uraimo/SwiftyGPIO.git",
majorVersion: 0), ] )
None
A basic example import SwiftyGPIO func run() { let gpios
= SwiftyGPIO.GPIOs(for:.RaspberryPi2) guard let gpio2 = gpios[.P2], let gpio3 = gpios[.P3] else { return } gpio2.direction = .IN gpio3.direction = .OUT gpio2.onChange{ gpio in gpio3.value = gpio.value } _ = readLine() } run()
None
None
Tools
None
SourceKitten
SwiftKitten + rsub
SwiftKitten + rsub ssh -R 52698:localhost:52698 <user@remoteHost> $ rsub file.swift
Resources 4 https://github.com/johncsnyder/SwiftKitten 4 https://github.com/Drarok/rsub
That's (almost) all!
None
None