Code strong rob_chohan_september_2011

23
Titanium+Plus Modules and Javascript Bridges: Controlling Hardware with a Web Language Rob Chohan Chief Technologist, ePi Rational (C) 2011 ePi Rational, LLC

Transcript of Code strong rob_chohan_september_2011

  • 1. Titanium+Plus Modules and Javascript Bridges: Controlling Hardware with a Web Language Rob ChohanChief Technologist, ePi Rational (C) 2011 ePi Rational, LLC

2. 2001: A Space Odyssey Start around 5720 3. Streaming BBC Channel 12 to Space 4. Sweet Spot = Hardware + Software + Content 5. Mobile Architecture,extending Titanium exampleOne Barcode app idea to rule them all!!!Titanium Open source User Interface& Hardware API Library(Software to be written to tie these together)Zxing or Zebra Crossing Open source barcode libraryencode/decode iOS AndroidKiller Barcode App = Camera + 6. Libraries that are ripe for Titanium+Plus DropBox My Tracks, Map or Lat/Long?-117.117203, 32.784180 Airpush -117.116966,-117.116501, 32.784218 32.784386-117.116501, 32.784439-117.116341, 32.784527 Square-117.116280, 32.784618 Networking Google Analytics* A cryptographically secure RNGthat your app needs thatJavascript cant provide (e.g.,SecureRandom) 7. How To: Appcelerator makes it easy to get started Titanium generates stubs From their it is up to you to fill in the blanks Pull in your favorite JAR, Java, or Obj-C or C++ code Build and distribute on the Appcelerator Marketplace 8. Hardware that could beinteresting to TitaniumDevelopers Barometer WiFi Bluetooth Near Field Communications (NFC) ANT+ GPS 9. Barometer Motorola chose a What is a Barometer good forDigital Pressure (courtesy of the chip manufacturer, Bosch)Sensor in their Enhancement of GPSMotorola Xoomnavigation Indoor and outdoor navigation Leisure and sports Weather forecast Vertical velocity indication 10. Barometer,Javascript example This is a perfect example of how Titanium+Plus can be extended Barometer usage (targeting Motorola XOOM)varbaro=require(epi.baro);data=baro.getBaro();//inmilliBars,ofcourse 11. Titanium+Module Implementation for a Barometer on AndroidpublicvoidonSensorChanged(SensorEventevent){longcurTime=System.currentTimeMillis();switch(event.sensor.getType()){caseSensor.TYPE_PRESSURE:if(lastUpdate==-1||(curTime-lastUpdate)>mTime){floatpressure=event.values[0];}break;caseSensor.TYPE_ACCELEROMETER:if(lastUpdate==-1||(curTime-lastUpdate)>mTime){floatx=event.values[0];floaty=event.values[1];floatz=event.values[2];}break;}} 12. Screen from Motorola Xoom, Native App by Noosters 500+ Downloads as of Sep 2011 13. Screen from Motorola Xoom, Native App by Guild Software5,000+ Downloads as of Sep 2011 14. Screen from Motorola Xoom, Native App by David Momenso 100+ Downloads as of Sep 2011 15. Titanium+Plus Modules helps to lower the bar 16. Data Mining on Android Bluetooth Hardware Apps, Data mined from AndBOT.com, April 2011 Bluetooth Samples Bluetooth Bar Widget Bluetooth Backport for pre-Android 2.0 Bluetooth Fileshare - Bluex Bluetooth On/Off for Droid Bluetooth Remote Bluetooth text & paint Chat Bluetooth Terminal Bluetooth WidgetVery useful apps, but what else can be done? 17. Bluetooth now becomesvery interesting forTitanium UsersWhat is a Bluetooth good for in the contextof Titanium Chat programs Getting data from custom sensor boardsvarbtLib=require(epi.bt);bt=btLib.turnOnRadio();//discoverybt.discovery();//pairing//exchangingofdata 18. San Diego Based Fitness Startup San Diego based startup Mobile Phonefocusing on Bicycle fitness Patent pending nutrition andhydration algorithm forcyclists 100% bootstrapped Developed a custom sensorboard with o wheel revolution counters o digital pressure barometer o another type of pressure sensor o Bluetooth 3 radioCustom Devicecomm over Bluetooth 19. San Diego Based Fitness Startupwhy Titanium worked for them 100% bootstrappedMobile Phone team is comprised of o 1 firmware o 1 electrical engineer o 1 Titanium Dev o 1 Bluetooth Dev o 1 Marketing Each team member wasable to focus on theirparticular part Team currently at fundingstage Custom Device comm over Bluetooth 20. Bluetooth on Android & Titanium+Plus Android module built forAndroid 1.6 Many pitfallso older firmware and Android Relies on the Bluetooth phones (wait for supportedhardware!)Backport open source jaro building for Titaniumfrom Sosuke Masui, Japanrequired modifying thePython build scripts for both Development was started backthe Module and thebefore Bluetooth wasApplicationo Android resources!!!,supported on Android 2.0created a two-step buildprocesso Port to iOS coming afterfunding 21. Localization Notes onTitanium+Plus with Android Android res files for each locale (en, ja, es, ...) 22. Titanium+Plus Modules and Javascript Bridges: Controlling Hardware with a Web Language Rob ChohanChief Technologist, ePi Rational(C) 2011 ePi Rational, LLC