SlideShare a Scribd company logo
Ignacio Foche - Adrian Quintana
DHIS2 Symposium - Washington DC - 2018
DHIS2 Android for human beings
QuestMark
1. INTRO
a. What is QM?
b. Motivation
c. How is it being developed?
d. Who?
2. QM
a. Definition
b. Structure
c. Modules
d. Architecture
e. Configuration Layer
f. Android variants & strategies
3. DISCUSSION
a. Android dev costs reduction
b. Difference with UiO roadmap
c. What’s next.
What is QuestMark?
QuestMark is an open source modular
framework for developing Android applications
which are capable of generating graphical
interfaces based on a backend (DHIS2 data and
metadata)
Why to develop QM?
Development started in 2015
in the context of the PSI HNQIS project
Why to develop QM?
Ease custom apps development
Reuse code in an easier way
Abstract the user from complex concepts
Declarative definition files and defined module
interface
Who?
Contributors
PSI
Save the Children Myanmar
UiO
Volunteers
…and others...
Open Source
for an Open World
How is it being developed?
Open Source, GPLv3 License
3+ years of development
9 modules
7 applications
100,000+ lines of code
Growing community
Open process
Regular Releases
How is it being developed?
Open Process
Github - Waffle: More than just Source Control!
Agile methodology
Releasing
Online development
Quality Assurance
Git - Github - Waffle
Main Principles
Everyone wants to recycle,
even if they don’t know
Do it fast > do it wrong > do it slow
Compromise is everything
QM is a Framework...
General diagram
Detailed diagram
Modules
● Core
○ Login core
○ Metadata & Data population
● App domain
○ Organizer
○ Data collector
○ Feedback provider
○ Statistical analysis
○ Multimedia library
○ Stock management
○ Treatment Selector
Modules
QM Foundations
Clean Architecture
Configuration layer
Android variants & strategies
Technology stack
Clean Architecture
● Hide implementation details
● Split software in layers
● Follow a strict dependency rule
● Make the system testeable
● Make it easy to change details
● Presentation logic, application logic and
business logic don’t depend on the technology
Clean Architecture
Configuration layer
Configuration layer
● Parameters to activate/deactivate modules
○ ActiveMonitoringFragment
○ ActiveAVFragment
○ ActiveStockFragment
● Parameters to alter a module behaviors
○ ActiveSwipeNavigator
○ ReviewScreen
● Parameters to activate/deactivate core module functionalities
○ DevelopersOptions
○ Multiuser
○ CustomFont
● …
Android variants & strategies
DISCUSSION
● Community empowerment:
○ open source, many can develop
● Cooperative approach:
○ Costs of developing modules are shared between
organisations
○ Quality improvement by shared testing
● Custom Android Apps costs reduced:
○ Accessible for organisations with less resources
DISCUSSION
● When using QM and not UiO official apps?
○ They solve different problems. Look at QM entities to
understand the kind of concepts that can be associated
○ QM doesn’t provide a DB constantly synced approach, but
import-export data from-to DHIS2
○ Use multiple backends and not only DHIS2
○ Simplify user language
DISCUSSION
● What’s next?
○ This is an announcement to the community. We’re on the way
for releasing QM during the next year
○ Still a WIP. This year is crucial for its first version open to the
public
○ New per-module repositories
○ Separate repo for the domain (core)
○ Documentation for developers during the next year
○ Do you want a new app with a new module? Let’s talk
Thanks for the attention!
Ignacio Foche / Adrian Quintana
DHIS2 Symposium - Washington DC - 2018
QuestMark

More Related Content

Similar to QuestMark Framework for Dhis2 Android Apps - Dhis2 symposium 2018

Building Enterprise SDI with Geonode
Building Enterprise SDI with GeonodeBuilding Enterprise SDI with Geonode
Building Enterprise SDI with Geonode
Rafael Soto
 
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Nir Yungster
 
BUDDY White Paper
BUDDY White PaperBUDDY White Paper
BUDDY White Paper
Achmad Surya Afandy
 
Mule soft meetup Houston 16
Mule soft meetup Houston 16Mule soft meetup Houston 16
Mule soft meetup Houston 16
Jim Andrews
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
Nirmal Fernando
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
WSO2
 
Enterprise IoT solution in 30 days
Enterprise IoT solution in 30 days Enterprise IoT solution in 30 days
Enterprise IoT solution in 30 days
Manolis Nikiforakis
 
Cabinet pres a 03.20.13
Cabinet pres a 03.20.13Cabinet pres a 03.20.13
Cabinet pres a 03.20.13
dougch
 
2020 | Metadata Day | LinkedIn
2020 | Metadata Day | LinkedIn2020 | Metadata Day | LinkedIn
2020 | Metadata Day | LinkedIn
Deepak Chandramouli
 
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
hani727151
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
Kuwait10
 
