rhodes 3.2.3 → 3.3.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (368) hide show
  1. data/CHANGELOG +10 -0
  2. data/Rakefile +153 -46
  3. data/doc/build.txt +261 -102
  4. data/doc/configuration.txt +5 -2
  5. data/doc/device-caps.txt +134 -23
  6. data/doc/extensions.txt +922 -69
  7. data/doc/generator.txt +96 -39
  8. data/doc/install.txt +35 -19
  9. data/doc/jqt-jqm-transition.txt +17 -1
  10. data/doc/rhom.txt +23 -2
  11. data/doc/rhostudio-eclipse.txt +49 -0
  12. data/doc/rhostudio-test-plan.txt +440 -0
  13. data/doc/simulator.txt +1 -1
  14. data/doc/synchronization.txt +40 -1
  15. data/lib/build/jake.rb +108 -7
  16. data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +0 -35
  17. data/lib/extensions/barcode/ext/barcode/platform/iphone/Barcode.xcodeproj/project.pbxproj +8 -2
  18. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeCallbackHelper.mm +195 -195
  19. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewController.m +6 -0
  20. data/lib/extensions/barcode/ext/barcode/platform/iphone/Rakefile +5 -0
  21. data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode_wrap.c +64 -20
  22. data/lib/extensions/debugger/CHANGELOG +3 -0
  23. data/lib/extensions/debugger/debugger.rb +26 -21
  24. data/lib/extensions/digest-md5/ext/Rakefile +5 -5
  25. data/lib/extensions/digest-md5/ext/build +10 -1
  26. data/lib/extensions/digest-md5/ext/defs.h +19 -0
  27. data/lib/extensions/digest-md5/ext/digest-md5.vcproj +317 -9
  28. data/lib/extensions/digest-md5/ext/iphone/Dmd5.xcodeproj/project.pbxproj +290 -0
  29. data/lib/extensions/digest-md5/ext/iphone/Dmd5_Prefix.pch +7 -0
  30. data/lib/extensions/digest-md5/ext/iphone/Rakefile +79 -0
  31. data/lib/extensions/digest-sha1/ext/Rakefile +5 -5
  32. data/lib/extensions/digest-sha1/ext/build +10 -1
  33. data/lib/extensions/digest-sha1/ext/defs.h +19 -0
  34. data/lib/extensions/digest-sha1/ext/digest-sha1.vcproj +317 -9
  35. data/lib/extensions/digest-sha1/ext/iphone/Dsha1.xcodeproj/project.pbxproj +278 -0
  36. data/lib/extensions/digest-sha1/ext/iphone/Dsha1_Prefix.pch +7 -0
  37. data/lib/extensions/digest-sha1/ext/iphone/Rakefile +79 -0
  38. data/lib/extensions/digest/ext/Rakefile +5 -5
  39. data/lib/extensions/digest/ext/build +10 -1
  40. data/lib/extensions/digest/ext/digest.vcproj +317 -9
  41. data/lib/extensions/digest/ext/iphone/Digest.xcodeproj/project.pbxproj +270 -0
  42. data/lib/extensions/digest/ext/iphone/Digest_Prefix.pch +7 -0
  43. data/lib/extensions/digest/ext/iphone/Rakefile +79 -0
  44. data/lib/extensions/esri/ext/esri/platform/iphone/ESRI.xcodeproj/project.pbxproj +10 -2
  45. data/lib/extensions/esri/ext/esri/platform/iphone/Rakefile +6 -0
  46. data/lib/extensions/fcntl/ext/Rakefile +5 -5
  47. data/lib/extensions/fcntl/ext/build +9 -1
  48. data/lib/extensions/fcntl/ext/iphone/Fcntl.xcodeproj/project.pbxproj +262 -0
  49. data/lib/extensions/fcntl/ext/iphone/Fcntl_Prefix.pch +7 -0
  50. data/lib/extensions/fcntl/ext/iphone/Rakefile +79 -0
  51. data/lib/extensions/net-http/net/http.rb +9 -7
  52. data/lib/extensions/nfc/ext/nfc/shared/ruby/nfc_wrap.c +64 -20
  53. data/lib/extensions/rhoxml/rexml/document.rb +3 -2
  54. data/lib/extensions/rhoxml/rexml/instruction.rb +70 -0
  55. data/lib/framework/builtinME.rb +9 -0
  56. data/lib/framework/date/format.rb +1 -1
  57. data/lib/framework/dateME.rb +19 -2
  58. data/lib/framework/rho/rho.rb +15 -4
  59. data/lib/framework/rho/rhoapplication.rb +1 -0
  60. data/lib/framework/rho/rhocontact.rb +10 -27
  61. data/lib/framework/rho/rhoevent_c.rb +8 -2
  62. data/lib/framework/rho/rhosupport.rb +25 -0
  63. data/lib/framework/rhodes.rb +1 -1
  64. data/lib/framework/rhoframework.rb +15 -0
  65. data/lib/framework/rholang/localization_simplified.rb +8 -10
  66. data/lib/framework/rhom/rhom_object_factory.rb +8 -2
  67. data/lib/framework/version.rb +1 -1
  68. data/lib/rhodes.rb +1 -1
  69. data/platform/android/Rhodes/jni/Application.mk +2 -1
  70. data/platform/android/Rhodes/jni/include/rhodes.h +9 -0
  71. data/platform/android/Rhodes/jni/src/callbacks.cpp +31 -1
  72. data/platform/android/Rhodes/jni/src/event.cpp +75 -31
  73. data/platform/android/Rhodes/jni/src/nativeview.cpp +1 -1
  74. data/platform/android/Rhodes/jni/src/phonebook.cpp +73 -9
  75. data/platform/android/Rhodes/jni/src/rhodes.cpp +21 -0
  76. data/platform/android/Rhodes/jni/src/rhodesapp.cpp +16 -24
  77. data/platform/android/Rhodes/jni/src/signature.cpp +27 -1
  78. data/platform/android/Rhodes/{default.properties → project.properties} +2 -2
  79. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Capabilities.java +14 -12
  80. data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeBar.java +14 -12
  81. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +38 -115
  82. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +69 -52
  83. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/Camera.java +9 -0
  84. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraNewService.java +21 -1
  85. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraOldService.java +1 -1
  86. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraSemiService.java +1 -1
  87. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraService.java +1 -1
  88. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +38 -6
  89. data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/Event.java +212 -1
  90. data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/EventStore.java +82 -125
  91. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +1 -1
  92. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/MainView.java +2 -1
  93. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +39 -19
  94. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SplashScreen.java +106 -136
  95. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +26 -25
  96. data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/RhoNativeViewManager.java +1 -1
  97. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality.java +40 -0
  98. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality01.java +47 -0
  99. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality02.java +33 -0
  100. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality03.java +33 -0
  101. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality04.java +34 -0
  102. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality05.java +75 -0
  103. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality06.java +34 -0
  104. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality07.java +34 -0
  105. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality08.java +44 -0
  106. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality09.java +34 -0
  107. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality10.java +34 -0
  108. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionalityManager.java +73 -0
  109. data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Contact.java +57 -6
  110. data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessor.java +2 -2
  111. data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorNew.java +322 -76
  112. data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorOld.java +11 -6
  113. data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Phonebook.java +5 -5
  114. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientOld.java +2 -1
  115. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +125 -0
  116. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsOld.java +2 -3
  117. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebView.java +16 -0
  118. data/platform/android/build/RhodesSRC_build.files +14 -0
  119. data/platform/android/build/android.rake +149 -147
  120. data/platform/android/build/android_tools.rb +58 -0
  121. data/platform/android/build/librhocommon_build.files +1 -0
  122. data/platform/android/build/libruby_build.files +3 -0
  123. data/platform/bb/RubyVM/src/com/rho/RhoConf.java +11 -1
  124. data/platform/bb/RubyVM/src/com/rho/db/DBAdapter.java +11 -5
  125. data/platform/bb/RubyVM/src/com/rho/db/DBAttrManager.java +3 -2
  126. data/platform/bb/RubyVM/src/com/rho/file/RhoFile.java +2 -0
  127. data/platform/bb/RubyVM/src/com/rho/net/RhoConnection.java +20 -8
  128. data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +9 -6
  129. data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +45 -18
  130. data/platform/bb/RubyVM/src/com/rho/sync/SyncThread.java +1 -2
  131. data/platform/bb/build/bb.rake +84 -70
  132. data/platform/bb/rhodes/platform/5.0/com/rho/BrowserAdapter5.java +106 -14
  133. data/platform/bb/rhodes/src/com/rho/BrowserAdapter.java +1 -1
  134. data/platform/bb/rhodes/src/com/rho/BrowserAdapter5.java +108 -16
  135. data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +10 -5
  136. data/platform/bb/rhodes/src/rhomobile/camera/CameraScreen.java +21 -4
  137. data/platform/bb/rhodes/src/rhomobile/mapview/Annotation.java +17 -0
  138. data/platform/bb/rhodes/src/rhomobile/mapview/MapView.java +8 -5
  139. data/platform/bb/rhodes/src/rhomobile/mapview/MapViewScreen.java +3 -1
  140. data/platform/iphone/Classes/AppManager/AppManager.m +15 -3
  141. data/platform/iphone/Classes/Event/Event.m +45 -2
  142. data/platform/iphone/Classes/MapView/MapViewController.m +8 -4
  143. data/platform/iphone/Classes/Phonebook/phonebook.m +30 -7
  144. data/platform/iphone/Classes/Rhodes.h +11 -1
  145. data/platform/iphone/Classes/Rhodes.m +141 -9
  146. data/platform/iphone/Classes/Signature/SignatureDelegate.m +27 -1
  147. data/platform/iphone/Classes/SimpleMainView.h +1 -0
  148. data/platform/iphone/Classes/SimpleMainView.m +4 -0
  149. data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +31 -1
  150. data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +10 -0
  151. data/platform/iphone/rbuild/iphone.rake +33 -6
  152. data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +10 -2
  153. data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +22 -2
  154. data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +14 -0
  155. data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +10 -0
  156. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Info.plist +1 -1
  157. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
  158. data/platform/osx/build/osx.rake +58 -7
  159. data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +427 -69
  160. data/platform/shared/RhoConnectClient/RhoConnectClient.h +21 -2
  161. data/platform/shared/common/Android.mk +2 -1
  162. data/platform/shared/common/AutoPointer.h +23 -0
  163. data/platform/shared/common/BundleManager.cpp +333 -0
  164. data/platform/shared/common/RhoFile.cpp +206 -23
  165. data/platform/shared/common/RhoFile.h +14 -4
  166. data/platform/shared/common/RhoFilePath.h +18 -0
  167. data/platform/shared/common/RhoStd.h +11 -1
  168. data/platform/shared/common/RhoThread.h +4 -1
  169. data/platform/shared/common/RhodesApp.cpp +31 -8
  170. data/platform/shared/common/RhodesApp.h +14 -0
  171. data/platform/shared/common/RhodesAppBase.cpp +6 -6
  172. data/platform/shared/common/RhodesAppBase.h +1 -1
  173. data/platform/shared/common/emml.h +34 -0
  174. data/platform/shared/common/iphone/RhoFileImpl.m +30 -2
  175. data/platform/shared/common/map/BaseMapEngine.cpp +3 -3
  176. data/platform/shared/common/map/GeocodingMapEngine.cpp +205 -14
  177. data/platform/shared/common/map/GeocodingMapEngine.h +25 -2
  178. data/platform/shared/common/map/MapEngine.cpp +24 -2
  179. data/platform/shared/common/map/MapEngine.h +23 -12
  180. data/platform/shared/common/phonebook/PhonebookParams.cpp +99 -0
  181. data/platform/shared/common/phonebook/PhonebookParams.h +52 -0
  182. data/platform/shared/common/rhoparams.cpp +14 -0
  183. data/platform/shared/common/rhoparams.h +1 -0
  184. data/platform/shared/db/DBAdapter.cpp +43 -24
  185. data/platform/shared/db/DBAdapter.h +6 -1
  186. data/platform/shared/db/DBAttrManager.cpp +50 -1
  187. data/platform/shared/logging/RhoLog.h +3 -0
  188. data/platform/shared/logging/RhoLogSink.cpp +5 -1
  189. data/platform/shared/net/CURLNetRequest.cpp +2 -0
  190. data/platform/shared/qt/rhodes/QtMainWindow.cpp +14 -1
  191. data/platform/shared/qt/rhodes/impl/PhonebookImpl.cpp +2 -2
  192. data/platform/shared/qt/rhodes/impl/RhoFileImpl.cpp +1 -1
  193. data/platform/shared/qt/rhodes/impl/SignatureImpl.cpp +14 -2
  194. data/platform/shared/qt/rhodes/impl/SystemImpl.cpp +16 -2
  195. data/platform/shared/qt/rhodes/main.cpp +28 -0
  196. data/platform/shared/qt/rhodes/rhodes.pro +3 -0
  197. data/platform/shared/qt/rholib/rholib.pro +2 -1
  198. data/platform/shared/qt/rubylib/rubylib.pro +2 -1
  199. data/platform/shared/ruby/Android.mk +3 -0
  200. data/platform/shared/ruby/class.c +7 -0
  201. data/platform/shared/ruby/compile.c +18 -10
  202. data/platform/shared/ruby/encdb.h +18 -8
  203. data/platform/shared/ruby/eval.c +108 -2
  204. data/platform/shared/ruby/ext/alert/alert_wrap.c +64 -20
  205. data/platform/shared/ruby/ext/asynchttp/asynchttp_wrap.c +64 -20
  206. data/platform/shared/ruby/ext/bluetooth/bluetooth_wrap.c +67 -23
  207. data/platform/shared/ruby/ext/calendar/calendar_wrap.c +64 -20
  208. data/platform/shared/ruby/ext/calendar/event_wrap.c +64 -20
  209. data/platform/shared/ruby/ext/camera/camera_wrap.c +64 -20
  210. data/platform/shared/ruby/ext/datetimepicker/datetimepicker_wrap.c +64 -20
  211. data/platform/shared/ruby/ext/geolocation/geolocation.i +16 -0
  212. data/platform/shared/ruby/ext/geolocation/geolocation_wrap.c +127 -26
  213. data/platform/shared/ruby/ext/mapview/mapview_wrap.c +64 -20
  214. data/platform/shared/ruby/ext/nativebar/nativebar_wrap.c +65 -21
  215. data/platform/shared/ruby/ext/nativeviewmanager/nativeviewmanager_wrap.c +64 -20
  216. data/platform/shared/ruby/ext/navbar/navbar_wrap.c +64 -20
  217. data/platform/shared/ruby/ext/phonebook/phonebook.i +7 -7
  218. data/platform/shared/ruby/ext/phonebook/phonebook_wrap.c +95 -120
  219. data/platform/shared/ruby/ext/rho/rhoruby.c +4 -4
  220. data/platform/shared/ruby/ext/rho/rhoruby.h +2 -0
  221. data/platform/shared/ruby/ext/rho/rhosupport.c +39 -6
  222. data/platform/shared/ruby/ext/rhoconf/rhoconf_wrap.c +65 -21
  223. data/platform/shared/ruby/ext/ringtones/ringtones_wrap.c +64 -20
  224. data/platform/shared/ruby/ext/signature/signature.i +37 -5
  225. data/platform/shared/ruby/ext/signature/signature_wrap.c +274 -45
  226. data/platform/shared/ruby/ext/syncengine/syncengine_wrap.c +65 -21
  227. data/platform/shared/ruby/ext/system/system.i +14 -2
  228. data/platform/shared/ruby/ext/system/system_wrap.c +146 -25
  229. data/platform/shared/ruby/ext/webview/webview_wrap.c +65 -21
  230. data/platform/shared/ruby/include/ruby/ruby.h +15 -4
  231. data/platform/shared/ruby/inits.c +1 -0
  232. data/platform/shared/ruby/io.c +13 -3
  233. data/platform/shared/ruby/win32/win32.c +3 -3
  234. data/platform/shared/ruby/wince/io_wce.c +2 -2
  235. data/platform/shared/rubyext/System.cpp +9 -5
  236. data/platform/shared/sync/ClientRegister.cpp +18 -8
  237. data/platform/shared/sync/SyncEngine.cpp +25 -11
  238. data/platform/shared/sync/SyncEngine.h +2 -0
  239. data/platform/shared/sync/SyncSource.cpp +40 -15
  240. data/platform/shared/sync/SyncSource.h +3 -2
  241. data/platform/shared/sync/SyncThread.cpp +9 -4
  242. data/platform/shared/sync/SyncThread.h +3 -1
  243. data/platform/symbian/build/symbian.rake +14 -9
  244. data/platform/symbian/rhodes/rhodes.pro +11 -8
  245. data/platform/symbian/rhodes/src/phonebook/ruby_phonebook.cpp +2 -2
  246. data/platform/symbian/rubylib/rubylib.pro +3 -0
  247. data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
  248. data/platform/wm/RhoLib/RhoLib.vcproj +315 -2
  249. data/platform/wm/build/build_inf.js +235 -187
  250. data/platform/wm/build/wm.rake +388 -233
  251. data/platform/wm/rhodes.sln +56 -0
  252. data/platform/wm/rhodes/MainWindow.cpp +139 -77
  253. data/platform/wm/rhodes/MainWindow.h +27 -22
  254. data/platform/wm/rhodes/MapView/{Graphics.cpp → Bitmap.cpp} +15 -253
  255. data/platform/wm/rhodes/MapView/Bitmap.h +86 -0
  256. data/platform/wm/rhodes/MapView/MapViewManager.cpp +7 -2
  257. data/platform/wm/rhodes/MapView/MapViewManager.h +1 -1
  258. data/platform/wm/rhodes/MapView/Win32Graphics.cpp +263 -0
  259. data/platform/wm/rhodes/MapView/Win32Graphics.h +133 -0
  260. data/platform/wm/rhodes/MapView/WmGraphics.cpp +291 -0
  261. data/platform/wm/rhodes/MapView/{Graphics.h → WmGraphics.h} +14 -56
  262. data/platform/wm/rhodes/Rhodes.cpp +128 -32
  263. data/platform/wm/rhodes/Rhodes.rc +6 -2
  264. data/platform/wm/rhodes/camera/Camera.cpp +1 -0
  265. data/platform/wm/rhodes/phonebook/phonebook.cpp +2 -2
  266. data/platform/wm/rhodes/phonebook/phonebook.h +2 -2
  267. data/platform/wm/rhodes/resource.h +3 -2
  268. data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +6 -0
  269. data/platform/wm/rhodes/rho/rubyext/NativeToolbar.cpp +4 -0
  270. data/platform/wm/rhodes/rho/rubyext/RhoSignature.cpp +675 -0
  271. data/platform/wm/rhodes/rho/rubyext/RhoSignature.h +123 -0
  272. data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +12 -2
  273. data/platform/wm/rhodes/rhodes.vcproj +2732 -1113
  274. data/platform/wm/rhodes/simulator/MainWindowQt.h +1 -1
  275. data/platform/wm/rhodes/stdafx.h +1 -0
  276. data/platform/wm/rhoelements.sln +118 -62
  277. data/platform/wm/rubylib/rubylib.vcproj +345 -16
  278. data/platform/wm/sqlite3/sqlite3.vcproj +305 -0
  279. data/platform/wm/syncengine/syncengine.vcproj +309 -0
  280. data/platform/wm/tools/detool/LogServer.cpp +19 -2
  281. data/platform/wm/tools/detool/detool.cpp +131 -6
  282. data/platform/wm/tools/detool/detool.vcproj +3 -1
  283. data/platform/wm/tools/detool/stdafx.h +1 -0
  284. data/platform/wp7/IronRuby/Languages/Ruby/Libraries/Builtins/RangeOps.cs +589 -0
  285. data/platform/wp7/IronRuby/Languages/Ruby/Ruby/Builtins/RubyEncoding.cs +678 -0
  286. data/platform/wp7/IronRuby/Languages/Ruby/Ruby/Runtime/RubyExceptionData.cs +271 -0
  287. data/platform/wp7/IronRuby/Languages/Ruby/Ruby/Runtime/RubyUtils.cs +31 -1
  288. data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.Libraries.dll +0 -0
  289. data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.dll +0 -0
  290. data/platform/wp7/RhoRubyLib/common/RhoStd.cs +6 -0
  291. data/platform/wp7/RhoRubyLib/common/RhodesApp.cs +16 -2
  292. data/platform/wp7/RhoRubyLib/net/NetRequest.cs +2 -0
  293. data/platform/wp7/RhoRubyLib/rubyext/RhoSyncEngine.cs +1 -2
  294. data/platform/wp7/RhoRubyLib/sync/SyncEngine.cs +13 -10
  295. data/platform/wp7/RhoRubyLib/sync/SyncSource.cs +30 -8
  296. data/platform/wp7/build/wp.rake +5 -0
  297. data/rakefile.rb +153 -46
  298. data/res/build-tools/detool.exe +0 -0
  299. data/res/build-tools/swig_patch/Lib/ruby/rubyerrors.swg +155 -0
  300. data/res/build-tools/swig_patch/Lib/ruby/rubyhead.swg +158 -0
  301. data/res/build-tools/swig_patch/Lib/ruby/rubyiterators.swg +932 -0
  302. data/res/build-tools/swig_patch/Lib/ruby/rubyrun.swg +448 -0
  303. data/res/build-tools/swig_patch/Lib/ruby/rubystdfunctors.swg +162 -0
  304. data/res/build-tools/swig_patch/Lib/ruby/rubytracking.swg +159 -0
  305. data/res/build-tools/swig_patch/Lib/ruby/std_basic_string.i +97 -0
  306. data/res/build-tools/swig_patch/Lib/ruby/std_map.i +418 -0
  307. data/res/build-tools/swig_patch/Lib/ruby/std_multimap.i +227 -0
  308. data/res/build-tools/swig_patch/Lib/swiginit.swg +269 -0
  309. data/res/build-tools/swig_patch/README +7 -0
  310. data/res/generators/templates/application/app/Settings/controller.rb +42 -1
  311. data/res/generators/templates/application/app/Settings/wait.erb +1 -1
  312. data/res/generators/templates/application/app/application.rb +1 -1
  313. data/res/generators/templates/application/app/layout.erb +8 -8
  314. data/res/generators/templates/application/build.yml +0 -1
  315. data/res/generators/templates/application/public/css/android.css +6 -0
  316. data/res/generators/templates/application/public/css/blackberry.css +6 -0
  317. data/res/generators/templates/application/public/css/iphone.css +6 -0
  318. data/res/generators/templates/application/public/css/jqmobile-patch.css +14 -0
  319. data/res/generators/templates/application/public/jqmobile/images/ajax-loader.png +0 -0
  320. data/res/generators/templates/application/public/jqmobile/images/icons-18-black.png +0 -0
  321. data/res/generators/templates/application/public/jqmobile/images/icons-18-white.png +0 -0
  322. data/res/generators/templates/application/public/jqmobile/images/icons-36-black.png +0 -0
  323. data/res/generators/templates/application/public/jqmobile/images/icons-36-white.png +0 -0
  324. data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0rc1.css → jquery.mobile-1.0.css} +452 -354
  325. data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0rc1.js → jquery.mobile-1.0.js} +629 -442
  326. data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0.min.css +2 -0
  327. data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0.min.js +172 -0
  328. data/res/generators/templates/application/public/jqmobile/jquery.mobile.structure-1.0.css +714 -0
  329. data/res/generators/templates/application/public/jqmobile/jquery.mobile.structure-1.0.min.css +2 -0
  330. data/res/generators/templates/application/public/js/jqmobile-patch.js +136 -7
  331. data/res/generators/templates/extension/app/MontanaTest/controller.rb +20 -20
  332. data/res/generators/templates/extension/app/MontanaTest/index.erb +17 -17
  333. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/iphone/Montana.xcodeproj/project.pbxproj +8 -2
  334. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/iphone/Rakefile +5 -0
  335. data/res/generators/templates/extension/extensions/montana/ext/montana/shared/ruby/montana_wrap.c +64 -20
  336. data/rhomobile-debug.gemspec +1 -1
  337. data/spec/framework_spec/app/layout.erb +1 -1
  338. data/spec/framework_spec/app/spec/core/rational/Rational_spec.rb +1 -1
  339. data/spec/framework_spec/app/spec/library/stringio/shared/each_char.rb +6 -2
  340. data/spec/framework_spec/app/spec/shared/rational/{Rational.rb → rational_main.rb} +0 -0
  341. data/spec/framework_spec/build.yml +0 -3
  342. data/spec/perfomance_spec/app/Benchmark/controller.rb +1 -1
  343. data/spec/perfomance_spec/app/layout.erb +1 -1
  344. data/spec/phone_spec/app/BlobTest_s/blob_test_s.rb +13 -0
  345. data/spec/phone_spec/app/BlobTest_s/test.png +0 -0
  346. data/spec/phone_spec/app/BlobTest_s/test2.png +0 -0
  347. data/spec/phone_spec/app/spec/blobsync_spec.rb +27 -15
  348. data/spec/phone_spec/app/spec/date_spec.rb +27 -1
  349. data/spec/phone_spec/app/spec/rho_spec.rb +6 -0
  350. data/spec/phone_spec/app/spec/rhom_object_spec.rb +64 -26
  351. data/spec/phone_spec/app/spec/syncengine_spec.rb +28 -7
  352. data/spec/phone_spec/app/spec/uri_spec.rb +4 -4
  353. data/spec/phone_spec/app/spec_runner.rb +4 -2
  354. data/spec/phone_spec/build.yml +7 -9
  355. data/spec/phone_spec/rhoconfig.txt +1 -0
  356. data/version +1 -1
  357. metadata +75 -22
  358. data/Manifest.txt +0 -7853
  359. data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.cpp +0 -384
  360. data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.h +0 -41
  361. data/platform/wm/rhodes/signature/Signature.cpp +0 -396
  362. data/platform/wm/rhodes/signature/Signature.h +0 -84
  363. data/platform/wm/rubylib/rubylib.vcproj.VLAD.Vladimir.user +0 -429
  364. data/platform/wm/sqlite3/sqlite3.vcproj.VLAD.Vladimir.user +0 -429
  365. data/platform/wm/syncengine/syncengine.vcproj.VLAD.Vladimir.user +0 -429
  366. data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0rc1.min.css +0 -12
  367. data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0rc1.min.js +0 -170
  368. data/rhomobile-debug-1.0.5.gem +0 -0
