SlideShare a Scribd company logo
PETR SIMA
Senior iOS Developer, Ackee
Functional reactive
programming
It's functional.
It's reactive.
You want to start using it today.
Functional reactive programming
4
1.5 years of experience with FRP
both iOS and Android
more to come at future mDevTalks
FRP at Ackee
5
for-loops
mutable state
"Push-based"
Imperative programming
6
map, reduce, filter, flatMap
If a pure function is called with the same arguments, the same
result will be returned.
declarative, "Pull-based", eliminates side effects, avoids
changing-state and mutable data
Functional programming
7
= reactive programming (asynchronous dataflow programming)
using the building blocks of functional programming (e.g. map,
reduce, filter)
If a pure function is called with the same arguments, the same
result will be returned.
implicit parameter - time
FRP
8
Demo
9
composable, reusable
unidirectional dataflow
easy to reason about code
More buzzwords
ab
ab
10
composable, reusable
unidirectional dataflow
easy to reason about code
More buzzwords
Input --->
---> Output
11
composable, reusable
unidirectional dataflow
easy to reason about code
More buzzwords
12
composable, reusable
unidirectional dataflow
easy to reason about code
More buzzwords
Input --->
---> Output
13
composable, reusable
unidirectional dataflow
easy to reason about code
More buzzwords
Input --->
---> Output
14
Railway oriented programming
Error handling
15
Reactive code consists of elementary operations.
Don't be "too dry".
DRY principle?
16
Android
RxJava
Where to start?
iOS
RxSwift
Reactive Cocoa
17
18
19
Android
RxJava
Where to start?
iOS
RxSwift
Reactive Cocoa
Window
Rx.N
20
Android
RxJava
Where to start?
iOS
RxSwift
Reactive Cocoa
Windows Phone
Rx.NET (RxExtensions)
21
Architecture of a reactive
application
...
...
ab
ab
22
Architecture of a reactive
application
Massive View
Controller
MVP MVVM
23
Architecture of a reactive
application
MVC
Model View
Presenter
MVVM
24
Architecture of a reactive
application
MVC MVP
Model View
ViewModel
25
Demo
26
RxSwift, RxJava, ...
Observable
Hot and cold signals
Reactive Cocoa
Signal
SignalProducer
27
A hot signal is active regardless of observers. "Signals are streams
that are already in progress, e.g. notifications, user input, etc."
A cold signal starts work when subscribed to. "Cold signals
represent operations or tasks, e.g. network requests."
Cold signals are lazy.
Hot and cold signals
28
Signals are hot.
SignalProducers are cold.
SignalProducer.start() creates a Signal.
Hot and cold signals
29
a mechanism for memory management and cancellation
disposable.dispose() interrupts a signal
usually don't have to be used directly in Reactive Cocoa
Disposables
30
Actions, Schedulers, ...
31
https://github.com/ReactiveCocoa/ReactiveCocoa/tree/master/
Documentation
https://github.com/ReactiveX
http://neilpa.me/rac-marbles/
Documentation
32
WWW.MDEVTALK.CZ
mdevtalk

More Related Content

Viewers also liked

Lista de 5 candidatos ao grupo de inglês 330
Lista de 5 candidatos ao grupo de inglês   330Lista de 5 candidatos ao grupo de inglês   330
Lista de 5 candidatos ao grupo de inglês 330lourde cruz
 
Higiene y seguridad 3 corte
Higiene y seguridad 3 corteHigiene y seguridad 3 corte
Higiene y seguridad 3 corte
angelaerazob
 
Readme
ReadmeReadme
Readme
2051989
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
Daniel Malafaia
 
Otros ej tema 5 sol
Otros ej tema 5 solOtros ej tema 5 sol
Otros ej tema 5 sol
MCONECA Oneca
 
Otros ej 5 y 6 2ª parte
Otros ej  5 y 6 2ª parteOtros ej  5 y 6 2ª parte
Otros ej 5 y 6 2ª parte
MCONECA Oneca
 
Curricula de redes II
Curricula de redes IICurricula de redes II
Curricula de redes II
Raul Lozada
 
Tema 7 - Cuestionario
Tema 7  -  Cuestionario Tema 7  -  Cuestionario
Tema 7 - Cuestionario
MCONECA Oneca
 
Honza Dvorský: Swift Package Manager
Honza Dvorský: Swift Package ManagerHonza Dvorský: Swift Package Manager
Honza Dvorský: Swift Package Manager
mdevtalk
 
