SlideShare a Scribd company logo
Tobias Dürschmid, Matthias Trapp, Jürgen Döllner
Hasso Plattner Institute, University of Potsdam
Potsdam, Germany
Towards Architectural Styles for Android
App Software Product Lines
Case Study
• Image Stylization App SPL with six apps (>60 KLOC)
• Amount of reuse >90%
2
Towards Architectural Styles for Android App Software Product Lines
Challenges for Android App SPLs
• No general reuse model for features
Fragments have to have a UI
• Inflexibility of feature models
Static preference entries
• Inapplicability of classical SPL techniques
Lack of tool support for AOP in Android
3
Towards Architectural Styles for Android App Software Product Lines
Activity Extensions
• Problem: No general reuse model for activities
• Solution: Modularize concerns in reusable classes
with unique interface
4
Towards Architectural Styles for Android App Software Product Lines
Activity Connectors
5
Towards Architectural Styles for Android App Software Product Lines
• Problem: Provide custom workflow for each apps
• Solution: Create an activity state machine
Each app refines the activity state machine
SenderActivity × TransitionEvent → TargetIntent
Dynamic Preference Entries
6
Towards Architectural Styles for Android App Software Product Lines
• Problem: In Android, user-visible settings are
statically defined in an XML file
• Solution:
– Define a class Preference Record managing preferences
(load / save / reset / set value)
– A Factory creates them conveniently
Separated Behavior Description
7
Towards Architectural Styles for Android App Software Product Lines
• Problem: Common domain
but different use cases per
app
• Solution: inject the behavior
and the content of the
concrete apps by separately
defining it using a high-level
configuration language.
Feature Model using Android Resources
8
Towards Architectural Styles for Android App Software Product Lines
• Problem: How to apply feature models to Android
apps?
• Solution:
– Define a configuration file in the Android
resources of the core asset module.
– Override the value in sub modules
Conclusions
9
Towards Architectural Styles for Android App Software Product Lines
• Simplify developing Android app SPLs
• Tailor apps to different target groups
• High amount of reuse
Contact
10
Towards Architectural Styles for Android App Software Product Lines
• Tobias Dürschmid
tobias.duerschmid@student.hpi.de
• Matthias Trapp
matthias.trapp@hpi.de
• Jürgen Döllner
juergen.doellner@hpi.de
http://www.4dndvis.de
https://hpi.de/doellner/index.html
https://www.youtube.com/user/HPICGS
This work was funded by the Federal Ministry of
Education and Research (BMBF), Germany within the
InnoProfile Transfer research group "4DnD-Vis".

More Related Content

Similar to Towards Architectural Styles for Android App Software Product Lines

ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
arpitlamba32599
 
Mobile media module part 6 - app development rev-mf
Mobile media module   part 6 - app development rev-mfMobile media module   part 6 - app development rev-mf
Mobile media module part 6 - app development rev-mf
Michelle Ferrier
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
tubashaikh26
 
SDLC MODEL
SDLC MODEL SDLC MODEL
SDLC MODEL
KOMAL DAHERIYA
 
e3-chap-06.ppt
e3-chap-06.ppte3-chap-06.ppt
e3-chap-06.ppt
MonjurRayhan
 
btech-final year-human computer interaction-hci.ppt
btech-final year-human computer interaction-hci.pptbtech-final year-human computer interaction-hci.ppt
btech-final year-human computer interaction-hci.ppt
Sandhya Gandham
 
HCI-in-sw-process.ppt
HCI-in-sw-process.pptHCI-in-sw-process.ppt
HCI-in-sw-process.ppt
Ganeshpatil499846
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
Johan den Haan
 
Material Design - Høgskolen Ringerike 2017
Material Design - Høgskolen Ringerike 2017Material Design - Høgskolen Ringerike 2017
Material Design - Høgskolen Ringerike 2017
Konstantin Loginov
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!
Tim Geisler
 
Unit ii
Unit   iiUnit   ii
Google IO 2018
Google IO 2018Google IO 2018
Google IO 2018
Vishal Nayak
 
Kevin Whinnery: Best Practices for Cross-Platform Mobile Development
Kevin Whinnery: Best Practices for Cross-Platform Mobile DevelopmentKevin Whinnery: Best Practices for Cross-Platform Mobile Development
Kevin Whinnery: Best Practices for Cross-Platform Mobile Development
Axway Appcelerator
 
