SlideShare a Scribd company logo
RestfulX
             “The RESTful Way to develop
           Adobe Flex and AIR applications”
                           or
                    “Flex on Rails”




                  Peter Armstrong
peter@ruboss.com www.ruboss.com
           twitter: @peterarmstrong
why?
Flex + Rails, before RestfulX
Flex + Rails + AIR, before RestfulX
http://manning.com/armstrong
What are
 we doing
  80%
of the time?
RESTful CRUD
Flex + Rails, with RestfulX
Flex + Rails + AIR, with RestfulX
RestfulX
Features!
http://restfulx.github.com/
http://groups.google.com/group/restfulx-framework/
RestfulX History
       Ruboss Framework
       Ruboss Company Project (Dima lead)
2008   Dima was Ruboss CTO
       © Ruboss
       GPL v3 & Commercial License
         shocking news: you can’t sell very
         many framework licenses in 2008!


       RestfulX Framework
       (“RESTful X” / “REST Flex”)
2009   Community Project
       © Dima Berastau
       and Contributors
       MIT License
RestfulX, Ruboss and Dima Today
         Dima is now doing freelance RestfulX development
        and is building a time tracking product using RestfulX.


                                  = Peter Armstrong +
                                      Scott Patten

    Ruboss is doing
 RestfulX consulting
and development and
     is working on
Sopobo.com, a site to
   self-publish PDF
books. We’re building
 it in Rails, Flex and        Peter and Dima are writing a book
 RestfulX. Scott’s S3          Flex Development with RestfulX
 book is on it today.        and will be publishing it on Sopobo.
DEMO
0. If you have run this before, delete a pomodo.db database from home directory.

1. Create the Rails app, install RestfulX and create the Flex project:
$ sudo gem install restfulx
                                                                                       db/model.yml:
$ rails -d mysql pomodo
$ cd pomodo

2. Edit config/environment.rb and add:
config.gem "restfulx"

3. Run rx_config with the distributed option:
                                                                                It’s    project:
                                                                                         - name: string
                                                                                         - notes: text
                                                                                         - start_date: date
                                                                                         - end_date: date


                                                                               just
$ ./script/generate rx_config --distributed                                               - completed: boolean
                                                                                         - belongs_to: [user]
4. Create your data model:                                                               - has_many: [tasks]
$ emacs db/model.yml
                                                                                        location:



                                                                               that
5. Generate the app, recreate the database and run your server:                          - name: string
$ ./script/generate rx_yaml_scaffold                                                     - notes: text
$ rake db:refresh                                                                        - belongs_to: [user]
$ ./script/server                                                                        - has_many: [tasks]

6. Import the project into Flex Builder and compile the Flex code.


                                                                              easy.
                                                                                        task:
                                                                                         - name: string
7. Go to http://localhost:3000.                                                          - notes: text
                                                                                         - start_time: datetime
8. Convert the app to AIR:                                                               - end_time: datetime
a) Stop your server.                                                                     - completed: boolean
b) Delete the project in Flex Builder. (Don't delete contents.)                          - next_action: boolean
c) ./script/generate rx_config -a --distributed                                           - belongs_to: [project, location, user]
d) Import the pomodo project into Flex Builder again.
e) [WORKAROUND] Fix the routes, which got hosed by rx_config -a --distributed:           note:
 map.resources :locations                                                                - content: text
 map.resources :notes                                                                    - belongs_to: [user]
 map.resources :tasks
 map.resources :projects                                                                user:
 map.resources :users                                                                    - login: string
                                                                                         - first_name: string
9. Test online/offline:                                                                   - last_name: string
a) Start your server.                                                                    - email: string
b) Rebuild and run the AIR app. Note that it's empty.                                    - has_many: [tasks, projects, locations]
c) Start your server. Note that online detection works. Do a pull.                       - has_one: [note]
d) Create tasks, projects, etc.
e) Do a push.
Thanks!

                  Peter Armstrong
peter@ruboss.com www.ruboss.com
           twitter: @peterarmstrong

More Related Content

PDF
A jar-nORM-ous Task
PDF
[HKDUG] #20161210 - BarCamp Hong Kong 2016 - What's News in PHP?
PDF
Config Management with MicroOperators
PPT
Perl Intro 6 Ftp
PDF
Ecos基础应用介绍
PDF
Cloud Foundry Open Tour China (english)
PDF
Scoop Job, import and export to RDBMS
PPT
2005_Structures and functions of Makefile
A jar-nORM-ous Task
[HKDUG] #20161210 - BarCamp Hong Kong 2016 - What's News in PHP?
Config Management with MicroOperators
Perl Intro 6 Ftp
Ecos基础应用介绍
Cloud Foundry Open Tour China (english)
Scoop Job, import and export to RDBMS
2005_Structures and functions of Makefile

