XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez Xebia

Publicis Sapient Engineering
Publicis Sapient EngineeringCabinet IT at Publicis Sapient Engineering
1
Salut
2
Simone
Civetta 3
Je suis
un développeur
iOS 4
6ans
5
6
3,5ans
7
8
9
10
11
12
13
Enfin...
14
Plan➀ Les Origines
➁ État de l'art
➂ Pourquoi l'utiliser ?
➃ Swift Server dans la vraie vie
➄ Évolutions
15
1. Les origines
16
17
18
Pourquoi Open Source ?
19
20
21
22
23
2. État de l'art
24
Swift 3
25
1.0 26
1.1 27
1.2 28
2.0 29
2.1 30
2.2 31
2.3 32
Swift 3
33
1 version
tous les
3,42 mois
34
Un langage
complet
35
36
37
38
39
40
Bibliothèques
tierces
41
Bibliothèques
tierces
stables 42
43
44
45
Bibliothèques C
46
Web
Frameworks47
48
49
50
51
52
Swift
Package
Manager
53
SPM
swift package init
swift package fetch
swift package update
swift package generate-xcodeproj
54
Swift Package Catalog
55
56
57
58
Quelques images Docker
☞ swiftdocker/swift/
☞ ibmcom/kitura-ubuntu/
☞ zewo/todobackend/
59
Code
Quality60
61
62
63
64
Metriques de qualité
Pour en savoir plus...
speakerdeck.com/viteinfinite/be-the-quality-you-want-to-see-in-
your-app-swift-edition
65
66
👍 67
Enfin...
68
3. Pourquoi
l'utiliser ?
69
Développement
actif70
71
72
73
74
75
76
Performance
77
Performance
78
Performance
79
Memory
Source: http://benchmarksgame.alioth.debian.org
80
Applications
isomorphes
81
4. Dans la vraie vie
82
Package.swift
import PackageDescription
let package = Package(
name: "xebicon",
dependencies: [
.Package(url: "https://github.com/IBM-Swift/Swift-cfenv.git",
majorVersion: 1, minor: 7),
.Package(url: "https://github.com/IBM-Swift/Kitura.git",
majorVersion: 1, minor: 0),
.Package(url: "https://github.com/feinstruktur/CRabbitMQ",
majorVersion: 1)
])
83
Serveur HTTP
import Kitura
let appEnv = try! CloudFoundryEnv.getAppEnv()
let router = Router()
router.post("/vote/station", handler: { request, response, next in
do {
try processVoteRequest(request)
} catch {
debugPrint(error)
response.send(status: .badRequest)
}
next()
})
Kitura.addHTTPServer(onPort: appEnv.port, with: router)
Kitura.run()
84
Build
$ swift build
Linking CHTTPParser
Compile Swift Module 'Socket' (3 sources)
Compile Swift Module 'HeliumLogger' (1 sources)
Compile Swift Module 'SwiftyJSON' (2 sources)
Compile Swift Module 'SSLService' (1 sources)
Compile Swift Module 'KituraNet' (29 sources)
Compile Swift Module 'CloudFoundryEnv' (7 sources)
Compile Swift Module 'Kitura' (40 sources)
Compile Swift Module 'xebicon' (12 sources)
Linking ./.build/debug/xebicon
85
Bilbliothèques C
func publish(message: String, exchange: String, key: String) throws {
guard let connection = self.connection else {
throw AMQPConnectorError.notConnected
}
amqp_basic_publish(connection,
Constants.defaultChannel,
amqp_cstring_bytes(exchange),
amqp_cstring_bytes(key),
0, 0, nil,
amqp_cstring_bytes(message))
}
86
Déploiement avec CloudFoundry
cf push XebiconVote
87
88
Tests
func testPostVote() {
let router = HTTPController().router
performServerTest(router) { expectation in
self.performRequest("post", path: "vote/station", requestModifier: { request in
request.write(from:
"{" +
""trainId": 1," +
""media": "MOBILE"," +
""userId": "23de45f"" +
"}")
}) { response in
XCTAssertEqual(response!.statusCode, HTTPStatusCode.OK)
expectation.fulfill()
}
}
}
89
Tout s'est bien passé™
90
Enfin...
91
92
93
ARC94
95
Cross platform
#if os(Linux)
import Glibc
#else
import Darwin
#endif
96
Swift Package Manager Mess
swift package generate-xcodeproj
97
Swift Build
98
Tester c'est linker
Undefined symbols for architecture x86_64:
"test2.test2.init () -> test2.test2", referenced from:
test2Tests.test2Tests.(testExample () -> ()).
(implicit closure #1) in test2Tests.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1
99
5. Évolutions
100
Encore plus de
Frameworks
101
Encore plus de
APIs Swift
102
103
104
Peut-on
le déployer
en prod ?
105
Oui !106
Enfin...
107
Merci !
108
Simone
Civetta 109
Je suis
un développeur
iOS 110
Je suis
un développeur
Back 111
Enfin...
112
113
1 of 113

Recommended

Don’t block the event loop! by
Don’t block the event loop!Don’t block the event loop!
Don’t block the event loop!hujinpu
1.8K views35 slides
Rails Hardware (no conclusions!) by
Rails Hardware (no conclusions!)Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)yarry
257 views30 slides
Docker deploy by
Docker deployDocker deploy
Docker deployEric Ahn
398 views9 slides
Node day 2014 by
Node day 2014Node day 2014
Node day 2014Trevor Norris
291 views16 slides
C10k and beyond - Uri Shamay, Akamai by
C10k and beyond - Uri Shamay, AkamaiC10k and beyond - Uri Shamay, Akamai
C10k and beyond - Uri Shamay, AkamaiCodemotion Tel Aviv
1.7K views27 slides
Facts about multithreading that'll keep you up at night - Guy Bar on, Vonage by
Facts about multithreading that'll keep you up at night - Guy Bar on, VonageFacts about multithreading that'll keep you up at night - Guy Bar on, Vonage
Facts about multithreading that'll keep you up at night - Guy Bar on, VonageCodemotion Tel Aviv
226 views50 slides

