mobile

à tour de rôle
timur.mobi

timur mehrvarz

Anymime

Just released: new Bluetooth file exchange application for Android supporting NFC quick tap-to-share connectivity.
More info: Anymime

BtGroupLink

BtGroupLink is an Android application that establishes wireless groups. Walk into a room, and your mobile phone automatically connects with friends’ devices via a dynamic ad-hoc network. BtGroupLink lets you exchange text messages and audio chats as well as enabling you to share photos, music and other documents. No dedicated network infrastructure is required; the mobile devices simply talk directly with each other.

A wireless group formed this way is both persistent and mobile. Should the group of users decide to move to any other location together, the network they have formed will move with them. BtGroupLink is written in Scala 2.8 and makes use of the RFCommMultiplexer service. Due for release soon.

RFCommMultiplexer

A generic Android service used by developers to create ad-hoc wireless networks based on Bluetooth technology, RFCommMultiplexer simplifies the creation of multi-device apps. Spontaneous networks are created by simply connecting devices to each other. A device only needs to connect to one other device, and immediately it becomes part of a larger network. Applications connected in this way can engage in coordinated interaction such as multi-player gaming. No access point infrastructure is required. RFCommMultiplexer service is written in Scala 2.8 and makes use of Google protobuf.

Sources: github.com/mehrvarz/RFCommMultiplexer


Bluetooth is evolving and becoming more and more useful

'Just in...'

A streaming Twitter reader for Android 2.2+ with an OpenGL ES 2.0 shader based user interface. Incoming tweets are rendered by a hidden WebView instance. The generated pages are then handed over to the GPU for visualization. Using this method, a smooth animated 3D flow of tweets is provided. Users can reply, and retweet. Tweets can also be forwarded via mail and sms. The 'Just in...' app runs on mobile phones as well as Honeycomb tablets. It operates on top of the AlwaysOnTwitter service described below. Free Download from Android Market. Here is a WebGL simulation of the Android app's OpenGL rendering.

Complete source code on github.com/mehrvarz/Just_in

AlwaysOnTwitter

This is a generic Android service I wrote a while back. My employer has recently given the OK to open source this code. The service can be used to connect an app to Twitter's push API in order to receive a flow of tweets; the service continues to work even when the device goes into deep sleep mode. Here we take advantage of the fact that the radio CPU never actually sleeps.

Power management: Whenever new tweets are pushed out, the radio CPU wakes the main CPU for a very brief time period (but not the screen). The code running on the main CPU reads the data from the radio CPU and quickly goes back to sleep. The process is usually completed in less than 10 ms and even if it runs 1,000 times a day that would amount to less than 10 seconds of total CPU activity. Battery consumption is very low.

An obvious advantage to having the latest tweets on the device at any given time is they are immediately available whenever the user chooses to access the service. Sources on github.com/VodafoneGroup/AlwaysOnTwitter

xkcd knows

SuprTicker

This is a web service that aggregates a long list of RSS feeds, as well as Twitter channels and Hacker News Firehouse, for push delivery. The service can be compared to Google News; it was originally used to broadcast news content via wide area mobile radio networks. The associated web frontend runs on Android, iOS devices and most desktop browsers. It works on big and small screens and makes use of hardware accelerated CSS Transformations where available.

Sources on github.com/mehrvarz/mbox2

Groovy Groovlets Patch

I contributed three small patches to the Groovy 1.8.x codebase; they prevent gratuitous recompilations and loss of static state when reloading Groovlets. I'm using Groovy in part to run this site.

Android OpenGL Patch

I submitted a patch to AOSP. It's part of core Android since 2.0. This patch makes OpenGL animations run more smoothly by reducing garbage created whenever the GL Java bindings are used.

Remote Dalvik plugin

An NPAPI plug-in for Linux/x86, this plug-in provides desktop browsers with DOM access to functionality available on a Dalvik-VM running inside a remote Android device. Using this plug-in a typical Web application can, for example, retrieve live GPS, accelerometer and compass values from a mobile phone. It is also possible to remote control functions such as music playback and making phone calls. The Android device may be connected via WiFi, Bluetooth or USB. The source code is available upon request.

Dalvik plugin

This is an NPAPI plug-in for Android/ARM which provides a bridge between the Android browser and the Dalvik VM. It's basically a "Java plug-in" for the Android browser. The idea is that Android apps can (and probably should), in reality, be hybrid Web applications. Activity views can be developed by web designers, while other aspects of an application (services, access to hardware, etc.) can be created by people with an IT background. Here are some examples of what can be done. Please note that root access is required to run this plug-in.

Sources are available on github/mehrvarz/dalvikplugin