SlideShare une entreprise Scribd logo
1  sur  44
Multichannel
    User Interfaces
         Pedro J. Molina, PhD.   pjmolina@icinetic.com
                                 @pmolinam

         Rubén Jiménez           rjimenez@icinetic.com
                                 @rubenjmarrufo
Contents
   Introduction
   UIs and multichannel
   UI Technologies
   UI Model & Code Generation
   Demos
   Conclusions
   Q&A

      © Icinetic 2012            2
Introduction



 We do MDSD Tools for developers
 Focused on .NET technologies &
  Architecture services
 HQ in Seville, Spain, EU


                       © Icinetic 2012   3
Introduction
 Pervasive User Interfaces
 Contextual

 Services across devices

 Costs of making and distributing Software



                       © Icinetic 2012        4
UIs and multichannel




       © Icinetic 2012   5
UIs and multichannel
 One day in the future:
     There could be a unique SW language
     And a unique HW platform
     Able to drive all your gadgets and devices
     Contextual
     Able to follow you across changing your context,
      location or device



                          © Icinetic 2012                6
UIs and multichannel
 However, in the meanwhile, we have:
   Many devices
   Many HW choices
   Many SW platforms to build for

             Difficult choice: Where to invest?




                        © Icinetic 2012           7
UIs and multichannel
 Businesses need to provide
   Access to product and services to the great market-
    share as possible
   Different platforms: fragment the market when
    launching a new product or service
   Technology is just a commodity
   Technology diversity increases the costs of market
    acquisition


                        © Icinetic 2012                   8
UI Technologies
 Choose your flavour:

                                                          ?
                         Smartphone        Smartphone
                             Tablet          Tablet


                                                v 3.1.3
                                                v 4.2.1
                                                  v 5.1



                         © Icinetic 2012                  9
UI Development

 Then
   Hire a good development team
   Don’t forget designers and UX
   Keep them focused and happy!




                    © Icinetic 2012   10
Required UI programming skills
 Main platforms:
Platform         Languages                         IDE
The Web          HTML5 + CSS3 + JavaScript         None/Many
                 + Server side lang.
Windows          XAML + C#                         Visual Studio, Expression Blend
Apple            Objective-C + Cocoa               XCode
Java / Android   Java + UI toolkit                 Eclipse


                                     Difficult to master all of them!

                                 © Icinetic 2012                                     11
UI Technologies
 Variable and moving target
    Hardware: new devices every 6 months
    Software: new OS mobile versions every
     year
    APIs: new APIs, all the time!




    Not an easy train to follow!


                              © Icinetic 2012   12
UI Style-guides
 iOS

 Android

 WP7 / W8 Metro




                   © Icinetic 2012   13
UI Style-guides
 Each platform provides a differentiated one
   Involving not only aesthetics aspects

   But also UX aspects on device accordingly to the style of
    interaction

   Application on a device should behave coherent with the
    platform


   Not all applications fits well on each device

                             © Icinetic 2012                    14
Is there space for modelling
           and code generated UIs?
 Probably
    not for “radically original” games
    and not for new interaction styles


 But convenient and efficient for day to day
    Information Systems
    Information production / consumption needs
    Business Software

                          © Icinetic 2012         15
Once again: Art or Engineering?




             © Icinetic 2012      16
Once again: Art or Engineering?




                               Both!
             © Icinetic 2012           17
© Icinetic
             18
2012
© Icinetic
             19
2012
UIs and plumbing
 Behind a good User Interface
   There is a lot of plumbing


 Definition: (Developer) Plumbing
   Repetitive infrastructure code with small
    variations
   Boring to write, source of bugs
   Low added value
   But: needed to run the full application

                             © Icinetic 2012    20
Plumbing samples: UI Architecture
 UI frameworks
   MVC

   MVVM

   MVP
      Supervising Controller
      Passive View


                           © Icinetic 2012   21
Plumbing sample: Comms
 Service invocation

    RPC / Binary

    Web Services / SOAP

    REST / JSON

    HTTP / HTTPS / SPEEDY
     / WebSockets

                           © Icinetic 2012   22