data/CHANGELOG CHANGED
@@ -1,3 +1,13 @@
1
+ ## 3.3.0
2
+ * Add Ruby Encoding constants
3
+ * MapView improvements on all platforms
4
+ * Android: support SDK 4.0 and NDK r7
5
+ * iPad2: fix camera issue
6
+ * Contacts: add filter parameters for iPhone and Android
7
+ * Support update RhoBundle on iPhone and Windows Mobile
8
+ * Blackberry: support multiple simulators with one JDE
9
+ * Blackberry: support JQueryMobile on Blackberry 6 and later with full browser mode
10
+
1
11
  ## 3.2.3
2
12
  * Fix Blob sync issue in Rhoconnect-client
3
13
  * Fix logging issue on iPhone and Android
data/Rakefile CHANGED
@@ -262,6 +262,20 @@ namespace "config" do
262
262
  capabilities += $app_config[$config["platform"]]["capabilities"] if $app_config[$config["platform"]] and
263
263
  $app_config[$config["platform"]]["capabilities"] and $app_config[$config["platform"]]["capabilities"].is_a? Array
264
264
  $app_config["capabilities"] = capabilities
265
+
266
+ #Process motorola extensions
267
+ if capabilities.index("motorola")
268
+ $app_config["capabilities"] += ["webkit_browser"] if $app_config["extensions"].index("webkit-browser")
269
+ $app_config["extensions"] += ["rhoelements"]
270
+
271
+ idx_barcode = $app_config["extensions"].index("barcode")
272
+ $app_config["extensions"][idx_barcode] = "barcode-moto" if idx_barcode
273
+
274
+ $app_config["capabilities"] += ["barcode"] if $app_config["extensions"].index("barcode-moto")
275
+ end
276
+
277
+ puts "$app_config['extensions'] : #{$app_config['extensions']}"
278
+ puts "$app_config['capabilities'] : #{$app_config['capabilities']}"
265
279
 
266
280
  $hidden_app = $app_config["hidden_app"].nil?() ? "0" : $app_config["hidden_app"]
267
281
 
@@ -382,10 +396,12 @@ end
382
396
 
383
397
  def init_extensions(startdir, dest)
384
398
  extentries = []
399
+ nativelib = []
385
400
  extlibs = []
386
- extpaths = $app_config["extpaths"]
387
-
388
- $app_config["extensions"].each do |extname|
401
+ extpaths = $app_config["extpaths"]
402
+
403
+ puts 'init extensions'
404
+ $app_config["extensions"].each do |extname|
389
405
  extpath = nil
390
406
  extpaths.each do |p|
391
407
  ep = File.join(p, extname)
@@ -393,28 +409,41 @@ def init_extensions(startdir, dest)
393
409
  extpath = ep
394
410
  break
395
411
  end
396
- end
412
+ end
397
413
 
398
414
  if extpath.nil?
399
415
  begin
400
416
  $rhodes_extensions = nil
401
417
  require extname
402
- extpath = $rhodes_extensions[0] unless $rhodes_extensions.nil?
403
- rescue Exception => e
404
-
418
+ extpath = $rhodes_extensions[0] unless $rhodes_extensions.nil?
419
+ $app_config["extpaths"] << extpath
420
+ rescue Exception => e
421
+ puts "exception"
405
422
  end
