SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Building Mobile (Smartphone)
   Apps with Ruby & HTML
   An introduction to Rhodes


       Dasharatham Bitla (Dash)
    dash@bitlasoft.com | http://mobilog.bitlasoft.com
                    www.BitlaSoft.com
Smartphones Market
• Smartphones sales are exploding
• Five major smartphone operating systems:
  iPhone, BlackBerry, Windows Mobile,
  Symbian, Android
• “native apps” have are winning the day with
  more than a billion iPhone app downloads on
  a platform with great Safari browser installed
• Other App Stores are picking up as well …
The Apple App Store Economy
                     (based on Dec 09 data)

•   1,35,000+ Apps
•   28,000+ developers
•   Submit your app in less than a weeks time
•   58+ million App Store users
•   ~300 million downloads a month
•   $250+ million in revenues
    – $75 million (30%) to Apple
    – $175 million (70%) to developers

http://gigaom.com/2010/01/12/the-apple-app-store-economy/
Why Develop Mobile Apps?
• No/Low affront Investment
• Can do in your spare time
• Your Imagination is the limit – build anything
• Entrepreneurial Spirit
• Its Fun and good Money
• Submit directly to App Store – no middle man
  and no need of Telecom Operator Approval
• Promote via Twitter, Facebook, Blog, App
  review sites, You Tube etc
Complexities …




Symbian   BlackBerry   Apple iPhone   Android   Windows Mobile
  C++        JAVA      OBJECTIVE C    JAVA           C#
But …how do you write an app
    for all popular devices?
              A Better Way
 Using a ”smartphone   app framework”
       Rhodes from Rhomobile
Rhodes
  Develop Using               Style it with

       HTML
       CSS
       JavaScript               iUI
RUBY


 Develop On                  Write Once
                           Run Everywhere
What is Rhodes?
• “microframework” for building locally executing
  natively optimized mobile apps
• the only framework that supports all
  smartphones
• the only framework that is Model View Controller
• contains first mobile Ruby
• only framework that supports sync
• only framework with a hosted development
  environment
• Rhodes borrows from Rails but not Rails
Why Rhodes?
• “mobilize enterprise apps… cost-effectively with a great
  user experience”
• Provide the high level productivity and portability of web
  programming. Build the app quickly in HTML and Ruby with
  rhodes gem and generators
• Device optimization and offline capability of “native mobile
  apps”
• Best for Data Driven Applications
• Open source for rapid adoption by developers
• Work with synced local data, Includes Offline Storage and
  connected Sync
• Exploit device capabilities (GPS, PIM data, camera, SMS)
• Available open source: http://www.github.com/rhomobile
Device Capabilities / Native UI Elements
Rhodes Architecture




                  Rhodes runtime




 Third party
components:
Installing Rhodes
Release Status – 1.4.2 Stable, 1.5 unstable
http://github.com/rhomobile/rhodes

D:BitlaSoft>ruby -v
ruby 1.8.6 / ruby 1.8.7

D:BitlaSoft>gem install rhodes


D:BitlaSoft>gem list rhodes
rhodes (1.4.2)
Installing Device SDKs
iPhone (Need Mac for testing on Simulator)
     http://developer.apple.com/iphone/

Android
    http://developer.android.com/sdk/index.html

BlackBerry
https://www.blackberry.com/Downloads/entry.
  do?code=060AD92489947D410D897474079C
  1477
Setting up Rhodes
D:BitlaSoft>rhodes-setup
Now
Lets Build an Address Book App
               for
    Android and BlackBerry
