SlideShare a Scribd company logo
TESTING ANDROID APPS
Android-centric architecture vs. unit-testable android apps
PAUL WEIN
Consultant
Mobile Architect
150 8 +850
Offices EmployeesActive Clients
What Where
Netlight operates throughout Europe with
offices in Stockholm, Oslo, Munich,
Helsinki, Hamburg, Berlin, Paris and
London.
How
Founded in Stockholm, Sweden, since
1999, Netlight has helped leaders in the
digital industry to realise business critical
projects in the forefront of technology.
Netlight is an international consultancy firm
that offers a full range of services with a
focus on Technology and IT-Management.
Continuous	integration
Unit	tests
Instrumentation	tests
Code	review
Code	coverage
Test	driven	development
Behavior	driven	development
Static	code	analysis
Usability	tests
Test	documentation
Test	reports
Crashtracking
System	tests
Back	box	tests
White	box	tests
Security	tests
Load	tests
QA SHOULD BE PART
OF THE MINDSET OF A
DEVELOPER, EVEN
BEFORE HE STARTS
WRITING CODE.
If you don't test your software your users will!
Agenda
‣ Why has testing been so hard?
‣ Android-centric architecture
‣ Model-View-Presenter (MVP)
‣ Model-View-ViewModel (MVVM)
‣ Model-View-Intent (MVI)
‣ Tools
Why has testing Android Apps been so hard?
Testable code requires layers
of abstraction, which have a
performance cost
Performance Concerns
Misunderstanding
Android Components
Don’t architect your app
around system components
(Activities, Services,
Broadcast Receivers,
Content Providers)
The rise of TDD
Test-driven development
was on the rise at the same
time Android was
App building blocks
Intent
ServiceContent	Provider
Broadcast	
Receiver
Activity Fragment
Android-centric architecture
Activity
Lifecycle	Events
Business	Rules
Access	Hardware
Access	Sensors
Framework	APIs
….
• Mix presentation logic
with business rules
• Code is difficult to
understand
• To rigid to handle
varying use-cases
• Tight coupling & low
cohesion
Android-centric architecture
Activity
Lifecycle	Events
Business	Rules
Access	Hardware
Access	Sensors
Framework	APIs
….
• Mix presentation logic
with business rules
• Code is difficult to
understand
• To rigid to handle
varying use-cases
• Tight coupling & low
cohesion
Activity == View & Controller?
Address book example
Model View Presenter (MVP)
View Presenter Model
The presenter
‣ Make the presenter Framework
independent
‣ The presenter does not depend on
any android specific classes
‣ Abstract the presenter from
implementation details
‣ Abstraction makes it possible to write
non-instrumented tests
Model View Presenter (MVP)
View
<<Activity	/	
Fragment>>
Presenter
<<POJO>>
Model
<<POJO>>
IPresenter
<<Interface>>
IView
<<Interface>>
ViewPresenterContract
<<Interface>>
Model View Presenter (MVP)
View
<<Activity	/	
Fragment>>
Presenter
<<POJO>>
Model
<<POJO>>
IPresenter
<<Interface>>
IView
<<Interface>>
ViewPresenterContract
<<Interface>>
Unit	Tests Unit	TestsInstrumented	Tests
The ViewPresenterContract
The presenter
The view
Unit test
Model View Presenter
Clear separation of UI and
business logic
Separation Modularity
Reuse of presenters and
views
Testing
Testing in isolation without
external dependencies
Model View ViewModel (MVVM)
View ViewModel Model
Observable
/ Databinding
Reference
Model View Intent (MVI)
View Intent Model
State
Actions
Model View Intent (MVI)
Facebook Flux
Action Dispatcher Store
Action
View
MVI Principles
‣ Model that represents the state of the
app
‣ Pure functions
‣ Unidirectional data flow
‣ Immutable data
‣ State reducer takes current state as
input and produces the next state
MVI - Advantages
‣ Separates mutation and
asynchronicity
‣ Makes testing much easier
assertEquals(expectedModel, model)
‣ Readable code
‣ Predictable code
MVI ViewPresenterContract
MVI Presenter
MVI View
MVI Unit test
MVI Instrumentation test
MVI Logging & Timetravel
• { "loading": true, "error": null, "contacts": null }
• { "loading": false, "error": null, "contacts": […] }
• { "loading": true, "error": null, "contacts": null }
• { "loading": false, "error": {NetworkError}, "contacts": null }
Tools
• JUnit
• JaCoCo
• Mockito
• Espresso
• Crashlytics
• Infer
• LeakCanary
KENT BECK
PAUL WEIN
paul.wein@netlight.com
netlight.com

