Track My Pain
https://github.com/garrettbland/TrackMyPain
https://apps.apple.com/us/app/track-my-pain/id1303267778
https://www.facebook.com/trackmypain
Whats Track My Pain?
Track My Pain is a iOS app I developed for a colleague and friend that has chronic pain. He has suffered from pain for many years, and wanted an app to easily track his pain level so he could relay to that to his doctor.
What did it do exactly?
The app featured a home page to quickly rate your pain from 0-10, add notes, medications took, ect. It would log all of this information and be searchable for later digestion. It also featured local notifications that could be customized. For example, if you wanted to rate your pain every 3 hours, you could set this up to your schedule.
What technology was used to build it?
There just a few different pieces of technology that were used to build the app.
- React Native
- Google Firebase
React Native is a javascript framework that when ran through a process, generates native code for the build device. So in this case, I could write one code base in javascript using React, and it would compile to a native app for both iOS and Android devices.
Google Firebase was used to store user data and demographics such as age and gender. Each user had a unique id document, and all subsequent data would go under that such as pain logs and settings.
Where is the app now?
If you have an iOS device, you can still download the app and try it out for free. Click here to view on app store.
What did I learn from developing this app?
There were a few different things I learned. I started writing the app on June 30, 2017 and had some experience writing previous apps. I didn't fully understand a lot of javascript yet, and things like promises and async/await were still pretty muddy to me.
The first big thing I learned, is hire a designer to design the logo and screenshots. It will look so much more professional. I thought for a long time that I could just make something simple and it would work. It can, but now reflecting on previous projects, its not very polished in my opinion.
The second thing, is learning to make sure to know exactly what the client is looking for before developing. When I started making the app, I didn't do any sort of mockups. I just dove right into code, and we went through multiple versions before finding something good. Had I just created a quick mockup in Sketch, I would saved myself and the client a lot of time.
Finally, I learned a lot about javascript in general, and a ton about react and redux. I understood state management pretty well, but this project is when the redux store finally 'clicked' to me.