This is an idea that I’ve been playing with for nearly 3 years. Now that I’m ready to expand my portfolio and hone my skills with React and Meteor, it was a clear candidate project.
I own a couple of books about mixing cocktails. They’re great, but what’s bothered me about all of them is that it’s relatively hard to figure out what I can make with the ingredients I have on hand. It’s kind of like the books are missing a ‘reverse lookup’ feature: it’s easy to find a particular cocktail and discover its ingredients. It’s not so easy to find a cocktail that matches your available ingredients.
I’ve done a bit of research on the Android app market, and such apps are already available. So, in that sense, I’m not about to create something groundbreaking. However, there is a treasure of feedback within the reviews of those apps, and I noticed that some apps still drop the ball on several things.
Still, I’m not looking to fix everyone’s problems. I love mixing cocktails, so even having a pocket-sized reverse-lookup-able cocktail recipe book just for myself would be a win. But I’ve decided to go overboard with this project. I need a solid showcase for my skills, so I’ve decided to work on two things:
Create a website powered by Meteor
This is something I’m familiar with already, but this time I’ll be cranking it up to 11. My intentions are to learn more about:
- using Nginx as a reverse proxy in front of Meteor’s Node.js server;
- using Meteor not only as the full stack for the website, but also serve as the backend for the React Native app I want to create later;
- Meteor and React’s idiosyncrasies;
- pub/sub model; and
Currently, my experience with Meteor has been to create some of their example applications, as well as integrate it with React for some experimentation.
Create a React Native app
This is what I really want, but because I also really want a Meteor backend, this part of the project will have to wait until that’s ready. And while I’m building the backend, I might as well turn it into a full-blown website first. Because I’m looking to have user-generated content in the app, it’s probably not so bad to have a fully-functioning website running before I release a native mobile app.
I have worked with Meteor’s Cordova feature to create Android packages from my experiments (for example, my Pathfinder Attack Calculator). Sadly, this way, your app will never look and feel like a true native app. It’s basically your Meteor website wrapped in an app’s web view. While I used some tricks in my Calculator to make it perform smoothly, it will never be able to compete with native apps.
I’m pretty excited about this project, to be honest! Follow it on GitHub.