What's hot (7)

PDF
Introduction to scoop and its functions
PDF
2019 11-bgphp
PDF
Git major commands
DOC
Git major commands
PDF
Ruby on Rails at PROMPT ISEL '11
PDF
PDF
Php Development With Eclipde PDT
Introduction to scoop and its functions
2019 11-bgphp
Git major commands
Git major commands
Ruby on Rails at PROMPT ISEL '11
Php Development With Eclipde PDT
Ad

Viewers also liked (9)

PPTX
PPTX
Masteel Introduction
PDF
VDM_Report
PPTX
Thezenofscrum1 090221154550 Phpapp01
DOC
Intro
PPTX
Global classroom project 2012 2013
PDF
11. los dos deudores
PPTX
Presentation Skills - A Quick Guide
PDF
Ciencias 3er Ciclo 0
Masteel Introduction
VDM_Report
Thezenofscrum1 090221154550 Phpapp01
Intro
Global classroom project 2012 2013
11. los dos deudores
Presentation Skills - A Quick Guide
Ciencias 3er Ciclo 0
Ad

Similar to RestfulX “The RESTful Way to develop Adobe Flex and AIR applications” (20)

ZIP
REST: Theory vs Practice
PDF
Agile Seaside
PDF
Seaside — Agile Software Development
PDF
Git 101 for CloudStack
PDF
Connecting the Worlds of Java and Ruby with JRuby
PDF
Develop Ruby Applications Fast | TubroRuby
PPTX
Developing in the cloud
PDF
XML-Free Programming : Java Server and Client Development without <>
PDF
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
PDF
Web Development using Ruby on Rails
PDF
Ember.js for SFHTML5
PDF
JRuby, Ruby, Rails and You on the Cloud
PDF
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
PDF
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
PDF
App Lego
PDF
Ruby on Rails : 簡介與入門
PPTX
RESTful Web Services
PDF
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
ZIP
Constructing Web APIs with Rack, Sinatra and MongoDB
PDF
Get shit done
REST: Theory vs Practice
Agile Seaside
Seaside — Agile Software Development
Git 101 for CloudStack
Connecting the Worlds of Java and Ruby with JRuby
Develop Ruby Applications Fast | TubroRuby
Developing in the cloud
XML-Free Programming : Java Server and Client Development without <>
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Web Development using Ruby on Rails
Ember.js for SFHTML5
JRuby, Ruby, Rails and You on the Cloud
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
App Lego
Ruby on Rails : 簡介與入門
RESTful Web Services
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Constructing Web APIs with Rack, Sinatra and MongoDB
Get shit done

More from elliando dias (20)

PDF
Clojurescript slides
PDF
Why you should be excited about ClojureScript
PDF
Functional Programming with Immutable Data Structures
PPT
Nomenclatura e peças de container
PDF
Geometria Projetiva
PDF
Polyglot and Poly-paradigm Programming for Better Agility
PDF
Javascript Libraries
PDF
How to Make an Eight Bit Computer and Save the World!
PDF
Ragel talk
PDF
A Practical Guide to Connecting Hardware to the Web
PDF
Introdução ao Arduino
PDF
Minicurso arduino
PDF
Incanter Data Sorcery
PDF
PDF
Fab.in.a.box - Fab Academy: Machine Design
PDF
The Digital Revolution: Machines that makes
PDF
Hadoop + Clojure
PDF
Hadoop - Simple. Scalable.
PDF
Hadoop and Hive Development at Facebook
PDF
Multi-core Parallelization in Clojure - a Case Study
Clojurescript slides
Why you should be excited about ClojureScript
Functional Programming with Immutable Data Structures
Nomenclatura e peças de container
Geometria Projetiva
Polyglot and Poly-paradigm Programming for Better Agility
Javascript Libraries
How to Make an Eight Bit Computer and Save the World!
Ragel talk
A Practical Guide to Connecting Hardware to the Web
Introdução ao Arduino
Minicurso arduino
Incanter Data Sorcery
Fab.in.a.box - Fab Academy: Machine Design
The Digital Revolution: Machines that makes
Hadoop + Clojure
Hadoop - Simple. Scalable.
Hadoop and Hive Development at Facebook
Multi-core Parallelization in Clojure - a Case Study