[DevDay2018] Liferay DXP – A powerful Enterprise Solution - By Vy Bui, Develo...
[DevDay2018] Liferay DXP – A powerful Enterprise Solution - By Vy Bui, Develo...[DevDay2018] Liferay DXP – A powerful Enterprise Solution - By Vy Bui, Develo...
[DevDay2018] Liferay DXP – A powerful Enterprise Solution - By Vy Bui, Develo...
DevDay Da Nang
 
GDSC INFO SESSION.pptx
GDSC INFO SESSION.pptxGDSC INFO SESSION.pptx
GDSC INFO SESSION.pptx
VASALADEVIPRADEEP
 
Evolving to Cloud-Native - Anand Rao
Evolving to Cloud-Native - Anand RaoEvolving to Cloud-Native - Anand Rao
Evolving to Cloud-Native - Anand Rao
VMware Tanzu
 
Android presentation slide
Android presentation slideAndroid presentation slide
Android presentation slide
APSMIND TECHNOLOGY PVT LTD.
 
Evolveum: About the company and its product - midPoint
Evolveum: About the company and its product - midPointEvolveum: About the company and its product - midPoint
Evolveum: About the company and its product - midPoint
Evolveum
 
Volkswagen | ECU Software Development with codeBeamer ALM: IT Aspects
Volkswagen | ECU Software Development with codeBeamer ALM: IT AspectsVolkswagen | ECU Software Development with codeBeamer ALM: IT Aspects
Volkswagen | ECU Software Development with codeBeamer ALM: IT Aspects
Intland Software GmbH
 
DSC - info session 2022.pptx
DSC - info session 2022.pptxDSC - info session 2022.pptx
DSC - info session 2022.pptx
AnkurAgarwal151093
 
Androidappdevelopmentpresentation
AndroidappdevelopmentpresentationAndroidappdevelopmentpresentation
Androidappdevelopmentpresentation
Rachit Gaur
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
KatamaRajuBandigari1
 

Similar to QuestMark Framework for Dhis2 Android Apps - Dhis2 symposium 2018 (20)

Building Enterprise SDI with Geonode
Building Enterprise SDI with GeonodeBuilding Enterprise SDI with Geonode
Building Enterprise SDI with Geonode
 
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...
 
BUDDY White Paper
BUDDY White PaperBUDDY White Paper
BUDDY White Paper
 
Mule soft meetup Houston 16
Mule soft meetup Houston 16Mule soft meetup Houston 16
Mule soft meetup Houston 16
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
 
Enterprise IoT solution in 30 days
Enterprise IoT solution in 30 days Enterprise IoT solution in 30 days
Enterprise IoT solution in 30 days
 
Cabinet pres a 03.20.13
Cabinet pres a 03.20.13Cabinet pres a 03.20.13
Cabinet pres a 03.20.13
 
2020 | Metadata Day | LinkedIn
2020 | Metadata Day | LinkedIn2020 | Metadata Day | LinkedIn
2020 | Metadata Day | LinkedIn
 
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
[DevDay2018] Liferay DXP – A powerful Enterprise Solution - By Vy Bui, Develo...
[DevDay2018] Liferay DXP – A powerful Enterprise Solution - By Vy Bui, Develo...[DevDay2018] Liferay DXP – A powerful Enterprise Solution - By Vy Bui, Develo...
[DevDay2018] Liferay DXP – A powerful Enterprise Solution - By Vy Bui, Develo...
 
GDSC INFO SESSION.pptx
GDSC INFO SESSION.pptxGDSC INFO SESSION.pptx
GDSC INFO SESSION.pptx
 
Evolving to Cloud-Native - Anand Rao
Evolving to Cloud-Native - Anand RaoEvolving to Cloud-Native - Anand Rao
Evolving to Cloud-Native - Anand Rao
 
Android presentation slide
Android presentation slideAndroid presentation slide
Android presentation slide
 
Evolveum: About the company and its product - midPoint
Evolveum: About the company and its product - midPointEvolveum: About the company and its product - midPoint
Evolveum: About the company and its product - midPoint
 
Volkswagen | ECU Software Development with codeBeamer ALM: IT Aspects
Volkswagen | ECU Software Development with codeBeamer ALM: IT AspectsVolkswagen | ECU Software Development with codeBeamer ALM: IT Aspects
Volkswagen | ECU Software Development with codeBeamer ALM: IT Aspects
 
DSC - info session 2022.pptx
DSC - info session 2022.pptxDSC - info session 2022.pptx
DSC - info session 2022.pptx
 
Androidappdevelopmentpresentation
AndroidappdevelopmentpresentationAndroidappdevelopmentpresentation
Androidappdevelopmentpresentation
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
 

