SlideShare a Scribd company logo
1 of 38
Rhodes
Ruby to iPhone, Android Native
Application
Yoshi Sakai / Twitter @bluemooninc
Rhodes is
• Rhodes makes multiple native application as
the iPhone, Android from single code.
• Ruby + HTML MVC Framework
• MIT License
• Rhodes deploy to device with the Xcode and
Android SDK,NDK.
Install Rhodes
• Open the Gems Folder
– sudo chmod 775 /Library/Ruby/Gems/1.8
• $ gem install rhodes
Install homebrew
• $ ruby -e "$(curl -fsSkL
raw.github.com/mxcl/homebrew/go)"
• $ sudo chmod 775 /usr/local
• $ sudo chown -R $USER /usr/local/*
• $ brew update
Homebrew is the package system for UNIX Tool on Macintosh. Homebrew is compact
and simple than MacPorts.
Install gcc
• $ brew tap homebrew/dupes
• $ brew install autoconf automake apple-gcc42
Install Xcode
• https://developer.apple.com/devcenter/ios/in
dex.action
Additional install on Xcode
• Boot xCode, Click preference. After that Install
the iOS Simulator and Command line Tools
Install Android SDK/NDK
• Download the android JDK from Apple
– http://support.apple.com/downloads/#java
• Download Android SDK/NDK
– http://developer.android.com/sdk/index.html#do
wnload
• Select a 64bit version When you use Moutain
Lion
– http://support.apple.com/kb/HT3696
Android NDK is Native(C、C++) Development kit
Path set for Android SDK
• Open the terminal window and goto home.
• Make a .bash_profile by Editor (vim etc…)
• open .bash_profile is easy to edit on Mac
.bash_profile
• .bash_profile-------------------------------------------
• export PATH=$PATH:/Users/bluemooninc/android_sdk/sdk/tools
• #Android NDK PATH
• ANDROID_NDK=/Users/bluemooninc/android_ndk/toolchains
• export PATH=$PATH:${ANDROID_NDK}
• #Android SDK PATH
• ANDROID_SDK=/Users/bluemooninc/android_sdk/sdk/platform-
tools
• export PATH=$PATH:${ANDROID_SDK}
• -------------------------------------------------------------
Make sure the path
• $ printenv
• PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:
/usr/local/git/bin:/usr/local/rvm/bin:/Users/blue
mooninc/android_sdk/sdk/tools:/Users/bluemo
oninc/android_ndk/toolchains:/Users/bluemoo
ninc/android_sdk/sdk/
• Check the Android SDK/NDK path
• Close terminal or below command to refresh
– $source ~/.bash_profile
Set build parameter
• $ rhodes-setup >> build.yml will made
– We will ask you a few questions below about your dev
environment.
– JDK path (required)
(/Library/Java/Home): /System/Library/Flameworks/J
avaVM.flamework/Home
– Android SDK path (blank to skip) ():
/Users/bluemooninc/android_sdk/sdk/
– Android NDK path (blank to skip) ():
/Users/bluemooninc/android_ndk/
Get Ruby 2.0!
• Ruby1.8.7 (Mac OS X Default) is old and error
stop on compile. You can get Version2 below.
• $ ruby -e "$(curl -
fsSkL raw.github.com/mxcl/homebrew/go)"
• $ brew install rbenv
• $ brew install ruby
Set UTF-8
• /Library/Ruby/Gems/1.8/gems/highline-
1.6.18/lib/highline.rb:621:in `say': undefined
method `default_external' for Encoding:Class
(NoMethodError)
• default_external to 'UTF-8’
Generate a Application
• $ rhodes app storemanager
– >> Ganerate an Application folder and template
files.
• $ cd storemanager
– >> move to project folder
• $ rhodes model storemanager name
– >> Ganarate a scaffold for MVC framework
Run the Android simulator
• rhodes/platform/android/build/androidcom
mon.rb
– Add "_64” to androidcommon.rb When you drive
64 bit as the Android NDK
– $ndkhost = `uname -s`.downcase!.chomp! + "-
x86_64”
• $ rake run:android:rhosimulator
– >> Quick simulate for debug
1 bug fix
• As the 3.5.1.12 has one bug(Already fixed at
github)
– There is a bug in build script that causes this error.
It is already fixed at master. You may fix it yourself
in your rhodes.
Open /var/lib/gems/1.9.1/gems/rhodes-
3.5.1.12/platform/android/build/android_tools.rb
– At line 211 And make this line to look as Class
name
– FileUtils.rm_f $applog_path if !$applog_path.nil?
Prepare the Android Virtual Device
• Boot eclipse on android_sdk, Select AVM
manager on Window menu
Change build.yml
• build.yml for AVD ---------------------------------
• android:
• minSDK: 11
• version: 4.0.3
• emulator: galaxyS2
• android_title: 0
• orientation: portrait
• --------------------------------------------------------
Run the Emulator
• $ adb start-server >> Start the adb server
• rake run:android:rhosimulator >>Quick debug
• $ rake run:android >> Deploy to the emulater
Make the iOS Development
• Edit build.yml --------------------------------
• iphone:
• configuration: Debug
• sdk: iphonesimulator6.1
• provisionprofile:
• codesignidentity: "iPhone Developer"
• -------------------------------------------------------
Run the simulator
• rake run:iphone:rhosimulator >> Quick debug
• rake run:iPhone >> Deploy to iOS simulator
Deploy to Android Device
• $ CD $home >> move to home directory
• open .android/adb_usb.ini
• Connect USB your device and Check the
Manufacture ID by the system profiler on your
Macintosh
Example of Galaxy SII
• Manufacturer ID for Samsung
• 0x04e8
Check Device and Build
• Cd ~/android_sdk/sdk/platform-tools/
• android update adb
• adb devices
List of devices attached
4*************c device >> You will see your Android device serial
number
• Goto project folder and build it.
rake run:android:device
If you’ve get the error: device not found, Then Try it below ex.
• /Users/bluemooninc/android_sdk/sdk/platform-tools/adb -d install -r
/Users/bluemooninc/RhodesProject/storemanager/bin/target/android/sto
remanager-debug.apk
Success mean finish
Deploy to iPhone Device
• Edit build.yml---------------------------------
• iphone:
• configuration: Release
• sdk: iphoneos6.1
• provisionprofile:
• codesignidentity: "iPhone Developer"
• entitlements: ""
• BundleIdentifier: com.xoopsec.ios.* >> from iOS developper
• BundleURLScheme: StoreManager001 >> from iOS developper
Generate a iPhone package
• $ rake device:iphone:production
– Will ganarate iOS folder below ex.
RhodesProject/bin/target/iOS/iPhoneos6.1/Releas
e/storemanager.app
Build the Xcodeprj
• $ rake switch_app
• $ rake build:iphone:setup_xcode_project
Library/Ruby/Gems/1.8/gems/rhodes-
3.5.1.12/platform/iphone/rhorunner.xcodeproj
Deploy to Real device
• Double click to
Library/Ruby/Gems/1.8/gems/rhodes-
3.5.1.12/platform/iphone/rhorunner.xcodepro
j
• Connect iPhone to USB and Click Run
• After pages are Apple Developer registration
yourappleid@mac.com
https://developer.apple.com
Make a certification data
• Boot key chain from utility folder and select Assistant
• Keep blank a CA email address,Save to disk, set the key pear info.
• Input (2048bit, RSA to key pear parameter)
• CertificateSigningRequest.certSigningRequest will save on your disk
Entry your Certification
Select
Certification.
After while you
will get a email
for Approve.
Install the certification on your Mac
• Double click the downloaded
developer_identity.cer file from Apple
Entry the iOS device info
• Connect your iOS device on your Mac
• Boot Xcode, Click device at Window Organizer
Copy this 40th strings
Entry the Identifier to Developer
Get the AppID
• Wildcard App ID: opsit the domain name for unique name
• App ID Name: as you like.
ex)com.xoopsec.ios.*
App name etc.
Entry the Provisioning Profiles
• Profile Name:As any
• Certificates:check
• App ID:Choice in this time
• Device:Check
Set Code Signing Identity
• Open the Xcode project on Rhodes folder
• Select Code Signing Identity in Build Setting

More Related Content

What's hot

Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityMandi Walls
 
Deploying to Ubuntu on Linode
Deploying to Ubuntu on LinodeDeploying to Ubuntu on Linode
Deploying to Ubuntu on LinodeWO Community
 
CocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeadsRNS
 
Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!Commit University
 
Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019Mandi Walls
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debuggingAshish Agrawal
 

What's hot (8)

Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure Security
 
Deploying to Ubuntu on Linode
Deploying to Ubuntu on LinodeDeploying to Ubuntu on Linode
Deploying to Ubuntu on Linode
 
CocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPods
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!
 
Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debugging
 
はじめてのSymfony2
はじめてのSymfony2はじめてのSymfony2
はじめてのSymfony2
 

Similar to Rhodes mobile Framework

Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Opersys inc.
 
Native Android for Windows Developers
Native Android for Windows DevelopersNative Android for Windows Developers
Native Android for Windows DevelopersYoss Cohen
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvmdfages
 
Modifying Android Apps Without Source Code with Microsoft Visual Studio Code
Modifying Android Apps Without Source Code with Microsoft Visual Studio CodeModifying Android Apps Without Source Code with Microsoft Visual Studio Code
Modifying Android Apps Without Source Code with Microsoft Visual Studio CodeRonillo Ang
 
Android Workshop
Android WorkshopAndroid Workshop
Android WorkshopJunda Ong
 
Android Development Primer - GDG Los Angeles
Android Development Primer - GDG Los AngelesAndroid Development Primer - GDG Los Angeles
Android Development Primer - GDG Los AngelesGerard
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache CordovaIvano Malavolta
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.jsPrabin Silwal
 
iOS Application Security
iOS Application SecurityiOS Application Security
iOS Application SecurityEgor Tolstoy
 
3. Android Architecture.pptx
3. Android Architecture.pptx3. Android Architecture.pptx
3. Android Architecture.pptxHarshiniB11
 
Installing iOS and Android Simulators on MacOSX
Installing iOS and Android Simulators on MacOSXInstalling iOS and Android Simulators on MacOSX
Installing iOS and Android Simulators on MacOSXKen Skistimas
 
hashdays 2011: Tobias Ospelt - Reversing Android Apps - Hacking and cracking ...
hashdays 2011: Tobias Ospelt - Reversing Android Apps - Hacking and cracking ...hashdays 2011: Tobias Ospelt - Reversing Android Apps - Hacking and cracking ...
hashdays 2011: Tobias Ospelt - Reversing Android Apps - Hacking and cracking ...Area41
 
Android Embedded - Smart Hubs als Schaltzentrale des IoT
Android Embedded - Smart Hubs als Schaltzentrale des IoTAndroid Embedded - Smart Hubs als Schaltzentrale des IoT
Android Embedded - Smart Hubs als Schaltzentrale des IoTinovex GmbH
 
Tehran's 1st Android bootcamp - Part1
Tehran's 1st Android bootcamp - Part1Tehran's 1st Android bootcamp - Part1
Tehran's 1st Android bootcamp - Part1Mohsen Mirhoseini
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux DevelopersOpersys inc.
 
KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)osake
 

Similar to Rhodes mobile Framework (20)

Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013
 
Native Android for Windows Developers
Native Android for Windows DevelopersNative Android for Windows Developers
Native Android for Windows Developers
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
 
Modifying Android Apps Without Source Code with Microsoft Visual Studio Code
Modifying Android Apps Without Source Code with Microsoft Visual Studio CodeModifying Android Apps Without Source Code with Microsoft Visual Studio Code
Modifying Android Apps Without Source Code with Microsoft Visual Studio Code
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
Android Development Primer - GDG Los Angeles
Android Development Primer - GDG Los AngelesAndroid Development Primer - GDG Los Angeles
Android Development Primer - GDG Los Angeles
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.js
 
iOS Application Security
iOS Application SecurityiOS Application Security
iOS Application Security
 
Deep Dive into the AOSP
Deep Dive into the AOSPDeep Dive into the AOSP
Deep Dive into the AOSP
 
3. Android Architecture.pptx
3. Android Architecture.pptx3. Android Architecture.pptx
3. Android Architecture.pptx
 
Installing iOS and Android Simulators on MacOSX
Installing iOS and Android Simulators on MacOSXInstalling iOS and Android Simulators on MacOSX
Installing iOS and Android Simulators on MacOSX
 
Android ndk
Android ndkAndroid ndk
Android ndk
 
Android NDK
Android NDKAndroid NDK
Android NDK
 
Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone
 
hashdays 2011: Tobias Ospelt - Reversing Android Apps - Hacking and cracking ...
hashdays 2011: Tobias Ospelt - Reversing Android Apps - Hacking and cracking ...hashdays 2011: Tobias Ospelt - Reversing Android Apps - Hacking and cracking ...
hashdays 2011: Tobias Ospelt - Reversing Android Apps - Hacking and cracking ...
 
Android Embedded - Smart Hubs als Schaltzentrale des IoT
Android Embedded - Smart Hubs als Schaltzentrale des IoTAndroid Embedded - Smart Hubs als Schaltzentrale des IoT
Android Embedded - Smart Hubs als Schaltzentrale des IoT
 
Tehran's 1st Android bootcamp - Part1
Tehran's 1st Android bootcamp - Part1Tehran's 1st Android bootcamp - Part1
Tehran's 1st Android bootcamp - Part1
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
 
KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)
 

More from Yoshi Sakai

いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成Yoshi Sakai
 
Access で Excel ファイルの操作を行う為のライブラリ設定
Access で Excel ファイルの操作を行う為のライブラリ設定Access で Excel ファイルの操作を行う為のライブラリ設定
Access で Excel ファイルの操作を行う為のライブラリ設定Yoshi Sakai
 
Paypal REST api ( Japanese version )
Paypal REST api ( Japanese version )Paypal REST api ( Japanese version )
Paypal REST api ( Japanese version )Yoshi Sakai
 
Rhodes mobile Framework (Japanese)
Rhodes mobile Framework (Japanese)Rhodes mobile Framework (Japanese)
Rhodes mobile Framework (Japanese)Yoshi Sakai
 
Osc2009tokyofall xoops groupware
Osc2009tokyofall xoops groupwareOsc2009tokyofall xoops groupware
Osc2009tokyofall xoops groupwareYoshi Sakai
 
XOOPS EC Distribution
XOOPS EC DistributionXOOPS EC Distribution
XOOPS EC DistributionYoshi Sakai
 
XOOPS and Twitter Bootstrap
XOOPS and Twitter BootstrapXOOPS and Twitter Bootstrap
XOOPS and Twitter BootstrapYoshi Sakai
 
XOOPS EC on C4SA Paas deployment
XOOPS EC on C4SA Paas deploymentXOOPS EC on C4SA Paas deployment
XOOPS EC on C4SA Paas deploymentYoshi Sakai
 
Weeklycms20120218
Weeklycms20120218Weeklycms20120218
Weeklycms20120218Yoshi Sakai
 
XOOPS Cube 2.2 Pack 2011
XOOPS Cube 2.2 Pack 2011XOOPS Cube 2.2 Pack 2011
XOOPS Cube 2.2 Pack 2011Yoshi Sakai
 
XOOPS Securilty flow
XOOPS Securilty flowXOOPS Securilty flow
XOOPS Securilty flowYoshi Sakai
 
Xoops Cube Saturday Lab. 2010/09/25
Xoops Cube Saturday Lab. 2010/09/25Xoops Cube Saturday Lab. 2010/09/25
Xoops Cube Saturday Lab. 2010/09/25Yoshi Sakai
 

More from Yoshi Sakai (18)

いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成
 
Access で Excel ファイルの操作を行う為のライブラリ設定
Access で Excel ファイルの操作を行う為のライブラリ設定Access で Excel ファイルの操作を行う為のライブラリ設定
Access で Excel ファイルの操作を行う為のライブラリ設定
 
Paypal REST api ( Japanese version )
Paypal REST api ( Japanese version )Paypal REST api ( Japanese version )
Paypal REST api ( Japanese version )
 
Rhodes mobile Framework (Japanese)
Rhodes mobile Framework (Japanese)Rhodes mobile Framework (Japanese)
Rhodes mobile Framework (Japanese)
 
Xoopsec
XoopsecXoopsec
Xoopsec
 
Osc2009tokyofall xoops groupware
Osc2009tokyofall xoops groupwareOsc2009tokyofall xoops groupware
Osc2009tokyofall xoops groupware
 
XOOPS EC Distribution
XOOPS EC DistributionXOOPS EC Distribution
XOOPS EC Distribution
 
XOOPS and Twitter Bootstrap
XOOPS and Twitter BootstrapXOOPS and Twitter Bootstrap
XOOPS and Twitter Bootstrap
 
XOOPS EC on C4SA Paas deployment
XOOPS EC on C4SA Paas deploymentXOOPS EC on C4SA Paas deployment
XOOPS EC on C4SA Paas deployment
 
Xcc2012
Xcc2012Xcc2012
Xcc2012
 
Xoops x
Xoops xXoops x
Xoops x
 
Oss活動指針
Oss活動指針Oss活動指針
Oss活動指針
 
Weeklycms20120218
Weeklycms20120218Weeklycms20120218
Weeklycms20120218
 
XOOPS Cube 2.2 Pack 2011
XOOPS Cube 2.2 Pack 2011XOOPS Cube 2.2 Pack 2011
XOOPS Cube 2.2 Pack 2011
 
XOOPS Securilty flow
XOOPS Securilty flowXOOPS Securilty flow
XOOPS Securilty flow
 
Seminer20110119
Seminer20110119Seminer20110119
Seminer20110119
 
Satlab20101127
Satlab20101127Satlab20101127
Satlab20101127
 
Xoops Cube Saturday Lab. 2010/09/25
Xoops Cube Saturday Lab. 2010/09/25Xoops Cube Saturday Lab. 2010/09/25
Xoops Cube Saturday Lab. 2010/09/25
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 

Rhodes mobile Framework

  • 1. Rhodes Ruby to iPhone, Android Native Application Yoshi Sakai / Twitter @bluemooninc
  • 2. Rhodes is • Rhodes makes multiple native application as the iPhone, Android from single code. • Ruby + HTML MVC Framework • MIT License • Rhodes deploy to device with the Xcode and Android SDK,NDK.
  • 3. Install Rhodes • Open the Gems Folder – sudo chmod 775 /Library/Ruby/Gems/1.8 • $ gem install rhodes
  • 4. Install homebrew • $ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)" • $ sudo chmod 775 /usr/local • $ sudo chown -R $USER /usr/local/* • $ brew update Homebrew is the package system for UNIX Tool on Macintosh. Homebrew is compact and simple than MacPorts.
  • 5. Install gcc • $ brew tap homebrew/dupes • $ brew install autoconf automake apple-gcc42
  • 7. Additional install on Xcode • Boot xCode, Click preference. After that Install the iOS Simulator and Command line Tools
  • 8. Install Android SDK/NDK • Download the android JDK from Apple – http://support.apple.com/downloads/#java • Download Android SDK/NDK – http://developer.android.com/sdk/index.html#do wnload • Select a 64bit version When you use Moutain Lion – http://support.apple.com/kb/HT3696 Android NDK is Native(C、C++) Development kit
  • 9. Path set for Android SDK • Open the terminal window and goto home. • Make a .bash_profile by Editor (vim etc…) • open .bash_profile is easy to edit on Mac
  • 10. .bash_profile • .bash_profile------------------------------------------- • export PATH=$PATH:/Users/bluemooninc/android_sdk/sdk/tools • #Android NDK PATH • ANDROID_NDK=/Users/bluemooninc/android_ndk/toolchains • export PATH=$PATH:${ANDROID_NDK} • #Android SDK PATH • ANDROID_SDK=/Users/bluemooninc/android_sdk/sdk/platform- tools • export PATH=$PATH:${ANDROID_SDK} • -------------------------------------------------------------
  • 11. Make sure the path • $ printenv • PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin: /usr/local/git/bin:/usr/local/rvm/bin:/Users/blue mooninc/android_sdk/sdk/tools:/Users/bluemo oninc/android_ndk/toolchains:/Users/bluemoo ninc/android_sdk/sdk/ • Check the Android SDK/NDK path • Close terminal or below command to refresh – $source ~/.bash_profile
  • 12. Set build parameter • $ rhodes-setup >> build.yml will made – We will ask you a few questions below about your dev environment. – JDK path (required) (/Library/Java/Home): /System/Library/Flameworks/J avaVM.flamework/Home – Android SDK path (blank to skip) (): /Users/bluemooninc/android_sdk/sdk/ – Android NDK path (blank to skip) (): /Users/bluemooninc/android_ndk/
  • 13. Get Ruby 2.0! • Ruby1.8.7 (Mac OS X Default) is old and error stop on compile. You can get Version2 below. • $ ruby -e "$(curl - fsSkL raw.github.com/mxcl/homebrew/go)" • $ brew install rbenv • $ brew install ruby
  • 14. Set UTF-8 • /Library/Ruby/Gems/1.8/gems/highline- 1.6.18/lib/highline.rb:621:in `say': undefined method `default_external' for Encoding:Class (NoMethodError) • default_external to 'UTF-8’
  • 15. Generate a Application • $ rhodes app storemanager – >> Ganerate an Application folder and template files. • $ cd storemanager – >> move to project folder • $ rhodes model storemanager name – >> Ganarate a scaffold for MVC framework
  • 16. Run the Android simulator • rhodes/platform/android/build/androidcom mon.rb – Add "_64” to androidcommon.rb When you drive 64 bit as the Android NDK – $ndkhost = `uname -s`.downcase!.chomp! + "- x86_64” • $ rake run:android:rhosimulator – >> Quick simulate for debug
  • 17. 1 bug fix • As the 3.5.1.12 has one bug(Already fixed at github) – There is a bug in build script that causes this error. It is already fixed at master. You may fix it yourself in your rhodes. Open /var/lib/gems/1.9.1/gems/rhodes- 3.5.1.12/platform/android/build/android_tools.rb – At line 211 And make this line to look as Class name – FileUtils.rm_f $applog_path if !$applog_path.nil?
  • 18. Prepare the Android Virtual Device • Boot eclipse on android_sdk, Select AVM manager on Window menu
  • 19. Change build.yml • build.yml for AVD --------------------------------- • android: • minSDK: 11 • version: 4.0.3 • emulator: galaxyS2 • android_title: 0 • orientation: portrait • --------------------------------------------------------
  • 20. Run the Emulator • $ adb start-server >> Start the adb server • rake run:android:rhosimulator >>Quick debug • $ rake run:android >> Deploy to the emulater
  • 21. Make the iOS Development • Edit build.yml -------------------------------- • iphone: • configuration: Debug • sdk: iphonesimulator6.1 • provisionprofile: • codesignidentity: "iPhone Developer" • -------------------------------------------------------
  • 22. Run the simulator • rake run:iphone:rhosimulator >> Quick debug • rake run:iPhone >> Deploy to iOS simulator
  • 23. Deploy to Android Device • $ CD $home >> move to home directory • open .android/adb_usb.ini • Connect USB your device and Check the Manufacture ID by the system profiler on your Macintosh
  • 24. Example of Galaxy SII • Manufacturer ID for Samsung • 0x04e8
  • 25. Check Device and Build • Cd ~/android_sdk/sdk/platform-tools/ • android update adb • adb devices List of devices attached 4*************c device >> You will see your Android device serial number • Goto project folder and build it. rake run:android:device If you’ve get the error: device not found, Then Try it below ex. • /Users/bluemooninc/android_sdk/sdk/platform-tools/adb -d install -r /Users/bluemooninc/RhodesProject/storemanager/bin/target/android/sto remanager-debug.apk Success mean finish
  • 26. Deploy to iPhone Device • Edit build.yml--------------------------------- • iphone: • configuration: Release • sdk: iphoneos6.1 • provisionprofile: • codesignidentity: "iPhone Developer" • entitlements: "" • BundleIdentifier: com.xoopsec.ios.* >> from iOS developper • BundleURLScheme: StoreManager001 >> from iOS developper
  • 27. Generate a iPhone package • $ rake device:iphone:production – Will ganarate iOS folder below ex. RhodesProject/bin/target/iOS/iPhoneos6.1/Releas e/storemanager.app
  • 28. Build the Xcodeprj • $ rake switch_app • $ rake build:iphone:setup_xcode_project Library/Ruby/Gems/1.8/gems/rhodes- 3.5.1.12/platform/iphone/rhorunner.xcodeproj
  • 29. Deploy to Real device • Double click to Library/Ruby/Gems/1.8/gems/rhodes- 3.5.1.12/platform/iphone/rhorunner.xcodepro j • Connect iPhone to USB and Click Run • After pages are Apple Developer registration
  • 31. Make a certification data • Boot key chain from utility folder and select Assistant • Keep blank a CA email address,Save to disk, set the key pear info. • Input (2048bit, RSA to key pear parameter) • CertificateSigningRequest.certSigningRequest will save on your disk
  • 32. Entry your Certification Select Certification. After while you will get a email for Approve.
  • 33. Install the certification on your Mac • Double click the downloaded developer_identity.cer file from Apple
  • 34. Entry the iOS device info • Connect your iOS device on your Mac • Boot Xcode, Click device at Window Organizer Copy this 40th strings
  • 35. Entry the Identifier to Developer
  • 36. Get the AppID • Wildcard App ID: opsit the domain name for unique name • App ID Name: as you like. ex)com.xoopsec.ios.* App name etc.
  • 37. Entry the Provisioning Profiles • Profile Name:As any • Certificates:check • App ID:Choice in this time • Device:Check
  • 38. Set Code Signing Identity • Open the Xcode project on Rhodes folder • Select Code Signing Identity in Build Setting