If you read this posting, you know already that I am an active paramotor pilot, flying constantly with a group of friends. Flying with others is great but, from time to time, it is common to have somebody “lost” from the group, reason why I’ve always looked for an app that could share our locations while flying.
Although some developers (Apple and Google, for example) have apps like Find Friends, usually, these applications requires permissions from users and their geolocation updates are every minute or so, something that is not feasible to have when you are flying with a bunch of people who like to keep their privacy after our trips.
Time to learn a new programming language and develop my own solution 🙂
Having a personal project is a nice way to force yourself to learn new things, be “the persona” for the assignment, and get the pressure of being in charge of planning, designing, developing, testing and support tasks.
Learning a new tool is a good way to get frustrated (learning takes time, things don’t work as you expected/imagined, etc), re-design all the time (some things you cannot code yourself) and get mad trying to find and fix bugs. However, it is really nice to celebrate when you have a “new baby” running on your phone (even better when you see it in OTHER people’s devices).
Ok, let’s talk about the process! Due to my own lack of skills as a learner, plus the NativeScript limitations (always read a lot about the tool of your choice), I planned a minimum set of features:
- I did not want to spend much time controlling userids and password;
- I needed a solution to show several people in real-time on a map;
- It was mandatory to show a map and have the ability to capture/draw pilots locations.
In order to handle items 1 and 2 above, I’ve decided to give a chance to Google’s Firebase (man, this is amazing). For the map solution, I’ve opted for the Mapbox provider, as it is implemented as a native map inside the app (Google’s Map renders inside a browser).
My first drawings and mockups:
As you can see, I have tried several variations until I get to the final design below. Changes need to be made, like I said above, due to usability tests, lack of skills to do a few things, plus some limitations with NativeScript.
After a few weeks, the app was completed (at least version 1.0) and available at both Apple’s AppStore and Google’s Play Store, under the name PPG Finder. Below, the final screenshots:
What have I learned?
Like I mentioned above, besides get familiar with a new programming language and having an app developed, as a designer, the main learning was to:
- Constantly adapt to a non-planned situation (very common in the “real world”: we design something, developer deliver other things because it was not possible to code exactly as designed);
- Be the user, hear the user. When you use what you build, it is much simpler to find areas of improvements and fix things;
- Find solutions! Related to the two comments above, a personal project is an opportunity to find solutions to other challenges you may have, without the pressure of time. It is under your control after all;
- Setting a deadline is the best way to verify if you achieved your goals in the right timeframe.
Pick a personal project and try to do something related to design (could be a website redesign, a new feature, whatever). Besides being a great exercise, it is also very fun!