406
-
407
423
  end
408
-
424
+
409
425
  unless extpath.nil?
410
- add_extension(extpath, dest)
426
+ add_extension(extpath, dest) unless dest.nil?
411
427
 
412
428
  if $config["platform"] != "bb"
413
- extyml = File.join(extpath, "ext.yml")
414
- if File.file? extyml
415
- extconf = Jake.config(File.open(extyml))
416
- entry = extconf["entry"]
417
- extentries << entry unless entry.nil?
429
+ extyml = File.join(extpath, "ext.yml")
430
+ puts "extyml " + extyml
431
+
432
+ if File.file? extyml
433
+ extconf = Jake.config(File.open(extyml))
434
+ entry = extconf["entry"]
435
+ nlib = extconf["nativelibs"]
436
+ type = extconf["exttype"]
437
+
438
+ if nlib != nil
439
+ nlib.each do |libname|
440
+ nativelib << libname
441
+ end
442
+ end
443
+
444
+ extentries << entry unless entry.nil?
445
+
446
+ if type.to_s() != "nativelib"
418
447
  libs = extconf["libraries"]
419
448
  libs = [] unless libs.is_a? Array
420
449
  if $config["platform"] == "wm" || $config["platform"] == "win32"
@@ -424,49 +453,57 @@ def init_extensions(startdir, dest)
424
453
  end
425
454
  extlibs += libs
426
455
  end
456
+ end
427
457
  end
428
458
  end
429
-
430
459
  end
431
-
460
+
432
461
  exts = File.join($startdir, "platform", "shared", "ruby", "ext", "rho", "extensions.c")
433
-
462
+ puts "exts " + exts
463
+
434
464
  if $config["platform"] != "bb"
435
- exists = []
465
+ exists = []
436
466
 
437
- if ( File.exists?(exts) )
438
- File.new(exts, "r").read.split("\n").each do |line|
439
- next if line !~ /^\s*extern\s+void\s+([A-Za-z_][A-Za-z0-9_]*)/
440
- exists << $1
441
- end
467
+ if ( File.exists?(exts) )
468
+ File.new(exts, "r").read.split("\n").each do |line|
469
+ next if line !~ /^\s*extern\s+void\s+([A-Za-z_][A-Za-z0-9_]*)/
470
+ exists << $1
442
471
  end
443
-
444
- if (exists.sort! != extentries.sort! ) || (!File.exists?(exts))
445
- File.open(exts, "w") do |f|
446
- puts "MODIFY : #{exts}"
472
+ end
473
+
474
+ #if (exists.sort! != extentries.sort! ) || (!File.exists?(exts))
475
+ File.open(exts, "w") do |f|
476
+ puts "MODIFY : #{exts}"
447
477
 
448
- f.puts "// WARNING! THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT IT MANUALLY!"
449
- #f.puts "// Generated #{Time.now.to_s}"
450
- if $config["platform"] == "wm" || $config["platform"] == "win32"
451
- # Add libraries through pragma
452
- extlibs.each do |lib|
453
- f.puts "#pragma comment(lib, \"#{lib}\")"
454
- end
478
+ f.puts "// WARNING! THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT IT MANUALLY!"
479
+ #f.puts "// Generated #{Time.now.to_s}"
480
+ if $config["platform"] == "wm" || $config["platform"] == "win32"
481
+ # Add libraries through pragma
482
+ extlibs.each do |lib|
483
+ f.puts "#pragma comment(lib, \"#{lib}\")"
455
484
  end
456
- extentries.each do |entry|
457
- f.puts "extern void #{entry}(void);"
458
- end
459
- f.puts "void Init_Extensions(void) {"
460
- extentries.each do |entry|
461
- f.puts " #{entry}();"
485
+
486
+ nativelib.each do |lib|
487
+ f.puts "#pragma comment(lib, \"#{lib}\")"
462
488
  end
463
- f.puts "}"
464
489
  end
490
+
491
+ extentries.each do |entry|
492
+ f.puts "extern void #{entry}(void);"
493
+ end
494
+
495
+ f.puts "void Init_Extensions(void) {"
496
+ extentries.each do |entry|
497
+ f.puts " #{entry}();"
498
+ end
499
+ f.puts "}"
465
500
  end
501
+ #end
466
502
 
467
- extlibs.each { |lib| add_linker_library(lib) }
503
+ extlibs.each { |lib| add_linker_library(lib) }
504
+ nativelib.each { |lib| add_linker_library(lib) }
468
505
 
469
- set_linker_flags
506
+ set_linker_flags
470
507
  end
471
508
 
472
509
  unless $app_config["constants"].nil?
@@ -480,13 +517,16 @@ def init_extensions(startdir, dest)
480
517
  end
481
518
  end
482
519
 
483
- if $excludeextlib
520
+ if $excludeextlib and (not dest.nil?)
484
521
  chdir dest
485
522
  $excludeextlib.each {|e| Dir.glob(e).each {|f| rm f}}
486
523
  end
524
+
487
525
  end
488
526
 
489
527
  def common_bundle_start(startdir, dest)
528
+ puts "common_bundle_start"
529
+
490
530
  app = $app_path
491
531
  rhodeslib = "lib/framework"
492
532
 
@@ -597,7 +637,7 @@ namespace "build" do
597
637
  task :xruby do
598
638
  #needs $config, $srcdir, $excludelib, $bindir
599
639
  app = $app_path
600
- jpath = $config["env"]["paths"]["java"]
640
+ jpath = $config["env"]["paths"]["java"]
601
641
  startdir = pwd
602
642
  dest = $srcdir
603
643
  xruby = File.dirname(__FILE__) + '/res/build-tools/xruby-0.3.3.jar'
@@ -714,6 +754,72 @@ namespace "build" do
714
754
  cp_r "platform/shared/db/res/db", $srcdir
715
755
  end
716
756
 
757
+ task :upgrade_package do
758
+
759
+ $bindir = File.join($app_path, "bin")
760
+ $current_platform = 'empty'
761
+ $srcdir = File.join($bindir, "RhoBundle")
762
+
763
+ $targetdir = File.join($bindir, "target")
764
+ $excludelib = ['**/builtinME.rb','**/ServeME.rb','**/dateME.rb','**/rationalME.rb']
765
+ $tmpdir = File.join($bindir, "tmp")
766
+ $appname = $app_config["name"]
767
+ $appname = "Rhodes" if $appname.nil?
768
+ $vendor = $app_config["vendor"]
769
+ $vendor = "rhomobile" if $vendor.nil?
770
+ $vendor = $vendor.gsub(/^[^A-Za-z]/, '_').gsub(/[^A-Za-z0-9]/, '_').gsub(/_+/, '_').downcase
771
+ $appincdir = File.join $tmpdir, "include"
772
+
773
+ Rake::Task["config:common"].invoke
774
+
775
+ Rake::Task["build:bundle:noxruby"].invoke
776
+
777
+ new_zip_file = File.join($srcdir, "apps", "upgrade_bundle.zip")
778
+
779
+ if RUBY_PLATFORM =~ /(win|w)32$/
780
+ begin
781
+
782
+ require 'rubygems'
783
+ require 'zip/zip'
784
+ require 'find'
785
+ require 'fileutils'
786
+ include FileUtils
787
+
788
+ root = $srcdir
789
+
790
+ new_zip_file = File.join($srcdir, "upgrade_bundle.zip")
791
+
792
+ Zip::ZipFile.open(new_zip_file, Zip::ZipFile::CREATE)do |zipfile|
793
+ Find.find(root) do |path|
794
+ Find.prune if File.basename(path)[0] == ?.
795
+ dest = /apps\/(\w.*)/.match(path)
796
+ if dest
797
+ puts ' add file to zip : '+dest[1].to_s
798
+ zipfile.add(dest[1],path)
799
+ end
800
+ end
801
+ end
802
+ rescue
803
+ puts 'ERROR !'
804
+ puts 'Require "rubyzip" gem for make zip file !'
805
+ puts 'Install gem by "gem install rubyzip"'
806
+ end
807
+ else
808
+ chdir File.join($srcdir, "apps")
809
+ sh %{zip -r upgrade_bundle.zip .}
810
+ end
811
+
812
+
813
+ cp new_zip_file, $bindir
814
+
815
+ rm new_zip_file
816
+
817
+
818
+
819
+ end
820
+
821
+
822
+
717
823
  task :noiseq do