More Related Content

What's hot

KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
Keytorc Software Testing Services
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?
vodQA
 
17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing
Sarah Elson
 
UI5 supportability tools explained
UI5 supportability tools explainedUI5 supportability tools explained
UI5 supportability tools explained
Maxim Naidenov
 
SCM Process and smartBuild
SCM Process and smartBuildSCM Process and smartBuild
SCM Process and smartBuild
Rajesh Kumar
 
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Applitools
 
BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User Stories
Sauce Labs
 
Kloia Quality Assurance
Kloia Quality AssuranceKloia Quality Assurance
Kloia Quality Assurance
kloia
 
Why we used Feature Branching
Why we used Feature BranchingWhy we used Feature Branching
Why we used Feature Branching
Alan Parkinson
 
Meaningful UI Test Automation
Meaningful UI Test AutomationMeaningful UI Test Automation
Meaningful UI Test Automation
Rahul Verma
 
Automated Application Testing
Automated Application TestingAutomated Application Testing
Automated Application Testing
Codal
 
Test automation - What? Why? How?
Test automation - What? Why? How?Test automation - What? Why? How?
Test automation - What? Why? How?
Anand Bagmar
 
E2E testing with UIVeri5
E2E testing with UIVeri5E2E testing with UIVeri5
E2E testing with UIVeri5
Maxim Naidenov
 
Mobile Quality Challenges At Zalando
Mobile Quality Challenges At ZalandoMobile Quality Challenges At Zalando
Mobile Quality Challenges At Zalando
Hendrik Seffler
 
Reliable application tests for ui5 apps
Reliable application tests for ui5 appsReliable application tests for ui5 apps
Reliable application tests for ui5 apps
Maxim Naidenov
 
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
Applitools
 
Optimizing API Documentation: Some Guidelines and Effects
Optimizing API Documentation: Some Guidelines and EffectsOptimizing API Documentation: Some Guidelines and Effects
Optimizing API Documentation: Some Guidelines and Effects
Pronovix
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
vodQA
 
continous integration and delivery
continous integration and deliverycontinous integration and delivery
continous integration and delivery
Samarjeet Saurabh
 
Software Test Patterns: Successes and Challenges
Software Test Patterns: Successes and ChallengesSoftware Test Patterns: Successes and Challenges
Software Test Patterns: Successes and Challenges
Bob Binder
 

What's hot (20)

KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?
 
17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing
 
UI5 supportability tools explained
UI5 supportability tools explainedUI5 supportability tools explained
UI5 supportability tools explained
 
SCM Process and smartBuild
SCM Process and smartBuildSCM Process and smartBuild
SCM Process and smartBuild
 
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
 
BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User Stories
 
Kloia Quality Assurance
Kloia Quality AssuranceKloia Quality Assurance
Kloia Quality Assurance
 
Why we used Feature Branching
Why we used Feature BranchingWhy we used Feature Branching
Why we used Feature Branching
 
Meaningful UI Test Automation
Meaningful UI Test AutomationMeaningful UI Test Automation
Meaningful UI Test Automation
 
Automated Application Testing
Automated Application TestingAutomated Application Testing
Automated Application Testing
 
Test automation - What? Why? How?
Test automation - What? Why? How?Test automation - What? Why? How?
Test automation - What? Why? How?
 
E2E testing with UIVeri5
E2E testing with UIVeri5E2E testing with UIVeri5
E2E testing with UIVeri5
 
Mobile Quality Challenges At Zalando
Mobile Quality Challenges At ZalandoMobile Quality Challenges At Zalando
Mobile Quality Challenges At Zalando
 
Reliable application tests for ui5 apps
Reliable application tests for ui5 appsReliable application tests for ui5 apps
Reliable application tests for ui5 apps
 
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
 
Optimizing API Documentation: Some Guidelines and Effects
Optimizing API Documentation: Some Guidelines and EffectsOptimizing API Documentation: Some Guidelines and Effects
Optimizing API Documentation: Some Guidelines and Effects
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
 
continous integration and delivery
continous integration and deliverycontinous integration and delivery
continous integration and delivery
 
Software Test Patterns: Successes and Challenges
Software Test Patterns: Successes and ChallengesSoftware Test Patterns: Successes and Challenges
Software Test Patterns: Successes and Challenges
 

Similar to Android-centric-architecture vs. unit testable apps

App insights and testhub
App insights and testhubApp insights and testhub
App insights and testhub
Himanshu Desai
 
