An Android based solution to assist vision impaired individuals to navigate inside APIIT City Campus

The Project


Project Duration: 4 months

For my final year project for university I decided to try a different path and do a project that was somewhat uncommon among the projects done by most students. It has always been an interest of mine to explore new and simple ways to do everyday things, which might be the reason for my interest in the UI/ UX field. For this specific project I wanted to go even further and try to do a project with a VUI (Voice User Interface), and the first idea that came to my mind was to make a voice commanded mobile application for the visually impaired. But, since the time and resources as a student is limited, specially for an individual project, the area of the project was narrowed down to the APIIT City Campus building.
The aim of this project was to develop a method that would aid the accessibility of visual impaired individuals in a foreign indoor environment. In order to do so a mobile application was developed which can be used by the visually impaired to aid their navigation within APIIT City Campus building.

The Challenge

Designing and implementing an application from scratch by oneself is a challenging task. It can be even more challenging if the task is about rarely discussed territories such as indoor navigation for the visually impaired. Even though this is not uncharted territory mobile application wise, the number of solutions are very limited and complex. This meant not only re-imagining a whole new process, but also making it simplified enough so it could be implemented within a limited period of time and resources.

The Process

survey_image

Process flow

Research & Analysis

A combination of Literal and Collective study was done for the research data gathering. The Literal study was a selection of literary reviews on the project topic, as well as a review of other topic related printed and online media. The Community (Population) study was a group of randomly selected visually impaired individuals who live in Colombo and Gampaha Districts.

Survey

I conducted a survey as a method of descriptive study to gather behaviours, attitudes and opinions of a sample population. Sampling procedure was visually impaired adults between the ages of 20 to 60 years. Opportunity and snowball sampling techniques were used given the nature of the target population.
Carrying out a survey helped me understand the main challenges and inconveniences faced by them in their everyday life when navigating. It was also an opportunity for me to see the problem through their perspective allowing me to have an empathetic approach towards the solution.

Survey

I conducted a survey as a method of descriptive study to gather behaviours, attitudes and opinions of a sample population. Sampling procedure was visually impaired adults between the ages of 20 to 60 years. Opportunity and snowball sampling techniques were used given the nature of the target population.
Carrying out a survey helped me understand the main challenges and inconveniences faced by them in their everyday life when navigating. It was also an opportunity for me to see the problem through their perspective allowing me to have an empathetic approach towards the solution.

surveyquestions_image

Survey questionnaire using Likert scale

surveyanswers_image

Surey answer cataloguing for analytics

survey_image

Sample survey data

Direct quotes from survey takers:

"If it's an unfamiliar environment, almost always I have to ask for assistance from another person"
"I haven't experienced any indoor aids for navigation except for Braille signs"
"We are rarely taken into consideration when building indoor infrastructures"
"Trying new mobile applications can be hard, because of unfamiliar interfaces"
"Sometimes it's hard to know which way to turn when navigating indoors"
"I think being independent, without having the need of depending on someone else is something not only wanted by visually impaired people, but almost everyone"

Direct quotes from survey takers:

"If it's an unfamiliar environment, almost always I have to ask for assistance from another person"
"I haven't experienced any indoor aids for navigation except for Braille signs"
"We are rarely taken into consideration when building indoor infrastructures"
"Trying new mobile applications can be hard, because of unfamiliar interfaces"
"Sometimes it's hard to know which way to turn when navigating indoors"
"I think being independent, without having the need of depending on someone else is something not only wanted by visually impaired people, but almost everyone"

Affinity Mapping

After the surveys and interviews, I noted down several notable points in post-it notes. The post-it notes were used in an affinity map to identify user pain points, types of visual disabilities and characteristics, main methods of navigation and opportunities. From those clusters key attributes were identified to understand the basic foundation of what the mobile application solution should be.

Affinity Mapping

After the surveys and interviews, I noted down several notable points in post-it notes. The post-it notes were used in an affinity map to identify user pain points, types of visual disabilities and characteristics, main methods of navigation and opportunities. From those clusters key attributes were identified to understand the basic foundation of what the mobile application solution should be.

