Case study for Speak Easy React-Native Messaging Application

Overview

The Speak Easy App is a Mobile Application built with React-Native. It makes use of firestore for data storage The user can sign in to the message board and join the conversation with text messages, images from thier device storage, images taken from their device camera. They can also share their location using the GPS system in their device.

Purpose

Speak Easy was a part of the Career Foundry Web Development Course. React-Native is an incredibly powerful library for building mobile apps and my time with it so far has been very exciting. I feel like I have just scratched the surface of the framework and I look forward to using it more in the future.

Objective

The main objective with this project was to take a design and develop it using the React-Native framework. There is always a learning curve with a new technology, language, or framework. My main goal was to find mulitiple ways to get to the same layout and to fully develop an understanding of the framework.

Approach

The process for this project was similar to others by way of establishing a working skeleton, then adding features one at a time to ensure full functionality before moving on the the next. What made this process different was that the React-Native framework cut out so much of the structural development. This project went incredibly fast and I intend to return to it in order to add some more functionality. I look forward to seeing what other features are built in to the framework.

Challenges

As I mentioned, this project went incredibly fast. There were few challenges along the way but a couple things do stand out.
The first is the predesigned features inside the framework. Buttons, for example, are difficult to style as they have a predefined style already set. This predefined style is also device specific so extra care must be taken in designing to ensure a consistent look across all devices. I made use of some touchability features in order to style my own buttons rather than using the fallback of the default button style.
The second difficulty was minor but it was in getting the layout of the display to fit the provided design. This wasn't a difficulty until the keyboard popped on screen and pushed pieces of the design out of view. A fix was provided to ensure the input bar was not hidden by the keyboard, but then the keyboard moved other features out of view. I was able to use a container to keep all of the input fields together so they would move as one when the keyboard popped up.

Credits

Role: Lead Developer

Tutor: Ebere Iweala

Mentor: John Behan