Tema 7 ejercicios
Tema 7 ejerciciosTema 7 ejercicios
Tema 7 ejercicios
MCONECA Oneca
 
titulo
titulotitulo
Link list
Link listLink list
Link list
zzzubair
 
Web analytics -kpi e cruscotti
Web analytics -kpi e cruscottiWeb analytics -kpi e cruscotti
Web analytics -kpi e cruscotti
DML Srl
 

Viewers also liked (13)

Lista de 5 candidatos ao grupo de inglês 330
Lista de 5 candidatos ao grupo de inglês   330Lista de 5 candidatos ao grupo de inglês   330
Lista de 5 candidatos ao grupo de inglês 330
 
Higiene y seguridad 3 corte
Higiene y seguridad 3 corteHigiene y seguridad 3 corte
Higiene y seguridad 3 corte
 
Readme
ReadmeReadme
Readme
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Otros ej tema 5 sol
Otros ej tema 5 solOtros ej tema 5 sol
Otros ej tema 5 sol
 
Otros ej 5 y 6 2ª parte
Otros ej  5 y 6 2ª parteOtros ej  5 y 6 2ª parte
Otros ej 5 y 6 2ª parte
 
Curricula de redes II
Curricula de redes IICurricula de redes II
Curricula de redes II
 
Tema 7 - Cuestionario
Tema 7  -  Cuestionario Tema 7  -  Cuestionario
Tema 7 - Cuestionario
 
Honza Dvorský: Swift Package Manager
Honza Dvorský: Swift Package ManagerHonza Dvorský: Swift Package Manager
Honza Dvorský: Swift Package Manager
 
Tema 7 ejercicios
Tema 7 ejerciciosTema 7 ejercicios
Tema 7 ejercicios
 
titulo
titulotitulo
titulo
 
Link list
Link listLink list
Link list
 
Web analytics -kpi e cruscotti
Web analytics -kpi e cruscottiWeb analytics -kpi e cruscotti
Web analytics -kpi e cruscotti
 

Similar to Petr Šíma: Principy funkcionálně reaktivního programovaní na mobilních platformách

JavaScript for ABAP Programmers - 7/7 Functional Programming
JavaScript for ABAP Programmers - 7/7 Functional ProgrammingJavaScript for ABAP Programmers - 7/7 Functional Programming
JavaScript for ABAP Programmers - 7/7 Functional Programming
Chris Whealy
 
Introduction to functional programming
Introduction to functional programmingIntroduction to functional programming
Introduction to functional programming
Konrad Szydlo
 
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
Get your mobile app in production in 3 months: Native and Reactive Mobile AppsGet your mobile app in production in 3 months: Native and Reactive Mobile Apps
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
Ackee
 
CC-4007, Large-Scale Machine Learning on Graphs, by Yucheng Low, Joseph Gonza...
CC-4007, Large-Scale Machine Learning on Graphs, by Yucheng Low, Joseph Gonza...CC-4007, Large-Scale Machine Learning on Graphs, by Yucheng Low, Joseph Gonza...
CC-4007, Large-Scale Machine Learning on Graphs, by Yucheng Low, Joseph Gonza...
AMD Developer Central
 
How Functional Programming Made Me a Better Developer
How Functional Programming Made Me a Better DeveloperHow Functional Programming Made Me a Better Developer
How Functional Programming Made Me a Better Developer
Cameron Presley
 
How to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeterHow to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeter
InfluxData
 
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
J On The Beach
 
Beyond the GFLOPS
Beyond the GFLOPSBeyond the GFLOPS
Beyond the GFLOPS
Slide_N
 
Why functional programming in C# & F#
Why functional programming in C# & F#Why functional programming in C# & F#
Why functional programming in C# & F#
Riccardo Terrell
 
Android Starter Kit
Android Starter KitAndroid Starter Kit
Android Starter Kit
Fajar Ulin Nuha
 
Piyush Mathur
Piyush MathurPiyush Mathur
Piyush Mathur
piyush mathur
 
Incredible Machine with Pipelines and Generators
Incredible Machine with Pipelines and GeneratorsIncredible Machine with Pipelines and Generators
Incredible Machine with Pipelines and Generators
dantleech
 
Introduction to functional programming
Introduction to functional programmingIntroduction to functional programming
Introduction to functional programming
Thang Mai
 
