SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
RXSWIFT 👻
HOW TO AVOID THE HEADACHE AND FOCUS ON THE MOST IMPORTANT ELEMENTS OF IT.
WHAT THE HECK ISREACTIVE
PROGRAMMING?
REACTIVEX.IO
“AN API FOR ASYNCHRONOUS
PROGRAMMING
WITH OBSERVABLESTREAMS”
THE OBSERVER PATTERN DONE RIGHT
REACTIVEX IS A COMBINATION OF THE BEST IDEAS
FROM
THE OBSERVER PATTERN, THE ITERATOR
PATTERN, AND FUNCTIONAL PROGRAMMING
WHY YOU WOULD WANT TO HAVE
RXSWIFTINTHEPROJECT?
- it clears up and streamlines the async
calls in your app, especially those that
might happen in different timeframes 👀
- helps with error handling during async
operations - all thrown errors are passed to
the subscription block, no more if’s! 🛑
- helps with operations clarity with clear
inline notation - less line of code 📉
- helps with dividing your code to smallest
possible blocks ✅
- allows us to forget about delegates by
using Subjects 😎
- gives us plenty of easy-to-use operators
to achieve your task 😎
WHYYOUSHOULDCARE
BUTALSO…
• It will be easier for you to switch to Combine whenever Apple will update their
framework with everything RxSwift has to offer (iOS 15-ish I hope 🙏)
• Rx is a standard across all major platforms (we have RxKotlin, RxJava, RxJs, etc.) - if you
learn it once, you will probably not come back and you can read code on other plaforms
easily 😎
BUTALSO…
BUTATTHESAMETIME...
• RxSwift is hard to get used to in the
beginning since you need to rewire
your brain a bit 🧠
• You WILL make mistakes in the
beginning, but as always, refactor is
your friend, and with smaller blocks it is
easier to fix things ✅
• ... this presentation will not make you a
master Jedi. 😭
BUTATTHESAMETIME…
WHYWEDOEVENNEEDRXSWIFT?
NOWITMAYLOOKLIKETHIS:
WHATITCANLOOKLIKE
NEEDANEXAMPLE?
LET'S THINK ABOUT A SIMPLE EXAMPLE IN OUR APP.
WHYWEDOEVENNEEDRXSWIFT?
We have a list with a Search Bar.
Whenever user is typing something to the search bar, he gets results.
Those results are mapped to ViewModels.
Then they are passed to the TableView and the View is refreshed.
SOUNDSFAMILIAR?
LET'S THINK ABOUT A SIMPLE EXAMPLE IN OUR APP.
WHYWEDOEVENNEEDRXSWIFT?
LET'S THINK ABOUT A SIMPLE EXAMPLE IN OUR APP.
WHYWEDOEVENNEEDRXSWIFT?
But if we want to modify the app so we want to:
• reduce number of unnecessary text inputs & API calls 😱
• retry the call if it fails 🔄
• map response to a model that is readable by our app 🧰
• catch any errors that might occur 🛑
• keep our memory clear when we leave the screen 😇
LET'S THINK ABOUT A SIMPLE EXAMPLE IN OUR APP.
WHYWEDOEVENNEEDRXSWIFT?
TEXTFIELD DELEGATES
SESSION RETRY MEMORY MANAGEMENT
DEBOUNCING
LET'S THINK ABOUT A SIMPLE EXAMPLE IN OUR APP.
WHYWEDOEVENNEEDRXSWIFT?
HOW TO
VISUALISE
RXSWIFT
SUBJECTS&TRAITS
OPERATORS
SUBSCRIPTIONS
SUBJECTS&TRAITS
OPERATORS
SUBSCRIPTIONS
DISPOSEBAG
NOTHING HAPPENS UNTIL YOU
.SUBSCRIBE
SUBJECTS
SUBJECTS ARE DEFINING YOUR STREAM, THEY ARE YOUR STARTING POINT.
SUBJECTS
They are a really nice way of
getting rid of any delegates.
There are four main subjects
in RxSwift world, but you will
mainly use two of them in
your projects.
PUBLISHSUBJECT BEHAVIORRELAY
SUBJECTS ARE DEFINING YOUR STREAM, THEY ARE YOUR STARTING POINT.
SUBJECTS
PUBLISHSUBJECT
•If you need to only emitnewelements to subscribers
•Starts empty
•Mostly used to notify about some changes in the app
(i.e. user gets a new message)
SUBJECTS ARE DEFINING YOUR STREAM, THEY ARE YOUR STARTING POINT.
SUBJECTS
PUBLISHSUBJECT
•Starts withinitialvalue
•Preserves the value
•Emits the value to subscribers whenever it changes
•Mostly used to keep some values in memory
BEHAVIORRELAY
HOW TO DEFINE AND USE A SUBJECT?
SUBJECTS
TRAITS
THEY DEFINE TYPE OF OPERATIONS YOU WANT TO OBSERVE AND SUBSCRIBE TO.
TRAITS
OBSERVABLE SINGLE COMPLETABLE
OBSERVABLE
When you need to observe the change everytimesomethinghappens (i.e.
user taps a button or a number is selected)
SINGLE
When you only want to get a singlevalue out of the stream and then dispose
it at the end (i.e. getting resource from API).
COMPLETABLE
When you need to perform an operation but it doesnotreturnanythingand
youjustwaitforittocomplete (i.e. uploading something, saving something
to DB)
BY USING OPERATORS LIKE .FLATMAP, YOU CAN
CONVERT YOUR DATA AND USE DIFFERENT TRAITS.
OPERATORS
THERE ARE PLENTY OF THEM
OPERATORS
SOMEOFTHEUSEFULOPERATORS:
SOMEOFTHEUSEFULOPERATORS:
SOMEOFTHEUSEFULOPERATORS:
HOW TO MIGRATEYOUREXISTING
ASYNCFUNCTIONS TO RX
HOWTOMIGRATEYOUREXISTINGASYNCFUNCTIONSTORX
HOW TO DEBUG RXSWIFT
• Well, you are kind of doomed 💣.
• You can use .debug() somewhere down
the stream and use a mix of
breakpoints and prints (unfortunately)
☣ in your project.
HOWTODEBUGRXSWIFT
RXSWIFT BEST PRACTICES
• You don't need to know and use all of operators and traits from RxSwift.
Some of the Rx operators are not even available in Swift. ✅
• Do not use RxSwift for everything.
Start with simple elements - basic async/API calls, then go to more
advanced examples like combining multiple observables and then
adding some side-effects like loaders, error catching, etc. 🤘
RXSWIFTBESTPRACTICES
• Do not expose a Subject outside of your service layer class (use
Observable), so nobody outside of the class can modify or publish to the
stream directly. Exposing subject as an Observable makes it a one-way
street. 🦺
• Use [unowned/weak self] in every closure that uses self to avoid memory
leaks ‼ This is the ultimate enemy of RxSwift 👻
• If you don't want to stop your subscription after an error, use .materialize
💪. It will change wrap your events into Result-like structures that you
can handle in your subscription block.
• If your RxSwift code does not compile, write simpler code 😵. Check your
types. Swift compiler does not have a good RxSwift understanding 🤬
RXSWIFTBESTPRACTICES
http://reactivex.io/documentation/operators.html
https://medium.com/@hudnitsky/elegant-rxswift-injection-into-legacy-code-d974ad7f0d5
http://adamborek.com/creating-observable-create-just-deferred/
https://speakerdeck.com/freak4pc/rxswift-debunking-the-myth-of-hard
http://adamborek.com/memory-managment-rxswift/
https://medium.com/ios-os-x-development/learn-and-master-%EF%B8%8F-the-basics-of-rxswift-in-10-
minutes-818ea6e0a05b
https://www.raywenderlich.com/books/rxswift-reactive-programming-with-swift/v4.0/chapters/1-hello-
rxswift
USEFULLINKS
QUESTIONS?
RxSwift for Beginners - how to avoid a headache of reactive programming