UI Modelling Hypothesis
 So:
  1.    Can we raise the level of abstraction and capture
        the essence of the UI in a model?

  2. Can we alleviate the developers plumbing pain?

  3. Can we expose this UI on multiple channels and
     technologies?


                           © Icinetic 2012                  23
What’s changes in a UI?
 Technology

 Style guides

 Widgets and concrete interaction

 Plumbing: platform/tech specific



                       © Icinetic 2012   24
What’s remains immutable in a UI?
 Patterns & UX principles
     A Master-Detail will be always a Master-Detail
     A Filter
     A collection of objects
     Navigation
     Command
     Selection
     Task …

                          © Icinetic 2012              25
Conceptual UI Patterns
       Login
       Instance
       Population
       Master/Detail
       Service
       Wizard
       Filter
       …                     pjmolina.com/cuip

            © Icinetic 2012                  26
CUIP: Population
 Set of objects                   Rendering
      Filter                        Grid
      Order criteria                Table
      Display set                   List
      Actions
      Navigation




                © Icinetic 2012                 27
CUIP: Population
 Set of objects                   Rendering
      Filter                        Grid
      Order criteria                Table
      Display set                   List
      Actions
      Navigation




                © Icinetic 2012                 28
CUIP: Population
 Set of objects                   Rendering
      Filter                        Grid
      Order criteria                Table
      Display set                   List
      Actions
      Navigation




                © Icinetic 2012                 29
CUIP: Population
 Set of objects                   Rendering
      Filter                        Grid
      Order criteria                Table
      Display set                   List
      Actions
      Navigation




                © Icinetic 2012                 30
A sample: Personal Banking
 Oriented to: banking end users
    Easy to use

 Targeting frequent operations
    Check accounts balance
    Order a transfer
    Review account entries

 Multi-device: pc, mobile, tablet, etc.
                        © Icinetic 2012    31
Structure: Class Model




        © Icinetic 2012   32
UI Navigational Model




        © Icinetic 2012   33
Code Generation




     © Icinetic 2012   34
Demo Time

 Modelling domain
 Generated Services

 Modelling UI
 Generated UI



                       © Icinetic 2012   35
So far, we have seen:
 Default UI/Inferred (when nothing was specified)
 Graphical and textual notations combined for UI
 Services consumption and composition
   From a model exposed by a system in runtime
 Device independent UI modelling
 WYSIWYG modelling approach



                       © Icinetic 2012               36
Applications
 UI prototyping
   “Wizard of Oz” Technique

 Rapid multichannel Service delivery

 UIs via Service composition (Mashups)

 Ubiquitous & contextual interfaces

                       © Icinetic 2012    37
Multi-channel
                          Datatabase



                          Data Access
                             Layer


                         Business Logic
                             Layer



                         Services Layer




            App 1


    User Interface                        User Interface
        Layer                                 Layer

             Views                                 Views


           Controllers                           Controllers


          View Models                           View Models




    UI-1                                  UI-2
    © Icinetic 2012                                            38
MD Composed UIs (Mashups)
         Datatabase                                                Datatabase



         Data Access                                               Data Access
            Layer                                                     Layer


        Business Logic                                            Business Logic
            Layer                                                     Layer



        Services Layer                                            Services Layer




App 1                                      App 2


                                             User Interface
                                                 Layer

                                                      Views


                                                    Controllers


                                                   View Models




                                             Composed App UI
                         © Icinetic 2012                                           39
Conclusions



 Pervasive devices are already here to stay

 While we found “the platform” to rule them’all
    we need to deal with diversity of HW, SW and APIs


                        © Icinetic 2012                  40
Conclusions
 So far, today we have seen:
   1.   How to raise the level of abstraction and capture
        the essence of a User Interface in a model

   2. How to alleviate the developer plumbing pain

   3. How to target multiple channels and
      technologies


                          © Icinetic 2012                   41
Conclusions
 MDSD applied to UI
   can makes the difference in terms of time to
    market, quality & productivity

   provide new forms of UIs not possible in the
    traditional way i.e. contextual ones



                     © Icinetic 2012               42
