SlideShare une entreprise Scribd logo
1  sur  19
Mojito
Isao Yagi
isao@yahoo-inc.com
THIS IS MOJITO
THESE ARE MOJITS
THIS IS MOJITO


 Need these:
 • Personalization
 • Internationalization
 • Localization
 • Instrumentation
 • Monetization
THIS IS MOJITO


 And we need to provide our experiences
 across various devices.

 It needs to be accessible and inclusive.

 It needs to be safe and fast.
PRE-MOJITO

Developers using lots of languages, tool
chains, and stacks.
                                                               Nokia
                                                        iOS
     Desktop          ConnectedTV     Feature Phones   Android
                                                             Apps
                                                          Apps

      Web Modules      Widgets         Views            Apps

                                                                Native
                                                          Native
      Maple, YUI       Konfabulator    BluePrint        Native
                                                                Java, ObjC
                                                          Java, ObjC

      Apache/PHP/JS   JavaScript       Apache/PHP       Java
REBOOT
MOJITO

• Open source github.com/yahoo/mojito
• 100% Javascript
• Build on YUI
• Runs on Node.js in the Yahoo! cloud
  (Manhattan)
• Same core runtime on the browser
• Same core runtime in iOS & Android
MOJITO

 “The web is THE platform”
                -- Bruno Fernandez-Ruiz

Start with Javascript, with YUI providing
browser abstraction, libraries and patterns.

Provide a rich MVC framework with the
“Mojit” as the organizing principle.
“MOJIT”



   A kind of MODULE…
     or a kind of WIDGET…

                 …“MOJIT”
MOJITS

• Have models, views, controllers, and binders
• Can communicate with other mojits by
  messaging
• Don’t have to know about other mojits
• Can be composed together
• Can run on server or client or both
MOJITO


Does not:
• Provide user interface abstractions
• Provide any magic, like having your browser
  app work like a native mobile app
Does:
• Let developers write javascript everywhere
• Let developers use the same framework and
  idioms
MOJITO: COMMAND LINE

% npm install –g mojito

% mojito help
Available commands: build, compile, create, docs,
gv, help, info, jslint, start, test, version
MOJITO: AN APPLICATION


                         Bundle things
                         by app or mojit
                         Affinity: server,
                         client, common
                         Views can be
                         selected by
                         device
MOJITO: A VIEW

Mustache template engine (or choose your own)
MOJITO: A CONTROLLER ACTION
MOJITO: A MODEL
MOJITO: RUNNING ON YOUR MAC
THANK YOU
https://github.com/yahoo/mojito/
http://developer.yahoo.com/cocktails/
isao@yahoo-inc.com

Contenu connexe

Similaire à Publicis Mojito

Real-world Dojo Mobile
Real-world Dojo MobileReal-world Dojo Mobile
Real-world Dojo Mobile
Andrew Ferrier
 
WebSphere as a platform for mobile apps
WebSphere as a platform for mobile appsWebSphere as a platform for mobile apps
WebSphere as a platform for mobile apps
IBM Danmark
 
Cross Platform Mobile Developmemnt
Cross Platform Mobile DevelopmemntCross Platform Mobile Developmemnt
Cross Platform Mobile Developmemnt
Soutom Dhara
 

Similaire à Publicis Mojito (20)

YUIConf2012: Mojito for YUI Developers
YUIConf2012: Mojito for YUI DevelopersYUIConf2012: Mojito for YUI Developers
YUIConf2012: Mojito for YUI Developers
 
Yahoo! Mojito
Yahoo! MojitoYahoo! Mojito
Yahoo! Mojito
 
Open Hack Taiwan 2012 - Mojito intro
Open Hack Taiwan 2012 - Mojito introOpen Hack Taiwan 2012 - Mojito intro
Open Hack Taiwan 2012 - Mojito intro
 
Yahoo! Mojito talk on Agency Hackday
Yahoo! Mojito talk on Agency HackdayYahoo! Mojito talk on Agency Hackday
Yahoo! Mojito talk on Agency Hackday
 
Mobile Widgets Development
Mobile Widgets DevelopmentMobile Widgets Development
Mobile Widgets Development
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish
 
Real-world Dojo Mobile
Real-world Dojo MobileReal-world Dojo Mobile
Real-world Dojo Mobile
 
