OUTCOME AND ACHIEVEMENTS

VIEW CASE STUDY

INTERACTIVE PROTOTYPE

Own Startup Company    --     Design and Development of iOS Application

Worked with the back-end developer and hardware engineer to create and maintain a design guideline library, and connection protocols library.

Created and analyzed user surveys and user research data to iterate and redesign UI structures. Maintained and followed a detailed schedule for the design, development and user testing of the project.

Used HTML, CSS and Framework7 to create the user interface of the application. Used AngularJS, JavaScript, PHP, MySQL and REST APIs to communicate user inputs and interactions with the servers.

Presented weekly high fidelity wireframes and interactive prototypes to communicate ideas and design with the team.

NOTE

**UPDATE: This project was created JAN-DEC 2015, before the release of Apple's Home application and 3D Touch iOS Feature**

ABOUT PRIMAGATE

Mission Statement

Current smart-home systems are prohibitively expensive and the user experience often is not up to twenty-first century standards. PrimaGate is set to make the smart-home experience affordable and intuitive for all.

Members

Arman Samimi ( Hardware Engineer ), Alireza Dibaeinia ( Software Engineer ), Nika Lohrasbi Azar ( UX Designer and Mobile Application Developer )

Key Project Components

The project consisted of three parts: the hardware design and connections, the back-end server development, and the mobile application for controlling the devices installed in home.

Role Overview

Designing and developing a web-based iOS application to remotely control heating, lighting, security, and other devices of the home.

INITIAL BRIEF

Create a mobile application for the system using JavaScript and visual design based on an existing software:

CommandFusion

SUGGESTED REFINEMENT

Based on detailed research and testing, I created a presentation suggesting the team we change the approach of creating the mobile application. After discussions and evaluating my skills the team agreed to change the approach and use a web-based application instead. This way we had more design and creative freedom, while still being able to create quick prototypes and launch the application on both Android and iOS platforms if necessary.

SCHEDULE

The amount of work load was overwhelming for us since we each had many tasks and responsibilities and we were studying full time as well. The industry, programming languages, approaches and real-life hardware testing was also very new to me, therefore there was many new skills that I needed to learn on my own. To break things down for myself and meet important project milestones set by the team, I created a detailed weekly schedule for myself to work on the three aspects of my role: Design, Development, Testing.

PERSONAS AND SCENARIOS

NETWORK DIAGRAM

iOS RESEARCH

The project was based in Vancouver, and from the research on our target audience, we found out most of our target audience will be using the iOS platform. Once we decided to initially only release the application for iOS, I began researching and understanding iOS design elements and guidelines. I downloaded most iconic iOS applications and made screenshots of every page to analyze them. I also studied the Apple Developer: Human Interface Guidelines. Learning this background information and applying them in my design decisions allowed me to create a simple but intuitive interface.

INFORMATION ARCHITECTURE

There were many devices and each had different input and output formats, and they all seemed to be as important as each other. On the other hand, it was tough for me to understand what each device is and what exactly they do. I decided to study the device documentation given to me and create a visually organized and simplified device breakdown for myself. This helped me visualize the variety and importance of each device and got me started with the information architecture.

The original document was about 100 pages, and for each device it included a recognition code, communication protocols, specific SDK and REST Interface information. Such information was very useful for programming connections for each device but not useful for designing the interface elements.

In the devices breakdown documents that I created, each device was colour coded to specify only what the user needs to know and see. Each device card specifies whether the device is meant for safety or comfort, whether it is meant only for giving user informative feedback or the user may interact with the device, whether the interaction is only on/off or more complex interactions are necessary.

INTERFACE ELEMENTS

I then continued to put the devices in different categories and groups to find patterns and get a better idea of possible hierarchies. I then printed the cards and used them along with personas and scenarios. This also resulted in some potential visual interface design inspirations and basic user interface elements.




Interface Elements for Prototype One

INITIAL LAYOUTS

Planning and sketching: Working with devices breakdown cards, scenario and personas, I created a potential house map that we would ideally be working with. And tried to imagine how the devices are laid out across the house and how each user might be interacting with the devices at different moments of being at home.













Initial Layouts:



Next Iteration:

FEATURES

Maps

This map was meant to help users locate where the devices are in the house, or easily access all the devices in the room they wish to access. Visually this map took a large space of the application screen so we decided to give the user the option to minimize the map. Developing and creating this map was a bit challenging, and once I proposed the idea, the team liked the feature but asked me to come up with two possible ways we can implement it.

One possible way I could come up with was manually creating the map before instantiating it for the customer, which was feasible for our business model since our company set the devices and the application themselves for the house before the residents purchased or lived in the house. And another tougher but better way I could come up for this feature was automatically creating a rougher map in the instantiating of the application based on the network of the devices. We decided to implement the feature manually to start with, but we did work on the creation of automatic maps as a team.





Scenes

Based on the user scenarios and expectations from a smart home, I decided it will be interesting to have pre-set scenes for the house that the user is able to use during repeated moments such as: coming home, leaving for work, etc. I proposed this feature to the team and we looked into the development of it. We realized minimal work is needed only in the front end development of the application to add this feature and therefore we decided to add this feature for our application.

FIRST PROTOTYPE

INTERACTIVE PROTOTYPE

Screens:

VISUALS AND INTERACTIONS

Visual Explorations

Before proceeding forward, I put a quick visual palette and simple prototype using visual components to get feedback from the team, and user testing.

Interaction Exploration

Based on different devices, ui components, hardware limitations and communication protocols. We listed out all the needed interactions and began exploring in what different ways we can represent them to the user. In the meanwhile we also tested a full-width layout design.

More Explorations

DEVELOPMENT

For the development of the application, I began by intently learning JavaScript and AngularJS since it was critical for communicating with the devices through the back-end servers. Afterwards I began learning about different protocols and REST communications since the application controlled ( sent input and received outputs ) the devices through REST API. Afterwards, I began looking into different frameworks such as Ionic and Framework7, and tools such as Node.js, PhoneGap, Cordova and etc. I tried creating the main page of our application to see what the benefits and challenges of each tools is to chose the final ones to work with and propose to the group.

PROTOCOLS AND CONNECTIONS

The communication between the devices and the application was through a back-end server, created and designed by another member using mostly REST APIs. Languages used in the application to make this possible were mostly AngularJS and JavaScript, but PHP and MySQL were also necessary for some pages.

CHALLENGES

The communication between the devices and the application was through a back-end server, created and designed by another member using mostly REST APIs. Languages used in the application to make this possible were mostly AngularJS and JavaScript, but PHP and MySQL were also necessary for some pages.