Conclusions
 Looking for flights to Seychelles on the bathroom
 Finishing the purchase, later, in the car




        © Icinetic 2012                       43
Questions &         (might be)   Answers




                           www.radarc.net
                           pjmolina.com/essential
                           pjmolina.com/cuip
         © Icinetic 2012                        44

Contenu connexe

Tendances

Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software EngineeringManish Kumar
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metricsSHREEHARI WADAWADAGI
 
Remote Method Invocation (RMI)
Remote Method Invocation (RMI)Remote Method Invocation (RMI)
Remote Method Invocation (RMI)Peter R. Egli
 
Cloud computing and service models
Cloud computing and service modelsCloud computing and service models
Cloud computing and service modelsPrateek Soni
 
Introduction To Dotnet
Introduction To DotnetIntroduction To Dotnet
Introduction To DotnetSAMIR BHOGAYTA
 
Event Management System using Full Stack Web Application Review-1
Event Management System using Full Stack Web Application Review-1Event Management System using Full Stack Web Application Review-1
Event Management System using Full Stack Web Application Review-1karthick de cluzters
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented TestingAMITJain879
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture PatternsAssaf Gannon
 
cloud virtualization technology
 cloud virtualization technology  cloud virtualization technology
cloud virtualization technology Ravindra Dastikop
 
VTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computingVTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computingSachin Gowda
 
Unit 15 cobra case
Unit   15 cobra caseUnit   15 cobra case
Unit 15 cobra caseRaju Panga
 
Waterfall model ppt final
Waterfall model ppt  finalWaterfall model ppt  final
Waterfall model ppt finalshiva krishna
 
Gof design pattern
Gof design patternGof design pattern
Gof design patternnaveen kumar
 

Tendances (20)

Mobile Agent
Mobile AgentMobile Agent
Mobile Agent
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Unit 4
Unit 4Unit 4
Unit 4
 
Remote Method Invocation (RMI)
Remote Method Invocation (RMI)Remote Method Invocation (RMI)
Remote Method Invocation (RMI)
 
Cloud computing and service models
Cloud computing and service modelsCloud computing and service models
Cloud computing and service models
 
Introduction To Dotnet
Introduction To DotnetIntroduction To Dotnet
Introduction To Dotnet
 
Event Management System using Full Stack Web Application Review-1
Event Management System using Full Stack Web Application Review-1Event Management System using Full Stack Web Application Review-1
Event Management System using Full Stack Web Application Review-1
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Rayleigh model
Rayleigh modelRayleigh model
Rayleigh model
 
cloud virtualization technology
 cloud virtualization technology  cloud virtualization technology
cloud virtualization technology
 
VTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computingVTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computing
 
Unit 15 cobra case
Unit   15 cobra caseUnit   15 cobra case
Unit 15 cobra case
 
Common Standards in Cloud Computing
Common Standards in Cloud ComputingCommon Standards in Cloud Computing
Common Standards in Cloud Computing
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Waterfall model ppt final
Waterfall model ppt  finalWaterfall model ppt  final
Waterfall model ppt final
 
Gof design pattern
Gof design patternGof design pattern
Gof design pattern
 

En vedette

Hivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenDataHivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenDataPedro J. Molina
 
Modeling and Code Generation in the Cloud for Citizen Developers and Beyond
Modeling and Code Generation in the Cloud for Citizen Developers and BeyondModeling and Code Generation in the Cloud for Citizen Developers and Beyond
Modeling and Code Generation in the Cloud for Citizen Developers and BeyondPedro J. Molina
 
Introducción a StackOverflow
Introducción a StackOverflowIntroducción a StackOverflow
Introducción a StackOverflowPedro J. Molina
 
Scaling MDD for production: enabling SoC at model time
Scaling MDD for production: enabling SoC at model timeScaling MDD for production: enabling SoC at model time
Scaling MDD for production: enabling SoC at model timePedro J. Molina
 
Modelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticModelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticPedro J. Molina
 