Weitere ähnliche Inhalte

Was ist angesagt?

End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...Paul Jensen
 
Asynchronous javascript
 Asynchronous javascript Asynchronous javascript
Asynchronous javascriptEman Mohamed
 
PowerShell: Automation for everyone
PowerShell: Automation for everyonePowerShell: Automation for everyone
PowerShell: Automation for everyoneGavin Barron
 
Ruby Testing: Cucumber and RSpec
Ruby Testing: Cucumber and RSpecRuby Testing: Cucumber and RSpec
Ruby Testing: Cucumber and RSpecJames Thompson
 
Async CTP 3 Presentation for MUGH 2012
Async CTP 3 Presentation for MUGH 2012Async CTP 3 Presentation for MUGH 2012
Async CTP 3 Presentation for MUGH 2012Sri Kanth
 
Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)Yan Cui
 
Some experiences building an Android app with React Native & Redux
Some experiences building an Android app with React Native & ReduxSome experiences building an Android app with React Native & Redux
Some experiences building an Android app with React Native & ReduxAlex Bepple
 
Pretenders talk at PyconUK 2012
Pretenders talk at PyconUK 2012Pretenders talk at PyconUK 2012
Pretenders talk at PyconUK 2012txels
 
Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)Yan Cui
 
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)Barbara Ondrisek
 
