Hobby projects can sometimes be frustrating.
Not because of the challenges you meet on the way, but because of the time you have to allocate on it. Where do we find these small windows of time? Isn’t it just because we prioritize something else?
Take my example, I am currently putting a lot of effort into my blog and its content. However, that also means that I have been taking time away from my Drinkdaptive Android project.
In the hopes that I could perhaps join my two project and thereby sparking some new interest into the Drinkdaptive project, I thought that I would give an update on where I am at.
Feel free to comment and let me feel the pain if you think that I should revert my focus back to the Android project.
As can be seen from the flowchart, the application has begone to take shape. I have implemented a user login, so that the app can recognize users from each other. (LoginActivity) This login utilizes both, Facebook-, Google-, and independent sign-up accounts.
Users can also send friend requests to each other and add friends (FriendsActivity), thereby allowing them to invite each other to games. (InvitationActivity)
When the host has invited all the desired friends to the game invitation, it is then possible to move unto the game lobby (LobbyActivity) from where it will be possible to analyze your co-players past preferences in terms of question categories.
When all invited friends have entered the lobby, it will then be possible to start the game. (GameActivity) The game works by each player taking turns to select an option of three questions categories. Each of the three options have been selected based on an independent method. I will explain more about these methods in the following section.
Finally, dependent on the question category, points will be awarded to either the loser or winner.
I would still consider many of the features POC, (Proof of Concept) but I believe that it is moving the right direction and following the idea I set out over nine months ago. (somewhat…)
At least the flowchart/wireframe, change a bit.
In my previous blog I explained how I wanted the questions generation to be based on the Jaccard recommendation algorithm.
This is still the case but is unfortunately also the only algorithm that I have not yet implemented.
Have faith! It will eventually be implemented.
For now, I have implemented a questions generation algorithm based on all player’s, participating in the game, preferences and another algorithm based on your own preferences.
This actually provides a pretty cool gameplay, in my opinion. But it will become even better.
Additionally, I of cause also need to write and gather more questions. My current database only contains around 70, so let’s just say that there is room for improvement.
When I was starting this project back in the beginning of last summer, I simply dived into it one Activity at a time. In the process figuring out that I would sometimes need more planning to avoid coding myself into a demotivating dead-end and afterwards move backwards to start developing a new feature.
I now know basic mistakes, which could have been solved with a minute or two thinking ahead. Just remember that this was the project that I worked on after an already long day at work.
I can promise you that 80% of the development toke place while rewatching Breaking Bad in the background.
Would I Have Done Things Differently Today?
Ohh Yes Indeed I Would Have Done A Lot Of Things Different!
Not only have I learned the importance of planning ahead (even on “small” side projects), but I have also taken the time to learn more about development in Android. Reading more blogs and books have made me reconsider some of the tools that I have used in the Drinkdaptive project.
The good thing is that I have become smarter because of that. The bad thing is that working with bad code can sometimes be demotivating.
Guess some refactoring will be the next step in the development of the Drinkdaptive project!
On the other hand, I might as well just go all out indie developer and see if I can glue the code together well enough for it to be launched. #NotSoCleanCode
My name is Daniel H. Jacobsen and I’m a dedicated and highly motivated software developer with a masters engineering degree within the field of ICT.
I have through many years of constantly learning and adapting to new challenges, gained a well-rounded understanding of what it takes to stay up to date with new technologies, tools and utilities.
The purpose of this blog is to share both my learnings and knowledge with other likeminded developers as well as illustrating how these topics can be taught in a different and alternative manner.
If you like the idea of that, I would encourage you to sign up for the newsletter.