More Related Content

What's hot

Event loop by
Event loopEvent loop
Event loopcodepitbull
2K views32 slides
Memory Management of C# with Unity Native Collections by
Memory Management of C# with Unity Native CollectionsMemory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsYoshifumi Kawai
64.6K views36 slides
Coroutines in Kotlin. UA Mobile 2017. by
Coroutines in Kotlin. UA Mobile 2017.Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.UA Mobile
145 views70 slides
Gameboy emulator in rust and web assembly by
Gameboy emulator in rust and web assemblyGameboy emulator in rust and web assembly
Gameboy emulator in rust and web assemblyYodalee
410 views34 slides
Coroutines in Kotlin by
Coroutines in KotlinCoroutines in Kotlin
Coroutines in KotlinDmytro Zaitsev
245 views36 slides
Rcpp11 by
Rcpp11Rcpp11
Rcpp11Romain Francois
1.5K views31 slides

What's hot(20)

Memory Management of C# with Unity Native Collections by Yoshifumi Kawai
Memory Management of C# with Unity Native CollectionsMemory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
Yoshifumi Kawai64.6K views
Coroutines in Kotlin. UA Mobile 2017. by UA Mobile
Coroutines in Kotlin. UA Mobile 2017.Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.
UA Mobile145 views
Gameboy emulator in rust and web assembly by Yodalee
Gameboy emulator in rust and web assemblyGameboy emulator in rust and web assembly
Gameboy emulator in rust and web assembly
Yodalee410 views
Docker at Digital Ocean by Cloud 66
Docker at Digital OceanDocker at Digital Ocean
Docker at Digital Ocean
Cloud 66386 views
Ravada VDI Eslibre by frankiejol
Ravada VDI EslibreRavada VDI Eslibre
Ravada VDI Eslibre
frankiejol260 views
A little systemtap by yang bingwu
A little systemtapA little systemtap
A little systemtap
yang bingwu310 views
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL; by Tzung-Bi Shih
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Tzung-Bi Shih2K views
Building a DSL with GraalVM (VoxxedDays Luxembourg) by Maarten Mulders
Building a DSL with GraalVM (VoxxedDays Luxembourg)Building a DSL with GraalVM (VoxxedDays Luxembourg)
Building a DSL with GraalVM (VoxxedDays Luxembourg)
Maarten Mulders239 views
Deep Dive async/await in Unity with UniTask(EN) by Yoshifumi Kawai
Deep Dive async/await in Unity with UniTask(EN)Deep Dive async/await in Unity with UniTask(EN)
Deep Dive async/await in Unity with UniTask(EN)
Yoshifumi Kawai36.4K views
DevoxxPL: JRebel Under The Covers by Simon Maple
DevoxxPL: JRebel Under The CoversDevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The Covers
Simon Maple1.2K views
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf... by Cyber Security Alliance
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
Linux seccomp(2) vs OpenBSD pledge(2) by Giovanni Bechis
Linux seccomp(2) vs OpenBSD pledge(2)Linux seccomp(2) vs OpenBSD pledge(2)
Linux seccomp(2) vs OpenBSD pledge(2)
Giovanni Bechis3.5K views
commit => #GitHub => #CircleCI => #Docker => #Kubernetes #AWS cluster by Jakub Kulhan
commit => #GitHub => #CircleCI => #Docker => #Kubernetes #AWS clustercommit => #GitHub => #CircleCI => #Docker => #Kubernetes #AWS cluster
commit => #GitHub => #CircleCI => #Docker => #Kubernetes #AWS cluster
Jakub Kulhan1K views