affinitymap_image

Affinity map clusters and main points


Problem Outline

Implement a mobile application aiding visually impaired individuals to navigate inside the APIIT City Campus building. The deliverables of the solution should include but not be limited to; identifying user current location, navigational assistance for the user from one location to another, and other functions helping user indoor navigation.

Problem Outline

Implement a mobile application aiding visually impaired individuals to navigate inside the APIIT City Campus building. The deliverables of the solution should include but not be limited to; identifying user current location, navigational assistance for the user from one location to another, and other functions helping user indoor navigation.

Solution Concept

A mobile application with voice commands and touch controls as the main methods of interaction between the application and the user. For user location identification and navigational functions bluetooth signals will be used with the implementation of a cloud database.

Solution Concept

A mobile application with voice commands and touch controls as the main methods of interaction between the application and the user. For user location identification and navigational functions bluetooth signals will be used with the implementation of a cloud database.

solution

Solution concept diagram

Design

GUI Vs. VUI

The conventional method of interaction between a human and a software is through a Graphical User Interface (GUI), Voice User Interface (VUI) is an emerging UI interface which allows people to use voice inputs to control their applications.
For this project I decided to make a VUI heavy application with some components in cooperating touch inputs considering majority of the target users being blind and others suffering from some form of visual impairment.

GUI Vs. VUI

The conventional method of interaction between a human and a software is through a Graphical User Interface (GUI), Voice User Interface (VUI) is an emerging UI interface which allows people to use voice inputs to control their applications.
For this project I decided to make a VUI heavy application with some components in cooperating touch inputs considering majority of the target users being blind and others suffering from some form of visual impairment.

Since this application is made for the visually impaired, designing has not been prioritized when implementing the display of the application. The application user interface has been made user-friendly for the visually impaired by implementing a screen for single and double tap touch inputs and voice commands. Below is a diagram showing the sample flow for the search floor function using voice commands.

dialogflow_image

Sample Dialog Flow


Visual Design

Even though the application is designed without majorly concentrating on the aesthetical appeal of the application, the screens have been designed in a way that could be identified separately from one another by the partially blind users.

Visual Design

Even though the application is designed without majorly concentrating on the aesthetical appeal of the application, the screens have been designed in a way that could be identified separately from one another by the partially blind users.

screens_image

Application Screens


Since the visual design for the user interface was minimum, I skipped the Lo-Fi wireframing and moved onto a High-Fi prototype. Each of the functions have separate colours that could be identified from one another, and every function has a symbol which would indicate the current function in use. These colours and symbols have been implemented using contrasting colours, which makes for easy identification by the partially blind user. Furthermore, each activity will show the current function name on top, as well as showing the steps in navigation function in large white text on a black background, contrasting the text for better readability for the partially blind.

Naming and Logo

APIIT Navigation was chosen as the application name and the application logo was designed according to material design guidelines.

Naming and Logo

APIIT Navigation was chosen as the application name and the application logo was designed according to material design guidelines.

logo_image

Material Design Icon Grid and Application Icon Logo


APIIT Navigation was chosen as an appropriate name considering the application specifically being made to be used by visually impaired users inside APIIT City Campus for navigational purposes. The logo was made by combining the silhouette of a visually impaired person with Braille letters 'A' and 'N' on either side of the silhouette as an acronym for APIIT Navigation. The goal was to make it as simplistic as possible while representing a general idea about the application.

Development

Development Methodology

Extreme Programming (XP), which is a type of Agile Programming was used as the development methodology, since it practices development concentrated on user stories, separating one function from another which was ideal for this type of project.

Development Methodology

Extreme Programming (XP), which is a type of Agile Programming was used as the development methodology, since it practices development concentrated on user stories, separating one function from another which was ideal for this type of project.