718
824
  app = $app_path
719
825
  rhodeslib = File.dirname(__FILE__) + "/lib/framework"
@@ -929,6 +1035,7 @@ namespace "buildall" do
929
1035
  end
930
1036
  end
931
1037
 
1038
+
932
1039
  task :gem do
933
1040
  puts "Removing old gem"
934
1041
  rm_rf Dir.glob("rhodes*.gem")
data/doc/build.txt CHANGED
@@ -11,7 +11,7 @@ You should check to see that the required software in installed on your computer
11
11
 
12
12
  ## Setting Up Rhodes Source Code
13
13
 
14
- If you planning to modify or [extend](extensions) Rhodes, you will need the Rhodes source code. It is distributed under MIT license. You don't need it if you are not planning to modify/extend Rhodes.
14
+ If you are planning to modify or [extend](extensions) Rhodes, you will need the Rhodes source code. It is distributed under MIT license. You don't need the Rhodes source code if you are not planning to modify/extend Rhodes, and you should skip to the building section for your platform if this is the case.
15
15
 
16
16
  Rhodes source code is available on github.com. You will need Git to get it. If you used [RhoStudio for Windows](http://rhomobile.com/rhostudio-windows) you probably already have Git installed on your system. Otherwise, load it from [here](http://git-scm.com).
17
17
 
@@ -38,7 +38,7 @@ Configure your environment by running the rhodes-setup script. This will attempt
38
38
  :::term
39
39
  $ rhodes-setup
40
40
 
41
- You don't have to do it if you cloned sources, but if you want to build a Rhodes gem, do the following:
41
+ You don't have to do it if you installed RhoStudio, but if you want to build a Rhodes gem, do the following:
42
42
 
43
43
  :::term
44
44
  $ rake gem
@@ -46,23 +46,22 @@ You don't have to do it if you cloned sources, but if you want to build a Rhodes
46
46
 
47
47
  ## Setting Up build.yml
48
48
 
49
- By default application use latest Rhodes gem installed on computer.
50
-
51
- If you wish to use special version of Rhodes or use Rhodes git sources :
49
+ By default, a Rhodes application uses the latest Rhodes gem installed on your computer. If you wish to use special version of Rhodes or use Rhodes git sources, check for this line in your application's build.yml file:
52
50
 
53
51
  :::term
54
52
  sdk: /Library/Ruby/Gems/1.8/gems/rhodes-3.0.2
55
-
56
- OR for Rhodes sources:
57
-
58
- sdk: ~/Projects/rhodes
59
53
 
60
- After installing new Rhodes gem(3.2.x over any version less then 3.2.x), you need also open a command line window, navigate to the directory of your Rhodes application, and run the following command:
54
+ Or for Rhodes sources:
61
55
 
62
56
  :::term
63
- $ migrate-rhodes-app
57
+ sdk: ~/Projects/rhodes
64
58
 
65
- The migrate-rhodes-app will remove sdk line from your build.yml to use latest Rhodes gem, it also will upgrade application Rakefile.
59
+ After you install a new Rhodes gem(3.2.x over any version less then 3.2.x), you need to go to the command line, navigate to the directory of your Rhodes application, and run the following command:
60
+
61
+ :::term
62
+ $ migrate-rhodes-app
63
+
64
+ The migrate-rhodes-app will update the sdk line from your build.yml to use the latest Rhodes gem. It will also upgrade your application's Rakefile.
66
65
 
67
66
  ## Building a Rhodes Application for iPhone/iPad
68
67
 
@@ -72,15 +71,29 @@ iPhone/iPad versions of Rhodes apps must be built on Macintosh computers or on [
72
71
 
73
72
  To build for iPhone/iPad using you will need the following software installed:
74
73
 
75
- * Mac OS X 10.6 or greater
76
- * Follow [All Platforms Prerequisites](#all-platforms-prerequisites)
77
- * iPhone SDK. We recommend the latest stable version available from the [iPhone Dev Center](http://developer.apple.com/iphone/index.action)
74
+ * Mac OS X 10.6 or greater.
75
+ * Follow [All Platforms Prerequisites](#all-platforms-prerequisites).
76
+ * iPhone SDK. We recommend the latest stable version available from the [iPhone Dev Center](http://developer.apple.com/iphone/index.action).
77
+
78
+ ### Building and Running Your iOS Application with RhoStudio
79
+
80
+ To start the build process, create a Run Configuration: select your project in the Project Explorer, and either:
81
+ * select Run->Run Configurations... from the main menu,
82
+ * or right-click on your project, and select Run As->Run Configurations from the popup menu.
83
+
84
+ <img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-menu.png"/>
85
+
86
+ The Run Configurations window appears.
87
+
88
+ To run on the iOS simulator, select iPhone in Platform, Simulator in Simulator type, and select iPhone or iPad. Then click the Run button.
89
+
90
+ <img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-ios.png"/>
78
91
 
79
92
  ### Build a Rhodes Application with Xcode
80
93
 
81
94
  If you wish to run your Rhodes application on an iOS device, you need to build and run it using an Xcode project.
82
95
 
83
- Tell Rhodes to build from your Rhodes application.
96
+ Tell Rhodes to build from your Rhodes application. Within your Rhodes project folder, run the following command:
84
97
 
85
98
  :::term
86
99
  $ rake switch_app
@@ -91,7 +104,7 @@ The switch_app command changes the rhobuild.yml in the Rhodes source code folder
91
104
  env:
92
105
  app: /Users/NameOfUser/Store
93
106
 
94
- Note that the switch_app command is only used when you run a Rhodes application within an IDE, such as Xcode: you run switch_app for each Rhodes application that you run in Xcode. The switch_app command does not affect Rhodes applications that you build and run on the command line.
107
+ Note that the switch_app command is only used when you run a Rhodes application within an IDE, such as Xcode: you run switch_app for each Rhodes application that you run in Xcode. The switch_app command does not affect Rhodes applications that you build and run on the command line or within RhoStudio.
95
108
 
96
109
  Now run the following command to tell Rhodes to set up the Xcode environment for your Rhodes application:
97
110
 
@@ -124,6 +137,16 @@ You can edit your Rhodes code for your Rhodes application in a text editor, save
124
137
 
125
138
  The resulting application package (*.app) is located in your Rhodes source code folder under /platform/iphone/build/, in a folder named like [Debug/Release]-[iphoneos/iphonesimulator]/rhorunner.app.
126
139
 
140
+ ### Building and run on old devices (before iPhone4/iPad)
141
+
142
+ From the XCode 4.2 Apple was removed default support of armv6 architecture. In this case there are two issues:
143
+
144
+ * Distributution build should include code for armv6 and armv7 both. Our projects already fixed for this require for Distribution build.
145
+ * If you want build/run/debug your application on devices before iPhone/iPad (for example on iPhone 3G), you should manually path all rhodes xcode projects and all xcode projects in native extensions used in your application for Architecture settings:
146
+ in each project modify [Build Settings]-[Architectures]-[Debug]/[Release]:
147
+ remove $(ARCHS_STANDARD_32_BIT)
148
+ add two architectures manually: "armv7" and "armv6"
149
+
127
150
  ### Building and Releasing on App Store
128
151
 
129
152
  Once you have the application building with Xcode as described above, it is treated as any other iPhone application when it comes to [signing and distributing to the app store](http://developer.apple.com/iphone/appstore/).
@@ -231,54 +254,67 @@ Use <b>iTunes</b> for installing your application package (your_application_name
231
254
 
232
255
  ## Build for Android
233
256
 
234
- ### Prerequisites
257
+ ### Setting Up the Android SDK and NDK
235
258
 
236
- * [OS compatible with Android SDK](http://developer.android.com/sdk/requirements.html)
237
- * Follow [All Platforms Prerequisites](#all-platforms-prerequisites)
238
- * Download the [Android SDK Starter Package](http://developer.android.com/sdk/index.html)
239
- * Run `<sdk>/tools/android` on OSX/Linux or `<sdk>/SDK Setup.exe` on Windows
240
- * Go to Settings > check `Force https://... sources to be fetched using http://` and press `Save & Apply`.
241
- * Go to Available > Expand `https://dl-ssl.google.com`
242
- * Download the latest SDK version, latest platform (SDK Platform 2.2, for example) and latest "Google APIs" available.
243
- * Set the environment variables ANDROID_HOME to where you installed the SDK, and add `<sdk path>/tools` to PATH
244
- * Download and install the [Android NDK](http://developer.android.com/sdk/ndk/index.html)
245
- * Run `rhodes-setup` and tell Rhodes where you installed the Android SDK and NDK
259
+ Check that your [OS is compatible with the Android SDK](http://developer.android.com/sdk/requirements.html).
260
+
261
+ Download the [Android SDK](http://developer.android.com/sdk/index.html), and unzip it to the location of your choice.
262
+
263
+ On Macintosh and Linux, navigate to and run <Android SDK>/tools/android. On Windows, navigate to and run <Android SDK>/SDK Setup.exe. The Android SDK and AVD Manager window appears. Then perform the following steps:
264
+
265
+ * Select Settings, then check "check `Force https://... sources to be fetched using http://".
266
+ * Select Available packages, expand the Android repository and Third Party add-ons, check the Android SDK Platform(s) and Google APIs of your choice, then click the "Add Add-on site" button to download them.
267
+ * Set up an AVD (Android Virtual Device) by clicking on Virtual Devices, and clicking the New button. More detailed instructions can be on the Google site for [Managing AVDs with AVD Manager](http://developer.android.com/guide/developing/devices/managing-avds.html).
268
+
269
+ Download and unzip the [Android NDK](http://developer.android.com/sdk/ndk/index.html) to the location of your choice.
246
270
 
247
- In case if you are planning to work with native geo mapping (MapView interface), two things should be done:
271
+ In RhoStudio -> Preferences on the Macintosh or Winndows -> Preferences on Windows, open Rhomobile->Android and set the paths to your Android SDK and NDK installations.
248
272
 
249
- * Android Maps API key should be retrieved from Google. Follow these [instructions](http://code.google.com/intl/en/android/add-ons/google-apis/mapkey.html) to get it. When key received, put it in your application's `build.yml` or share it across all your applications by adding it to `rhobuild.yml`. Note that the `apikey` value must match a certificate used to sign an application (the key is different for debug and production signed build and debug key cannot be shared between different build computers).
273
+ <img src="http://rhodocs.s3.amazonaws.com/rhostudio-tutorial/preferences-android-sdk.png"/>
274
+
275
+ If you are not using RhoStudio, run rhodes-setup from the command line and set the paths to the Android SDK and NDK installations.
276
+
277
+ ### Setting up the Android Maps API
278
+
279
+ In case you are planning to work with native geo mapping (the MapView interface), you must do two things:
280
+
281
+ * Retrieve the Android Maps API key from Google. Follow these [instructions](http://code.google.com/intl/en/android/add-ons/google-apis/mapkey.html) to get it. When key received, put it in your application's `build.yml` or share it across all your applications by adding it to `rhobuild.yml`. Note that the `apikey` value must match a certificate used to sign an application (the key is different for debug and production signed build and debug key cannot be shared between different build computers).
250
282
 
251
283
  android:
252
284
  apikey: "GOOGLE-API-KEY-FOR-ANDROID"
253
285
 
254
- * Enable 'mapping' in your application's `build.yml` (or in `<rhodes-root>/rhobuild.yml`):
286
+ * Enable 'mapping' in your application's `build.yml` (or in `<rhodes-root>/rhobuild.yml`). In RhoStudio, you can double-click on your application's build.yml and edit from the text editor; otherwise, you can edit rhobuil.yml or build.yml from another text editor.
255
287
 
256
288
  android:
257
289
  mapping: yes
258
290
 
259
- If you are using Eclipse (Optional) please follow [these instructions](http://source.android.com/source/using-eclipse.html) on how to increase Java memory space to use Android.
260
-
291
+ ### Including CSS Files
261
292
 
262
- Please check your applications and change how you include css files into html pages.
293
+ You should check your application to change how you include css files in your html pages.
263
294
 
264
- For example, you will need to replace
295
+ For example, you will need to replace this:
265
296
 
266
297
  <style type="text/css" media="screen">
267
298
  @import "/public/js/iui/iui.css"; @import "/public/css/rho.css";
268
299
  </style>
269
300
 
270
- with
301
+ with this:
271
302
 
272
303
  <link rel="stylesheet" href="public/js/iui/iui.css" type="text/css">
273
304
  <link rel="stylesheet" href="public/css/rho.css" type="text/css">
274
305
 
275
- Otherwise your css files will not be loaded in Android 1.5 (and higher)
306
+ Otherwise your css files will not be loaded in Android 1.5 (and higher).
276
307
 
277
308
  ### Device capabilities settings in build.yml
278
309
 
279
- Attention ! On Android you should specify list of device capabilities need for you application. By default there are not any capabilities enabled !
280
- This is important because all defined capability produce special <uses-permission ... > lines in AndroidManifest.xml specific to Android platfrom. Without enabled permission application can not access to device functions.
281
- List of capabilities related to changes in AndroidManifest - add or remove this items in "capabilities" section in your build.yml:
310
+ On Android, you must specify your device capabilities the your application will use. By default, these capabiliteis are NOT enabled.
311
+
312
+ In RhoStudio, you can double-click on your application's build.yml file, then click the Rhobuild setting tab, then click the Capabilities: Add button. You will see a list of capabilities you can check to activate for your application.
313
+
314
+ <img src="http://rhodocs.s3.amazonaws.com/rhostudio-tutorial/select-capabilities.png"/>
315
+
316
+ You can also edit the build.yml file directly with a text editor. Here is a list of capabilites you can add to the capabilities section in your application build.yml file.
317
+
282
318
  audio
283
319
  camera
284
320
  gps
@@ -292,87 +328,125 @@ List of capabilities related to changes in AndroidManifest - add or remove this
292
328
  sdcard
293
329
  push
294
330
 
295
- ### Set up minimal Andoid SDK API level
331
+ ### Set up minimal Android SDK API level
296
332
 
297
333
  The minimal API level supported by Rhodes is 4 (Android 1.6)
298
- It is possible to set greated minimal API level with build.yml. This will restrict installing an application on any Android OS prior to 3.0:
334
+ You can set a greater minimal API level in build.yml. For example, the following entry will restrict installing your application on any Android OS prior to 3.0:
299
335
 
300
336
  android:
301
337
  minSDK: 11
302
338
 
303
- ### Building app and running it in emulator from the command line
339
+ ### Building and Running Your Android Application with RhoStudio
340
+
341
+ To start the build process, create a Run Configuration: select your project in the Project Explorer, and either:
342
+ * select Run->Run Configurations... from the main menu,
343
+ * or right-click on your project, and select Run As->Run Configurations from the popup menu.
344
+
345
+ <img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-menu.png"/>
346
+
347
+ The Run Configurations window appears.
348
+
349
+ #### Running on the Android Simulator with RhoStudio
350
+
351
+ To run on the Android simulator, select Android in Platform, Simulator in Simulator type, and enter the name of the AVD in AVD name. Then click the Run button.
352
+
353
+ <img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-avd.png"/>
354
+
355
+ You can get a list of the AVD names by running the SDK setup: on Macintosh and Linux, navigate to and run <Android SDK>/tools/android. On Windows, navigate to and run <Android SDK>/SDK Setup.exe. Then click Virtual devices.
356
+
357
+ <img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/android-virtual-devices.png"/>
358
+
359
+ #### Running on an Android Device with RhoStudio
360
+
361
+ To run on an Android device, first set up your device as shown in the Android documentation for [Using Hardware Devices](http://developer.android.com/guide/developing/device.html).
362
+
363
+ Then connect your Android device to your computer with a USB cable.
304
364
 
305
- ** NOTE: make sure that your PATH has the path to java bin. **
365
+ In the Run Configurations window, select Android in Platform, and Device in Simulator type.
306
366
 
307
- From the command line, in your rhodes application directory, run:
367
+ #### Reading the Log File with RhoStudio
368
+
369
+ After you run your applciation in RhoStudio, your application log file, rholog.txt, is stored in your application directory. You can open and read rholog.txt in RhoStudio by double-clicking on it in the Project Explorer.
370
+
371
+ ### Building and Running Your Android Application from the Command Line
372
+
373
+ From the command line, navigate to your application directory.
374
+
375
+ To run your application in the Android emulator, run the following command:
308
376
 
309
377
  :::term
310
378
  $ rake run:android
311
379
 
312
- It will create (if needed) new virtual sdcard for emulator, then check if emulator is already running (and start if not) and upload application there. You can specify version of emulator you are want to run in your application's build.yml:
380
+ You can adjust the settings of the Android emulator from your application's build.yml file. For example, to specify the platform version number and the emulator AVD name:
313
381
 
314
382
  android:
315
383
  version: 2.1
316
-
317
- You can also specify emulator AVD name (see 'Android SDK and AVD Manager').
318
-
319
- android:
320
384
  emulator: myDeviceEmulator20
321
385
 
322
- Disable Android title in application :
386
+ You can also disable the Android title in the application and set the orientation to portrait (or landscape):
323
387
 
324
388
  android:
325
389
  android_title: 0
326
-
327
- Setup fixed screen orientation for application (writed to Manifest, possible values: "portrait", "landscape") :
328
-
329
- android:
330
390
  orientation: portrait
331
391
 
332
- If the rake command gets stuck you can kill the command window, open another window, run:
392
+ If the rake command gets stuck, you can kill the command window, open another window, and run:
333
393
 
334
394
  :::term
335
395
  $ adb start-server
336
396
  $ rake run:android
337
397
 
338
-
339
398
  ** NOTE: If you didn't run your Android simulator yet or don't have AVD configuration set, you will be asked a few questions about emulator configuration. You should answer "yes" for most questions or use default answers. As a result new AVD configuration will be created. **
340
399
 
341
- To uninstall application from emulator, run:
400
+ To uninstall your application from the emulator, run:
342
401
 
343
402
  :::term
344
403
  $ rake uninstall:android
345
404
 
346
- ### Building app and running it on the device from the command line
347
-
348
- If you have an Android device, you can develop and debug your Android applications just as usual. Launching your apps on a device works just the same as on the emulator, but there are a few things to do before you can start. Please check corresponding [Android documentation](http://developer.android.com/guide/developing/device.html).
405
+ To run on an Android device, first set up your device as shown in the Android documentation for [Using Hardware Devices](http://developer.android.com/guide/developing/device.html).
349
406
 
350
- You can verify that your device is connected by executing:
407
+ Connect your Android to your computer with a USB cable. You can verify that your device is connected by executing:
351
408
 
352
409
  :::term
353
410
  $ adb devices
354
411
 
355
- If connected, you'll see the device name listed.
356
-
357
- If your machine doesn't "see" the device as connected, try killing the adb process first:
412
+ If connected, you'll see the device name listed. If your computer doesn't see the device, try killing the adb process first:
358
413
 
359
414
  :::term
360
415
  $ adb kill-server
361
416
  $ adb install <filename>.apk
362
417
 
363
- After you have your device connected, in your rhodes application directory, run:
418
+ After you have your device connected, navigate to your application directory and run:
364
419
 
365
420
  :::term
366
421
  $ rake run:android:device
367
422
 
368
- This will build your application and sign it with auto-generated self-signed certificate
423
+ This will build your application and sign it with auto-generated self-signed certificate.
369
424
 
370
- To uninstall from the device, run:
425
+ To uninstall your application from the device, run:
371
426
 
372
427
  :::term
373
428
  $ rake uninstall:android:device
374
429
 
375
- If you want to build production version, edit your application's build.yml as below:
430
+ #### Getting the Application Log from Device or Emulator
431
+
432
+ You can get the application log from the device or the emulator. From the command line, navigate to your application folder or to the root of your rhodes source tree (where the rhobuild.yml file is located). Then run this command:
433
+
434
+ :::term
435
+ $ rake device:android:getlog
436
+
437
+ Or
438
+ :::term
439
+ $ rake emulator:android:getlog
440
+
441
+ The application log will be stored in your application directory. The file will be named RhoLog.txt.
442
+
443
+ To see all the emulator messages, run `adb logcat` and start the application in the emulator.
444
+
445
+ To see all the device messages, run `adb -d logcat` and start the application on your device.
446
+
447
+ ### Building an Android Production Version
448
+
449
+ To build a production version of your application, edit your application's build.yml as below:
376
450
 
377
451
  android:
378
452
  production:
@@ -380,39 +454,41 @@ If you want to build production version, edit your application's build.yml as be
380
454
  password: "password-of-the-certificate"
381
455
  alias: "keystore.alias"
382
456
 
383
- This will use specified certificate to sign application. If certificate is not found, it will be auto-generated. In this case you'll be prompted with several questions like your name, organization etc. The path to certificate may be absolute or relative to your app directory. If you don't want to use auto-generated certificate, refer to the [these instructions](http://developer.android.com/guide/publishing/app-signing.html) on how to create it manually.
457
+ This will use the specified certificate to sign your application. If the certificate is not found, it will be auto-generated, and you'll be prompted with several questions like your name, organization etc. The path to the certificate may be absolute or relative to your app directory. If you don't want to use an auto-generated certificate, refer to the [these instructions](http://developer.android.com/guide/publishing/app-signing.html) on how to create a certificate manually.
384
458
 
385
- After that run:
459
+ Once your certificate is set up, you can run:
386
460
 
387
461
  :::term
388
462
  $ rake device:android:production
389
463
 
390
- Signed APK will be located in `<rhodes-app-dir>/bin/target`. To install application on the device run:
464
+ The signed APK will be located in `<rhodes-app-dir>/bin/target`. To install the application on the device run:
391
465
 
392
466
  :::term
393
467
  $ adb -d install -r <rhodes-app-dir>/bin/target/<app-name>_signed.apk
394
468
 
395
469
  ### Building app in Eclipse
396
470
 
397
- Please note: It is only Google API target (with Google mapping API) supported for Eclipse
471
+ On Macintosh and WIndows computers, you can create Rhodes apps within RhoStudio. However, on Linux installations, you can use Eclipse, since RhoStudio is not available for Linux.
472
+
473
+ Please note: It is only Google API target (with Google mapping API) supported for Eclipse.
398
474
 
399
475
  Create a new workspace in the following directory: `<Rhodes>/platform/android`
400
476
 
401
- Go to the Window > Preferences
477
+ In Eclipse, open Window > Preferences.
402
478
 
403
- Click on Android node in the tree and specify file path to the installed Android SDK (For example: `E:\android\android-sdk-windows`)
479
+ Click on Android node in the tree and specify the file path to the installed Android SDK (for example: `E:\android\android-sdk`).
404
480
 
405
- Import all projects from the following directory: `<Rhodes>/platform/android`
481
+ Import all projects from the directory for your new workspace: `<Rhodes>/platform/android`
406
482
 
407
- If you have set the option to build sources automatically all stuff will be compiled just after the import.
483
+ If you have set the option to build sources automatically, your project will be compiled just after the import.
408
484
 
409
- Select Properties from the Rhodes project context menu and select one of latest Google API target for Android.
485
+ Select Properties from the Rhodes project context menu and select one of the latest Google API targets for Android.
410
486
 
411
- Check bin directory. You should see Rhodes.apk file created. It will be signed with debug key provided with SDK.
487
+ Check the bin directory. You should see the Rhodes.apk file that was created. It will be signed with the debug key provided with SDK.
412
488
 
413
- Now you are ready to install your application on device and/or emulator.
489
+ Now you are ready to install your application on your device and/or emulator.
414
490
 
415
- In case of troubles in Eclipse while setting up the Android SDK and target try "Rhodes project context menu" > "Android Tools" > "Fix Project Properties".
491
+ In case of troubles in Eclipse while setting up the Android SDK and target, try "Rhodes project context menu" > "Android Tools" > "Fix Project Properties".
416
492
 
417
493
  It is possible your application has stopped unexpectedly just after the first build. In this case try to copy autogenerated java source files from the application folder <app>/bin/tmp to the Rhodes project.
418
494
 
@@ -429,9 +505,9 @@ Or
429
505
 
430
506
  Application log will be pulled from device/emulator and stored in your application directory with name RhoLog.txt.
431
507
 
432
- To see all emulator messages run 'adb logcat' and start application on emulator
508
+ To see all emulator messages, run 'adb logcat' and start application on emulator.
433
509
 
434
- To see all device messages run 'adb -d logcat' and start application on device
510
+ To see all device messages, run 'adb -d logcat' and start application on device.
435
511
 
436
512
  ## Build for BlackBerry
437
513
 
@@ -447,6 +523,8 @@ Blackberry SDK for Mac doesn't come with simulators so far. So for now we would
447
523
  5.0:
448
524
  jde: <jde_5.0>/components
449
525
  sim: 9550
526
+ #sim_path is optional. It defines path for standalone simulator
527
+ sim_path: <jde_5.0>/components/simulator
450
528
  mds: <jde_5.0>/components/MDS
451
529
 
452
530
  * Read about Blackberry Browser limitations of CSS, HTML and JavaScript. Get relevant documentation from [here](http://na.blackberry.com/eng/support/docs/subcategories/?userType=21&category=BlackBerry+Browser).
@@ -683,8 +761,21 @@ Note that Symbian versions of your Rhodes app must be built in a Windows environ
683
761
  If you want to build for Symbian device you have to install QT and QT Mobility for Symbian on your device.
684
762
  You can find installation files in QT SDK folder like below:
685
763
 
686
- QT - C:/QtSDK/Symbian/sis/Symbian1/Qt/4.7.3/qt.sis
687
- QT Mobility - C:/QtSDK/Symbian/sis/Symbian1/QtMobility/1.1.3/qtmobility.sis
764
+ For Symbian 9.4
765
+
766
+ QT - C:/QtSDK/Symbian/sis/Symbian1/Qt/4.7.3/qt.sis
767
+ (install it only on disc C:, before install pls close all opened applications)
768
+
769
+ QT WebKit - C:/QtSDK/Symbian/sis/Symbian1/Qt/4.7.3/qtwebkit.sis
770
+ QT Mobility - C:/QtSDK/Symbian/sis/Symbian1/QtMobility/1.1.3/qtmobility.sis
771
+
772
+ For Symbian 9.5
773
+
774
+ QT - C:/QtSDK/Symbian/sis/Symbian3/Qt/4.7.3/qt.sis
775
+ (install it only on disc C:, before install pls close all opened applications)
776
+
777
+ QT WebKit - C:/QtSDK/Symbian/sis/Symbian3/Qt/4.7.3/qtwebkit.sis
778
+ QT Mobility - C:/QtSDK/Symbian/sis/Symbian3/QtMobility/1.1.3/qtmobility.sis
688
779
 
689
780
  Then open file - C:/QtSDK/Symbian/SDKs/Symbian1Qt473/epoc32/include/cntdb.h and replace below two strings:
690
781
  CContactConverter& CContactDatabase::ConverterL(const TUid& aFormat);
@@ -731,45 +822,108 @@ NOTE: If You want to use your own UID for application you can redefine it in bui
731
822
 
732
823
  ## Build for Windows Mobile
733
824
 
734
- Note that Windows Mobile versions of your Rhodes app must be built in a Windows environment.
735
-
825
+ Note that Windows Mobile versions of your Rhodes application must be built in a Windows environment.
826
+
736
827
  ### Prerequisites
737
828
 
738
- * Follow [All Platforms Prerequisites](#all-platforms-prerequisites)
829
+ Follow [All Platforms Prerequisites](#all-platforms-prerequisites).
830
+
831
+ Make sure you have installed the following software.
832
+
739
833
  * .NET Compact Framework
740
834
  * Windows Mobile 6 Professional SDK(s)
741
835
  * Microsoft Active Sync 4.5 for Windows XP; Windows Mobile Device Center for Windows Vista or higher
742
836
  * Microsoft Device Emulator 3.0 for Windows Vista or higher
743
837
  * Visual Studio 2005 Service Pack 1 installed or Visual Studio 2008.
744
- * [7-zip](http://www.7-zip.org/)
838
+ * Software for unzipping a zip file, such as [7-zip](http://www.7-zip.org/)
745
839
 
746
840
  NOTE: It is a good idea to install Windows Mobile 6 Professional last, since it needs to be installed after Visual Studio, and since the Windows Mobile 6 Professional install process will tell you if you forgot to install any of the other prerequisites.
747
841
 
748
842
  ### Allow DMA Connections
749
843
 
750
- On Windows XP, open ActiveSync main window and open the File menu; on Windows Vista and above, open Windows Mobile Device Center and click Mobile Device Settings.
844
+ On Windows XP, open ActiveSync and open the File menu; on Windows Vista and above, open Windows Mobile Device Center and click Mobile Device Settings.
751
845
 
752
846
  Select Connection Settings, then select the checkbox "Allow connections to one of the following."
753
847
 
754
848
  Select "DMA" from the list box. DMA Connection is required to work with the Windows Mobile emulator.
755
849
 
756
- ### Add Paths
850
+ ### Debugging on Windows Mobile devices connected to PC
851
+
852
+ On Windows Vista and Windows 7 the Windows Mobile Device Center (WMDC) may start automatically upon connection of the WM device.
853
+ If it is not happening, then you're lucky and most probably you wouldn't need to do anything to be able to run and debug rhodes application on the device
854
+ while it is connected to PC.
855
+
856
+ The problem is that WMDC locks the file system of the mobile device and prevents rhodes application from running
857
+ (because the application usually writes data to files located within the application folder).
858
+ So if WMDC is starting when you connect the device to PC, you need to shutdown WMDC completely to be able to run rhodes application
859
+ on Windows Mobile device.
860
+
861
+ To shutdown WMDC open the Task Manager, find wmdc.exe (Windows Device Mobile Center) and
862
+ WmdHost.exe (Windows Mobile Device Center Sync Host) processes and end them.
863
+
864
+ Then disconnect the device and connect it again to PC -- WMDC should not appear this time.
865
+ Now you may run and debug rhodes applications on Windows Mobile devices connected to PC from both RhoStudio and command line.
757
866
 
758
- Add path to vcbuild.exe and CabWiz.exe to rhobuild.yml in the Rhodes folder (example location: `C:/InstantRhodes/ruby/lib/ruby/gems/1.8/gems/rhodes-3.0.2`).
867
+ ### Add Paths to Cab Wizard and Visual Studio
868
+
869
+ In RhoStudio Windows -> Preferences, right-click on Rhomobile->Windows Mobile to show the rhobuild.yml preferences. Check that the Cab wizard path (which is contained in your Windows Mobile 6 SDK program installation) is correct.
870
+
871
+ <img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/preferences-windows-mobile.png"/>
872
+
873
+ Also check that the vcbuild path is shown in the rhobuild.yml file. The rhobuild.yml file is located in the Rhodes folder (example location: `C:/RhoStudio/ruby/lib/ruby/gems/1.8/gems/rhodes-3.1.1`).
759
874
 
760
875
  env:
761
876
  paths:
762
- vcbuild: `C:/Program Files/Microsoft Visual Studio 8/VC/vcpackages/vcbuild.exe`
763
- cabwiz: `C:/Program Files/Windows Mobile 6 SDK/Tools/CabWiz`
877
+ vcbuild: C:/Program Files/Microsoft Visual Studio 8/VC/vcpackages/vcbuild.exe
878
+ cabwiz: C:/Program Files/Windows Mobile 6 SDK/Tools/CabWiz
764
879
 
765
880
  On 64-bit installations:
766
881
 
767
882
  env:
768
883
  paths:
769
- vcbuild: `C:/Program Files (x86)/Microsoft Visual Studio 8/VC/vcpackages/vcbuild.exe`
770
- cabwiz: `C:/Program Files (x86)/Windows Mobile 6 SDK/Tools/CabWiz`
884
+ vcbuild: C:/Program Files (x86)/Microsoft Visual Studio 8/VC/vcpackages/vcbuild.exe
885
+ cabwiz: C:/Program Files (x86)/Windows Mobile 6 SDK/Tools/CabWiz
886
+
887
+ ### Setup target SDK and emulator
888
+ By default 'Windows Mobile 6 Professional SDK (ARMV4I)' SDK and "Windows Mobile 6 Professional Emulator" are used. To change edit build.yml:
889
+
890
+ wm:
891
+ sdk: <target_sdk>
892
+ emulator: <target_emulator>
893
+
894
+ * 'target_sdk' may be: "MC3000c50b (ARMV4I)" - for Motorola CE devices, "Windows Mobile 6.5.3 Professional DTK (ARMV4I)" for latest Windows Mobile SDK.
895
+ * 'target_emulator' may be: "Windows Mobile 6.5.3 Professional VGA Emulator" for VGA emulator , or any other installed Windows Mobile emulator
896
+
897
+ ### Building and Running Your Windows Mobile Application with RhoStudio
898
+
899
+ To start the build process, create a Run Configuration: select your project in the Project Explorer, and either:
900
+ * select Run->Run Configurations... from the main menu,
901
+ * or right-click on your project, and select Run As->Run Configurations from the popup menu.
902
+
903
+ <img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-menu.png"/>
904
+
905
+ The Run Configurations window appears.
906
+
907
+ #### Running on the Windows Mobile Simulator in RhoStudio
908
+
909
+ To run on the Windows Mobile simulator, select Windows Mobile in Platform and Simulator in Simulator type. Then click the Run button.
910
+
911
+ <img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-wm.png"/>
771
912
 
772
- ### Build and Run application on device or emulator (Visual Studio 2008 only):
913
+ #### Running on a Windows Mobile Device in RhoStudio
914
+
915
+ To run on a Windows Mobile device, connect your device to your computer with a USB cable.
916
+
917
+ In the Run Configurations window, select Windows Mobile in Platform, and Device in Simulator type.
918
+
919
+ ### Build and Run from the Command Line
920
+
921
+ On computers without RhoStudio, you can build and run from the command line.
922
+
923
+ Navigate to your Rhodes application directory. To build and run application on emulator, run:
924
+
925
+ :::term
926
+ $ rake run:wm
773
927
 
774
928
  To build cab-file, install it, and run application on emulator, run:
775
929
 
@@ -778,10 +932,15 @@ To build cab-file, install it, and run application on emulator, run:
778
932
 
779
933
  Before you install the application on your Windows Mobile device, first connect your device via USB cable. Then check that your device is connected with ActiveSync on Windows XP or with Windows Mobile Device Center on Windows Vista or above.
780
934
 
935
+ Navigate to your Rhodes application directory. To build and run application on device, run:
936
+
937
+ :::term
938
+ $ rake run:wm:device
939
+
781
940
  To build cab-file, install it, and run application on device, run:
782
941
 
783
- :::term
784
- $ rake run:wm:device:cab
942
+ :::term
943
+ $ rake run:wm:device:cab
785
944
 
786
945
  After the build process completes, the device will ask you to install the app. Disconnect the USB cable from the device before you install.
787
946
 
@@ -805,11 +964,11 @@ You can use rake tasks to deploy the application. See the previous section, 'Bui
805
964
 
806
965
  Manually copy the .cab file to the device. For example, you can use the device File Explorer to display the .cab file that is on the computer. Click on that .cab file and the installation process will be started; after it is finished, you should see the app icon on your device in Programs.
807
966
 
808
- ### Build from IDE
967
+ ### Build from Visual Studio IDE
809
968
 
810
- Checkout the rhodes source code from github (you have this source code already if you installed Instant Rhodes).
969
+ Checkout the rhodes source code from github (you have this source code already if you installed RhoStudio).
811
970
 
812
- Open `<source-code-root>\platform\wm\rhodes.sln` in Visual Studio (example location for <source-code-root>: `C:/InstantRhodes/ruby/lib/ruby/gems/1.8/gems/rhodes-3.0.2`).
971
+ Open `<source-code-root>\platform\wm\rhodes.sln` in Visual Studio (example location for <source-code-root>: `C:/RhoStudio/ruby/lib/ruby/gems/1.8/gems/rhodes-3.1.1`).
813
972
 
814
973
  In Visual Studio, select Windows Mobile 6 Professional and build Release configuration.
815
974