Dmm212 – Sap Hana Graph Processing
Dmm212 – Sap Hana  Graph ProcessingDmm212 – Sap Hana  Graph Processing
Dmm212 – Sap Hana Graph Processing
Luc Vanrobays
 
Raj_Resume
Raj_ResumeRaj_Resume
Raj_Resume
Raj Rajani
 
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk
 
Aspect Based Sentiment Analysis
Aspect Based Sentiment AnalysisAspect Based Sentiment Analysis
Aspect Based Sentiment Analysis
Gaurav kumar
 
ReactiveCocoa - Functional Reactive Programming concepts in iOS
ReactiveCocoa - Functional Reactive Programming concepts in iOSReactiveCocoa - Functional Reactive Programming concepts in iOS
ReactiveCocoa - Functional Reactive Programming concepts in iOS
Andrei Popa
 
Domain Modeling & Full-Stack Web Development F#
Domain Modeling & Full-Stack Web Development F#Domain Modeling & Full-Stack Web Development F#
Domain Modeling & Full-Stack Web Development F#
Kevin Avignon
 
Raushan_oracle_apps_dba_5.2_Years
Raushan_oracle_apps_dba_5.2_YearsRaushan_oracle_apps_dba_5.2_Years
Raushan_oracle_apps_dba_5.2_Years
Raushan Kumar
 

Similar to Petr Šíma: Principy funkcionálně reaktivního programovaní na mobilních platformách (20)

JavaScript for ABAP Programmers - 7/7 Functional Programming
JavaScript for ABAP Programmers - 7/7 Functional ProgrammingJavaScript for ABAP Programmers - 7/7 Functional Programming
JavaScript for ABAP Programmers - 7/7 Functional Programming
 
Introduction to functional programming
Introduction to functional programmingIntroduction to functional programming
Introduction to functional programming
 
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
Get your mobile app in production in 3 months: Native and Reactive Mobile AppsGet your mobile app in production in 3 months: Native and Reactive Mobile Apps
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
 
CC-4007, Large-Scale Machine Learning on Graphs, by Yucheng Low, Joseph Gonza...
CC-4007, Large-Scale Machine Learning on Graphs, by Yucheng Low, Joseph Gonza...CC-4007, Large-Scale Machine Learning on Graphs, by Yucheng Low, Joseph Gonza...
CC-4007, Large-Scale Machine Learning on Graphs, by Yucheng Low, Joseph Gonza...
 
How Functional Programming Made Me a Better Developer
How Functional Programming Made Me a Better DeveloperHow Functional Programming Made Me a Better Developer
How Functional Programming Made Me a Better Developer
 
How to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeterHow to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeter
 
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
 
Beyond the GFLOPS
Beyond the GFLOPSBeyond the GFLOPS
Beyond the GFLOPS
 
Why functional programming in C# & F#
Why functional programming in C# & F#Why functional programming in C# & F#
Why functional programming in C# & F#
 
Android Starter Kit
Android Starter KitAndroid Starter Kit
Android Starter Kit
 
Piyush Mathur
Piyush MathurPiyush Mathur
Piyush Mathur
 
Incredible Machine with Pipelines and Generators
Incredible Machine with Pipelines and GeneratorsIncredible Machine with Pipelines and Generators
Incredible Machine with Pipelines and Generators
 
Introduction to functional programming
Introduction to functional programmingIntroduction to functional programming
Introduction to functional programming
 
Dmm212 – Sap Hana Graph Processing
Dmm212 – Sap Hana  Graph ProcessingDmm212 – Sap Hana  Graph Processing
Dmm212 – Sap Hana Graph Processing
 
Raj_Resume
Raj_ResumeRaj_Resume
Raj_Resume
 
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
 
Aspect Based Sentiment Analysis
Aspect Based Sentiment AnalysisAspect Based Sentiment Analysis
Aspect Based Sentiment Analysis
 
ReactiveCocoa - Functional Reactive Programming concepts in iOS
ReactiveCocoa - Functional Reactive Programming concepts in iOSReactiveCocoa - Functional Reactive Programming concepts in iOS
ReactiveCocoa - Functional Reactive Programming concepts in iOS
 
Domain Modeling & Full-Stack Web Development F#
Domain Modeling & Full-Stack Web Development F#Domain Modeling & Full-Stack Web Development F#
Domain Modeling & Full-Stack Web Development F#
 
Raushan_oracle_apps_dba_5.2_Years
Raushan_oracle_apps_dba_5.2_YearsRaushan_oracle_apps_dba_5.2_Years
Raushan_oracle_apps_dba_5.2_Years
 

