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
83
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
350
MVI : une architecture robuste et moderne pour vos applications mobiles
viteinfinite
2
490
Cross-Platform Modules with Kotlin/Native (v. 2018.10)
viteinfinite
0
67
Face Recognition with Vision & Core ML
viteinfinite
1
910
Shared Cross-Platform Modules with Kotlin/Native
viteinfinite
1
250
Server-Side Swift @ Devoxx FR
viteinfinite
0
79
Server-Side Swift
viteinfinite
0
56
Be the Quality You Want to See in Your App [Swift Edition]
viteinfinite
1
360
Swift : Nouvelles du front
viteinfinite
0
67
Other Decks in Programming
See All in Programming
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
0
380
The Sequel to a Dream of Ruby Parser's Grammar
ydah
1
220
Hermes: Better Performance with Bytecode Translation (React Universe 2024)
tmikov2023
0
100
What is Parser
yui_knk
9
4.2k
[DroidKaigi 2024] Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜 / From Android View to Jetpack Compose: A Guide to Migration
syarihu
1
660
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
200
Kotlin 2.0 and Beyond
antonarhipov
2
150
GoのIteratorに詳しくなってしまう
inatonix
1
210
Scala アプリケーションのビルドを改善してデプロイ時間を 1/4 にした話 | How I improved the build of my Scala application and reduced deployment time by 4x
nomadblacky
1
180
Pythonで改めて考える「クラス(class)」の使いどころ
os1ma
3
870
Scala におけるコンパイラエラーとの付き合い方
chencmd
2
430
o1モデルのプロンプトエンジニアリングって?
ktc_wada
0
280
Featured
See All Featured
Making Projects Easy
brettharned
113
5.8k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
326
21k
Facilitating Awesome Meetings
lara
49
6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
227
52k
Six Lessons from altMBA
skipperchong
26
3.4k
Teambox: Starting and Learning
jrom
131
8.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
354
29k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Mobile First: as difficult as doing things right
swwweet
221
8.8k
KATA
mclloyd
27
13k
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