Travel Log: React native app
In the last two months, I have learned and made my first React native app. I explored both the bare workflow as well as the expo route. In this awesome journey, I came across a lot of cool stuff in the ecosystem like redux, react-redux-persist, storybook, and much more. More importantly, though, I developed what I consider to be a nice workflow to help in all steps of development from brainstorming to publishing. In this coming series of articles, I would love to journal and share this process.
Without further do…
Day 1: Brainstorming
Step 1: The general idea
Travel log is a small project that has been in the back of my mind for a while now. I don’t exactly know what it does, but I kind of have an idea (This is how I usually start a new project). The problem statement in my head went like this “I like traveling around; sometimes I pick up my bike and go to random locations an hour or two away taking turns whenever my heart desires. I have probably covered half of the city’s roads while doing so. But only if I kept track I would have known. I wonder if there was a niche app for people like me?”
I hope you agree that the next logical step is googling, and a simple googling led to this website that lists a couple of travel log apps. All the apps have some element of what I want. Thus I investigated further which gave me insight into what has already been made and what I can include in my travel log app.
Usually, this is where most of my projects die. Why would I create something that already exists if it isn’t different enough? But if your purpose is to learn you should still go on. And that is what we are doing here. We are learning and sharing experiences.
Key takeaway: Don’t reinvent the wheel.
Now, let’s move to the next step and nail down what we are building in better terms than kinda.
Step 2: Specific details and Features
I want this app to allow people to journal their travels on demand.
- Travel, for our purpose, could be defined to be a simple bus trip from home to work, a fun bike ride at night, or a vacation trip across the globe: any movement involving a significant location change about of about 50 meters or more.
- Journal means marking routes on a map and optionally adding pictures and/or sounds, as well as associated acquaintances made along the way. This data can be backed up to the user’s google drive or the app’s back-end.
- On-demand means though the app requires background location access to work, the user should have easy access to disable the tracking whenever needed.
To accomplish what is described above, the app will mainly have two screens: a home screen and a travel-log screen. On top of that, there will be a simple, clean navigation bar at the bottom to smoothly toggle between these two pages.
On the home screen, there will be highlighted trips. These trips could be chosen by the user or by the app using some kind of metric. On the travel-log screen, there will be a world map that can be zoomed in and out of. When the app loads it is zoomed into the location of the most recent trip. In this zoomed map there will be marked routes showing different trips taken. The opacity of the mark indicates the frequency of a trip. A user can click on these red routes to add or see associated memos, pictures and people.
This habit of having a clear description of an app will be very helpful in creating the technical specification, timeline, deliverable as well as documentation. Since this project is very small, these things may not be significant, but the habit is transferable.
- Bare minimum features
- Location tracking and graphing with a date on demand
- associated memos and pictures at chosen locations
2. MVP Features
- Highlights of the travel on the home screen
- Associated acquaintances
3. More features
- Optional backup
- Inviting friends
- Looking at friends’ trips
- sharing trip memos
- Flight geo-locating
- and more
In the next few days, we will attempt to complete at least the bare minimum requirements, which you can then take and play with in all sorts of ways.
Stay tuned for Day 2! Feel free to leave your comments, experiences, and anything you want.