More from mdevtalk

Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve SwiftuJan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
mdevtalk
 
Jarda Machaň: Proč je dobré míti Developer Evangelistu
Jarda Machaň: Proč je dobré míti Developer EvangelistuJarda Machaň: Proč je dobré míti Developer Evangelistu
Jarda Machaň: Proč je dobré míti Developer Evangelistu
mdevtalk
 
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOSPavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
mdevtalk
 
Anastasiia Vixentael: 10 things you need to know before implementing cryptogr...
Anastasiia Vixentael: 10 things you need to know before implementing cryptogr...Anastasiia Vixentael: 10 things you need to know before implementing cryptogr...
Anastasiia Vixentael: 10 things you need to know before implementing cryptogr...
mdevtalk
 
Michal Havryluk: How To Speed Up Android Gradle Builds
Michal Havryluk: How To Speed Up Android Gradle BuildsMichal Havryluk: How To Speed Up Android Gradle Builds
Michal Havryluk: How To Speed Up Android Gradle Builds
mdevtalk
 
Vladislav Iliushin: Dark side of IoT
Vladislav Iliushin: Dark side of IoTVladislav Iliushin: Dark side of IoT
Vladislav Iliushin: Dark side of IoT
mdevtalk
 
Georgiy Shur: Bring onboarding to life
Georgiy Shur: Bring onboarding to lifeGeorgiy Shur: Bring onboarding to life
Georgiy Shur: Bring onboarding to life
mdevtalk
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?
mdevtalk
 
Maxim Zaks: Deep dive into data serialisation
Maxim Zaks: Deep dive into data serialisationMaxim Zaks: Deep dive into data serialisation
Maxim Zaks: Deep dive into data serialisation
mdevtalk
 
Nikita Tuk: Handling background processes in iOS: problems & solutions
Nikita Tuk: Handling background processes in iOS: problems & solutionsNikita Tuk: Handling background processes in iOS: problems & solutions
Nikita Tuk: Handling background processes in iOS: problems & solutions
mdevtalk
 
Milan Oulehla: Bezpečnost mobilních aplikací na Androidu
Milan Oulehla: Bezpečnost mobilních aplikací na AndroiduMilan Oulehla: Bezpečnost mobilních aplikací na Androidu
Milan Oulehla: Bezpečnost mobilních aplikací na Androidu
mdevtalk
 
Tomáš Kohout: Jak zrychlit iOS vývoj pomocí Swift playgoundů
Tomáš Kohout: Jak zrychlit iOS vývoj pomocí Swift playgoundůTomáš Kohout: Jak zrychlit iOS vývoj pomocí Swift playgoundů
Tomáš Kohout: Jak zrychlit iOS vývoj pomocí Swift playgoundů
mdevtalk
 
David Vávra: Firebase + Kotlin + RX + MVP
David Vávra: Firebase + Kotlin + RX + MVPDavid Vávra: Firebase + Kotlin + RX + MVP
David Vávra: Firebase + Kotlin + RX + MVP
mdevtalk
 
Adam Šimek: Optimalizace skrolování, RecyclerView
Adam Šimek: Optimalizace skrolování, RecyclerViewAdam Šimek: Optimalizace skrolování, RecyclerView
Adam Šimek: Optimalizace skrolování, RecyclerView
mdevtalk
 
Paul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & syncPaul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & sync
mdevtalk
 
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptatDominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
mdevtalk
 
Jiří Dutkevič: Ochrana citlivých dat v iOS
Jiří Dutkevič: Ochrana citlivých dat v iOSJiří Dutkevič: Ochrana citlivých dat v iOS
Jiří Dutkevič: Ochrana citlivých dat v iOS
mdevtalk
 
Petr Dvořák: Push notifikace ve velkém
Petr Dvořák: Push notifikace ve velkémPetr Dvořák: Push notifikace ve velkém
Petr Dvořák: Push notifikace ve velkém
mdevtalk
 
Ondřej David: Zabezpečení Androidu na úrovni hardwaru
Ondřej David: Zabezpečení Androidu na úrovni hardwaruOndřej David: Zabezpečení Androidu na úrovni hardwaru
Ondřej David: Zabezpečení Androidu na úrovni hardwaru
mdevtalk
 
