My plan is to progressively enhance the app into a fully complete app, allowing me to step-by-step learn important principles of development without overwhelming myself while at the same time practice my learning by applying them to a real app.
I did it.
I crossed the nebulous divide that separates an amateur from a professional. I finally feel like I can truly hack it as a developer. It came at a very clear moment. How did I know this, and how did I recognize the moment?
Because I, feeling the looming crunch of a deadline, abandoned my strict plan and decided to just publish the app.
Jokes aside, I’m not actually abandoning my plan.
- I will be adding some form of caching to the app. My initial testing shows that the app performs fine even if contacts are fetched new every time the app loads. Perfect? Nope.
- I will be learning how to use a profiler and really test performance. The tests I’ve run on by installing the app APK on my phone show no performance issues; it runs quite quickly without any crashes.
- I will be ensuring my code is better documented, both through a Readme and within the code itself.
What’s more important than those things, though, is getting quickly to the real feedback cycle. Documenting the code doesn’t help end-users.
So, I’ve decided to publish the app in beta form on Google Play. It already has a bug that should have been spotted earlier(the splash image doesn’t fully cover the screen on all devices) but that’s been corrected and will be in the next version(See? I am a professional).
Put Your Code In the Wild
I’ve also taken the plunge to put the code on GitHub.
If you are still not convinced that I’m on the top of my game, don’t think that I didn’t have to search and remove all of the crappy
console.log() statements and
Feel free to open up a GitHub issue if the following applies:
- You spot a bug when running/cloning/building the app.
- You have a feature request(Duh, it needs a way to import contacts from the phone. Never thought of that one).
- To point out inefficient functions or lifecycle method usage(React is hard, y’all).
- You feel like nitpicking my indentation, spacing, function naming, or abhorrent use of Typescript.
- You, a headhunter, are so impressed that you want to offer me a developer position(include salary in the description).
I’ll be circling back through the remaining steps and chipping away at the repository, refactoring and cleaning up as I get better and more knowledgeable. I am under no illusions that this is a completed or perfected project but it’s been a wild ride and a great learning experience. In fact, it sounds like a “Lessons Learned” post is needed….