SlideShare a Scribd company logo
Towards cross-platfrom application development
2
3
4
5 
In short 
●Native development context = 
–An application model (data and behavior) 
–A GUI 
●Cross-platform development context = 
–An application model (data and behavior) 
–A GUI 
– + A platform
6 
Our goals 
●Whatever the platform 
–A single development environment 
–A single application model 
–Be allowed to run an application without code generation 
–Be allowed to use code generation but late in the development process
7 
A cross-platform framework
8
9 
Run an application 
DAEnvironment new 
platform: DATestPlateform desktop800x600 ; 
requirements: DATestRequirements mobileAndDesktop; 
adaptation: DAMorphAdaptation new; 
withinDo: [ 
MyContactsApplication new open 
] 
DAEnvironment new 
platform: DATestPlateform desktop800x600 ; 
requirements: DATestRequirements mobileAndDesktop; 
adaptation: DAMorphAdaptation new; 
withinDo: [ 
MyContactsApplication new open 
]
10
11
12 
What is an object in Dali 
● Made of entities 
– Properties 
– Behaviors 
– GUI
13
14 
Modeling objects 
<dali:#mobile> 
ContactItemWidget>>declareDetailsButton 
^ DAButton new 
rid: #detailsButton; 
backgroundColor: Color lightGray; 
yourself
15 
DATestPlateform desktop800x600
16 
Declaring properties 
ContactItemWidget>>declareContactModel 
<dali> 
^ DAProperty new 
rid: #contactModel; 
kind: #ContactModel; 
yourself
17 
Declaring behaviours 
ContactItemWidget>>declareClickReaction 
<dali:#mobile> 
^ DAReaction new 
event: DAClickEvent; 
senderAccessor: #detailsButton asDaliAccessor; 
opReference: #openDetails; 
yourself
18 
What is an object in Dali 
● Made of entities 
– Properties 
– Behaviors 
– GUI 
● According to the platform 
– An entity may be used or not
19
20
21
22 
http://www.w3.org/TR/CSS2/box.html#margin-properties
23 
Styles API 
DATWithMargin >> declareMarginTop 
DATWithMargin >> declareMarginBottom 
DATWithMargin >> marginTop 
DATWithMargin >> marginTop: 
DATWithMargin >> marginBottom 
DATWithMargin >> marginBottom: 
... 
DATWithMargin >> declareMarginTop 
DATWithMargin >> declareMarginBottom 
DATWithMargin >> marginTop 
DATWithMargin >> marginTop: 
DATWithMargin >> marginBottom 
DATWithMargin >> marginBottom: 
... 
● According to the W3C CSS standard 
● Implemented using Traits
24 
Events API 
● According to the W3C DOM Events standard 
http://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
25 
Events API 
● According to the W3C CSS standard 
● Implemented using class hierarchy and Traits 
DATWithOnClickEvent >> dispatchClickEvent 
DATWithOnClickEvent >> onClick: 
... 
DATWithOnClickEvent >> dispatchClickEvent 
DATWithOnClickEvent >> onClick: 
...
26 
Example 
DAWidget subclass: #MyWidget 
uses: DATWithOnClickEvent + DATWithMargin 
instanceVariableNames: '' 
classVariableNames: '' 
category: 'Dali-Widget-Example' 
DAWidget subclass: #MyWidget 
uses: DATWithOnClickEvent + DATWithMargin 
instanceVariableNames: '' 
classVariableNames: '' 
category: 'Dali-Widget-Example'
27 
In a nutshell 
● Single development environment 
● Single application model 
● Agile approach 
● Widget APIs according to well known standards
28 
Future Work 
● Whole application generation 
● Aspect oriented mechanism in addition to the 
use of pragmas 
● Slot perspectives
29 
Thank you !

More Related Content

PPTX
Slideshare ppt
PPTX
Percepticus_ Node.js_Bulgaria_June_2016
PDF
2015-09-16 georchestra @ foss4g2015 Seoul
PDF
georchestra SDI: Project Status Report
PDF
LibrePlan main features
PPT
Cross platform mobile application development
PDF
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
PPTX
Latest trends in information technology
Slideshare ppt
Percepticus_ Node.js_Bulgaria_June_2016
2015-09-16 georchestra @ foss4g2015 Seoul
georchestra SDI: Project Status Report
LibrePlan main features
Cross platform mobile application development
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
Latest trends in information technology

Similar to Towards cross-platfrom application development (20)

PPTX
UI Unlimited
PPTX
Cincom® ObjectStudio® New Native GUI Implementation Preview
PDF
A Separation of Concerns: Clean Architecture on Android
PDF
Technology Trends
PPT
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
PDF
Modern UI Architecture_ Trends and Technologies in Web Development
PDF
AJAX for Mobile Devices - 04/2009
PPTX
Android Development: Approach for Agile Teams
DOC
Wecreate
PPT
NEXiDA at OMG June 2009
PDF
Modeling on the Web
PDF
Modeling on the Web
PDF
Net Maui In Action Meap V06 Chapters 1 To 9 Of 12 Matt Goldman
PPTX
2 mobile development frameworks and tools dark temp
PPTX
MBUID survey
PPTX
Windows phone and azure
PDF
Programming for non tech entrepreneurs
PDF
AS7 Console 2013
PDF
Client Continuum Dec Fy09
PPT
dotNETfinal.ppt
UI Unlimited
Cincom® ObjectStudio® New Native GUI Implementation Preview
A Separation of Concerns: Clean Architecture on Android
Technology Trends
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Modern UI Architecture_ Trends and Technologies in Web Development
AJAX for Mobile Devices - 04/2009
Android Development: Approach for Agile Teams
Wecreate
NEXiDA at OMG June 2009
Modeling on the Web
Modeling on the Web
Net Maui In Action Meap V06 Chapters 1 To 9 Of 12 Matt Goldman
2 mobile development frameworks and tools dark temp
MBUID survey
Windows phone and azure
Programming for non tech entrepreneurs
AS7 Console 2013
Client Continuum Dec Fy09
dotNETfinal.ppt
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)
Ad

