February 2, 2010
Cross Platform Hybrid Communication
For those who wish to develop their own hybrid library or framework here is a table that may be of help. It also explains how QuickConnect communicates back and forth with the native device code on multiple platforms.
Key:
- URL data transfer – Information must be passed as if the view was being updated with a new page to display or, in the Case of Android, and HTML “JavaScript:” URL is used.
- Direct Call – JavaScript objects are available from the underlying language or underlying objects are available from within JavaScript depending on the direction of the call.
- Built In – The native development environment is HTML, CSS, and JavaScript.
| Device | To Native | From Native |
|---|---|---|
| iPhone/touch/iPad | URL data transfer | Direct Call |
| Android | Direct Call | URL data transfer |
| Blackberry | Direct Call | Direct Call |
| Palm WebOS | Built In | Built In |
| Nokia/Symbian with QT | Direct Call | Direct Call |
January 16, 2009
QuickConnect Porting and Development schedule
I recently got a request for information regarding the planned development and porting of QuickConnect and thought it should be shared here as well.
I am particularly excited about the ad hoc networking. It will be great when an iPhone, an Android phone, a Linux based phone, macs, linux machines and even PC’s can discover each other and not need to care what the other device/machine is. Then an application can be anywhere and interoperate with versions of itself or other services on any of the platforms. And the applications can be written in JavaScript on all of the platforms. Wow.
The current porting situation is as follows:
- iPhone: release 1.1.1 available 1.1.2 next few days 1.5 beta in next few days as well
- Android: beta 1.0 available today if all goes well
- Mac: 1.0 beta 1 is currently shipping
- LinuxQT: beta 1.0 in a week or so
- MobileQT: about two weeks after LinuxQT beta
- Microsoft porting will happen after the MobileQT port is nearing completion.
The iPhone 1.1.2 release will include access from JavaScript to:
- device information – OS, device type, UID
- The iPhone 1.5 beta 1 release will include access from JavaScript to:
- ad hoc networking and service discovery (Bonjour Networking)
The iPhone 1.5 beta 2 release will include access from JavaScript to:
- Raw socket networking (access via the synch cable)
The Android 1.0 beta 1 will include access from JavaScript to:
- Browser and Native SQLite databases via the wrapper
- AJAX wrapper
- Vibrate
- Play Sounds
- Record and Play Audio
- GPS data
- accelerometer data
Android 1.0 beta 2 release will include access from JavaScript to:
- Embedded Google Maps
Android 1.5 beta 1 will include access from JavaScript to:
- ad hoc networking and service discovery
The LinuxQT 1.0 beta 1 will include access from JavaScript to:
- Browser and Native SQLite databases via the wrapper
- AJAX wrapper
- Drag and Drop utility if web view supports CSS transitions(experimenting with this now)
The LinuxQT 1.0 beta 2 will include access from JavaScript to:
- Embedded Google Maps
The LinuxQT 1.5 beta 1 will include access from JavaScript to:
- ad hoc networking
The MobileQT 1.0 beta 1 will include access from JavaScript to(when the device supports it):
- Vibration
- accelerometerdata
- GPS data
- Browser and Native SQLite databases via the wrapper
- AJAX
- Play sounds
- Play/record audio
The MobileQT 1.0 beta 2 will include access from JavaScript to:
- Embedded Google Maps
The MobileQT 1.5 beta 1 will include access from JavaScript to:
- ad hoc networking
December 5, 2008
SQLite Access and Use
I have now written access code for the SQLite database in a few languages and on various platforms. There is a dramatic difference in the ease of use from a programmers perspective.
The easiest to use, strangely enough, are the Objective-C classes from Apple and the C++ classes from QT(Nokia).
The next easiest to use would be the Java classes in the Android phone and the most difficult to use would have to be the JavaScript functions that are part of the upcoming standard.
I say the JavaScript is the hardest since all of the calls are designed to be asynchronous and programmers are not used to interacting with a database in that fashion.
You would think that with the programmer friendly API of Google’s Android that SQLite access would be easy. In fact, I assumed that it would be somewhat similar to JDBC. It is not. I find it particularly nasty since none of the classes are familiar and you have to work out the class relationships all over again. That would be fine if there was one nice main class as in the Apple and QT implementations but there are not.
So, all in all I would have to say that Apple and QT tie for first place. Google Android is a very distant second, and the JavaScript W3 standard implementation is in third place.