CG2010 Tailored Code Generators
CG2010 Tailored Code GeneratorsCG2010 Tailored Code Generators
CG2010 Tailored Code GeneratorsPedro J. Molina
 
MDD: Models, frameworks, & code generation
MDD: Models, frameworks, & code generationMDD: Models, frameworks, & code generation
MDD: Models, frameworks, & code generationPedro J. Molina
 
SVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para MicroserviciosSVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para MicroserviciosPedro J. Molina
 
Microservicios sobre MEAN Stack
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN StackPedro J. Molina
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microserviciosPedro J. Molina
 
Modelling the User Interface
Modelling the User InterfaceModelling the User Interface
Modelling the User InterfacePedro J. Molina
 
Code Generation for Conceptual User Interface Patterns
Code Generation for Conceptual User Interface PatternsCode Generation for Conceptual User Interface Patterns
Code Generation for Conceptual User Interface PatternsPedro J. Molina
 
The PISA Project: a MDD case study
The PISA Project: a MDD case studyThe PISA Project: a MDD case study
The PISA Project: a MDD case studyPedro J. Molina
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackPedro J. Molina
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)Jordi Cabot
 

En vedette (20)

Hivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenDataHivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenData
 
TDD+CI con Teamcity
TDD+CI con TeamcityTDD+CI con Teamcity
TDD+CI con Teamcity
 
Modeling and Code Generation in the Cloud for Citizen Developers and Beyond
Modeling and Code Generation in the Cloud for Citizen Developers and BeyondModeling and Code Generation in the Cloud for Citizen Developers and Beyond
Modeling and Code Generation in the Cloud for Citizen Developers and Beyond
 
Introducción a StackOverflow
Introducción a StackOverflowIntroducción a StackOverflow
Introducción a StackOverflow
 
Scaling MDD for production: enabling SoC at model time
Scaling MDD for production: enabling SoC at model timeScaling MDD for production: enabling SoC at model time
Scaling MDD for production: enabling SoC at model time
 
Modelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticModelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at Icinetic
 
CG2010 Tailored Code Generators
CG2010 Tailored Code GeneratorsCG2010 Tailored Code Generators
CG2010 Tailored Code Generators
 
MDD: Models, frameworks, & code generation
MDD: Models, frameworks, & code generationMDD: Models, frameworks, & code generation
MDD: Models, frameworks, & code generation
 
SVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para MicroserviciosSVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para Microservicios
 
Microservicios sobre MEAN Stack
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN Stack
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
 
Modeling on the Web
Modeling on the WebModeling on the Web
Modeling on the Web
 
Modelling the User Interface
Modelling the User InterfaceModelling the User Interface
Modelling the User Interface
 
Code Generation for Conceptual User Interface Patterns
Code Generation for Conceptual User Interface PatternsCode Generation for Conceptual User Interface Patterns
Code Generation for Conceptual User Interface Patterns
 
The PISA Project: a MDD case study
The PISA Project: a MDD case studyThe PISA Project: a MDD case study
The PISA Project: a MDD case study
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN Stack
 
Introducción a Angular
Introducción a AngularIntroducción a Angular
Introducción a Angular
 
CG2010 Introducing MDSD
CG2010 Introducing MDSDCG2010 Introducing MDSD
CG2010 Introducing MDSD
 
Introducing MDSD
Introducing MDSDIntroducing MDSD
Introducing MDSD
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
 

Similaire à Multichannel User Interfaces

Introduction to Reddo Webinar
Introduction to Reddo WebinarIntroduction to Reddo Webinar
Introduction to Reddo WebinarReddo Mobility
 
Redefining Perspectives 4 - Metro ui Session 1
Redefining Perspectives 4 - Metro ui Session 1Redefining Perspectives 4 - Metro ui Session 1
Redefining Perspectives 4 - Metro ui Session 1sapientindia
 
ANDROID presentation prabal
ANDROID presentation prabalANDROID presentation prabal
ANDROID presentation prabalPrabal Tyagi
 
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)Federico Cerutti
 