A selection of User Stories were put into one iteration considering how related and important they are to each other as functions. Then the development was done based on the Iteration Plans which describes the tasks or functions that are scheduled into each iteration. Then at the end of each iteration Functional Tests were done to find out if the iteration was a success, which was helpful to gradually complete each task in a controlled and coordinated manner while lowering the number of failure and errors in each function, and then an application as a whole.

Selected Platforms & Technologies

◾ Development Platform

Android Studio version 2.3 was used which was the latest version of Android SDK to date.

◾ OS

Android 7.1.1 Nougat Version with API 25 was selected as the target version, and Android 6.0 Marshmallow with API 23 was selected as the minimum.

◾ Database

Firebase by Google was chosen as the database for the mobile application. Furthermore, Firebase plugin for Android SDK was used to integrate the database with the Android application.

◾ Bluetooth Beacons

Beacons with Bluetooth Low Energy (BLE) technology with a range of <75m with a two year battery life was used as an appropriate bluetooth solution to give off signals.

Selected Platforms & Technologies

◾ Development Platform

Android Studio version 2.3 was used which was the latest version of Android SDK to date.

◾ OS

Android 7.1.1 Nougat Version with API 25 was selected as the target version, and Android 6.0 Marshmallow with API 23 was selected as the minimum.

◾ Database

Firebase by Google was chosen as the database for the mobile application. Furthermore, Firebase plugin for Android SDK was used to integrate the database with the Android application.

◾ Bluetooth Beacons

Beacons with Bluetooth Low Energy (BLE) technology with a range of <75m with a two year battery life was used as an appropriate bluetooth solution to give off signals.

Testing

Screen Comprehensibiltiy Testing

To make sure that partially blind users could easily identify one function from another and to test the readability of the navigation text outputs a screen comprehensibility was done for different types of visual impairements.

Screen Comprehensibiltiy Testing

To make sure that partially blind users could easily identify one function from another and to test the readability of the navigation text outputs a screen comprehensibility was done for different types of visual impairements.

screenstest_image

Screen comprehensibility test done for different types of visual impairements


Performance Testing

Since I used the Extreme Programming (XP) approach to develop the appication, all the finished functions were performing well within satisfactory levels since they have been tested as individual functions in each iteration. However further tests were carried out to review the Memory, CPU, GPU and Network allocations rendering by the mobile application, which were also within satisfactory levels. Furthermore test cases were done for every fucntion to see how they perform with correct and incorrect data inputs. Click here to see test cases (PDF).

Performance Testing

Since I used the Extreme Programming (XP) approach to develop the appication, all the finished functions were performing well within satisfactory levels since they have been tested as individual functions in each iteration. However further tests were carried out to review the Memory, CPU, GPU and Network allocations rendering by the mobile application, which were also within satisfactory levels. Furthermore test cases were done for every fucntion to see how they perform with correct and incorrect data inputs. Click here to see test cases (PDF).

performancetest_image

Application performance test sample results


User Testing

The finished version of the application provided satisfactory results in user testing. Specially in application navigation, the user was able to understand how to use the application by going through the guide. However new users had no idea that there was a guide function that they needed to go through in order to understand the naviagtion flow. To mitigate this problem, the application was programmed to present new users with steps on how to access the guide function if neccessary on application start up.

User Testing

The finished version of the application provided satisfactory results in user testing. Specially in application navigation, the user was able to understand how to use the application by going through the guide. However new users had no idea that there was a guide function that they needed to go through in order to understand the naviagtion flow. To mitigate this problem, the application was programmed to present new users with steps on how to access the guide function if neccessary on application start up.

Reflection

Working on this project made me realize how important it is to research and actually get feedback from who the product is made for rather than making assumptions by myself as a user. As someone who is not severley visually impaired it took empathy, curiosity, making mistaked and learning from them as well as numerous tests to come to this final solution. Even though it might have been frustrating at times when something goes the complete opposite way you had planned, doing this project was a humbling and a grateful opportunity for me to discover everything that went into making a product and made me even more interested in the role of a UI UX designer.

Presentation