Viewers also liked

XebiCon'16 : La programmation concurrente en Go. Par Jérome Doucet et Diana O... by
XebiCon'16 : La programmation concurrente en Go. Par Jérome Doucet et Diana O...XebiCon'16 : La programmation concurrente en Go. Par Jérome Doucet et Diana O...
XebiCon'16 : La programmation concurrente en Go. Par Jérome Doucet et Diana O...Publicis Sapient Engineering
568 views26 slides
A little respect for MVC part 1 par Gegoire Lhotellier by
A little respect for MVC part 1 par Gegoire LhotellierA little respect for MVC part 1 par Gegoire Lhotellier
A little respect for MVC part 1 par Gegoire LhotellierCocoaHeads France
4.3K views69 slides
Gatekeeper par Guillaume Faure by
Gatekeeper par Guillaume FaureGatekeeper par Guillaume Faure
Gatekeeper par Guillaume FaureCocoaHeads France
4.3K views52 slides
Comment je ne rate plus mon train by
Comment je ne rate plus mon trainComment je ne rate plus mon train
Comment je ne rate plus mon trainCocoaHeads France
4.1K views19 slides
Fastlane snapshot presentation by
Fastlane snapshot presentationFastlane snapshot presentation
Fastlane snapshot presentationCocoaHeads France
4K views26 slides
L'intégration continue chez Pages Jaunes - Build Bot Mobile by
L'intégration continue chez Pages Jaunes - Build Bot MobileL'intégration continue chez Pages Jaunes - Build Bot Mobile
L'intégration continue chez Pages Jaunes - Build Bot MobileCocoaHeads France
7.3K views46 slides

Viewers also liked(20)

A little respect for MVC part 1 par Gegoire Lhotellier by CocoaHeads France
A little respect for MVC part 1 par Gegoire LhotellierA little respect for MVC part 1 par Gegoire Lhotellier
A little respect for MVC part 1 par Gegoire Lhotellier
CocoaHeads France4.3K views
L'intégration continue chez Pages Jaunes - Build Bot Mobile by CocoaHeads France
L'intégration continue chez Pages Jaunes - Build Bot MobileL'intégration continue chez Pages Jaunes - Build Bot Mobile
L'intégration continue chez Pages Jaunes - Build Bot Mobile
CocoaHeads France7.3K views
Comment faire de HLS votre solution vidéo préférée ? by CocoaHeads France
Comment faire de HLS votre solution vidéo préférée ?Comment faire de HLS votre solution vidéo préférée ?
Comment faire de HLS votre solution vidéo préférée ?
CocoaHeads France3.5K views
Safari app extensions cleared up by Sanaa Squalli by CocoaHeads France
Safari app extensions cleared up by Sanaa SqualliSafari app extensions cleared up by Sanaa Squalli
Safari app extensions cleared up by Sanaa Squalli
Un retour d'expérience sur Apple Pay by CocoaHeads France
Un retour d'expérience sur Apple PayUn retour d'expérience sur Apple Pay
Un retour d'expérience sur Apple Pay
CocoaHeads France3.5K views
Découvrir dtrace en ligne de commande. by CocoaHeads France
Découvrir dtrace en ligne de commande.Découvrir dtrace en ligne de commande.
Découvrir dtrace en ligne de commande.
CocoaHeads France3.4K views
J'ai fait une app native en React Native by CocoaHeads France
J'ai fait une app native en React NativeJ'ai fait une app native en React Native
J'ai fait une app native en React Native
CocoaHeads France5.5K views

Similar to XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez Xebia

Devoxx 17 - Swift server-side by
Devoxx 17 - Swift server-sideDevoxx 17 - Swift server-side
Devoxx 17 - Swift server-sidePublicis Sapient Engineering
848 views125 slides
Swift Install Workshop - OpenStack Conference Spring 2012 by
Swift Install Workshop - OpenStack Conference Spring 2012Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Joe Arnold
4.2K views44 slides
How to Connect SystemVerilog with Octave by
How to Connect SystemVerilog with OctaveHow to Connect SystemVerilog with Octave
How to Connect SystemVerilog with OctaveAmiq Consulting
2.5K views58 slides
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly by
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the UglyKotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the UglyHaim Yadid
124 views66 slides
200 Open Source Projects Later: Source Code Static Analysis Experience by
200 Open Source Projects Later: Source Code Static Analysis Experience200 Open Source Projects Later: Source Code Static Analysis Experience
200 Open Source Projects Later: Source Code Static Analysis ExperienceAndrey Karpov
10.4K views38 slides
Ruby Under The Hood by
Ruby Under The HoodRuby Under The Hood
Ruby Under The Hoodcraig lehmann
610 views51 slides