Software process model
Software process modelSoftware process model
Software process model
Muhammad Yousuf Abdul Qadir
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)
Peter Presnell
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
Asma CHERIF
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
Nishu Rastogi
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
Jason Baragry
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
kim.mens
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptx
JAGADEESWARIS6
 

Similar to Towards Architectural Styles for Android App Software Product Lines (20)

ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
Mobile media module part 6 - app development rev-mf
Mobile media module   part 6 - app development rev-mfMobile media module   part 6 - app development rev-mf
Mobile media module part 6 - app development rev-mf
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
SDLC MODEL
SDLC MODEL SDLC MODEL
SDLC MODEL
 
e3-chap-06.ppt
e3-chap-06.ppte3-chap-06.ppt
e3-chap-06.ppt
 
btech-final year-human computer interaction-hci.ppt
btech-final year-human computer interaction-hci.pptbtech-final year-human computer interaction-hci.ppt
btech-final year-human computer interaction-hci.ppt
 
HCI-in-sw-process.ppt
HCI-in-sw-process.pptHCI-in-sw-process.ppt
HCI-in-sw-process.ppt
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
Material Design - Høgskolen Ringerike 2017
Material Design - Høgskolen Ringerike 2017Material Design - Høgskolen Ringerike 2017
Material Design - Høgskolen Ringerike 2017
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!
 
Unit ii
Unit   iiUnit   ii
Unit ii
 
Google IO 2018
Google IO 2018Google IO 2018
Google IO 2018
 
Kevin Whinnery: Best Practices for Cross-Platform Mobile Development
Kevin Whinnery: Best Practices for Cross-Platform Mobile DevelopmentKevin Whinnery: Best Practices for Cross-Platform Mobile Development
Kevin Whinnery: Best Practices for Cross-Platform Mobile Development
 
Software process model
Software process modelSoftware process model
Software process model
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptx
 

More from Matthias Trapp

Interactive Control over Temporal Consistency while Stylizing Video Streams
Interactive Control over Temporal Consistency while Stylizing Video StreamsInteractive Control over Temporal Consistency while Stylizing Video Streams
Interactive Control over Temporal Consistency while Stylizing Video Streams
Matthias Trapp
 
A Framework for Art-directed Augmentation of Human Motion in Videos on Mobile...
A Framework for Art-directed Augmentation of Human Motion in Videos on Mobile...A Framework for Art-directed Augmentation of Human Motion in Videos on Mobile...
A Framework for Art-directed Augmentation of Human Motion in Videos on Mobile...
Matthias Trapp
 
A Framework for Interactive 3D Photo Stylization Techniques on Mobile Devices
A Framework for Interactive 3D Photo Stylization Techniques on Mobile DevicesA Framework for Interactive 3D Photo Stylization Techniques on Mobile Devices
A Framework for Interactive 3D Photo Stylization Techniques on Mobile Devices
Matthias Trapp
 
ALIVE-Adaptive Chromaticity for Interactive Low-light Image and Video Enhance...
ALIVE-Adaptive Chromaticity for Interactive Low-light Image and Video Enhance...ALIVE-Adaptive Chromaticity for Interactive Low-light Image and Video Enhance...
ALIVE-Adaptive Chromaticity for Interactive Low-light Image and Video Enhance...
Matthias Trapp
 
A Service-based Preset Recommendation System for Image Stylization Applications
A Service-based Preset Recommendation System for Image Stylization ApplicationsA Service-based Preset Recommendation System for Image Stylization Applications
A Service-based Preset Recommendation System for Image Stylization Applications
Matthias Trapp
 
Design Space of Geometry-based Image Abstraction Techniques with Vectorizatio...
Design Space of Geometry-based Image Abstraction Techniques with Vectorizatio...Design Space of Geometry-based Image Abstraction Techniques with Vectorizatio...
Design Space of Geometry-based Image Abstraction Techniques with Vectorizatio...
Matthias Trapp
 
A Benchmark for the Use of Topic Models for Text Visualization Tasks - Online...
A Benchmark for the Use of Topic Models for Text Visualization Tasks - Online...A Benchmark for the Use of Topic Models for Text Visualization Tasks - Online...
A Benchmark for the Use of Topic Models for Text Visualization Tasks - Online...
Matthias Trapp
 
Efficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL APIEfficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL API
Matthias Trapp
 
CodeCV - Mining Expertise of GitHub Users from Coding Activities - Online.pdf
CodeCV - Mining Expertise of GitHub Users from Coding Activities - Online.pdfCodeCV - Mining Expertise of GitHub Users from Coding Activities - Online.pdf
CodeCV - Mining Expertise of GitHub Users from Coding Activities - Online.pdf
Matthias Trapp
 
Non-Photorealistic Rendering of 3D Point Clouds for Cartographic Visualization
Non-Photorealistic Rendering of 3D Point Clouds for Cartographic VisualizationNon-Photorealistic Rendering of 3D Point Clouds for Cartographic Visualization
Non-Photorealistic Rendering of 3D Point Clouds for Cartographic Visualization
Matthias Trapp
 
TWIN4ROAD - Erfassung Analyse und Auswertung mobiler Multi Sensorik im Strass...
TWIN4ROAD - Erfassung Analyse und Auswertung mobiler Multi Sensorik im Strass...TWIN4ROAD - Erfassung Analyse und Auswertung mobiler Multi Sensorik im Strass...
TWIN4ROAD - Erfassung Analyse und Auswertung mobiler Multi Sensorik im Strass...
Matthias Trapp
 
Interactive Close-Up Rendering for Detail+Overview Visualization of 3D Digita...
Interactive Close-Up Rendering for Detail+Overview Visualization of 3D Digita...Interactive Close-Up Rendering for Detail+Overview Visualization of 3D Digita...
Interactive Close-Up Rendering for Detail+Overview Visualization of 3D Digita...
Matthias Trapp
 
Web-based and Mobile Provisioning of Virtual 3D Reconstructions
Web-based and Mobile Provisioning of Virtual 3D ReconstructionsWeb-based and Mobile Provisioning of Virtual 3D Reconstructions
Web-based and Mobile Provisioning of Virtual 3D Reconstructions
Matthias Trapp
 
Visualization of Knowledge Distribution across Development Teams using 2.5D S...
Visualization of Knowledge Distribution across Development Teams using 2.5D S...Visualization of Knowledge Distribution across Development Teams using 2.5D S...
Visualization of Knowledge Distribution across Development Teams using 2.5D S...
Matthias Trapp
 
Real-time Screen-space Geometry Draping for 3D Digital Terrain Models
Real-time Screen-space Geometry Draping for 3D Digital Terrain ModelsReal-time Screen-space Geometry Draping for 3D Digital Terrain Models
Real-time Screen-space Geometry Draping for 3D Digital Terrain Models
Matthias Trapp
 
FERMIUM - A Framework for Real-time Procedural Point Cloud Animation & Morphing
FERMIUM - A Framework for Real-time Procedural Point Cloud Animation & MorphingFERMIUM - A Framework for Real-time Procedural Point Cloud Animation & Morphing
FERMIUM - A Framework for Real-time Procedural Point Cloud Animation & Morphing
Matthias Trapp
 
Interactive Editing of Signed Distance Fields
Interactive Editing of Signed Distance FieldsInteractive Editing of Signed Distance Fields
Interactive Editing of Signed Distance Fields
Matthias Trapp
 
Integration of Image Processing Techniques into the Unity Game Engine
Integration of Image Processing Techniques into the Unity Game EngineIntegration of Image Processing Techniques into the Unity Game Engine
Integration of Image Processing Techniques into the Unity Game Engine
Matthias Trapp
 
Interactive GPU-based Image Deformation for Mobile Devices
Interactive GPU-based Image Deformation for Mobile DevicesInteractive GPU-based Image Deformation for Mobile Devices
Interactive GPU-based Image Deformation for Mobile Devices
Matthias Trapp
 
Interactive Photo Editing on Smartphones via Intrinsic Decomposition
Interactive Photo Editing on Smartphones via Intrinsic DecompositionInteractive Photo Editing on Smartphones via Intrinsic Decomposition
Interactive Photo Editing on Smartphones via Intrinsic Decomposition
Matthias Trapp
 

More from Matthias Trapp (20)

