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

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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
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
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
[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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
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...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

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