SlideShare a Scribd company logo
1 of 25
Cross-Platform Mobile
  Chemistry Apps

                 Rich Apodaca
                    Metamolecular, LLC




 American Chemical Society • Denver, CO • August 29, 2011
Welcome Aboard! Now Pick One




                           rapodaca@metamolecular.com
Remember Us?




               rapodaca@metamolecular.com
Single Platform?                                Multi-Platform?




                   • Developer expertise
                   • Multiplied time & cost
                   • Fragmented team/codebase
Reagents

•   iOS & Android
•   App Store
•   Minimize costs
•   Automate
    production
PhoneGap


            “PhoneGap is an HTML5 app platform
            that allows you to author native
            applications with web technologies and
            get access to APIs and app stores.”


                                    App


App   App   App
                                     HTML5




                                             rapodaca@metamolecular.com
HTML5



             +                 +


CSS3              HTML5              JavaScript


“The first major update to HTML since 2001...”




                                     rapodaca@metamolecular.com
Workflow




             +
                                   Build System


Plain Text       Binary ChemDraw                        HTML5




                                                  rapodaca@metamolecular.com
ChemDraw to Images




                     ChemBot & AppleScript


Binary ChemDraw                              PNG Images




                  tinyurl.com/chembot

                                             rapodaca@metamolecular.com
Development & Testing




                        rapodaca@metamolecular.com
Deployment




       desc "Deploy files to PhoneGap project"
       task :deploy => :compile do
         FileUtils.cp_r 'www', '..'
       end




Concept to App Store in 6 weeks


                                   rapodaca@metamolecular.com
Android Deployment




                     rapodaca@metamolecular.com
Lessons Learned

              Reagents

    •   Fast development using powerful tools

    •   Feedback: easy as emailing a zip file

    •   Six-week turnaround time

    •   Android version practically no cost

    •   No Objective-C or Java




                                   rapodaca@metamolecular.com
Apps for Research




• Data management & visualization
• Advanced tooling: cheminformatics
• File I/O & System Integration
ChemTab - Vision

Browse chemical database files on your tablet




                                     rapodaca@metamolecular.com
ChemTab Architecture



                              ChemTab
                                                                         Portable
                                                                        JavaScript
Cheminformatics                   UI Emulation   Native
                                                 Bridge
Structure Editor & Renderer          Widgets     Integration




                                Native OS                              Java, Obj-C,
                                                                           etc.




                                                               rapodaca@metamolecular.com
ChemWriter

Plugin-Free Structure Editing




                                http://chemwriter.com
                                rapodaca@metamolecular.com
ChemVector

In-Browser Structure Rendering




                                 rapodaca@metamolecular.com
JavaScript-Native Communication
JavaScript
 chemtab.io.Store.prototype.load = function(filename) {
    PhoneGap.exec('chemtab.io.NativeStore.load', goog.getUid(this), filename);
 };




Objective-C
 -(void)   load:(NSMutableArray*) arguments withDict: (NSMutableDictionary*) options {
   [self   openFile:[arguments objectAtIndex:1]];
   [self   createIndex];
   [self   callJavascript:[arguments objectAtIndex:0] withMessage:@"onLoad" withArgs:nil];
 }




JavaScript
 chemtab.io.Store.prototype.onLoad = function() {
    this.dispatchEvent(chemtab.io.Store.EventType.FILE_LOADED);
 };




                                                                        rapodaca@metamolecular.com
Lessons Learned



          •   Any native system call can be
              made through JavaScript
          •   JavaScript on iPad ~20x slower
              than iMac
          •   Cheminformatics and
              application code can be kept
              platform-independent
          •   Performance-tuning with native
              code




                           rapodaca@metamolecular.com
Acknowledgements


James Ashenhurst
Robert Apodaca
Zachary Catlin
Orion Jankowski
PhoneGap, Node.js, Jo,
Google Closure, and
Jasmine Projects


                         rapodaca@metamolecular.com
Learn More




rapodaca@metamolecular.com

  metamolecular.com/blog/


          @rapodaca




                             rapodaca@metamolecular.com
Image Credits




http://www.flickr.com/photos/viknanda/403371973/
http://www.flickr.com/photos/pfly/188629337/
http://www.flickr.com/photos/nofailsafe/4610092117/
http://www.flickr.com/photos/jdhancock/3408649524/




                                           rapodaca@metamolecular.com

More Related Content

What's hot

What's cool in Apache MyFaces?
What's cool in Apache MyFaces?What's cool in Apache MyFaces?
What's cool in Apache MyFaces?
aliok
 
Usability in the GeoWeb
Usability in the GeoWebUsability in the GeoWeb
Usability in the GeoWeb
Dave Bouwman
 
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-finalWhat a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
Rikard Thulin
 