Recently uploaded (20)

PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Architecture types and enterprise applications.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
1. Introduction to Computer Programming.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
STKI Israel Market Study 2025 version august
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Developing a website for English-speaking practice to English as a foreign la...
Architecture types and enterprise applications.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Chapter 5: Probability Theory and Statistics
1. Introduction to Computer Programming.pptx
WOOl fibre morphology and structure.pdf for textiles
NewMind AI Weekly Chronicles - August'25-Week II
1 - Historical Antecedents, Social Consideration.pdf
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
OMC Textile Division Presentation 2021.pptx
Getting started with AI Agents and Multi-Agent Systems
DP Operators-handbook-extract for the Mautical Institute
STKI Israel Market Study 2025 version august
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Hindi spoken digit analysis for native and non-native speakers
Enhancing emotion recognition model for a student engagement use case through...
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Univ-Connecticut-ChatGPT-Presentaion.pdf
NewMind AI Weekly Chronicles – August ’25 Week III

RestfulX “The RESTful Way to develop Adobe Flex and AIR applications”

  • 1. RestfulX “The RESTful Way to develop Adobe Flex and AIR applications” or “Flex on Rails” Peter Armstrong peter@ruboss.com www.ruboss.com twitter: @peterarmstrong
  • 3. Flex + Rails, before RestfulX
  • 4. Flex + Rails + AIR, before RestfulX
  • 6. What are we doing 80% of the time?
  • 8. Flex + Rails, with RestfulX
  • 9. Flex + Rails + AIR, with RestfulX
  • 12. RestfulX History Ruboss Framework Ruboss Company Project (Dima lead) 2008 Dima was Ruboss CTO © Ruboss GPL v3 & Commercial License shocking news: you can’t sell very many framework licenses in 2008! RestfulX Framework (“RESTful X” / “REST Flex”) 2009 Community Project © Dima Berastau and Contributors MIT License
  • 13. RestfulX, Ruboss and Dima Today Dima is now doing freelance RestfulX development and is building a time tracking product using RestfulX. = Peter Armstrong + Scott Patten Ruboss is doing RestfulX consulting and development and is working on Sopobo.com, a site to self-publish PDF books. We’re building it in Rails, Flex and Peter and Dima are writing a book RestfulX. Scott’s S3 Flex Development with RestfulX book is on it today. and will be publishing it on Sopobo.
  • 14. DEMO
  • 15. 0. If you have run this before, delete a pomodo.db database from home directory. 1. Create the Rails app, install RestfulX and create the Flex project: $ sudo gem install restfulx db/model.yml: $ rails -d mysql pomodo $ cd pomodo 2. Edit config/environment.rb and add: config.gem "restfulx" 3. Run rx_config with the distributed option: It’s project: - name: string - notes: text - start_date: date - end_date: date just $ ./script/generate rx_config --distributed - completed: boolean - belongs_to: [user] 4. Create your data model: - has_many: [tasks] $ emacs db/model.yml location: that 5. Generate the app, recreate the database and run your server: - name: string $ ./script/generate rx_yaml_scaffold - notes: text $ rake db:refresh - belongs_to: [user] $ ./script/server - has_many: [tasks] 6. Import the project into Flex Builder and compile the Flex code. easy. task: - name: string 7. Go to http://localhost:3000. - notes: text - start_time: datetime 8. Convert the app to AIR: - end_time: datetime a) Stop your server. - completed: boolean b) Delete the project in Flex Builder. (Don't delete contents.) - next_action: boolean c) ./script/generate rx_config -a --distributed - belongs_to: [project, location, user] d) Import the pomodo project into Flex Builder again. e) [WORKAROUND] Fix the routes, which got hosed by rx_config -a --distributed: note: map.resources :locations - content: text map.resources :notes - belongs_to: [user] map.resources :tasks map.resources :projects user: map.resources :users - login: string - first_name: string 9. Test online/offline: - last_name: string a) Start your server. - email: string b) Rebuild and run the AIR app. Note that it's empty. - has_many: [tasks, projects, locations] c) Start your server. Note that online detection works. Do a pull. - has_one: [note] d) Create tasks, projects, etc. e) Do a push.
  • 16. Thanks! Peter Armstrong peter@ruboss.com www.ruboss.com twitter: @peterarmstrong