Recently uploaded (20)

PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
medical staffing services at VALiNTRY
PDF
System and Network Administration Chapter 2
PPT
Introduction Database Management System for Course Database
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Nekopoi APK 2025 free lastest update
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
System and Network Administraation Chapter 3
PPTX
Computer Software and OS of computer science of grade 11.pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Designing Intelligence for the Shop Floor.pdf
medical staffing services at VALiNTRY
System and Network Administration Chapter 2
Introduction Database Management System for Course Database
Softaken Excel to vCard Converter Software.pdf
Understanding Forklifts - TECH EHS Solution
Odoo Companies in India – Driving Business Transformation.pdf
CHAPTER 2 - PM Management and IT Context
VVF-Customer-Presentation2025-Ver1.9.pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Design an Analysis of Algorithms I-SECS-1021-03
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
How to Migrate SBCGlobal Email to Yahoo Easily
Nekopoi APK 2025 free lastest update
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
System and Network Administraation Chapter 3
Computer Software and OS of computer science of grade 11.pptx

Towards cross-platfrom application development

  • 2. 2
  • 3. 3
  • 4. 4
  • 5. 5 In short ●Native development context = –An application model (data and behavior) –A GUI ●Cross-platform development context = –An application model (data and behavior) –A GUI – + A platform
  • 6. 6 Our goals ●Whatever the platform –A single development environment –A single application model –Be allowed to run an application without code generation –Be allowed to use code generation but late in the development process
  • 7. 7 A cross-platform framework
  • 8. 8
  • 9. 9 Run an application DAEnvironment new platform: DATestPlateform desktop800x600 ; requirements: DATestRequirements mobileAndDesktop; adaptation: DAMorphAdaptation new; withinDo: [ MyContactsApplication new open ] DAEnvironment new platform: DATestPlateform desktop800x600 ; requirements: DATestRequirements mobileAndDesktop; adaptation: DAMorphAdaptation new; withinDo: [ MyContactsApplication new open ]
  • 10. 10
  • 11. 11
  • 12. 12 What is an object in Dali ● Made of entities – Properties – Behaviors – GUI
  • 13. 13
  • 14. 14 Modeling objects <dali:#mobile> ContactItemWidget>>declareDetailsButton ^ DAButton new rid: #detailsButton; backgroundColor: Color lightGray; yourself
  • 16. 16 Declaring properties ContactItemWidget>>declareContactModel <dali> ^ DAProperty new rid: #contactModel; kind: #ContactModel; yourself
  • 17. 17 Declaring behaviours ContactItemWidget>>declareClickReaction <dali:#mobile> ^ DAReaction new event: DAClickEvent; senderAccessor: #detailsButton asDaliAccessor; opReference: #openDetails; yourself
  • 18. 18 What is an object in Dali ● Made of entities – Properties – Behaviors – GUI ● According to the platform – An entity may be used or not
  • 19. 19
  • 20. 20
  • 21. 21
  • 23. 23 Styles API DATWithMargin >> declareMarginTop DATWithMargin >> declareMarginBottom DATWithMargin >> marginTop DATWithMargin >> marginTop: DATWithMargin >> marginBottom DATWithMargin >> marginBottom: ... DATWithMargin >> declareMarginTop DATWithMargin >> declareMarginBottom DATWithMargin >> marginTop DATWithMargin >> marginTop: DATWithMargin >> marginBottom DATWithMargin >> marginBottom: ... ● According to the W3C CSS standard ● Implemented using Traits
  • 24. 24 Events API ● According to the W3C DOM Events standard http://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
  • 25. 25 Events API ● According to the W3C CSS standard ● Implemented using class hierarchy and Traits DATWithOnClickEvent >> dispatchClickEvent DATWithOnClickEvent >> onClick: ... DATWithOnClickEvent >> dispatchClickEvent DATWithOnClickEvent >> onClick: ...
  • 26. 26 Example DAWidget subclass: #MyWidget uses: DATWithOnClickEvent + DATWithMargin instanceVariableNames: '' classVariableNames: '' category: 'Dali-Widget-Example' DAWidget subclass: #MyWidget uses: DATWithOnClickEvent + DATWithMargin instanceVariableNames: '' classVariableNames: '' category: 'Dali-Widget-Example'
  • 27. 27 In a nutshell ● Single development environment ● Single application model ● Agile approach ● Widget APIs according to well known standards
  • 28. 28 Future Work ● Whole application generation ● Aspect oriented mechanism in addition to the use of pragmas ● Slot perspectives