I first started this app during my Junior year of high school. I was enrolled in a Mobile Application Development class and was tasked with developing a final project. I decided I wanted to build something that would challenge me and that would allow me to learn a lot about computer science. I decided to build a social media app that would allow people to ask and answer questions easily. I decided to build it for iOS at the time because I was more familiar with iOS basics and that would allow me to finish a large project by the 2-month deadline. After these two months I had built a basic looking social media app that fulfilled its functionality, but wasn't quite ready to be published. During my senior year, I continued working on the app as my final project for my independent study computer science class. The app is almost ready, and is scheduled for release in a couple of weeks.

What it does

The app started out as a simple way to ask and answer questions. There was a really primitive screen where users would be able to type their answers and answer options, and there was a home screen that would allow you to see your follower's questions and answer them with a single tap. As time went on, I added different types of questions and a more robust result screen for users to see how people answered their questions.

How I built it

I first started to make mock designs in Sketch in order to get a feeling of how I wanted it to look when I started programming it, After mocking up some screens, I began writing swift code to get my layouts working how I wanted them to work. All my views are made programmatically and not with storyboards so I was able to completely control how the view would look. After getting the front end more or less running, I started to work on a login system for users. I did a lot of research on how to build secure login systems that follow online security standards expected today. I used Node JS as my backend because I was familiar with JavaScript and how easy it was to start building an API in Node.

Challenges I ran into

My main challenge with the app was connecting the front-end with the backend. I was easily able to fetch the data from the server into the app, but managing the data, displaying the data, and updating the data was a major difficulty that I faced. I often had the app duplicating data and displaying it incorrectly. With a couple of rewrites of the front end, so that my app would follow MVC principles allowed me to manage the data more easily through the application.

Accomplishments that I'm proud of

I am proud I was able to implement proper security standards within my app in order to allow future users to have a piece of mind when using the app. All passwords are never stored as text and are encrypted with bcrypt and use proper salting. It's secure enough that I am unable to see a user's password if I tried. I set up proper phone number verification, so in case of forgotten passwords users will be able to use their phone number to verify their identity.

What I learned

Throughout this whole app building process, I learned all the hidden complexities to build a large scale application, and also the amount of time it takes to build an entire social media network. In the future, the experience I had building the app will allow me to apply my skills more appropriately in my future career and new projects I will take on.

What's next for Flux

I plan on releasing Flux on the App Store after a small beta test period. During the testing I will make sure that my server will be able to handle the load of the app, and also make sure it runs on a plethora of iOS devices. I hope to release the app in a couple of weeks to the public. I plan to do a little advertising in order to spread the word of the new social media network.

Share this project: