Add number -feature, Search fixed: Gecko SMS 1.3.1

Time for an update: Gecko SMS version 1.3.1 is now available from Android Market and other sources. It contains a few improvements:

  1. Add number -feature
  2. Search fix
  3. Other small UI fixes
Add Number is a simple but much missed feature: Have you ever been writing a message and wanted to add the number of a contact? There is not simple way to do that in the standard Android Messaging.

Now in Gecko SMS, one can press Menu > Add Number, select a contact from the list, and the name and number gets added to the message text. Simple and effective!

Note: When the contacts list is showing, the Search-button can be used to search by name instead of scrolling through the list.
Add_number_feature

The main menu of Gecko SMS has a Search item, which allows for searching for a word in the text of all messages. Due to a configuration issue, this functionality was not working in all devices. This has now been fixed. The same functionality is available though the Search-button if your phone has one. So go ahead and dig into your messaging history!

Besides these two bigger changes, there is three smaller improvements:

  1. When working on Search I found a bug in the Android system code that causes search suggestions to fail in message containing "odd" characters such as ä or ö. This was corrected to Gecko SMS, and reported to Android bug database.
  2. When composing a message: The menu items have been reordered to a more optimal settings. For example: Add subject was moved to the end of the menu.
  3. New message: When entering a contact name, the "alphabets to numbers" item was moved to the end of the list, after matching actual contacts. Assumption is that the contacts are more useful than an "GOOGLE = 466432"-item.

Stay tuned for more improvements, join our Facebook group! If you missed our previous release, here's a video demonstrating the new "Say sender's name"-feature:

And one more thing: If you came here from r/android: Hopefully some of the discussed changes will be in the next release, however I am hoping to still get some more ideas and comments out of that community to get some more perspective.

The baby has started talking - Gecko SMS 1.3.0

A new Gecko SMS version, 1.3.0, is available now from Android Market and other sources.

The most visible (or audible, actually) new feature is Say sender's name: Gecko SMS can now use the built-in Android text-to-speech engine to tell you who has sent the message, so that you can know the sender without looking at the phone, or taking it out of your pocket.

Say_senders_name

But there are lot's of other changes as well: Landmark view got a new button for "Own Location", that takes you back after panning to faraway locations. This functionality used to be available through a double tap. Now double tap works as zoom in, like in other mapping applications.

Own_location_button

 

Much development time was also spent on speed: optimizing the way we handle landmarks and other data in various situations. The tangible improvement is that landmark panning and zooming feel very snappy and changing between screens is fast. Even in lower-end Android devices. Trust me: I am using Gecko SMS on a 79€ Huawei X1. That is 79 euros for an Android phone, without any contracts, not bad! More about that experience in a later blog post.

Other improvements affect forwarding and editing messages, and how subject texts in multimedia messages (MMS) are handled:

 

  1. When forwarding a message, landmark is now disabled by default to keep the original message intact.
  2. When editing a long message, the text field can now be scrolled normally
  3. In New message, the To:-field now shows all contacts regardless of phone number type (Home/Mobile/etc.)
  4. When forwarding a multimedia message without a subject, Gecko SMS no longer creates an "Fwd: "-subject. MMS is not used like email and most users do not want a subject to come up like this.
  5. Viewing an MMS with a subject had the subject surrounded with ugly <Subject: > -tags, now subject is shown in plain bold text.

(download)

If you are wondering how the last two problems got there in the first place. This is because Gecko SMS is built on the native Android messaging, which serves as a great starting point for Gecko. Builging on a native platform component is possible due to the Open Source licensing of the Android platform. But one has to wonder a bit: Who has specified the Android user interface for these exact cases?

 

What do you think of these improvements? If there some functionality you are missing in Gecko SMS? If you are not using Gecko SMS yet: What would be the feature that would make you want to use it? Let us know in the comments below, through email or through our Facebook group!

Gecko SMS fix release 1.2.1 is out, Thank You users!

Last Friday, we released a new version of Gecko SMS with a lot of major improvements. Unfortunately there was a bug in this version, which caused a Force Close -situation for a few of our users. This has now been analyzed and fixed, and a new version is available in the Android Market.

Most of the time, bugs in Android applications are easy to fix as the system has a built in mechanism for reporting the exact situation of the crash. This was the case now as well: Even when the problem only occurred with the user in certain locations, and thus was not caught in our testing rounds, the reports pinpointed it easily.

So I would like to give a big Thank You to all of our users that have reported this problem. And for everyone using and Android phone: When you get the "Force Close Screen of Death", please consider pressing Report and Send. A developer somewhere thanks you for that.

Android_crash_report

By the way, there is also two landmark related improvements in this new release:

  1. "Landmark disabled" state is now stored, which means that if you are not in the mood for using location in the messages, it is enough to press "Disable" once.
  2. Landmark adjuncts (At/Near/Going to) are also stored, per landmark, so when you select that you are "¤ At Home", it is enough to do this once and the At-adjunct is automatically used whenever you use the Home -landmark.

New Gecko SMS version, v1.2.0, now with over 2 times* more focus!

A new version of Gecko SMS is finally ready and available in the Android Market. If you already have Gecko SMS installed in your phone, you can update it easily - see My Apps screen under the Market -application.

This version includes three major improvements:

  1. Redesigned layouts with better focus on messaging
  2. Improved usability without Internet, improved landmark data caching
  3. Global panning: zoom out and use landmarks from anywhere

Redesigned layouts

Before, landmarks were shown visually in both the conversation list and the message composition view. Touching this area made the landmarks show up in full screen. When composing a message, there was a separate landmark menu.

In the new version (1.2.0), the messaging views only show the landmark text, and a button which gives access to the landmark view and landmark options (Disable, ¤ At/Near etc.). This makes the user interface cleaner, and gives better focus on the task at hand - messaging.

Below is screen shots from both versions, highlighting the changes:

(download)

*These images also explain the "2 times more" -claim: Earlier version used in average about 29 % of the messaging screens for landmarks, the new version uses only about 12%, 29/12 ≈ 2,36. As an engineer, I just could not post the number without this explanation.

Improved data caching and transfer, global panning

Changes 2. and 3. are both part of a rewrite on how landmark data is handled in Gecko SMS. The old versions gave access just to the 50 closest landmarks, which is a simple approach and worked pretty good for most use cases.

In the new version however, one can pan and zoom to anywhere in the world. All downloaded landmark data is stored locally in the phone, which means that after one use it is instantly available without an Internet connection.

If you pan and zoom around in Gecko SMS, you may notice green or cyan rectangles shown. These mean that Gecko SMS is downloading more detailed landmark data for that particular area. Below is an example of zooming into Buenos Aires, when landmarks are only partially loaded.

Buenos_aires_zoom

 

So go a head, check it out. And when you do try the new version, please don't hesitate to send us comments at geckosms@geckolandmarks.com, or using the blog comment form below!

Friday's Favorite Landmark: Phillip's Sanctuary

This is the third part of our Friday's Favorire Landmark series.

(download)

Riders: (1/3) Ryan Solinap, (2/3) Michael Solinap, both from Pangasinan, Philippines

 

Phillip's Sanctuary, Antipolo, National Capital Region, Philippines
Coordinates: 14.66123 °N, 121.19719 °E (Google Maps)
Favorited by: Albert / Datadev Team

Tucked in the mountains of Antipolo, is Phillip's Sanctuary, a 13 hectare property owned by the Pestano family. It's a haven that offers an escape from the confines of city life. With 7 bike trails crisscrossing each other, you will experience the adrenalin rush you’re longing for. We built this Dirt Jump with friends, and riding in Phillip’s Sanctuary has never been the same. We also got free entrance fee for 6 months!

Phillips_sanctuary_gecko_sms

Phillip's Sanctuary in Gecko SMS

 

Check out our Facebook-group to get these blog updates via Facebook!

Friday's Favorite Landmark: Anawangin Beach

This is the second part of our Friday's Favorire Landmark series.

(download)

(Photo source: http://yabagmc.wordpress.com/zambales-beaches/)

Anawangin Beach, Pundakit, Zambales, Philippines
Coordinates: 14.87985 °N, 120.07011 °E (Google Maps)
Favorited by: Gilmer Bianzon / Datadev Team

This beach is situated in a cove off the coast of Zambales. I’ve spent most of my vacation in this lovely place. There’s no electricity or cellphone signal, accommodation is by tents only. It’s a perfect place to relax and get drunk all day.

 

Don't miss a blog post, Like us on Facebook!

Friday's Favorite Landmark: Kaitaisten Silta

This if the first part in a series of weekly posts where we show some of our landmarks that are interesting, fun, or just personal favorites.

 Kaitaisten Silta (Kaitainen Bridge), Taivassalo, Southwest Finland
Coordinates: 60.54869 °N, 21.51578 °E (Google Maps)
Favorited by: the undersigned

This is the last and longest bridge when driving to the island of Kustavi. For me it's a special landmark, because my family has a cottage really close to it.

The bridge has a really nice view, and going to the cottage this is the perfect place to check the weather and water conditions to see if it is going to be a good day for wakeboarding, kiteboarding, or what.

There is a separate platform for walking below the surface, and when I was a kid, we would be anventurous and walk across under the bridge. I think they have built fences and locked doors so one does not get to go there anymore.

Kaitaisten_silta

Kaitaisten Silta in Gecko SMS

By the way, if you want to get our blog updates via Facebook, you should like our Facebook-group!

Without GPS, how does Google and Android know where I am

Cellid_example

Simplified diagram of the messages passed during a network location lookup
in Gecko SMS. The messages are usually passed purely inside the phone
with cached data, sometimes over the Internet

Gecko SMS and many other applications are dependent on knowing the location of the phone they are running on. The usual way for a device to get its location is using GPS, Global Positioning System, but this can be slow, use a lot of battery, and is sometimes totally unavailable; especially indoors.

But Gecko SMS for Android phones works really well even when GPS is turned off or not available. How is this possible?

The answer is "network location", which is a method based on either the mobile or WLAN networks that the phone can detect. Basically each cell (i.e. tower, base station) in a network has a unique ID*, so it is possible to build a list of all the IDs and their coordinates. Mobile phones are always connected to some network cell**, so to get the location or the phone, one can look it up from this list based on the current cell ID.

The tricky part is getting a list of all the mobile network and WLAN cells in the world, with their coordinates. Mobile operators do not usually publish the locations of their towers, and there is no central list for wireless network routers either. This means that someone must physically go to all possible places and record the IDs using some kind of a device. This is where big companies have great advantage, and for example Google has two major ways for doing this. The first one is by crowd sourcing: Everyone that uses Google Maps on a mobile phone with GPS enabled is also feeding back network data to Google. This is quite brilliant and works well: the phone needs to contact Google servers to get the maps, so there is little overhead for also gathering the network data. It also means that for Google Maps, network location is really reliable in all the areas where they have active users. The second method that Google uses is data collection by their Street View cars that drive around many countries. In Europe, there was some controversy about this as the cars accidentally collected a bit more data from the WLAN networks than just network IDs.

Such a list of ids and locations for each cell in the world is too big to be stored in a phone, and needs to be constantly updated, so the full data is stored on servers. The phone uses normal mobile internet connection to get the relevant locations from the server when it needs them, and stores these for later use.

This whole solution from Google is built into the Android platform, so all Gecko SMS needs to do is use the provided APIs and it can almost always get a location to work with. Pretty neat!

Also other new smartphone platforms have similar functionality built-in, but this has not always been the case. Last year when we built a prototype of Gecko SMS for the older S60 Symbian platform, we had to deal with the cell ID lookups and related database queries in our own code. Simple HTTP requests, but nevertheless tedious to get right especially when network connections and location tables are not 100% reliable.

Network cell IDs are not a foolproof way of getting a location. As networks change, there is a chance that the list of locations for the cells is outdated. I noticed this first hand a few months ago when I moved house: my WLAN router had physically moved, but still had the same ID as before. Thus at my new place, all my test phones were giving the location to my old place. This continued until I renamed the WLAN, so Google picked up the change. These kinds of incidents however are rare enough that it basically "just works".

Another limitation is that especially for GSM networks, a single network cell covers a wide area, so the location defined by it is quite inexact. GSM cell location is accurate to about 200-3000 meters, whereas WLAN and WCDMA (3G) cells can provide an accuracy of 50 meters or even less. This inaccuracy is something that has to be handled on the application level. In the case of Gecko SMS, the application learns the users choices and can automatically single out the exactly correct landmark even from inexact location information.

 

Location_screenshots

Google Maps and Gecko SMS show current position with a large circle to indicate that the location is inexact, in these examples detected from a mobile network cell ID.

 

 

*) That was a bit simplified: For GSM/3G networks this ID contains Mobile Country Code, Mobile Network Code, Location Area Code, and Cell ID. For CDMA it is System Identification number, Network Identification number, and Base Station ID (SID, NID & BID). For WLAN networks it is the MAC address and network identifier (SSID).

**) If the phone is not not in airplane/offline mode

Hello world, what is a landmark?

Hello world, this is the blog for Gecko SMS.

We just released Gecko SMS for Android in the Android Market, and there was some brief discussion about the concept on Hacker News and on reddit.com. This chance to discuss the idea with people outside our little circle of geo-nerds made me see some weaknesses in our message. This blog is one of our ways to improve on that.

As the first post, I'd like to share our thoughts on what a landmark is. This is a fundamental thing for us, that's what we do: develop and maintain global landmark data and applications that utilize it.

But what does the word landmark really mean?

The Wikipedia-page on landmarks, makes a distinction between American and British English usage of the word: In American English the word is usually "used to designate places that might be of interest to tourists due to notable physical features or historical significance" where as "landmarks in the British English sense are often used for casual navigation, such as giving directions".

Without taking any sides on the language of choice, we definitely go with the latter understanding: landmarks are not just places for tourists. They are anything that can be used to define a location in an widely understandable way, for example schools, shopping malls, buildings, corners of main streets, museums. Anything that helps you locate yourself and everybody locally knows.

Here is an example of a landmark that is highly useful for giving directions in Makati, but definitely not a "must see" for tourists visiting Manila:
 

Mcd_makati_salcedo

McDonald's H.V. dela Costa, Makati, NCR, Philippines
 Coordinates: 14.56070 °N, 121.01790 °E (Google Maps)

(BTW, today they had very cute girl behind the counter, and the 25 PHP Sundae tasted extra good because of that!)

So that is how we define a landmark.

Check back later on this blog for other examples of cool landmarks, and more information about what we are doing with this data.