Eye-D is a company with a mission to take all of the cool technology that’s emerged over the last decade and pull it together into an app to help the visually impaired. What they have created brings independence and new confidence to over 8,000 active users across 160 countries in 12 different languages.
And, we are very proud to say, they are Bugfender customers.
The Eye-D apps combine GPS / maps, machine learning for image recognition, and OCR into an app with a user interface optimized for screen readers. Screen readers, if you're not familiar with them, are amazing tools that allow mobile devices to read out loud what's on the screen to allow people with limited vision to use regular mobile devices.
The Eye-D home screen showing the core functionality and an interface optimized for a screen reader.
The Eye-D apps help users to know where they are, identify objects using the mobile device camera, and read text (even entire printed books). While the team plans to tackle even more in the future, they choose these 3 core areas to start with because they are key to overcoming the most pressing challenges that the visually impaired face in a normal day.
As I was speaking to Shaswat Jena from Eye-D, he asked me to imagine the simple act of walking through a city and how my sight allows me to navigate with the help of landmarks, street signs, and other visual cues. I can also find stores, restaurants, and other destinations from signage. For the visually impaired, that simple act of independence – of finding their way through a city – is much more complex. And while many map apps offer walking directions or location information, they don’t offer them in a way optimized for everyday use for the visually impaired. Eye-D is specifically designed to make that daily task, and many others, much easier for their users.
Worldwide Android Fragmentation
The large variety of Android devices, each with slightly different hardware and software, is both a strength for the Android platform and a burden for developers. This variety, often called fragmentation, has been a particular challenge for Eye-D.
The fragmentation problems are partially made worse by the success of Eye-D. With users in over 160 countries, they see many devices that are specific to those markets. When most of us only see the devices available in our own countries it’s easy to forget that many manufactures release some devices only to a country or region. For example, Samsung released 26 devices in 2016 for just the Samsung Galaxy brand of devices (and that does not cover all of the Android devices released by Samsung in that year), but most of these devices are only available in one part of the world.
Eye-D customers love the product in a way that’s inspiring to see.
The sheer number of devices from all manufacturers, ignoring the problems of actually obtaining devices that target different countries, means that it’s inevitable that your Android apps are going to run on devices that you have no direct access to. And if you, like Eye-D, also hope to cover the more affordable phones with slower processors and less memory, things are even more challenging.
That the Eye-D apps use so many of the sensors on the devices makes the hardware variations even more problematic. The strange hardware variations aren’t just limited to inexpensive devices from smaller manufacturers or the more exotic sensors. The Google Pixel, a device known for the quality of its camera, presented many problems for 3rd party apps trying to use its camera (those problems are now fixed fortunately). Even the Nexus 5x, which as a Nexus device was supposed to be a sort of reference platform for Android, has had problems with camera compatibility.
So how do you debug device specific problems with no access to the device? With Bugfender, the Eye-D team can enable a debugging mode that captures a huge amount of information about each device on App launch, including the manufacturer, model, CPU, memory, cameras, and other sensors. More than that, they capture each step of the process of using a sensor so that when they are debugging a problem they can pinpoint exactly where in the process an error occurred. This has enabled the Eye-D team to fix a huge number of bugs on devices that they have never seen or used.
It's hard to overstate how important this has been to their process. As a small team with a limited budget, they simply can't cover all of the available devices. At the same time they are deeply committed to delivering a quality app. The remote logging offered by Bugfender gives them the leverage they need to deliver the quality they want.
The Eye-D team win the Best Innovator Award at the 8th India Innovation Initiative National Fair 2016
Proactively Squashing Bugs
More than just helping to fix bugs reported by users, Eye-D has combined crash reporting with Bugfender logging to proactively fix bugs. Crash reporting is always helpful for letting you know if there are problems in your app that you haven’t caught during testing. But often the crash report doesn’t have enough information to fix the bug. That’s what makes combining crash reporting with the Bugfender log so powerful. The Eye-D team is able to go from the crash report to the Bugfender log to get the information that they need to fix the bug, all without having to wait for user reports or having to follow-up with users to get more information.
The team uses this approach after the release of an app but, perhaps more importantly, they also use it before the release during beta testing. Before each release, the team releases several preview versions to willing testers. Anyone who has used this approach knows that, while it’s incredibly powerful, even if you have willing beta testers they don’t always report problems immediately. The combination of crash reporting and Bugfender allows the team to make the most of the beta testing period, resulting in a final release with much fewer crashes.
This approach has also been important with the use of GPS. While the Eye-D team had some reports of abrupt loss of GPS or the app spontaneously announcing locations, the team was not able to reproduce with in-house testing. The remote logging enabled them to fix the bugs reported but, more importantly, look for additional, but similar problems that had not been reported. With the hardware variation that we mentioned above and the complication of using the device sensors to their full potential, the ability to take isolated reports and broaden that to a whole class of bugs is very important.
The proactive bug squashing has had a huge impact on the reliability of their app. With their dedication aided by Bugfender, Eye-D was able to go from around 80% of sessions free of crashes to almost all of the sessions being crash free. The users noticed as well; there has been a matching increase in the average rating of the Eye-D apps on the play store as a result of this focus on squashing bugs.
In the competitive app market, it's often incredibly difficult to get engagement from users. Many will simply abandon an app or switch to a competitor rather than reporting bugs. So the ability to find and fix unreported problems is a huge competitive advantage.
The full Eye-D team - it’s inspiring to see what they’ve built with such a small group.
Protecting Users Privacy
The nature of the Eye-D app means that logging could reveal information that many of their users would consider private (we’ve written about handling sensitive data in logs before). Because of these concerns, Eye-D has taken strong steps to protect the privacy of their users. They don’t store data from their users by default. So, while they have to receive data, such as photos and location searches, for the app to work, they don’t keep that data. They process it, return the results to the user, and delete the data.
They also use the built-in features of Bugfender to disable logging on the devices by default. That way they can reduce the sensitive information that they store but, when they see a crash report or a users contacts them, they can remotely enable logging for that device. All without having to release a special debug version of the app or ask users to enable logging manually.
This approach has the added advantage of reducing the data usage of their app, which, while always great, is very important in many of the emerging markets they are in.
The Limitations of Home Grown Tools
Bugfender wasn’t the first approach that the team took to remote logging. First they built their own tool. We’ve all done this at one point or another. It’s easy to think that you can cobble together something quickly that gets the job done. And, often, you can get something together that basically works. But basically working is very different than a tool that has all of the features and polish you need to fully solve the problem at hand.
Faced with the limitations of the simple tool that they had built and a choice between investing time into improving that tool or their apps, the Eye-D team looked for a third party solution. That’s how they came to try Bugfender. They say that the richer information, conditional logging, and pleasant interface were an immediate win.
As software developers it’s always hard to make the call between building something and buying something. Part of it is that creating software seems to be “free – it’s not like making something physical where there are material costs involved. The problem for most companies is, of course, that time is a precious resource. Every moment you spend writing software that doesn’t directly solve your customer’s problems should be carefully scrutinized. That doesn’t mean, of course, that you should just buy all 3rd party software and wire it together. Joel Spolsky has an old article that sums this up very well:
“Pick your core business competencies and goals, and do those in house. If you’re a pharmaceutical company, write software for drug research, but don’t write your own accounting package.”
So while remote logging is critical for Eye-D (and many companies), it’s not a core business goal. Having great logging helps them deliver a great product, but it’s not the product that they are selling. Great logging is our core business goal, of course, so letting us handle the logging lets you focus what’s most important for your business.
After using our free tier for a while, Eye-D subscribed to one of our higher tier packages. What prompted the move was the need for longer log retention for more devices. Their large user base combined with sometimes needing to address crashes or error reports from several days to even weeks before required the additional log storage and longer log retention that we offer.
As always, it’s humbling and inspiring to see the amazing apps our customers build. For Eye-D, it’s particularly great because they are committed to using technology to helping people with a challenging disability live life independently and on their own terms. That’s a dream that many of us have long had for technology and it’s exciting to see it happening and be a small part of that. I’d like to thank the whole Eye-D team, but especially Shaswat Jena for taking time to help me understand their app and how they use Bugfender.
If you would like to help them in their mission, please sign their petition to help bring Eye-D technology to all that need it.
More About Eye-D
Eye-D (acronym for Eye Devices) is a multiple award project by GingerMind Technologies Pvt. Ltd. At Eye-D we build products to empower people having vision impairment with technology to help them lead an independent life. We follow an approach of developing affordable solutions by leveraging the existing technology. With our suite of products we plan to provide a level playing ground for the visually impaired by catering to their daily needs intuitively at their fingertips. Our suite of products include the two versions of Eye-D App (Eye-D free & Eye-D Pro) and a hardware called Eye-D keypad. We believe technology can truly empower persons having special needs. So to further scale the impact of our existing AI based assisting app(Eye-D App) and help more number of visually impaired adopt and use smartphones we have developed an universal smart physical keyboard called as the Eye-D keypad. The Eye-D keypad helps visually impaired use smartphones efficiently by bridging the accessibility gaps. The Eye-D Keypad’s universal design makes it compatible with any android phones and makes it portable enough to be used on the go. While the keypad is designed to connect the visually impaired to the digital world the app address three key areas that they need assistance in i.e. travel, identification and learning. The Eye-D apps are now assisting 8000+ visually impaired every month across 160 countries globally in 12 different languages.