Petr Hamerník: Textová analytika v mobilních aplikacích
Petr Hamerník: Textová analytika v mobilních aplikacíchPetr Hamerník: Textová analytika v mobilních aplikacích
Petr Hamerník: Textová analytika v mobilních aplikacích
mdevtalk
 

More from mdevtalk (20)

Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve SwiftuJan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
 
Jarda Machaň: Proč je dobré míti Developer Evangelistu
Jarda Machaň: Proč je dobré míti Developer EvangelistuJarda Machaň: Proč je dobré míti Developer Evangelistu
Jarda Machaň: Proč je dobré míti Developer Evangelistu
 
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOSPavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
 
Anastasiia Vixentael: 10 things you need to know before implementing cryptogr...
Anastasiia Vixentael: 10 things you need to know before implementing cryptogr...Anastasiia Vixentael: 10 things you need to know before implementing cryptogr...
Anastasiia Vixentael: 10 things you need to know before implementing cryptogr...
 
Michal Havryluk: How To Speed Up Android Gradle Builds
Michal Havryluk: How To Speed Up Android Gradle BuildsMichal Havryluk: How To Speed Up Android Gradle Builds
Michal Havryluk: How To Speed Up Android Gradle Builds
 
Vladislav Iliushin: Dark side of IoT
Vladislav Iliushin: Dark side of IoTVladislav Iliushin: Dark side of IoT
Vladislav Iliushin: Dark side of IoT
 
Georgiy Shur: Bring onboarding to life
Georgiy Shur: Bring onboarding to lifeGeorgiy Shur: Bring onboarding to life
Georgiy Shur: Bring onboarding to life
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?
 
Maxim Zaks: Deep dive into data serialisation
Maxim Zaks: Deep dive into data serialisationMaxim Zaks: Deep dive into data serialisation
Maxim Zaks: Deep dive into data serialisation
 
Nikita Tuk: Handling background processes in iOS: problems & solutions
Nikita Tuk: Handling background processes in iOS: problems & solutionsNikita Tuk: Handling background processes in iOS: problems & solutions
Nikita Tuk: Handling background processes in iOS: problems & solutions
 
Milan Oulehla: Bezpečnost mobilních aplikací na Androidu
Milan Oulehla: Bezpečnost mobilních aplikací na AndroiduMilan Oulehla: Bezpečnost mobilních aplikací na Androidu
Milan Oulehla: Bezpečnost mobilních aplikací na Androidu
 
Tomáš Kohout: Jak zrychlit iOS vývoj pomocí Swift playgoundů
Tomáš Kohout: Jak zrychlit iOS vývoj pomocí Swift playgoundůTomáš Kohout: Jak zrychlit iOS vývoj pomocí Swift playgoundů
Tomáš Kohout: Jak zrychlit iOS vývoj pomocí Swift playgoundů
 
David Vávra: Firebase + Kotlin + RX + MVP
David Vávra: Firebase + Kotlin + RX + MVPDavid Vávra: Firebase + Kotlin + RX + MVP
David Vávra: Firebase + Kotlin + RX + MVP
 
Adam Šimek: Optimalizace skrolování, RecyclerView
Adam Šimek: Optimalizace skrolování, RecyclerViewAdam Šimek: Optimalizace skrolování, RecyclerView
Adam Šimek: Optimalizace skrolování, RecyclerView
 
Paul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & syncPaul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & sync
 
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptatDominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
 
Jiří Dutkevič: Ochrana citlivých dat v iOS
Jiří Dutkevič: Ochrana citlivých dat v iOSJiří Dutkevič: Ochrana citlivých dat v iOS
Jiří Dutkevič: Ochrana citlivých dat v iOS
 
Petr Dvořák: Push notifikace ve velkém
Petr Dvořák: Push notifikace ve velkémPetr Dvořák: Push notifikace ve velkém
Petr Dvořák: Push notifikace ve velkém
 
Ondřej David: Zabezpečení Androidu na úrovni hardwaru
Ondřej David: Zabezpečení Androidu na úrovni hardwaruOndřej David: Zabezpečení Androidu na úrovni hardwaru
Ondřej David: Zabezpečení Androidu na úrovni hardwaru
 
Petr Hamerník: Textová analytika v mobilních aplikacích
Petr Hamerník: Textová analytika v mobilních aplikacíchPetr Hamerník: Textová analytika v mobilních aplikacích
Petr Hamerník: Textová analytika v mobilních aplikacích
 

Petr Šíma: Principy funkcionálně reaktivního programovaní na mobilních platformách