Similar to XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez Xebia(20)

Swift Install Workshop - OpenStack Conference Spring 2012 by Joe Arnold
Swift Install Workshop - OpenStack Conference Spring 2012Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012
Joe Arnold4.2K views
How to Connect SystemVerilog with Octave by Amiq Consulting
How to Connect SystemVerilog with OctaveHow to Connect SystemVerilog with Octave
How to Connect SystemVerilog with Octave
Amiq Consulting2.5K views
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly by Haim Yadid
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the UglyKotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Haim Yadid124 views
200 Open Source Projects Later: Source Code Static Analysis Experience by Andrey Karpov
200 Open Source Projects Later: Source Code Static Analysis Experience200 Open Source Projects Later: Source Code Static Analysis Experience
200 Open Source Projects Later: Source Code Static Analysis Experience
Andrey Karpov10.4K views
Using Smalltalk for controlling robotics systems by Serge Stinckwich
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
Serge Stinckwich2.3K views
Moving from Jenkins 1 to 2 declarative pipeline adventures by Frits Van Der Holst
Moving from Jenkins 1 to 2 declarative pipeline adventuresMoving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventures
Frits Van Der Holst1.3K views
May2010 hex-core-opt by Jeff Larkin
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-opt
Jeff Larkin459 views
LibOS as a regression test framework for Linux networking #netdev1.1 by Hajime Tazaki
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
Hajime Tazaki1.6K views
introduction to node.js by orkaplan
introduction to node.jsintroduction to node.js
introduction to node.js
orkaplan3.7K views
Library Operating System for Linux #netdev01 by Hajime Tazaki
Library Operating System for Linux #netdev01Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01
Hajime Tazaki45.3K views
JVM Mechanics: When Does the JVM JIT & Deoptimize? by Doug Hawkins
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
Doug Hawkins12.7K views
Network Automation Tools by Edwin Beekman
Network Automation ToolsNetwork Automation Tools
Network Automation Tools
Edwin Beekman547 views
Direct Code Execution - LinuxCon Japan 2014 by Hajime Tazaki
Direct Code Execution - LinuxCon Japan 2014Direct Code Execution - LinuxCon Japan 2014
Direct Code Execution - LinuxCon Japan 2014
Hajime Tazaki1.3K views
Continuous Integration With Jenkins Docker SQL Server by Chris Adkin
Continuous Integration With Jenkins Docker SQL ServerContinuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL Server
Chris Adkin925 views

More from Publicis Sapient Engineering

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain by
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainPublicis Sapient Engineering
1.7K views51 slides
Xebicon'18 - IoT: From Edge to Cloud by
Xebicon'18 - IoT: From Edge to CloudXebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to CloudPublicis Sapient Engineering
627 views46 slides
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur by
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurPublicis Sapient Engineering
496 views41 slides
XebiCon'18 - Modern Infrastructure by
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructurePublicis Sapient Engineering
541 views90 slides
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin... by
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...Publicis Sapient Engineering
580 views61 slides
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin by
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin Publicis Sapient Engineering
457 views23 slides

More from Publicis Sapient Engineering(20)

XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe... by Publicis Sapient Engineering
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr... by Publicis Sapient Engineering
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...

Recently uploaded

SAP Automation Using Bar Code and FIORI.pdf by
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdfVirendra Rai, PMP
25 views38 slides
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
317 views86 slides
PRODUCT PRESENTATION.pptx by
PRODUCT PRESENTATION.pptxPRODUCT PRESENTATION.pptx
PRODUCT PRESENTATION.pptxangelicacueva6
18 views1 slide
STPI OctaNE CoE Brochure.pdf by
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdfmadhurjyapb
14 views1 slide
Democratising digital commerce in India-Report by
Democratising digital commerce in India-ReportDemocratising digital commerce in India-Report
Democratising digital commerce in India-ReportKapil Khandelwal (KK)
20 views161 slides
Mini-Track: Challenges to Network Automation Adoption by
Mini-Track: Challenges to Network Automation AdoptionMini-Track: Challenges to Network Automation Adoption
Mini-Track: Challenges to Network Automation AdoptionNetwork Automation Forum
17 views27 slides

Recently uploaded(20)

SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software317 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab23 views
Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec15 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker48 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
The Forbidden VPN Secrets.pdf by Mariam Shaba
The Forbidden VPN Secrets.pdfThe Forbidden VPN Secrets.pdf
The Forbidden VPN Secrets.pdf
Mariam Shaba20 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman38 views

XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez Xebia