Mosembro

!!! This old hobby project of mine hasn’t been showing any signs of life for a long time now, but you’re still welcome to poke at its lifeless body with a stick if you’d like to. !!!

Mosembro is a proof of concept web browser for the Android mobile platform which demonstrates how semantic markup (in this case microformats) can be used to massively improve the mobile browsing experience.

See it in action!

Watch a screencast which shows off some of Mosembro’s major features: detection of microformats for addresses and events, integrated site-level search and ability to install additional scripts which are then also triggered by detected microformats.

What does it do?

Mosembro scans loaded web pages for microformats and inserts special links into the page, if it detects any. The process is very simple:

3stages_03

Mosembro currently has support for several different features based on microformats.

These features are:

  • adding events to Google calendar
  • displaying addresses using Android’s built-in maps application
  • planning your journey to a given location using public transport (works with addresses in London and SF Bay Area)
  • copying addresses to clipboard
  • providing a consistent search dialog for searching whole web sites

These features can be accessed in two ways: either by navigating to “Menu > Smart actions” or by clicking one of the “Smart links” which were inserted into the web page by the browser. Smart links are an optional feature and can be enabled or disabled in the “Menu > Settings” dialog.

More features will be available as soon as additional extensions are written.

Note: the microformat used for search functionality is not a standard microformat. It was created by me just for the purpose of this demo.

As far as I know, there is currently no other mobile browser available, which would use microformats to improve the user experience. Hopefully, this demo will get the ball rolling.

How does it compare to Android’s standard browser?

Here’s a quick comparison of how long it takes to display an address on map using different browsers.

Mosembro (left) vs Android’s standard browser (right)

With the regular browser you need to manually start the maps application and type in the address.
Mosembro detects microformats embedded in the page and inserts a smart link directly after the address. Clicking this link gives you the same result 7 times faster and without all the hard work!

Get it!

Download Mosembro

The current version is Mosembro r7, released on 31. Oct 2009.
This release requires Android 1.5 + Google APIs (or newer)!

Older versions:
Mosembro r6, released on 7. Jun 2009.
Mosembro r5, released on 19. Feb 2009.
Mosembro r4, released on 8. Feb 2009.
Mosembro r3, released on 3. Feb 2009. This was a bugfix release.
Mosembro r2, released on 28. Jan 2009 (Release notes)
Mosembro r1, released on 30. Dec 2008

Install it!

First of all, you will need the Android emulator, so you can run Android applications. Get it here. After installing it, fire it up by running “emulator” binary which is located in the tools sub directory.

If you already have Mosembro installed, uninstall it first by running:

adb uninstall com.lexandera.mosembro

Mosembro can then be installed by executing the following command:

adb install mosembro-r7.apk

Adb command is also located under the “tools” sub directory of your Android SDK installation. Please see this excellent guide on how to install applications on Android emulator if you experience any problems.

Roadmap

The following features are already in various stages of planning and/or research:

  • RDFa support

These are just unexplored ideas:

  • Automatic detection of new action scripts which know how to use embedded data
  • Merging Mosembro’s source code with the source code of Android’s default browser

Other

Mosembro is open source and available under the GPL licence.

See also

Fork me on GitHub

10 Responses to “Mosembro”

  1. kazu

    I don’t have my own Android mobile and can’t test Mosembro, but this browser seems future-promising! Thanks for your great efforts. BTW, I have a question about the demo – why didn’t you “copy and paste” to hand the address information, in case using normal Chrome Lite?

  2. alex

    Thanks. I’m glad you like it.

    I would like to point out, that Mosembro is not meant to ever get out of the “proof of concept” development stage. The main motivation behind it is to get the idea about using embedded semantic metadata out to as many people as possible. If enough people say “Hey, that’s a neat idea”, then maybe a feature like this will make it into into of the browsers that come preinstalled when you get your phone.

    The reason why I didn’t use copy/paste in the demo video is because I haven’t found a way how to copy text from a web page. It seems that you can only copy text from input fields.

    As this video suggests, it’s not possible to copy text from the browser: http://www.youtube.com/watch?v=B2FpDDEVWtk . And even though Android’s standard browser recognizes some addresses (as you can see in the video i just linked), it doesn’t recognize all of them. If you open Mosembro’s demo page ( http://lexandera.com/mosembrodemo ) using the standard browser, it only recognises the US address, but not the UK one.

  3. » Features » The future of microformats and semantic technologies

    [...] to your calendar is a snap. We are beginning to see some foray into this arena with Mosembro (http://lexandera.com/mosembro/), a browser for the Android Platform capable of detecting and [...]

  4. Meitar Moscovitz

    This is a very cool idea. One I might call “brilliantly obvious in retrospect.” ;)

    I’m wondering, where do you describe the “non-standard” search microformat you’re using to enable consistent site-wide search. I can’t find any references to this in the Microformats wiki or on the mailing list archives.

  5. alex

    The search microformat is not described anywhere yet. It’s just something I created for the purpose of this demo and didn’t really put any significant effort into designing it. I guess I could try sending a proposal to the microformats-new mailing list, but that will have to wait at least a week or two.

    The code which detects it looks for 3 things:
    - a form element with “site-search” in its class attribute
    - an input element which is located inside that form and has “site-search-query” in its class attribute
    - any element which is located inside that form and has “site-search-description” in its class attribute
    (The first two elements are required, but the third one is optional, since it’s only used to specify the search dialog’s title bar text.)

    If you take a look at the source of this page, you’ll find a marked up form near the bottom: http://lexandera.com/mosembrodemo/

    If Mosembro finds a matching form in the page, it then creates its own search dialog and displays a magnifying glass icon in its title bar. It also hides the original search form, which I’m pretty sure some designers won’t be too happy about. :)

  6. Freshmaker

    I can download it on my macbook, but I cant use it…
    Or….

    Bye

  7. alex

    What kind of problems did you run into, exactly?

    This procedure *should* work (but I can’t guarantee it does, since I don’t have a Mac)
    1. Get the Mac version of emulator from here: http://code.google.com/android/download.html
    2. Unpack it & run “tools/emulator”
    3. When the emulator finishes loading, run “tools/adb install mosembro-r2.apk”

    After this, Mosembro should appear in your emulator’s application menu.

  8. OilCan at Anyone Can Edit

    [...] also a similar project called Mosembro that I haven’t touched yet. Although, it seems to be more about reading your web pages and [...]

  9. Jisri

    It will be great if we assign mosembro to use a unicode fonts (in assets/fonts).

    can you confirm please if this is possible? ot mosembro mainly is a webview and we can not set external fonts?

    any idea how to make a simple browser with unicode support?

    please reply.

  10. Aleksander Kmetec

    @Jisri: Mosembro is indeed just a standard webview at its core. But webview does already support unicode; there’s no need to set anything. If the web page contains the correct charset in the content/type field it just works by default.