Interactive Control over Temporal Consistency while Stylizing Video Streams
Interactive Control over Temporal Consistency while Stylizing Video StreamsInteractive Control over Temporal Consistency while Stylizing Video Streams
Interactive Control over Temporal Consistency while Stylizing Video Streams
 
A Framework for Art-directed Augmentation of Human Motion in Videos on Mobile...
A Framework for Art-directed Augmentation of Human Motion in Videos on Mobile...A Framework for Art-directed Augmentation of Human Motion in Videos on Mobile...
A Framework for Art-directed Augmentation of Human Motion in Videos on Mobile...
 
A Framework for Interactive 3D Photo Stylization Techniques on Mobile Devices
A Framework for Interactive 3D Photo Stylization Techniques on Mobile DevicesA Framework for Interactive 3D Photo Stylization Techniques on Mobile Devices
A Framework for Interactive 3D Photo Stylization Techniques on Mobile Devices
 
ALIVE-Adaptive Chromaticity for Interactive Low-light Image and Video Enhance...
ALIVE-Adaptive Chromaticity for Interactive Low-light Image and Video Enhance...ALIVE-Adaptive Chromaticity for Interactive Low-light Image and Video Enhance...
ALIVE-Adaptive Chromaticity for Interactive Low-light Image and Video Enhance...
 
A Service-based Preset Recommendation System for Image Stylization Applications
A Service-based Preset Recommendation System for Image Stylization ApplicationsA Service-based Preset Recommendation System for Image Stylization Applications
A Service-based Preset Recommendation System for Image Stylization Applications
 
Design Space of Geometry-based Image Abstraction Techniques with Vectorizatio...
Design Space of Geometry-based Image Abstraction Techniques with Vectorizatio...Design Space of Geometry-based Image Abstraction Techniques with Vectorizatio...
Design Space of Geometry-based Image Abstraction Techniques with Vectorizatio...
 
A Benchmark for the Use of Topic Models for Text Visualization Tasks - Online...
A Benchmark for the Use of Topic Models for Text Visualization Tasks - Online...A Benchmark for the Use of Topic Models for Text Visualization Tasks - Online...
A Benchmark for the Use of Topic Models for Text Visualization Tasks - Online...
 
Efficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL APIEfficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL API
 
CodeCV - Mining Expertise of GitHub Users from Coding Activities - Online.pdf
CodeCV - Mining Expertise of GitHub Users from Coding Activities - Online.pdfCodeCV - Mining Expertise of GitHub Users from Coding Activities - Online.pdf
CodeCV - Mining Expertise of GitHub Users from Coding Activities - Online.pdf
 
Non-Photorealistic Rendering of 3D Point Clouds for Cartographic Visualization
Non-Photorealistic Rendering of 3D Point Clouds for Cartographic VisualizationNon-Photorealistic Rendering of 3D Point Clouds for Cartographic Visualization
Non-Photorealistic Rendering of 3D Point Clouds for Cartographic Visualization
 
TWIN4ROAD - Erfassung Analyse und Auswertung mobiler Multi Sensorik im Strass...
TWIN4ROAD - Erfassung Analyse und Auswertung mobiler Multi Sensorik im Strass...TWIN4ROAD - Erfassung Analyse und Auswertung mobiler Multi Sensorik im Strass...
TWIN4ROAD - Erfassung Analyse und Auswertung mobiler Multi Sensorik im Strass...
 
Interactive Close-Up Rendering for Detail+Overview Visualization of 3D Digita...
Interactive Close-Up Rendering for Detail+Overview Visualization of 3D Digita...Interactive Close-Up Rendering for Detail+Overview Visualization of 3D Digita...
Interactive Close-Up Rendering for Detail+Overview Visualization of 3D Digita...
 
Web-based and Mobile Provisioning of Virtual 3D Reconstructions
Web-based and Mobile Provisioning of Virtual 3D ReconstructionsWeb-based and Mobile Provisioning of Virtual 3D Reconstructions
Web-based and Mobile Provisioning of Virtual 3D Reconstructions
 
Visualization of Knowledge Distribution across Development Teams using 2.5D S...
Visualization of Knowledge Distribution across Development Teams using 2.5D S...Visualization of Knowledge Distribution across Development Teams using 2.5D S...
Visualization of Knowledge Distribution across Development Teams using 2.5D S...
 
