SlideShare a Scribd company logo
1 of 33
Download to read offline
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

More Related Content

Recently uploaded

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 

Recently uploaded (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 

Featured

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
 

Featured (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