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
86
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
69
Face Recognition with Vision & Core ML
viteinfinite
1
940
Shared Cross-Platform Modules with Kotlin/Native
viteinfinite
1
250
Server-Side Swift @ Devoxx FR
viteinfinite
0
79
Server-Side Swift
viteinfinite
0
57
Be the Quality You Want to See in Your App [Swift Edition]
viteinfinite
1
380
Swift : Nouvelles du front
viteinfinite
0
69
Other Decks in Programming
See All in Programming
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
0
230
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
310
デザインパターンで理解するLLMエージェントの作り方 / How to develop an LLM agent using agentic design patterns
rkaga
9
1.2k
React への依存を最小にするフロントエンド設計
takonda
19
5.1k
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
670
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
360
EMになってからチームの成果を最大化するために取り組んだこと/ Maximize team performance as EM
nashiusagi
0
100
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
3
1.2k
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
1.1k
Contemporary Test Cases
maaretp
0
140
Arm移行タイムアタック
qnighy
0
350
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
260
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Faster Mobile Websites
deanohume
305
30k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
How STYLIGHT went responsive
nonsquared
95
5.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Done Done
chrislema
181
16k
Automating Front-end Workflow
addyosmani
1366
200k
Into the Great Unknown - MozCon
thekraken
32
1.5k
A Modern Web Designer's Workflow
chriscoyier
693
190k
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