Generate an AddressBook App
D:BitlaSoft>rhogen app address_book
Generating with app generator:
←[32m [ADDED]←[0m address_book/rhoconfig.txt
←[32m [ADDED]←[0m address_book/build.yml
←[32m [ADDED]←[0m address_book/app/application.rb
←[32m [ADDED]←[0m address_book/app/index.erb
←[32m [ADDED]←[0m address_book/app/layout.erb
←[32m [ADDED]←[0m address_book/app/loading.html
←[32m [ADDED]←[0m address_book/Rakefile
←[32m [ADDED]←[0m address_book/app/helpers
←[32m [ADDED]←[0m address_book/icon
←[32m [ADDED]←[0m address_book/app/Settings
←[32m [ADDED]←[0m address_book/public

D:BitlaSoft>
Rhodes App Code Structure
              • Build configuration
              • App Configuration
              • Device specific CSS
              • App Icon
              • Rails like App
                structure
              • Easy build/run rake
                scripts
              • Layouts
Generate Contact Model
D:BitlaSoftaddress_book>rhogen model Contact
  name,phone,email,company,address
Generating with model generator:
←[32m   [ADDED]←[0m   app/Contact/config.rb
←[32m   [ADDED]←[0m   app/Contact/index.erb
←[32m   [ADDED]←[0m   app/Contact/edit.erb
←[32m   [ADDED]←[0m   app/Contact/new.erb
←[32m   [ADDED]←[0m   app/Contact/show.erb
←[32m   [ADDED]←[0m   app/Contact/contact_controller.rb
←[32m   [ADDED]←[0m   app/Contact/contact.rb
←[32m   [ADDED]←[0m   app/Contact/contact_spec.rb
Rhodes App Model Code Structure
                 • MVC scaffold
                   generation for Model
                 • Basic cross platform
                   CRUD scaffolding
                 • RhoSync Hooks
Controller Code
app/Contact/contact_controller.rb
                                Scaffold Methods
                                • Index
                                • Show
                                • New
                                • Edit
                                • Create
                                • Update
                                • Delete
View/ UI ERB code

app/Contact/index.erb
Set Start Page – rhoconfig.txt
# Startup page for your application
start_path = '/app/Contact'

# Path to the options page (in this case handled by javascript)
options_path = '/app/Settings'

# Location of bundle url (i.e. from rhohub.com)
rhobundle_zip_url = ''

# Optional password to access bundle (usually not required)
rhobundle_zip_pwd = nil

# Rhodes runtime properties
MinSeverity = 1
LogToOutput = 1
LogCategories = *
ExcludeLogCategories =
KeepTrackOfLastVisitedPage = 0
LastVisitedPage = ''

# Sync server url. This must be the full path to your sources.
# For example: http://rhomobile.rhohub.com/apps/SugarCRM/sources/
syncserver = ''
Build and Launch the App
For iPhone
$ rake run:iphone

For Android
D:BitlaSoft> rake run:android


For BlackBerry
D:BitlaSoft> rake run:bb
Rhodes Rake Tasks
Style it with - iWebKit

Native Looking iPhone UI in HTML and CSS
Style it with - jQTouch
Native Feeling iPhone UI & other WebKit browser Uis
With Native Animations Support
Other Rhomobile Components


       RhoSync
            &

       RhoHub
RhoSync
•   Connect mobile apps with the enterprise
•   Offline Use
•   Easy Sync Adapter Development
•   First Web Services Sync Server
•   First Sync Server To Use Smartphone Push
•   Simplifies Smartphone Data Access
•   RhoSync is a Rails App
RhoSync Architecture


                                  Siebel
                          SOAP


                                 SalesForce
                          SOAP

 your
 app
                RhoSync
                                 SugarCRM
                          SOAP
                 Server
Rhodes
runtime                          BaseCamp
                          REST


                                 Other app
                          REST
                                 backends
RhoSync – Source Adapter
D:BitlaSoftaddress_book>rhogen source contacts

                                                   Sync Methods
                                                   • Login
                                                   • Query
                                                   • Sync
                                                   • Create
                                                   • Update
                                                   • Delete
                                                   • logoff
RhoHub
• First and only “Development as a Service for mobile”
• Hosted IDE app development (edit online a la
  Heroku)
• Hosted Central build (don’t need to install all
  development environment) for all SmartPhones
  online
• Hosted provisioning (user downloading from URL)
• Hosted runtime (sync server)
• Write apps without installing SDKs locally
• Diagnostic Tools
• Lot more …
Questions?
Dasharatham Bitla (Dash)
Founder & CEO, BitlaSoft
dash@bitlasoft.com

http://mobilog.bitlasoft.com
www.BitlaSoft.com

Weitere ähnliche Inhalte

Kürzlich hochgeladen

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
 
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 MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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...Miguel Araújo
 
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
 
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
 
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.pdfsudhanshuwaghmare1
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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 DevelopmentsTrustArc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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 2024The Digital Insurer
 
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
 
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 SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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.pdfEnterprise Knowledge
 

Kürzlich hochgeladen (20)

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
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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...
 
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
 
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
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 

Empfohlen

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Building Cross Platform Mobile (Smartphone) Apps With Ruby & Html – An Introduction To Rhodes V3

  • 1. Building Mobile (Smartphone) Apps with Ruby & HTML An introduction to Rhodes Dasharatham Bitla (Dash) dash@bitlasoft.com | http://mobilog.bitlasoft.com www.BitlaSoft.com
  • 2. Smartphones Market • Smartphones sales are exploding • Five major smartphone operating systems: iPhone, BlackBerry, Windows Mobile, Symbian, Android • “native apps” have are winning the day with more than a billion iPhone app downloads on a platform with great Safari browser installed • Other App Stores are picking up as well …
  • 3. The Apple App Store Economy (based on Dec 09 data) • 1,35,000+ Apps • 28,000+ developers • Submit your app in less than a weeks time • 58+ million App Store users • ~300 million downloads a month • $250+ million in revenues – $75 million (30%) to Apple – $175 million (70%) to developers http://gigaom.com/2010/01/12/the-apple-app-store-economy/
  • 4. Why Develop Mobile Apps? • No/Low affront Investment • Can do in your spare time • Your Imagination is the limit – build anything • Entrepreneurial Spirit • Its Fun and good Money • Submit directly to App Store – no middle man and no need of Telecom Operator Approval • Promote via Twitter, Facebook, Blog, App review sites, You Tube etc
  • 5. Complexities … Symbian BlackBerry Apple iPhone Android Windows Mobile C++ JAVA OBJECTIVE C JAVA C#
  • 6. But …how do you write an app for all popular devices? A Better Way Using a ”smartphone app framework” Rhodes from Rhomobile
  • 7. Rhodes Develop Using Style it with HTML CSS JavaScript iUI RUBY Develop On Write Once Run Everywhere
  • 8. What is Rhodes? • “microframework” for building locally executing natively optimized mobile apps • the only framework that supports all smartphones • the only framework that is Model View Controller • contains first mobile Ruby • only framework that supports sync • only framework with a hosted development environment • Rhodes borrows from Rails but not Rails
  • 9. Why Rhodes? • “mobilize enterprise apps… cost-effectively with a great user experience” • Provide the high level productivity and portability of web programming. Build the app quickly in HTML and Ruby with rhodes gem and generators • Device optimization and offline capability of “native mobile apps” • Best for Data Driven Applications • Open source for rapid adoption by developers • Work with synced local data, Includes Offline Storage and connected Sync • Exploit device capabilities (GPS, PIM data, camera, SMS) • Available open source: http://www.github.com/rhomobile
  • 10. Device Capabilities / Native UI Elements
  • 11. Rhodes Architecture Rhodes runtime Third party components:
  • 12. Installing Rhodes Release Status – 1.4.2 Stable, 1.5 unstable http://github.com/rhomobile/rhodes D:BitlaSoft>ruby -v ruby 1.8.6 / ruby 1.8.7 D:BitlaSoft>gem install rhodes D:BitlaSoft>gem list rhodes rhodes (1.4.2)
  • 13. Installing Device SDKs iPhone (Need Mac for testing on Simulator) http://developer.apple.com/iphone/ Android http://developer.android.com/sdk/index.html BlackBerry https://www.blackberry.com/Downloads/entry. do?code=060AD92489947D410D897474079C 1477
  • 15. Now Lets Build an Address Book App for Android and BlackBerry
  • 16. Generate an AddressBook App D:BitlaSoft>rhogen app address_book Generating with app generator: ←[32m [ADDED]←[0m address_book/rhoconfig.txt ←[32m [ADDED]←[0m address_book/build.yml ←[32m [ADDED]←[0m address_book/app/application.rb ←[32m [ADDED]←[0m address_book/app/index.erb ←[32m [ADDED]←[0m address_book/app/layout.erb ←[32m [ADDED]←[0m address_book/app/loading.html ←[32m [ADDED]←[0m address_book/Rakefile ←[32m [ADDED]←[0m address_book/app/helpers ←[32m [ADDED]←[0m address_book/icon ←[32m [ADDED]←[0m address_book/app/Settings ←[32m [ADDED]←[0m address_book/public D:BitlaSoft>
  • 17. Rhodes App Code Structure • Build configuration • App Configuration • Device specific CSS • App Icon • Rails like App structure • Easy build/run rake scripts • Layouts
  • 18. Generate Contact Model D:BitlaSoftaddress_book>rhogen model Contact name,phone,email,company,address Generating with model generator: ←[32m [ADDED]←[0m app/Contact/config.rb ←[32m [ADDED]←[0m app/Contact/index.erb ←[32m [ADDED]←[0m app/Contact/edit.erb ←[32m [ADDED]←[0m app/Contact/new.erb ←[32m [ADDED]←[0m app/Contact/show.erb ←[32m [ADDED]←[0m app/Contact/contact_controller.rb ←[32m [ADDED]←[0m app/Contact/contact.rb ←[32m [ADDED]←[0m app/Contact/contact_spec.rb
  • 19. Rhodes App Model Code Structure • MVC scaffold generation for Model • Basic cross platform CRUD scaffolding • RhoSync Hooks
  • 20. Controller Code app/Contact/contact_controller.rb Scaffold Methods • Index • Show • New • Edit • Create • Update • Delete
  • 21. View/ UI ERB code app/Contact/index.erb
  • 22. Set Start Page – rhoconfig.txt # Startup page for your application start_path = '/app/Contact' # Path to the options page (in this case handled by javascript) options_path = '/app/Settings' # Location of bundle url (i.e. from rhohub.com) rhobundle_zip_url = '' # Optional password to access bundle (usually not required) rhobundle_zip_pwd = nil # Rhodes runtime properties MinSeverity = 1 LogToOutput = 1 LogCategories = * ExcludeLogCategories = KeepTrackOfLastVisitedPage = 0 LastVisitedPage = '' # Sync server url. This must be the full path to your sources. # For example: http://rhomobile.rhohub.com/apps/SugarCRM/sources/ syncserver = ''
  • 23. Build and Launch the App For iPhone $ rake run:iphone For Android D:BitlaSoft> rake run:android For BlackBerry D:BitlaSoft> rake run:bb
  • 25. Style it with - iWebKit Native Looking iPhone UI in HTML and CSS
  • 26. Style it with - jQTouch Native Feeling iPhone UI & other WebKit browser Uis With Native Animations Support
  • 27. Other Rhomobile Components RhoSync & RhoHub
  • 28. RhoSync • Connect mobile apps with the enterprise • Offline Use • Easy Sync Adapter Development • First Web Services Sync Server • First Sync Server To Use Smartphone Push • Simplifies Smartphone Data Access • RhoSync is a Rails App
  • 29. RhoSync Architecture Siebel SOAP SalesForce SOAP your app RhoSync SugarCRM SOAP Server Rhodes runtime BaseCamp REST Other app REST backends
  • 30. RhoSync – Source Adapter D:BitlaSoftaddress_book>rhogen source contacts Sync Methods • Login • Query • Sync • Create • Update • Delete • logoff
  • 31. RhoHub • First and only “Development as a Service for mobile” • Hosted IDE app development (edit online a la Heroku) • Hosted Central build (don’t need to install all development environment) for all SmartPhones online • Hosted provisioning (user downloading from URL) • Hosted runtime (sync server) • Write apps without installing SDKs locally • Diagnostic Tools • Lot more …
  • 32.
  • 33. Questions? Dasharatham Bitla (Dash) Founder & CEO, BitlaSoft dash@bitlasoft.com http://mobilog.bitlasoft.com www.BitlaSoft.com