Calabash Mobile Application Testing Overview
Calabash Mobile Application Testing OverviewCalabash Mobile Application Testing Overview
Calabash Mobile Application Testing OverviewEmil Cordun
 
A Whale and an Elephant, when PHP meets docker
A Whale and an Elephant, when PHP meets dockerA Whale and an Elephant, when PHP meets docker
A Whale and an Elephant, when PHP meets docker🤓 Steve McDougall
 
Angular elements - embed your angular components EVERYWHERE
Angular elements - embed your angular components EVERYWHEREAngular elements - embed your angular components EVERYWHERE
Angular elements - embed your angular components EVERYWHERENadav Mary
 
OpenLayers 3 & Google Closure Compiler
OpenLayers 3 & Google Closure CompilerOpenLayers 3 & Google Closure Compiler
OpenLayers 3 & Google Closure CompilerCamptocamp
 
Using Async in your Mobile Apps - Marek Safar
Using Async in your Mobile Apps - Marek SafarUsing Async in your Mobile Apps - Marek Safar
Using Async in your Mobile Apps - Marek SafarXamarin
 
Rick Blalock: Your Apps are Leaking - Controlling Memory Leaks
Rick Blalock: Your Apps are Leaking - Controlling Memory LeaksRick Blalock: Your Apps are Leaking - Controlling Memory Leaks
Rick Blalock: Your Apps are Leaking - Controlling Memory LeaksAxway Appcelerator
 
Introduction to Functional Reactive Programming
Introduction to Functional Reactive ProgrammingIntroduction to Functional Reactive Programming
Introduction to Functional Reactive ProgrammingĐạng Thåi Sƥn
 

Was ist angesagt? (20)

End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
 
Angular Testing
Angular TestingAngular Testing
Angular Testing
 
Asynchronous javascript
 Asynchronous javascript Asynchronous javascript
Asynchronous javascript
 
PowerShell: Automation for everyone
PowerShell: Automation for everyonePowerShell: Automation for everyone
PowerShell: Automation for everyone
 
Ruby Testing: Cucumber and RSpec
Ruby Testing: Cucumber and RSpecRuby Testing: Cucumber and RSpec
Ruby Testing: Cucumber and RSpec
 
Async CTP 3 Presentation for MUGH 2012
Async CTP 3 Presentation for MUGH 2012Async CTP 3 Presentation for MUGH 2012
Async CTP 3 Presentation for MUGH 2012
 
Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)
 
Some experiences building an Android app with React Native & Redux
Some experiences building an Android app with React Native & ReduxSome experiences building an Android app with React Native & Redux
Some experiences building an Android app with React Native & Redux
 
Pretenders talk at PyconUK 2012
Pretenders talk at PyconUK 2012Pretenders talk at PyconUK 2012
Pretenders talk at PyconUK 2012
 
Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)
 
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
 
Calabash Mobile Application Testing Overview
Calabash Mobile Application Testing OverviewCalabash Mobile Application Testing Overview
Calabash Mobile Application Testing Overview
 
A Whale and an Elephant, when PHP meets docker
A Whale and an Elephant, when PHP meets dockerA Whale and an Elephant, when PHP meets docker
A Whale and an Elephant, when PHP meets docker
 