Real-time Screen-space Geometry Draping for 3D Digital Terrain Models
Real-time Screen-space Geometry Draping for 3D Digital Terrain ModelsReal-time Screen-space Geometry Draping for 3D Digital Terrain Models
Real-time Screen-space Geometry Draping for 3D Digital Terrain Models
 
FERMIUM - A Framework for Real-time Procedural Point Cloud Animation & Morphing
FERMIUM - A Framework for Real-time Procedural Point Cloud Animation & MorphingFERMIUM - A Framework for Real-time Procedural Point Cloud Animation & Morphing
FERMIUM - A Framework for Real-time Procedural Point Cloud Animation & Morphing
 
Interactive Editing of Signed Distance Fields
Interactive Editing of Signed Distance FieldsInteractive Editing of Signed Distance Fields
Interactive Editing of Signed Distance Fields
 
Integration of Image Processing Techniques into the Unity Game Engine
Integration of Image Processing Techniques into the Unity Game EngineIntegration of Image Processing Techniques into the Unity Game Engine
Integration of Image Processing Techniques into the Unity Game Engine
 
Interactive GPU-based Image Deformation for Mobile Devices
Interactive GPU-based Image Deformation for Mobile DevicesInteractive GPU-based Image Deformation for Mobile Devices
Interactive GPU-based Image Deformation for Mobile Devices
 
Interactive Photo Editing on Smartphones via Intrinsic Decomposition
Interactive Photo Editing on Smartphones via Intrinsic DecompositionInteractive Photo Editing on Smartphones via Intrinsic Decomposition
Interactive Photo Editing on Smartphones via Intrinsic Decomposition
 

Recently uploaded

Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 

Recently uploaded (20)

Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 

Towards Architectural Styles for Android App Software Product Lines

  • 1. Tobias Dürschmid, Matthias Trapp, Jürgen Döllner Hasso Plattner Institute, University of Potsdam Potsdam, Germany Towards Architectural Styles for Android App Software Product Lines
  • 2. Case Study • Image Stylization App SPL with six apps (>60 KLOC) • Amount of reuse >90% 2 Towards Architectural Styles for Android App Software Product Lines
  • 3. Challenges for Android App SPLs • No general reuse model for features Fragments have to have a UI • Inflexibility of feature models Static preference entries • Inapplicability of classical SPL techniques Lack of tool support for AOP in Android 3 Towards Architectural Styles for Android App Software Product Lines
  • 4. Activity Extensions • Problem: No general reuse model for activities • Solution: Modularize concerns in reusable classes with unique interface 4 Towards Architectural Styles for Android App Software Product Lines
  • 5. Activity Connectors 5 Towards Architectural Styles for Android App Software Product Lines • Problem: Provide custom workflow for each apps • Solution: Create an activity state machine Each app refines the activity state machine SenderActivity × TransitionEvent → TargetIntent
  • 6. Dynamic Preference Entries 6 Towards Architectural Styles for Android App Software Product Lines • Problem: In Android, user-visible settings are statically defined in an XML file • Solution: – Define a class Preference Record managing preferences (load / save / reset / set value) – A Factory creates them conveniently
  • 7. Separated Behavior Description 7 Towards Architectural Styles for Android App Software Product Lines • Problem: Common domain but different use cases per app • Solution: inject the behavior and the content of the concrete apps by separately defining it using a high-level configuration language.
  • 8. Feature Model using Android Resources 8 Towards Architectural Styles for Android App Software Product Lines • Problem: How to apply feature models to Android apps? • Solution: – Define a configuration file in the Android resources of the core asset module. – Override the value in sub modules
  • 9. Conclusions 9 Towards Architectural Styles for Android App Software Product Lines • Simplify developing Android app SPLs • Tailor apps to different target groups • High amount of reuse
  • 10. Contact 10 Towards Architectural Styles for Android App Software Product Lines • Tobias Dürschmid tobias.duerschmid@student.hpi.de • Matthias Trapp matthias.trapp@hpi.de • Jürgen Döllner juergen.doellner@hpi.de http://www.4dndvis.de https://hpi.de/doellner/index.html https://www.youtube.com/user/HPICGS This work was funded by the Federal Ministry of Education and Research (BMBF), Germany within the InnoProfile Transfer research group "4DnD-Vis".