Recently uploaded

Mechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineeringMechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineering
sachin chaurasia
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
ElakkiaU
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
Roger Rozario
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
mahaffeycheryld
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
Prakhyath Rai
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
PriyankaKilaniya
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
Dwarkadas J Sanghvi College of Engineering
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
ydzowc
 
Height and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdfHeight and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdf
q30122000
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
Gino153088
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
Anant Corporation
 
Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...
cannyengineerings
 
Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...
Prakhyath Rai
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
upoux
 
AI-Based Home Security System : Home security
AI-Based Home Security System : Home securityAI-Based Home Security System : Home security
AI-Based Home Security System : Home security
AIRCC Publishing Corporation
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
uqyfuc
 
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENTNATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
Addu25809
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
shadow0702a
 

Recently uploaded (20)

Mechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineeringMechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineering
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
 
Height and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdfHeight and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdf
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
 
Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...
 
Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
 
AI-Based Home Security System : Home security
AI-Based Home Security System : Home securityAI-Based Home Security System : Home security
AI-Based Home Security System : Home security
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENTNATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
 

QuestMark Framework for Dhis2 Android Apps - Dhis2 symposium 2018

  • 1. Ignacio Foche - Adrian Quintana DHIS2 Symposium - Washington DC - 2018 DHIS2 Android for human beings QuestMark
  • 2. 1. INTRO a. What is QM? b. Motivation c. How is it being developed? d. Who? 2. QM a. Definition b. Structure c. Modules d. Architecture e. Configuration Layer f. Android variants & strategies 3. DISCUSSION a. Android dev costs reduction b. Difference with UiO roadmap c. What’s next.
  • 3. What is QuestMark? QuestMark is an open source modular framework for developing Android applications which are capable of generating graphical interfaces based on a backend (DHIS2 data and metadata)
  • 4. Why to develop QM? Development started in 2015 in the context of the PSI HNQIS project
  • 5. Why to develop QM? Ease custom apps development Reuse code in an easier way Abstract the user from complex concepts Declarative definition files and defined module interface
  • 7. Contributors PSI Save the Children Myanmar UiO Volunteers …and others...
  • 8. Open Source for an Open World How is it being developed?
  • 9. Open Source, GPLv3 License 3+ years of development 9 modules 7 applications 100,000+ lines of code Growing community Open process Regular Releases How is it being developed?
  • 10. Open Process Github - Waffle: More than just Source Control! Agile methodology Releasing Online development Quality Assurance
  • 11. Git - Github - Waffle
  • 12. Main Principles Everyone wants to recycle, even if they don’t know Do it fast > do it wrong > do it slow Compromise is everything
  • 13. QM is a Framework...
  • 16. Modules ● Core ○ Login core ○ Metadata & Data population ● App domain ○ Organizer ○ Data collector ○ Feedback provider ○ Statistical analysis ○ Multimedia library ○ Stock management ○ Treatment Selector
  • 18. QM Foundations Clean Architecture Configuration layer Android variants & strategies
  • 21. ● Hide implementation details ● Split software in layers ● Follow a strict dependency rule ● Make the system testeable ● Make it easy to change details ● Presentation logic, application logic and business logic don’t depend on the technology Clean Architecture
  • 23. Configuration layer ● Parameters to activate/deactivate modules ○ ActiveMonitoringFragment ○ ActiveAVFragment ○ ActiveStockFragment ● Parameters to alter a module behaviors ○ ActiveSwipeNavigator ○ ReviewScreen ● Parameters to activate/deactivate core module functionalities ○ DevelopersOptions ○ Multiuser ○ CustomFont ● …
  • 24. Android variants & strategies
  • 25. DISCUSSION ● Community empowerment: ○ open source, many can develop ● Cooperative approach: ○ Costs of developing modules are shared between organisations ○ Quality improvement by shared testing ● Custom Android Apps costs reduced: ○ Accessible for organisations with less resources
  • 26. DISCUSSION ● When using QM and not UiO official apps? ○ They solve different problems. Look at QM entities to understand the kind of concepts that can be associated ○ QM doesn’t provide a DB constantly synced approach, but import-export data from-to DHIS2 ○ Use multiple backends and not only DHIS2 ○ Simplify user language
  • 27. DISCUSSION ● What’s next? ○ This is an announcement to the community. We’re on the way for releasing QM during the next year ○ Still a WIP. This year is crucial for its first version open to the public ○ New per-module repositories ○ Separate repo for the domain (core) ○ Documentation for developers during the next year ○ Do you want a new app with a new module? Let’s talk
  • 28. Thanks for the attention! Ignacio Foche / Adrian Quintana DHIS2 Symposium - Washington DC - 2018 QuestMark