BayJax: Expanding Yahoo! Axis across 3 screens
BayJax: Expanding Yahoo! Axis across 3 screensBayJax: Expanding Yahoo! Axis across 3 screens
BayJax: Expanding Yahoo! Axis across 3 screens
 
EastBay.NET - Introduction to MonoTouch
EastBay.NET - Introduction to MonoTouchEastBay.NET - Introduction to MonoTouch
EastBay.NET - Introduction to MonoTouch
 
Mobile UX Tools & Methods for UX Australia 2011
Mobile UX Tools & Methods for UX Australia 2011 Mobile UX Tools & Methods for UX Australia 2011
Mobile UX Tools & Methods for UX Australia 2011
 
Tour of Mobile usability testing apps and services
Tour of Mobile usability testing apps and servicesTour of Mobile usability testing apps and services
Tour of Mobile usability testing apps and services
 
MOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in JavaMOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in Java
 
Service worker API
Service worker APIService worker API
Service worker API
 
仕様決定、部品化、ディレクションがなぜ重要か
仕様決定、部品化、ディレクションがなぜ重要か仕様決定、部品化、ディレクションがなぜ重要か
仕様決定、部品化、ディレクションがなぜ重要か
 
Introduction to the Yahoo! Mojito Node.js MVC
Introduction to the Yahoo! Mojito Node.js MVCIntroduction to the Yahoo! Mojito Node.js MVC
Introduction to the Yahoo! Mojito Node.js MVC
 
Yahoo! Hack India: Hyderabad | Introduction to the Yahoo! Mojito Node.js MVC
Yahoo! Hack India: Hyderabad | Introduction to the Yahoo! Mojito Node.js MVCYahoo! Hack India: Hyderabad | Introduction to the Yahoo! Mojito Node.js MVC
Yahoo! Hack India: Hyderabad | Introduction to the Yahoo! Mojito Node.js MVC
 
WebSphere as a platform for mobile apps
WebSphere as a platform for mobile appsWebSphere as a platform for mobile apps
WebSphere as a platform for mobile apps
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
 
Cross Platform Mobile Developmemnt
Cross Platform Mobile DevelopmemntCross Platform Mobile Developmemnt
Cross Platform Mobile Developmemnt
 
Mocast Postmortem
Mocast PostmortemMocast Postmortem
Mocast Postmortem
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Publicis Mojito

Notes de l'éditeur

  1. The Yahoo home page for tablets is a Mojito application.It’s pretty typical, it has lots of sections.
  2. For example, our universal header, login widget with it’s membership module api among other things– sometimes there is a team just working on thisThe center section is a basic YUI slide view– it consumes various web services so you get a mix of curated and customized contentThese sections aren’t just partial views pulled in from a file system, they are mini MVC thingys that are composed and packaged in a web page.
  3. All that can be HARD
  4. Java, PHP, Objective-C, Apache, SDKs, APIs, and all this different tooling for izations, testing etc.
  5. Use the same languageWrite to a common frameworkServe (or publish ) HTML5
  6. Node.js – evented I/O on google’s v8 javascript engineHigh throughput, low latencyMachine code InliningIncremental GC
  7. We’re betting on the web.Focusing on javascript as the language, and a framework that can be used on different platforms and runtimes.
  8. MODULE = programming conceptWIDGET = UI conceptMODULE + WIDGET = MOJIT
  9. Now that we have a single language and framework to focus on, it’s obvious that we don’t have to think about what we’re going to build in PHP or Java or whatever, and what we’re going to send to the client to render.Take that one step further, we can see that we no longer have to think about this at design and implementation time. These decisions can be moved to RUNTIME.Search has some beta products that instrument the client and it’s connection, and decided what to render (rich or plain) and where (on the client or pre-render on node.js)
  10. Mojito gives you the way to run in different places, but doesn’t do the device or platform specific work for you.It’s also not super easy. It helps if you know YUI and Yahoo configuration concepts.
  11. Create – quickly generate dirstruct & boilerplateJslint – Doug Crockford’s syntax linterStart – start a node instance running mojitoTest – unit tests with YUI TestBuild – create a device container for use in Xcode (soon android SDK, Windows Phone)Compile – static asset rollups for over the wire performance optimizationDocs – generate API docs using YUI DocGv – create a graph using graphviz
  12. Organize by mojitMojits can have their own configsCan be configured by application.json or parent mojitsRoute to mojit “instances” with routes.json
  13. YQL provides a fast and clean API for web services that work on the server or client– perfect for Mojito