Async await in JavaScript
Async await in JavaScriptAsync await in JavaScript
Async await in JavaScript
 
Angular elements - embed your angular components EVERYWHERE
Angular elements - embed your angular components EVERYWHEREAngular elements - embed your angular components EVERYWHERE
Angular elements - embed your angular components EVERYWHERE
 
OpenLayers 3 & Google Closure Compiler
OpenLayers 3 & Google Closure CompilerOpenLayers 3 & Google Closure Compiler
OpenLayers 3 & Google Closure Compiler
 
Using Async in your Mobile Apps - Marek Safar
Using Async in your Mobile Apps - Marek SafarUsing Async in your Mobile Apps - Marek Safar
Using Async in your Mobile Apps - Marek Safar
 
SPA Flask Vue
SPA Flask VueSPA Flask Vue
SPA Flask Vue
 
Rick Blalock: Your Apps are Leaking - Controlling Memory Leaks
Rick Blalock: Your Apps are Leaking - Controlling Memory LeaksRick Blalock: Your Apps are Leaking - Controlling Memory Leaks
Rick Blalock: Your Apps are Leaking - Controlling Memory Leaks
 
Introduction to Functional Reactive Programming
Introduction to Functional Reactive ProgrammingIntroduction to Functional Reactive Programming
Introduction to Functional Reactive Programming
 

Ähnlich wie RxSwift for Beginners - how to avoid a headache of reactive programming

Abap for functional consultants
Abap for functional consultantsAbap for functional consultants
Abap for functional consultantsMohammad Mousavi
 
379008-rc217-functionalprogramming
379008-rc217-functionalprogramming379008-rc217-functionalprogramming
379008-rc217-functionalprogrammingLuis Atencio
 
Úvod do programování 7
Úvod do programování 7Úvod do programování 7
Úvod do programování 7Karel Minarik
 
Service worker API
Service worker APIService worker API
Service worker APIGiorgio Natili
 
Interactive workflow management using Azkaban
Interactive workflow management using AzkabanInteractive workflow management using Azkaban
Interactive workflow management using Azkabandatamantra
 
Ask the expert - App performance on Series 40 phones
Ask the expert - App performance on Series 40 phonesAsk the expert - App performance on Series 40 phones
Ask the expert - App performance on Series 40 phonesMicrosoft Mobile Developer
 
Guidelines to understand durable functions with .net core, c# and stateful se...
Guidelines to understand durable functions with .net core, c# and stateful se...Guidelines to understand durable functions with .net core, c# and stateful se...
Guidelines to understand durable functions with .net core, c# and stateful se...Concetto Labs
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays
 
Javascript - Ebook (A Quick Guide)
Javascript - Ebook (A Quick Guide)Javascript - Ebook (A Quick Guide)
Javascript - Ebook (A Quick Guide)sourav newatia
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteChristian Heilmann
 
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Te...
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Te...AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Te...
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Te...Amazon Web Services
 
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three RuntimesEclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three RuntimesSuresh Krishna Madhuvarsu
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaKazuhiro Sera
 
Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1Jacek Tomaszewski
 
Smart Client Development
Smart Client DevelopmentSmart Client Development
Smart Client DevelopmentTamir Khason
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
 
James Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL appJames Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL appReact Conf Brasil
 
Solid and Sustainable Development in Scala
Solid and Sustainable Development in ScalaSolid and Sustainable Development in Scala
Solid and Sustainable Development in Scalascalaconfjp
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextPrateek Maheshwari
 

Ähnlich wie RxSwift for Beginners - how to avoid a headache of reactive programming (20)

Abap for functional consultants
Abap for functional consultantsAbap for functional consultants
Abap for functional consultants
 
379008-rc217-functionalprogramming
379008-rc217-functionalprogramming379008-rc217-functionalprogramming
379008-rc217-functionalprogramming
 
Úvod do programování 7
Úvod do programování 7Úvod do programování 7
Úvod do programování 7
 
Service worker API
Service worker APIService worker API
Service worker API
 
Interactive workflow management using Azkaban
Interactive workflow management using AzkabanInteractive workflow management using Azkaban
Interactive workflow management using Azkaban
 
