SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Acceleo Code Generation
                              Let's start with an Android example


          Jonathan Musset - jonathan.musset@obeo.fr
          Obeo




                                                                    1
Acceleo Code Generation
                                                          Let's start with an Android example




  Acceleo : what's that new code generation engine?

        Meta-model and templates based technology

        Implementation of the Model To Text OMG standard (MTL)

        Eclipse Modelling / M2T project

        Pragmatic approach – How to start from example?




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                              Let's start with an Android example




  This is a Quick Tutorial – My goals

        Beginners will see a simple but concrete case-study

        Acceleo addicts will discover some new killing features

        Android experts will learn enough of the basics to be able to create advanced
        code generator in a few days. As you will see, I'm not an Android expert...




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                                  Let's start with an Android example




  Prototype based approach – Starting from an example

        A classic example of Android application : « MyContacts »

        « We would like to be able to fully generate the same kind of application »


                                                         MyContacts




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                                   Let's start with an Android example




  The prototype sources and the model

        Different kinds of sources to be generated!
                Java UI, Java DB, XML, properties...



        The model must contain all the specific settings of the application
                Android Activity, Entity Fields...



        One model element → « N » generated text parts




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                           Let's start with an Android example




  Initialize the Android code generation project

        An MTL file for each kind of generated file




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                             Let's start with an Android example




  Initialize the workflow – The main entry point

        An MTL file that calls the other ones... (Mentioned in the OMG specification)

        Java / MWE / ANT? Call the Java Standalone API to run the code generation!




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                Let's start with an Android example




  Editing the code generator – Quick replacement




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                Let's start with an Android example




  Editing the code generator – Quick hierarchy tree




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                Let's start with an Android example




  Run and test the generated version of the prototype

                                            MyContacts




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                Let's start with an Android example




  Run on other models to create new applications...




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                               Let's start with an Android example




  A little bit about incremental generation

        « My web service is conserved when I generate the application again »

        → Defining specific coding zones with user tags [protected]

        → Using JMerge with the @generated annotation




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                            Let's start with an Android example




  Workbench Acceleo views – Edit and maintain!

        The « Result View » to show how the text and the model are synchronized

        The « Overrides View » to override an existing template behavior

        The « Patterns View » to define your own completion proposal




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                                               Let's start with an Android example




  Conclusion

        Now you can make a complete Android code generator (more widgets...)

        We plan to have Acceleo graduate along with the Helios release

        Version 3.0 – The last stable release out of Eclipse was 2.x




© Copyright Obeo | 22 March, 2010
Acceleo Code Generation
                                 Let's start with an Android example


          Jonathan Musset - jonathan.musset@obeo.fr
          Obeo




                                                                       15

Más contenido relacionado

Similar a Acceleo - Let's start with an Android example

Telerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSTelerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSRainer Stropek
 
Acing architecture
Acing architectureAcing architecture
Acing architectureColin Lee
 
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCU
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCUCloud Computing: IC4 Cloud On-Boarding Clinic, DCU
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCUkantanmt
 
Whats New in Visual Studio 2019
Whats New in Visual Studio 2019Whats New in Visual Studio 2019
Whats New in Visual Studio 2019Luis Beltran
 
Micro-Frontends JSVidCon
Micro-Frontends JSVidConMicro-Frontends JSVidCon
Micro-Frontends JSVidConAmir Zuker
 
Conference DotJS 2015 Paris review
Conference DotJS 2015 Paris reviewConference DotJS 2015 Paris review
Conference DotJS 2015 Paris reviewOleksii Prohonnyi
 
The best way to create and deploy web apps with full-stack type safety - Mete...
The best way to create and deploy web apps with full-stack type safety - Mete...The best way to create and deploy web apps with full-stack type safety - Mete...
The best way to create and deploy web apps with full-stack type safety - Mete...Frederico Maia Arantes
 
Owasp Code Crawler Presentation
Owasp Code Crawler PresentationOwasp Code Crawler Presentation
Owasp Code Crawler Presentationalessiomarziali
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015Jollen Chen
 
MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010fmadiot
 
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanCara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanDicodingEvent
 
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. MolinaACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. MolinaPedro J. Molina
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17Celine George
 
VIPER Architecture
VIPER ArchitectureVIPER Architecture
VIPER ArchitectureAhmed Lotfy
 
Tutorial introduction to OSGi
Tutorial introduction to OSGiTutorial introduction to OSGi
Tutorial introduction to OSGiPaul Bakker
 
Android Annotations and RoboGuice
Android Annotations and RoboGuiceAndroid Annotations and RoboGuice
Android Annotations and RoboGuiceJoel Sticha
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstEnea Gabriel
 

Similar a Acceleo - Let's start with an Android example (20)

Telerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSTelerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJS
 
Acing architecture
Acing architectureAcing architecture
Acing architecture
 
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCU
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCUCloud Computing: IC4 Cloud On-Boarding Clinic, DCU
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCU
 
Whats New in Visual Studio 2019
Whats New in Visual Studio 2019Whats New in Visual Studio 2019
Whats New in Visual Studio 2019
 
Micro-Frontends JSVidCon
Micro-Frontends JSVidConMicro-Frontends JSVidCon
Micro-Frontends JSVidCon
 
Conference DotJS 2015 Paris review
Conference DotJS 2015 Paris reviewConference DotJS 2015 Paris review
Conference DotJS 2015 Paris review
 
2010 06 22 omg - obeo
2010 06 22   omg - obeo2010 06 22   omg - obeo
2010 06 22 omg - obeo
 
The best way to create and deploy web apps with full-stack type safety - Mete...
The best way to create and deploy web apps with full-stack type safety - Mete...The best way to create and deploy web apps with full-stack type safety - Mete...
The best way to create and deploy web apps with full-stack type safety - Mete...
 
Owasp Code Crawler Presentation
Owasp Code Crawler PresentationOwasp Code Crawler Presentation
Owasp Code Crawler Presentation
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015
 
MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010
 
What is MVVM?
What is MVVM?What is MVVM?
What is MVVM?
 
DAY1.pptx
DAY1.pptxDAY1.pptx
DAY1.pptx
 
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanCara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
 
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. MolinaACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17
 
VIPER Architecture
VIPER ArchitectureVIPER Architecture
VIPER Architecture
 
Tutorial introduction to OSGi
Tutorial introduction to OSGiTutorial introduction to OSGi
Tutorial introduction to OSGi
 
Android Annotations and RoboGuice
Android Annotations and RoboGuiceAndroid Annotations and RoboGuice
Android Annotations and RoboGuice
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code First
 

Último

Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 

Último (20)

Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 

Acceleo - Let's start with an Android example

  • 1. Acceleo Code Generation Let's start with an Android example Jonathan Musset - jonathan.musset@obeo.fr Obeo 1
  • 2. Acceleo Code Generation Let's start with an Android example Acceleo : what's that new code generation engine? Meta-model and templates based technology Implementation of the Model To Text OMG standard (MTL) Eclipse Modelling / M2T project Pragmatic approach – How to start from example? © Copyright Obeo | 22 March, 2010
  • 3. Acceleo Code Generation Let's start with an Android example This is a Quick Tutorial – My goals Beginners will see a simple but concrete case-study Acceleo addicts will discover some new killing features Android experts will learn enough of the basics to be able to create advanced code generator in a few days. As you will see, I'm not an Android expert... © Copyright Obeo | 22 March, 2010
  • 4. Acceleo Code Generation Let's start with an Android example Prototype based approach – Starting from an example A classic example of Android application : « MyContacts » « We would like to be able to fully generate the same kind of application » MyContacts © Copyright Obeo | 22 March, 2010
  • 5. Acceleo Code Generation Let's start with an Android example The prototype sources and the model Different kinds of sources to be generated! Java UI, Java DB, XML, properties... The model must contain all the specific settings of the application Android Activity, Entity Fields... One model element → « N » generated text parts © Copyright Obeo | 22 March, 2010
  • 6. Acceleo Code Generation Let's start with an Android example Initialize the Android code generation project An MTL file for each kind of generated file © Copyright Obeo | 22 March, 2010
  • 7. Acceleo Code Generation Let's start with an Android example Initialize the workflow – The main entry point An MTL file that calls the other ones... (Mentioned in the OMG specification) Java / MWE / ANT? Call the Java Standalone API to run the code generation! © Copyright Obeo | 22 March, 2010
  • 8. Acceleo Code Generation Let's start with an Android example Editing the code generator – Quick replacement © Copyright Obeo | 22 March, 2010
  • 9. Acceleo Code Generation Let's start with an Android example Editing the code generator – Quick hierarchy tree © Copyright Obeo | 22 March, 2010
  • 10. Acceleo Code Generation Let's start with an Android example Run and test the generated version of the prototype MyContacts © Copyright Obeo | 22 March, 2010
  • 11. Acceleo Code Generation Let's start with an Android example Run on other models to create new applications... © Copyright Obeo | 22 March, 2010
  • 12. Acceleo Code Generation Let's start with an Android example A little bit about incremental generation « My web service is conserved when I generate the application again » → Defining specific coding zones with user tags [protected] → Using JMerge with the @generated annotation © Copyright Obeo | 22 March, 2010
  • 13. Acceleo Code Generation Let's start with an Android example Workbench Acceleo views – Edit and maintain! The « Result View » to show how the text and the model are synchronized The « Overrides View » to override an existing template behavior The « Patterns View » to define your own completion proposal © Copyright Obeo | 22 March, 2010
  • 14. Acceleo Code Generation Let's start with an Android example Conclusion Now you can make a complete Android code generator (more widgets...) We plan to have Acceleo graduate along with the Helios release Version 3.0 – The last stable release out of Eclipse was 2.x © Copyright Obeo | 22 March, 2010
  • 15. Acceleo Code Generation Let's start with an Android example Jonathan Musset - jonathan.musset@obeo.fr Obeo 15