UGIdotNET App Modernisation Keynote
UGIdotNET App Modernisation KeynoteUGIdotNET App Modernisation Keynote
UGIdotNET App Modernisation KeynoteLorenzo Barbieri
 
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdfInternship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdfVitulChauhan
 
Collaborative and agile development of mobile applications
Collaborative and agile development of mobile applicationsCollaborative and agile development of mobile applications
Collaborative and agile development of mobile applicationsAyushman Jain
 
Introduction of operating system(latest)
Introduction of operating system(latest)Introduction of operating system(latest)
Introduction of operating system(latest)JacksonKong
 
Integration solution: Instant access to Web Services into IMS applications
Integration solution: Instant access to Web Services into IMS applicationsIntegration solution: Instant access to Web Services into IMS applications
Integration solution: Instant access to Web Services into IMS applicationsVirtel - SysperTec
 
Designing Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented WorldDesigning Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented WorldWorklight
 
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
 
Linda maleki
Linda malekiLinda maleki
Linda malekiNASAPMC
 
Ionic App Platform Overview
Ionic App Platform Overview Ionic App Platform Overview
Ionic App Platform Overview Ionic Framework
 
2012.09.11 w3 c html5 mobile paradies
2012.09.11 w3 c html5   mobile paradies2012.09.11 w3 c html5   mobile paradies
2012.09.11 w3 c html5 mobile paradiesStephan Haux
 
Native vs Hybrid - Options to develop your mobile application
Native vs Hybrid - Options to develop your mobile applicationNative vs Hybrid - Options to develop your mobile application
Native vs Hybrid - Options to develop your mobile applicationLoic Ortola
 
INT Inc | Benefits of a Microservices Architecture
INT Inc | Benefits of a Microservices ArchitectureINT Inc | Benefits of a Microservices Architecture
INT Inc | Benefits of a Microservices ArchitectureThelma Gros
 
Web based, mobile enterprise applications
Web based, mobile enterprise applicationsWeb based, mobile enterprise applications
Web based, mobile enterprise applicationsManish Garg
 
Mobileuidevchallengesinnovate2012a 120607124912-phpapp02
Mobileuidevchallengesinnovate2012a 120607124912-phpapp02Mobileuidevchallengesinnovate2012a 120607124912-phpapp02
Mobileuidevchallengesinnovate2012a 120607124912-phpapp02Alexander Muse
 

Similaire à Multichannel User Interfaces (20)

Introduction to Reddo Webinar
Introduction to Reddo WebinarIntroduction to Reddo Webinar
Introduction to Reddo Webinar
 
Redefining Perspectives 4 - Metro ui Session 1
Redefining Perspectives 4 - Metro ui Session 1Redefining Perspectives 4 - Metro ui Session 1
Redefining Perspectives 4 - Metro ui Session 1
 
ANDROID presentation prabal
ANDROID presentation prabalANDROID presentation prabal
ANDROID presentation prabal
 
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)
 
The Promise of Interoperability
The Promise of InteroperabilityThe Promise of Interoperability
The Promise of Interoperability
 
UGIdotNET App Modernisation Keynote
UGIdotNET App Modernisation KeynoteUGIdotNET App Modernisation Keynote
UGIdotNET App Modernisation Keynote
 
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdfInternship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
 
Collaborative and agile development of mobile applications
Collaborative and agile development of mobile applicationsCollaborative and agile development of mobile applications
Collaborative and agile development of mobile applications
 
Introduction of operating system(latest)
Introduction of operating system(latest)Introduction of operating system(latest)
Introduction of operating system(latest)
 
The App Evolution Continues
The App Evolution ContinuesThe App Evolution Continues
The App Evolution Continues
 
Integration solution: Instant access to Web Services into IMS applications
Integration solution: Instant access to Web Services into IMS applicationsIntegration solution: Instant access to Web Services into IMS applications
Integration solution: Instant access to Web Services into IMS applications
 
Designing Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented WorldDesigning Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented World
 
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
 
Linda maleki
Linda malekiLinda maleki
Linda maleki
 
