opensource.google.com

Menu

Introducing Google JS Test

Thursday, September 29, 2011

Google JS Test is a JavaScript unit testing framework that runs on the V8 JavaScript Engine, the same open source project that is responsible for Google Chrome’s super-fast JS execution speed. Google JS Test is used internally by several Google projects, and we’re pleased to announce that it has been released as an open source project.

Features of Google JS Test include:
  • Extremely fast startup and execution time, without needing to run a browser.
  • Clean, readable output in the case of both passing and failing tests.
  • An optional browser-based test runner that can simply be refreshed whenever JS is changed.
  • A built-in mocking framework that requires minimal boilerplate code (e.g. no $tearDown or $verifyAll calls), with style and semantics based on the Google C++ Mocking Framework.
  • A system of matchers allowing for expressive tests and easy to read failure output, with many built-in matchers and the ability for the user to add their own.

See the Google JS Test project home page for a quick introduction, and the getting started page for a tutorial that will teach you the basics in just a few minutes.

By Aaron Jacobs, Google Engineer

Custom Maps lets you take posted maps with you

Wednesday, September 28, 2011

Do you love to explore the outdoors with Google Maps but sometimes wish it had the details of a trail map or a tourist attractions map of a foreign city? Do you sometimes wish you could take one of those “You are here” maps with you to help you find places in an unfamiliar environment? Do you prefer maps on your phone rather than on paper?

If you answered “yes” to even some of these questions, you may want to take a closer look at a new Android app called Custom Maps -- recently released as open source at code.google.com.


Custom Maps showing a birdwatcher’s location overlaid on a photo of a posted park map.

The Custom Maps app allows for easy creation of digital maps from any map image. The image can be a photo of a paper map, a photo of a brochure map, or a picture of the map posted at a trailhead or at the entrance to an amusement park. It could also be a .jpeg or .png image hosted on the internet or a screenshot of a PDF map. All you have to do is choose two (or more) matching points that are common to both the map image and Google Maps, and Custom Maps can show your GPS location on the map. This makes it an excellent mapping option in situations where data signal is not available like in state parks or abroad, or when alternate map images show details that are not included in Google Maps.


Custom Maps showing a hiker’s location on Mist Trail in Yosemite National Park.

Custom Maps stores the geo aligned map images into KMZ files, which are simply ZIP files containing the geo location information in KML format, and the map image file. This makes it possible to take the map image out of the KMZ file, add some personal markup in the map using an image editor, and put the image back into the KMZ file. As long as the image is not resized in the process, the marked up map image can now display the user’s GPS location.

Custom Maps users can share created geo aligned map images as email attachments or by using QR codes. When a Custom Maps compatible QR code is scanned by a barcode scanner application, users can open the link directly in the Custom Maps app instead of a web browser.

Google has published the source code for Custom Maps under Apache License 2.0 at http://code.google.com/p/custom-maps/. The source code can be studied for examples of how to deal with the following topics on Android mobile apps:
  • dealing with large images in constrained memory environment of mobile devices
  • parsing XML (KML) documents using XML Pull API
  • using the Google Maps Android API and displaying translucent overlays on MapView widget
  • declaring an app as able to handle special URLs and file types so it can be launched by QR codes and so mail applications can direct attachments to it
  • triggering file sharing intents from an app
But Custom Maps is not finished yet. Several new features are planned including distance measurement, marking map locations with icons, making it possible to geolocate map images without Google Maps or data connection, working around the app memory limit to load larger map images, and automatically switching between stored maps based on user’s location and zoom level. Join the open source project to add these and more features to Custom Maps.

By Marko Teittinen, Google Geo Team

OpenIntents wraps up their first Google Summer of Code

Tuesday, September 27, 2011



This year was the first year OpenIntents participated in the Google Summer of Code. We are an open source organization which creates software for Android mobile phones and tablets, with special emphasis on interoperability with other software components.

As an organization we’ve found involvement in the Google Summer of Code extremely rewarding. The students have been able to improve their skills and gain practical experience in the stages of a software project, our organization has benefited from the interest generated from the students’ work, and the wider community will continue to benefit from the code the students have delivered.

We particularly enjoyed the international aspect of the program. All students, mentors, and co-mentors lived in different countries which did not prevent us from having a great time discussing the projects through Skype and live chat sessions. We received a great number of excellent proposals, from which two very different projects were chosen for the program.

Elena Burceanu’s project aimed to enhance the Sensor Simulator. During the first weeks, the GUI was polished, both in appearance and through clever code restructuring. After enhancing the GUI the number of supported sensors was increased and now includes Android sensors for gyroscope and general rotation vector. Finally, a scenario simulator was added, which creates sensor output from a set of initial states and the ability to change the time intervals between them. The sensor’s values are smoothly interpolated between the key frames. The final product was released as version 2.0. The source code and documentation for Elena's project are now available to view.


Andras Berke’s project consists of a new application called Historify which displays the user’s activities with others over a variety of communication methods (Voice, SMS, Facebook, etc.), and provides a method for third party applications to supply other activity events showing the interoperability of Android applications. During the summer Andras went through the whole application design process from the UI wireframes to a first beta release including documentation along the way. In addition, he provided demo applications to show how third party developers can interact with Historify. You can now view the source code and documentation from Andras' summer project.

We hope to be involved with the Google Summer of Code again and would recommend involvement to any organization which meets the Google Summer of Code organization criteria.

By Peli Oi, OpenIntents Organization Administrator
.