SlideShare a Scribd company logo
1 of 56
Download to read offline
Programação
Reativa e Funcional e
extensões para PHP
#darkmiraTour
@jchahoud

Maio 2017
ReactiveX ou Rx
X
X
Juliana Chahoud
@jchahoud
Mobile Developer
Scala
Scala RxSwift RxJAVA
Rx e funcional são uma arquitetura?
Um pattern?
Não.. são outros paradigmas de
programação
1. Concorrência de maneira fácil !

2. Fácil de testar

3. Fácil de ler e entender os resultados 

4. Evitar problemas confusos e erros no código

5. Código conciso (Menos é mais)
Mas porque raios me importar?
Mas melhor
do que acreditar
em mim…
66%
34%
Netflix Resto
34% de todo
tráfego de internet
na América do
Norte
Uma historinha de como o Netflix, Microsoft e outros
resolveram
GRANDES problemas de "assincronia"
… pensando diferente sobre EVENTOS
Tudo no Netflix é
assíncrono
• Startup
• Players
• Acesso a dados
• Animações
• etc…
Um inferno
chamado Async!!
• Memory leaks
• Condições de corrida
• Callbacks "aninhados
• Máquinas de estados
complexas
• etc…
Imperativo X Reativo
Pensando de maneira "Reativa"
Então o que é programação reativa?
programar com fluxos(streams) de
dados assíncronos
fluxo (streams) de dados assíncronos
sequência de eventos que ocorrem
em um período de tempo
X
Indica um evento,
com algum valor
Indica um erro
Indica fim do
stream
Três coisas podem ser emitidas
X
Subscribe !
X
function ($x) {
//do something
}
function (Exception $e) {
….},
function () {
//completou
}
X
Observers
Observable
(algo observável)
function ($x) {…}
function () {…}
Observer
Stream
Observer Design Pattern
Observable
programação funcional
RxPHP, RxNet, RxJava, RxJS, RxSwift, etc
1 2 3 4
Ex: Stream (Observável)
a partir de um array
$stream = RxObservable ::fromArray([1, 2, 3, 4]);
1 2 3 4
“Subscribing" representado por…
$stream->subscribe
$stream = RxObservable::fromArray([1, 2, 3, 4]);
$stream->subscribe(
function ($x) {
echo 'Next: ', $x, PHP_EOL;
},
function (Exception $ex) {
echo 'Error: ', $ex->getMessage(), PHP_EOL;
},
function () {
echo 'Completed', PHP_EOL;
}
);
• Criar streams
• Transformar
• Filtrar
• etc
Caixa de ferramentas para…
Aqui entra a “mágica" do funcional
1 2 3
Map
map( x => 10*x)
10 20 30
$observable = RxObservable::fromArray([1, 2, 3]);
$observable
->map(function ($elem) {
return $elem * 10;
})
->subscribe($stdoutObserver);
Nos permite encadear funções como:
Stream.map(f).scan(g)…
Imutabilidade
1 2 3
Reduce
(acumulador ou agregador)
reduce ( (x,y) => x+y)
6
$source = RxObservable::fromArray([1,2,3]);
$subscription = $source
->reduce(function ($x, $y) {
return $x + $y;
})
->subscribe($createStdoutObserver());
O poder do Rx!
OK! Quero outro
exemplo da vida real
Mantra do Rx:
(quase) tudo pode ser um stream
Observable a partir de uma request
response
RxReactHttp::get('https://www.google.com/');
$observableRequest = RxReactHttp::get('https://
www.google.com/');
$observableRequest->subscribe(
function ($data) {
echo $data, PHP_EOL;
}
);
Observable a partir de uma request
Observable a partir de uma request
RxReactHttp::get('https://www.google.com/');
Múltiplas requests
Será que é possível…
Criar um stream de observables?
Consolida “emissões” em "galhos"…
… em uma única stream
Múltiplas requests
$requests = RxObservable::fromArray
(['https://api.xxx','https://api.xx2']);
$responseStream = $requestStream
->flatMap(function ($requestUrl) {
return RxReactHttp::get($requestUrl);
});
$responseStream->subscribe(
//reage de acordo
);
• http://reactivex.io

• https://github.com/RxPHP

• https://medium.com/netflix-techblog/reactive-programming-in-
the-netflix-api-with-rxjava-7811c3a1496a

Mais sobre Rx e Funcional
Obrigada!
#darkmiraTour
@jchahoud

More Related Content

What's hot

Les 8 gaspillages et Valeur ajoutée - NVA
Les 8 gaspillages et Valeur ajoutée - NVALes 8 gaspillages et Valeur ajoutée - NVA
Les 8 gaspillages et Valeur ajoutée - NVAMohamed Ali Assandi
 
Jeu lean construction manufacturing 2017
Jeu lean construction manufacturing 2017Jeu lean construction manufacturing 2017
Jeu lean construction manufacturing 2017Nadia Gharbi
 
Web-formation | La Méthode de Résolution de Problèmes
Web-formation | La Méthode de Résolution de ProblèmesWeb-formation | La Méthode de Résolution de Problèmes
Web-formation | La Méthode de Résolution de ProblèmesXL Groupe
 
Jeu résolution de problème
Jeu résolution de problèmeJeu résolution de problème
Jeu résolution de problèmeCIPE
 
Jeu sur le kaizen
Jeu sur le kaizenJeu sur le kaizen
Jeu sur le kaizenCIPE
 
Catalogo educativo amway
Catalogo educativo amwayCatalogo educativo amway
Catalogo educativo amwayKeila Cubides
 
Management de Projet: piloter, animer, conduire des projets
Management de Projet: piloter, animer, conduire des projetsManagement de Projet: piloter, animer, conduire des projets
Management de Projet: piloter, animer, conduire des projetsPascal Méance
 
Web-conférence - La Maitrise Statistique des Procédés (MSP)
Web-conférence - La Maitrise Statistique des Procédés (MSP)Web-conférence - La Maitrise Statistique des Procédés (MSP)
Web-conférence - La Maitrise Statistique des Procédés (MSP)XL Groupe
 
La méthodologie "8D"
La méthodologie "8D"La méthodologie "8D"
La méthodologie "8D"LeanPerf
 
jeu lean manufacturing
jeu lean manufacturingjeu lean manufacturing
jeu lean manufacturingCIPE
 
Plan de 90 dias Omnilife Angelíssima
Plan de 90 dias Omnilife AngelíssimaPlan de 90 dias Omnilife Angelíssima
Plan de 90 dias Omnilife AngelíssimaRed Grupo Angeles
 
Jeu lean management
Jeu lean managementJeu lean management
Jeu lean managementCIPE
 
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016ibtissam el hassani
 
Management de projets : Approche Prince2 : les 7 thèmes
Management de projets : Approche Prince2 : les 7 thèmesManagement de projets : Approche Prince2 : les 7 thèmes
Management de projets : Approche Prince2 : les 7 thèmesJoseph SZCZYGIEL
 
Les muda (7 gaspillages)
Les muda (7 gaspillages)Les muda (7 gaspillages)
Les muda (7 gaspillages)herve62400
 
Time management ppt
Time management pptTime management ppt
Time management pptAsif Ebrahim
 
jeu connaissance de l'entreprise 2015
jeu connaissance de l'entreprise 2015jeu connaissance de l'entreprise 2015
jeu connaissance de l'entreprise 2015CIPE
 

What's hot (20)

Les 8 gaspillages et Valeur ajoutée - NVA
Les 8 gaspillages et Valeur ajoutée - NVALes 8 gaspillages et Valeur ajoutée - NVA
Les 8 gaspillages et Valeur ajoutée - NVA
 
Jeu lean construction manufacturing 2017
Jeu lean construction manufacturing 2017Jeu lean construction manufacturing 2017
Jeu lean construction manufacturing 2017
 
Web-formation | La Méthode de Résolution de Problèmes
Web-formation | La Méthode de Résolution de ProblèmesWeb-formation | La Méthode de Résolution de Problèmes
Web-formation | La Méthode de Résolution de Problèmes
 
Jeu résolution de problème
Jeu résolution de problèmeJeu résolution de problème
Jeu résolution de problème
 
Jeu sur le kaizen
Jeu sur le kaizenJeu sur le kaizen
Jeu sur le kaizen
 
Catalogo educativo amway
Catalogo educativo amwayCatalogo educativo amway
Catalogo educativo amway
 
Management de Projet: piloter, animer, conduire des projets
Management de Projet: piloter, animer, conduire des projetsManagement de Projet: piloter, animer, conduire des projets
Management de Projet: piloter, animer, conduire des projets
 
Web-conférence - La Maitrise Statistique des Procédés (MSP)
Web-conférence - La Maitrise Statistique des Procédés (MSP)Web-conférence - La Maitrise Statistique des Procédés (MSP)
Web-conférence - La Maitrise Statistique des Procédés (MSP)
 
La méthodologie "8D"
La méthodologie "8D"La méthodologie "8D"
La méthodologie "8D"
 
jeu lean manufacturing
jeu lean manufacturingjeu lean manufacturing
jeu lean manufacturing
 
Plan de 90 dias Omnilife Angelíssima
Plan de 90 dias Omnilife AngelíssimaPlan de 90 dias Omnilife Angelíssima
Plan de 90 dias Omnilife Angelíssima
 
Jeu lean management
Jeu lean managementJeu lean management
Jeu lean management
 
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
 
Lean manufacturing
Lean manufacturingLean manufacturing
Lean manufacturing
 
Management de projets : Approche Prince2 : les 7 thèmes
Management de projets : Approche Prince2 : les 7 thèmesManagement de projets : Approche Prince2 : les 7 thèmes
Management de projets : Approche Prince2 : les 7 thèmes
 
AMDEC : Introduction à l'outil AMDEC/DFMEA
AMDEC : Introduction à l'outil AMDEC/DFMEAAMDEC : Introduction à l'outil AMDEC/DFMEA
AMDEC : Introduction à l'outil AMDEC/DFMEA
 
Les muda (7 gaspillages)
Les muda (7 gaspillages)Les muda (7 gaspillages)
Les muda (7 gaspillages)
 
Time management ppt
Time management pptTime management ppt
Time management ppt
 
Network marketing
Network marketingNetwork marketing
Network marketing
 
jeu connaissance de l'entreprise 2015
jeu connaissance de l'entreprise 2015jeu connaissance de l'entreprise 2015
jeu connaissance de l'entreprise 2015
 

Similar to Programação Reativa e Funcional com RxPHP e extensões para assincronismo

Por que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionaisPor que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionaisLuiz Borba
 
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeZabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeIgor Nicoli
 
O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?Denis Costa
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
 
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...tdc-globalcode
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sérioLuciano Ramalho
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangElaine Naomi
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopAlexei Znamensky
 
i-Educar - 1º Seminário PHP no Serpro
i-Educar - 1º Seminário PHP no Serproi-Educar - 1º Seminário PHP no Serpro
i-Educar - 1º Seminário PHP no SerproFlávio Lisboa
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaSidney Roberto
 
Lazy Evaluation em Scala
Lazy Evaluation em ScalaLazy Evaluation em Scala
Lazy Evaluation em Scalapmatiello
 
Regras de Produção: o Motor de Inferência JESS
Regras de Produção:o Motor de Inferência JESSRegras de Produção:o Motor de Inferência JESS
Regras de Produção: o Motor de Inferência JESSelliando dias
 
Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and KerasSandro Moreira
 

Similar to Programação Reativa e Funcional com RxPHP e extensões para assincronismo (20)

Doctrine for Dummies
Doctrine for DummiesDoctrine for Dummies
Doctrine for Dummies
 
Python
PythonPython
Python
 
Por que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionaisPor que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionais
 
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeZabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
 
O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o Javascript
 
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Mashups: Criando Valor na Web 2.0
Mashups: Criando Valor na Web 2.0Mashups: Criando Valor na Web 2.0
Mashups: Criando Valor na Web 2.0
 
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
 
JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sério
 
Javascript
JavascriptJavascript
Javascript
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e Erlang
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
i-Educar - 1º Seminário PHP no Serpro
i-Educar - 1º Seminário PHP no Serproi-Educar - 1º Seminário PHP no Serpro
i-Educar - 1º Seminário PHP no Serpro
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciência
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
 
Lazy Evaluation em Scala
Lazy Evaluation em ScalaLazy Evaluation em Scala
Lazy Evaluation em Scala
 
Regras de Produção: o Motor de Inferência JESS
Regras de Produção:o Motor de Inferência JESSRegras de Produção:o Motor de Inferência JESS
Regras de Produção: o Motor de Inferência JESS
 
Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and Keras
 

More from Juliana Chahoud

Usando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App CreditasUsando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App CreditasJuliana Chahoud
 
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...Juliana Chahoud
 
Desenvolvimento de Apps Mobile - Tendências para 2018
Desenvolvimento de Apps Mobile - Tendências para 2018Desenvolvimento de Apps Mobile - Tendências para 2018
Desenvolvimento de Apps Mobile - Tendências para 2018Juliana Chahoud
 
A SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPS
A SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPSA SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPS
A SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPSJuliana Chahoud
 
Desenvolvimento para experiências em real time com foco na segunda tela
Desenvolvimento para experiências em real time com foco na segunda telaDesenvolvimento para experiências em real time com foco na segunda tela
Desenvolvimento para experiências em real time com foco na segunda telaJuliana Chahoud
 
Usando o Twitter na Internet das Coisas - #WebBR2016
Usando o Twitter  na Internet das Coisas - #WebBR2016Usando o Twitter  na Internet das Coisas - #WebBR2016
Usando o Twitter na Internet das Coisas - #WebBR2016Juliana Chahoud
 
Microservices: Utilizando o Twitter como Plataforma
Microservices: Utilizando o Twitter como PlataformaMicroservices: Utilizando o Twitter como Plataforma
Microservices: Utilizando o Twitter como PlataformaJuliana Chahoud
 
Integrações de APIs do Google no iOS (DevFest NE e SP)
Integrações de APIs do Google no iOS (DevFest NE e SP)Integrações de APIs do Google no iOS (DevFest NE e SP)
Integrações de APIs do Google no iOS (DevFest NE e SP)Juliana Chahoud
 
Apple Watch - Digital Day da CI&T
Apple Watch - Digital Day da CI&TApple Watch - Digital Day da CI&T
Apple Watch - Digital Day da CI&TJuliana Chahoud
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftJuliana Chahoud
 
MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...
MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...
MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...Juliana Chahoud
 
Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)
Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)
Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)Juliana Chahoud
 
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosDissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosJuliana Chahoud
 