Software testing proposal for the software comppany .pptx
Software testing proposal for the software comppany .pptxSoftware testing proposal for the software comppany .pptx
Software testing proposal for the software comppany .pptx
MeseAK
 
MLOps with Azure DevOps
MLOps with Azure DevOpsMLOps with Azure DevOps
MLOps with Azure DevOps
Marco Parenzan
 
Model View Presenter
Model View Presenter Model View Presenter
Model View Presenter
rendra toro
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOps
Daniel Oh
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
Chetan Gordhan
 
OpenDolphin with GroovyFX Workshop at GreachConf, Madrid
OpenDolphin with GroovyFX Workshop at GreachConf, MadridOpenDolphin with GroovyFX Workshop at GreachConf, Madrid
OpenDolphin with GroovyFX Workshop at GreachConf, Madrid
Dierk König
 
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
RapidValue
 
CV Of Arun Thimmappa
CV Of Arun ThimmappaCV Of Arun Thimmappa
CV Of Arun Thimmappa
Arun Thimmappa
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
Caleb Jenkins
 
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDzRDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
Susan Yoskin
 
Android MVVM TDD
Android MVVM TDDAndroid MVVM TDD
Android MVVM TDD
KyungHo Jung
 
A Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingA Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer Testing
Folio3 Software
 
Borland_intro_v5_csc.pptx
Borland_intro_v5_csc.pptxBorland_intro_v5_csc.pptx
Borland_intro_v5_csc.pptx
ssuser9e9be71
 
Traversing the Test Pyramid for Android Development
Traversing the Test Pyramid for Android DevelopmentTraversing the Test Pyramid for Android Development
Traversing the Test Pyramid for Android Development
Dubinsky Soares
 
Machine Learning Operations & Azure
Machine Learning Operations & AzureMachine Learning Operations & Azure
06 operations and feedback dap-kabel
06   operations and feedback dap-kabel06   operations and feedback dap-kabel
06 operations and feedback dap-kabel
David Alvarez Palomo
 
Accelerating tests with Cypress for a leaderboard platform
Accelerating tests with Cypress for a leaderboard platformAccelerating tests with Cypress for a leaderboard platform
Accelerating tests with Cypress for a leaderboard platform
Knoldus Inc.
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
Ahmed Emad
 
Lublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design PatternsLublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design Patterns
Karol Szmaj
 

Similar to Android-centric-architecture vs. unit testable apps (20)

App insights and testhub
App insights and testhubApp insights and testhub
App insights and testhub
 
Software testing proposal for the software comppany .pptx
Software testing proposal for the software comppany .pptxSoftware testing proposal for the software comppany .pptx
Software testing proposal for the software comppany .pptx
 
MLOps with Azure DevOps
MLOps with Azure DevOpsMLOps with Azure DevOps
MLOps with Azure DevOps
 
Model View Presenter
Model View Presenter Model View Presenter
Model View Presenter
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOps
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
 
OpenDolphin with GroovyFX Workshop at GreachConf, Madrid
OpenDolphin with GroovyFX Workshop at GreachConf, MadridOpenDolphin with GroovyFX Workshop at GreachConf, Madrid
OpenDolphin with GroovyFX Workshop at GreachConf, Madrid
 
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
 
CV Of Arun Thimmappa
CV Of Arun ThimmappaCV Of Arun Thimmappa
CV Of Arun Thimmappa
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
 
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDzRDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
 
Android MVVM TDD
Android MVVM TDDAndroid MVVM TDD
Android MVVM TDD
 
A Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingA Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer Testing
 
Borland_intro_v5_csc.pptx
Borland_intro_v5_csc.pptxBorland_intro_v5_csc.pptx
Borland_intro_v5_csc.pptx
 
Traversing the Test Pyramid for Android Development
Traversing the Test Pyramid for Android DevelopmentTraversing the Test Pyramid for Android Development
Traversing the Test Pyramid for Android Development
 
Machine Learning Operations & Azure
Machine Learning Operations & AzureMachine Learning Operations & Azure
Machine Learning Operations & Azure
 
06 operations and feedback dap-kabel
06   operations and feedback dap-kabel06   operations and feedback dap-kabel
06 operations and feedback dap-kabel
 
Accelerating tests with Cypress for a leaderboard platform
Accelerating tests with Cypress for a leaderboard platformAccelerating tests with Cypress for a leaderboard platform
Accelerating tests with Cypress for a leaderboard platform
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
 
Lublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design PatternsLublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design Patterns
 

Recently uploaded

SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
ssuserad3af4
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 

Recently uploaded (20)

SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 

Android-centric-architecture vs. unit testable apps