Ask the expert - App performance on Series 40 phones
Ask the expert - App performance on Series 40 phonesAsk the expert - App performance on Series 40 phones
Ask the expert - App performance on Series 40 phones
 
Guidelines to understand durable functions with .net core, c# and stateful se...
Guidelines to understand durable functions with .net core, c# and stateful se...Guidelines to understand durable functions with .net core, c# and stateful se...
Guidelines to understand durable functions with .net core, c# and stateful se...
 
slides-students-C03.pdf
slides-students-C03.pdfslides-students-C03.pdf
slides-students-C03.pdf
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
 
Javascript - Ebook (A Quick Guide)
Javascript - Ebook (A Quick Guide)Javascript - Ebook (A Quick Guide)
Javascript - Ebook (A Quick Guide)
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
 
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Te...
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Te...AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Te...
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Te...
 
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three RuntimesEclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
 
Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1
 
Smart Client Development
Smart Client DevelopmentSmart Client Development
Smart Client Development
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...
 
James Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL appJames Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL app
 
Solid and Sustainable Development in Scala
Solid and Sustainable Development in ScalaSolid and Sustainable Development in Scala
Solid and Sustainable Development in Scala
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
 

Mehr von Maciej Kołek

Od U do Z - jak powinna wyglądać Twoja aplikacja na platformie iOS?
Od U do Z - jak powinna wyglądać Twoja aplikacja na platformie iOS?Od U do Z - jak powinna wyglądać Twoja aplikacja na platformie iOS?
Od U do Z - jak powinna wyglądać Twoja aplikacja na platformie iOS?Maciej Kołek
 
Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...
Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...
Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...Maciej Kołek
 
TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...
TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...
TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...Maciej Kołek
 
TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...
TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...
TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...Maciej Kołek
 
Podstawy Wordpressa
Podstawy WordpressaPodstawy Wordpressa
Podstawy WordpressaMaciej Kołek
 
Z Perspektywy Programisty: Projektowanie InterfejsĂłw Aplikacji Mobilnych
Z Perspektywy Programisty: Projektowanie InterfejsĂłw Aplikacji MobilnychZ Perspektywy Programisty: Projektowanie InterfejsĂłw Aplikacji Mobilnych
Z Perspektywy Programisty: Projektowanie Interfejsów Aplikacji MobilnychMaciej Kołek
 
Tworzenie aplikacji na platformę watchOS2
Tworzenie aplikacji na platformę watchOS2Tworzenie aplikacji na platformę watchOS2
Tworzenie aplikacji na platformę watchOS2Maciej Kołek
 

Mehr von Maciej Kołek (7)

Od U do Z - jak powinna wyglądać Twoja aplikacja na platformie iOS?
Od U do Z - jak powinna wyglądać Twoja aplikacja na platformie iOS?Od U do Z - jak powinna wyglądać Twoja aplikacja na platformie iOS?
Od U do Z - jak powinna wyglądać Twoja aplikacja na platformie iOS?
 
Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...
Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...
Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...
 
TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...
TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...
TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...
 
TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...
TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...
TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...
 
Podstawy Wordpressa
Podstawy WordpressaPodstawy Wordpressa
Podstawy Wordpressa
 
Z Perspektywy Programisty: Projektowanie InterfejsĂłw Aplikacji Mobilnych
Z Perspektywy Programisty: Projektowanie InterfejsĂłw Aplikacji MobilnychZ Perspektywy Programisty: Projektowanie InterfejsĂłw Aplikacji Mobilnych
Z Perspektywy Programisty: Projektowanie InterfejsĂłw Aplikacji Mobilnych
 
Tworzenie aplikacji na platformę watchOS2
Tworzenie aplikacji na platformę watchOS2Tworzenie aplikacji na platformę watchOS2
Tworzenie aplikacji na platformę watchOS2
 

KĂźrzlich hochgeladen

CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceanilsa9823
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceanilsa9823
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7Pooja Nehwal
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRnishacall1
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Pooja Nehwal
 

KĂźrzlich hochgeladen (7)

CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
 

RxSwift for Beginners - how to avoid a headache of reactive programming