Ionic App Platform Overview
Ionic App Platform Overview Ionic App Platform Overview
Ionic App Platform Overview
 
2012.09.11 w3 c html5 mobile paradies
2012.09.11 w3 c html5   mobile paradies2012.09.11 w3 c html5   mobile paradies
2012.09.11 w3 c html5 mobile paradies
 
Native vs Hybrid - Options to develop your mobile application
Native vs Hybrid - Options to develop your mobile applicationNative vs Hybrid - Options to develop your mobile application
Native vs Hybrid - Options to develop your mobile application
 
INT Inc | Benefits of a Microservices Architecture
INT Inc | Benefits of a Microservices ArchitectureINT Inc | Benefits of a Microservices Architecture
INT Inc | Benefits of a Microservices Architecture
 
Web based, mobile enterprise applications
Web based, mobile enterprise applicationsWeb based, mobile enterprise applications
Web based, mobile enterprise applications
 
Mobileuidevchallengesinnovate2012a 120607124912-phpapp02
Mobileuidevchallengesinnovate2012a 120607124912-phpapp02Mobileuidevchallengesinnovate2012a 120607124912-phpapp02
Mobileuidevchallengesinnovate2012a 120607124912-phpapp02
 

Plus de Pedro J. Molina

dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebdotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebPedro J. Molina
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with TerraformPedro J. Molina
 
LangDev 2022 Metamodeling on the Web with Essential
LangDev 2022 Metamodeling on the Web with EssentialLangDev 2022 Metamodeling on the Web with Essential
LangDev 2022 Metamodeling on the Web with EssentialPedro J. Molina
 
Essential as the base for Web DSLs
Essential as the base for Web DSLsEssential as the base for Web DSLs
Essential as the base for Web DSLsPedro J. Molina
 
Esencia de Web Components
Esencia de Web ComponentsEsencia de Web Components
Esencia de Web ComponentsPedro J. Molina
 
Esencia de web components
Esencia de web componentsEsencia de web components
Esencia de web componentsPedro J. Molina
 
Securizando por construcción mediante MDE
Securizando por construcción mediante MDESecurizando por construcción mediante MDE
Securizando por construcción mediante MDEPedro J. Molina
 
Building APIs with the OpenApi Spec
Building APIs with the OpenApi SpecBuilding APIs with the OpenApi Spec
Building APIs with the OpenApi SpecPedro J. Molina
 
Micro vs Nano (servicios)
Micro vs Nano (servicios)Micro vs Nano (servicios)
Micro vs Nano (servicios)Pedro J. Molina
 
Diseño de APIs con OpenAPI
Diseño de APIs con OpenAPIDiseño de APIs con OpenAPI
Diseño de APIs con OpenAPIPedro J. Molina
 

Plus de Pedro J. Molina (16)

MDE en la industria
MDE en la industriaMDE en la industria
MDE en la industria
 
Terraform
TerraformTerraform
Terraform
 
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebdotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with Terraform
 
LangDev 2022 Metamodeling on the Web with Essential
LangDev 2022 Metamodeling on the Web with EssentialLangDev 2022 Metamodeling on the Web with Essential
LangDev 2022 Metamodeling on the Web with Essential
 
Are Startups for me?
Are Startups for me?Are Startups for me?
Are Startups for me?
 
Meow Demo
Meow DemoMeow Demo
Meow Demo
 
Essential as the base for Web DSLs
Essential as the base for Web DSLsEssential as the base for Web DSLs
Essential as the base for Web DSLs
 
Esencia de Web Components
Esencia de Web ComponentsEsencia de Web Components
Esencia de Web Components
 
Esencia de web components
Esencia de web componentsEsencia de web components
Esencia de web components
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
Quid
QuidQuid
Quid
 
Securizando por construcción mediante MDE
Securizando por construcción mediante MDESecurizando por construcción mediante MDE
Securizando por construcción mediante MDE
 
Building APIs with the OpenApi Spec
Building APIs with the OpenApi SpecBuilding APIs with the OpenApi Spec
Building APIs with the OpenApi Spec
 