Planejamento para Serviços Web Semânticos
Planejamento para Serviços Web SemânticosPlanejamento para Serviços Web Semânticos
Planejamento para Serviços Web SemânticosJuliana Chahoud
 

More from Juliana Chahoud (14)

Usando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App CreditasUsando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App Creditas
 
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
 
Desenvolvimento de Apps Mobile - Tendências para 2018
Desenvolvimento de Apps Mobile - Tendências para 2018Desenvolvimento de Apps Mobile - Tendências para 2018
Desenvolvimento de Apps Mobile - Tendências para 2018
 
A SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPS
A SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPSA SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPS
A SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPS
 
Desenvolvimento para experiências em real time com foco na segunda tela
Desenvolvimento para experiências em real time com foco na segunda telaDesenvolvimento para experiências em real time com foco na segunda tela
Desenvolvimento para experiências em real time com foco na segunda tela
 
Usando o Twitter na Internet das Coisas - #WebBR2016
Usando o Twitter  na Internet das Coisas - #WebBR2016Usando o Twitter  na Internet das Coisas - #WebBR2016
Usando o Twitter na Internet das Coisas - #WebBR2016
 
Microservices: Utilizando o Twitter como Plataforma
Microservices: Utilizando o Twitter como PlataformaMicroservices: Utilizando o Twitter como Plataforma
Microservices: Utilizando o Twitter como Plataforma
 
Integrações de APIs do Google no iOS (DevFest NE e SP)
Integrações de APIs do Google no iOS (DevFest NE e SP)Integrações de APIs do Google no iOS (DevFest NE e SP)
Integrações de APIs do Google no iOS (DevFest NE e SP)
 
Apple Watch - Digital Day da CI&T
Apple Watch - Digital Day da CI&TApple Watch - Digital Day da CI&T
Apple Watch - Digital Day da CI&T
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
 
MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...
MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...
MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...
 
Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)
Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)
Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)
 
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosDissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
 
Planejamento para Serviços Web Semânticos
Planejamento para Serviços Web SemânticosPlanejamento para Serviços Web Semânticos
Planejamento para Serviços Web Semânticos
 

Programação Reativa e Funcional com RxPHP e extensões para assincronismo