How To Design A Good A P I And Why It Matters G O O G L E
How To Design A Good  A P I And Why It Matters    G O O G L EHow To Design A Good  A P I And Why It Matters    G O O G L E
How To Design A Good A P I And Why It Matters G O O G L E
guestbe92f4
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
Simon Willison
 

What's hot (20)

Laravel 9 is now out – how is an improvement over its predecessors
Laravel 9 is now out – how is an improvement over its predecessorsLaravel 9 is now out – how is an improvement over its predecessors
Laravel 9 is now out – how is an improvement over its predecessors
 
API Docs Made Right / RAML - Swagger rant
API Docs Made Right / RAML - Swagger rantAPI Docs Made Right / RAML - Swagger rant
API Docs Made Right / RAML - Swagger rant
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 
MWLUG - Universal Java
MWLUG  -  Universal JavaMWLUG  -  Universal Java
MWLUG - Universal Java
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
What's cool in Apache MyFaces?
What's cool in Apache MyFaces?What's cool in Apache MyFaces?
What's cool in Apache MyFaces?
 
NodeJs-resume
NodeJs-resumeNodeJs-resume
NodeJs-resume
 
Usability in the GeoWeb
Usability in the GeoWebUsability in the GeoWeb
Usability in the GeoWeb
 
Creating an Effective Mobile API
Creating an Effective Mobile API Creating an Effective Mobile API
Creating an Effective Mobile API
 
Golden Rules of API Design
Golden Rules of API DesignGolden Rules of API Design
Golden Rules of API Design
 
API Technical Writing
API Technical WritingAPI Technical Writing
API Technical Writing
 
Anupam_Resume
Anupam_ResumeAnupam_Resume
Anupam_Resume
 
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
 
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-finalWhat a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
 
How To Design A Good A P I And Why It Matters G O O G L E
How To Design A Good  A P I And Why It Matters    G O O G L EHow To Design A Good  A P I And Why It Matters    G O O G L E
How To Design A Good A P I And Why It Matters G O O G L E
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
Laws of test automation framework
Laws of test automation frameworkLaws of test automation framework
Laws of test automation framework
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approach
 
Another API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger ComparisonAnother API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger Comparison
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 

Similar to Cross-Platform Mobile Chemistry Apps

ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignalITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp
 
COMPRO- WEB ALBUM & MOTION ANALYZER
COMPRO- WEB ALBUM  & MOTION ANALYZERCOMPRO- WEB ALBUM  & MOTION ANALYZER
COMPRO- WEB ALBUM & MOTION ANALYZER
Ashish Tanwer
 
Model2Roo - ACME
Model2Roo - ACMEModel2Roo - ACME
Model2Roo - ACME
jccastrejon
 
PranathiSadhulaAutomationTester
PranathiSadhulaAutomationTesterPranathiSadhulaAutomationTester
PranathiSadhulaAutomationTester
Pranathi Sadhula
 

Similar to Cross-Platform Mobile Chemistry Apps (20)

Progressive web apps with QCObjects (AngularJS Chile Community Talk)
Progressive web apps with QCObjects (AngularJS Chile Community Talk)Progressive web apps with QCObjects (AngularJS Chile Community Talk)
Progressive web apps with QCObjects (AngularJS Chile Community Talk)
 
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignalITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
 
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementMidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
 
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
 
PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018
PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018
PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018
 
Metaworks4 intro
Metaworks4 introMetaworks4 intro
Metaworks4 intro
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
 
COMPRO- WEB ALBUM & MOTION ANALYZER
COMPRO- WEB ALBUM  & MOTION ANALYZERCOMPRO- WEB ALBUM  & MOTION ANALYZER
COMPRO- WEB ALBUM & MOTION ANALYZER
 
React Tech Salon
React Tech SalonReact Tech Salon
React Tech Salon
 
Polymer
PolymerPolymer
Polymer
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Click, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX ApplicationsClick, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX Applications
 
Model2Roo - ACME
Model2Roo - ACMEModel2Roo - ACME
Model2Roo - ACME
 
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
 
PranathiSadhulaAutomationTester
PranathiSadhulaAutomationTesterPranathiSadhulaAutomationTester
PranathiSadhulaAutomationTester
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
 
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munich
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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...
 
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
 
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
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Cross-Platform Mobile Chemistry Apps

Editor's Notes

  1. Show of hands - how many have either worked on creating a mobile app or plan to?\n
  2. Picking one is an increasingly tricky proposition...\n
  3. \n
  4. \n
  5. What’s a developer to do?\n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. iPhone app accepted on first submission\n\n
  12. XCode Screenshot of WWW dir.\n
  13. TODO: Insert screenshot running in emulator\n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. TODO: Fix this\n
  23. Be sure to t\n
  24. \n
  25. \n