Micro vs Nano (servicios)
Micro vs Nano (servicios)Micro vs Nano (servicios)
Micro vs Nano (servicios)
 
Diseño de APIs con OpenAPI
Diseño de APIs con OpenAPIDiseño de APIs con OpenAPI
Diseño de APIs con OpenAPI
 

Dernier

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Dernier (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Multichannel User Interfaces

  • 1. Multichannel User Interfaces Pedro J. Molina, PhD. pjmolina@icinetic.com @pmolinam Rubén Jiménez rjimenez@icinetic.com @rubenjmarrufo
  • 2. Contents  Introduction  UIs and multichannel  UI Technologies  UI Model & Code Generation  Demos  Conclusions  Q&A © Icinetic 2012 2
  • 3. Introduction  We do MDSD Tools for developers  Focused on .NET technologies & Architecture services  HQ in Seville, Spain, EU © Icinetic 2012 3
  • 4. Introduction  Pervasive User Interfaces  Contextual  Services across devices  Costs of making and distributing Software © Icinetic 2012 4
  • 5. UIs and multichannel © Icinetic 2012 5
  • 6. UIs and multichannel  One day in the future:  There could be a unique SW language  And a unique HW platform  Able to drive all your gadgets and devices  Contextual  Able to follow you across changing your context, location or device © Icinetic 2012 6
  • 7. UIs and multichannel  However, in the meanwhile, we have:  Many devices  Many HW choices  Many SW platforms to build for Difficult choice: Where to invest? © Icinetic 2012 7
  • 8. UIs and multichannel  Businesses need to provide  Access to product and services to the great market- share as possible  Different platforms: fragment the market when launching a new product or service  Technology is just a commodity  Technology diversity increases the costs of market acquisition © Icinetic 2012 8
  • 9. UI Technologies  Choose your flavour: ? Smartphone Smartphone Tablet Tablet v 3.1.3 v 4.2.1 v 5.1 © Icinetic 2012 9
  • 10. UI Development  Then  Hire a good development team  Don’t forget designers and UX  Keep them focused and happy! © Icinetic 2012 10
  • 11. Required UI programming skills  Main platforms: Platform Languages IDE The Web HTML5 + CSS3 + JavaScript None/Many + Server side lang. Windows XAML + C# Visual Studio, Expression Blend Apple Objective-C + Cocoa XCode Java / Android Java + UI toolkit Eclipse Difficult to master all of them! © Icinetic 2012 11
  • 12. UI Technologies  Variable and moving target  Hardware: new devices every 6 months  Software: new OS mobile versions every year  APIs: new APIs, all the time!  Not an easy train to follow! © Icinetic 2012 12
  • 13. UI Style-guides  iOS  Android  WP7 / W8 Metro © Icinetic 2012 13
  • 14. UI Style-guides  Each platform provides a differentiated one  Involving not only aesthetics aspects  But also UX aspects on device accordingly to the style of interaction  Application on a device should behave coherent with the platform  Not all applications fits well on each device © Icinetic 2012 14
  • 15. Is there space for modelling and code generated UIs?  Probably  not for “radically original” games  and not for new interaction styles  But convenient and efficient for day to day  Information Systems  Information production / consumption needs  Business Software © Icinetic 2012 15
  • 16. Once again: Art or Engineering? © Icinetic 2012 16
  • 17. Once again: Art or Engineering? Both! © Icinetic 2012 17
  • 18. © Icinetic 18 2012
  • 19. © Icinetic 19 2012
  • 20. UIs and plumbing  Behind a good User Interface  There is a lot of plumbing  Definition: (Developer) Plumbing  Repetitive infrastructure code with small variations  Boring to write, source of bugs  Low added value  But: needed to run the full application © Icinetic 2012 20
  • 21. Plumbing samples: UI Architecture  UI frameworks  MVC  MVVM  MVP  Supervising Controller  Passive View © Icinetic 2012 21
  • 22. Plumbing sample: Comms  Service invocation  RPC / Binary  Web Services / SOAP  REST / JSON  HTTP / HTTPS / SPEEDY / WebSockets © Icinetic 2012 22
  • 23. UI Modelling Hypothesis  So: 1. Can we raise the level of abstraction and capture the essence of the UI in a model? 2. Can we alleviate the developers plumbing pain? 3. Can we expose this UI on multiple channels and technologies? © Icinetic 2012 23
  • 24. What’s changes in a UI?  Technology  Style guides  Widgets and concrete interaction  Plumbing: platform/tech specific © Icinetic 2012 24
  • 25. What’s remains immutable in a UI?  Patterns & UX principles  A Master-Detail will be always a Master-Detail  A Filter  A collection of objects  Navigation  Command  Selection  Task … © Icinetic 2012 25
  • 26. Conceptual UI Patterns  Login  Instance  Population  Master/Detail  Service  Wizard  Filter  … pjmolina.com/cuip © Icinetic 2012 26
  • 27. CUIP: Population  Set of objects  Rendering  Filter  Grid  Order criteria  Table  Display set  List  Actions  Navigation © Icinetic 2012 27
  • 28. CUIP: Population  Set of objects  Rendering  Filter  Grid  Order criteria  Table  Display set  List  Actions  Navigation © Icinetic 2012 28
  • 29. CUIP: Population  Set of objects  Rendering  Filter  Grid  Order criteria  Table  Display set  List  Actions  Navigation © Icinetic 2012 29
  • 30. CUIP: Population  Set of objects  Rendering  Filter  Grid  Order criteria  Table  Display set  List  Actions  Navigation © Icinetic 2012 30
  • 31. A sample: Personal Banking  Oriented to: banking end users  Easy to use  Targeting frequent operations  Check accounts balance  Order a transfer  Review account entries  Multi-device: pc, mobile, tablet, etc. © Icinetic 2012 31
  • 32. Structure: Class Model © Icinetic 2012 32
  • 33. UI Navigational Model © Icinetic 2012 33
  • 34. Code Generation © Icinetic 2012 34
  • 35. Demo Time  Modelling domain  Generated Services  Modelling UI  Generated UI © Icinetic 2012 35
  • 36. So far, we have seen:  Default UI/Inferred (when nothing was specified)  Graphical and textual notations combined for UI  Services consumption and composition  From a model exposed by a system in runtime  Device independent UI modelling  WYSIWYG modelling approach © Icinetic 2012 36
  • 37. Applications  UI prototyping  “Wizard of Oz” Technique  Rapid multichannel Service delivery  UIs via Service composition (Mashups)  Ubiquitous & contextual interfaces © Icinetic 2012 37
  • 38. Multi-channel Datatabase Data Access Layer Business Logic Layer Services Layer App 1 User Interface User Interface Layer Layer Views Views Controllers Controllers View Models View Models UI-1 UI-2 © Icinetic 2012 38
  • 39. MD Composed UIs (Mashups) Datatabase Datatabase Data Access Data Access Layer Layer Business Logic Business Logic Layer Layer Services Layer Services Layer App 1 App 2 User Interface Layer Views Controllers View Models Composed App UI © Icinetic 2012 39
  • 40. Conclusions  Pervasive devices are already here to stay  While we found “the platform” to rule them’all  we need to deal with diversity of HW, SW and APIs © Icinetic 2012 40
  • 41. Conclusions  So far, today we have seen: 1. How to raise the level of abstraction and capture the essence of a User Interface in a model 2. How to alleviate the developer plumbing pain 3. How to target multiple channels and technologies © Icinetic 2012 41
  • 42. Conclusions  MDSD applied to UI  can makes the difference in terms of time to market, quality & productivity  provide new forms of UIs not possible in the traditional way i.e. contextual ones © Icinetic 2012 42
  • 43. Conclusions  Looking for flights to Seychelles on the bathroom  Finishing the purchase, later, in the car © Icinetic 2012 43
  • 44. Questions & (might be) Answers www.radarc.net pjmolina.com/essential pjmolina.com/cuip © Icinetic 2012 44