Developing on a small scale – making a new app yourself

When you’ve gotten THE IDEA for your next app, how do you go about making it happen? How do you plan on developing it? Testing it? Do you make a list of features you want in it or do you just start writing code? And have you thought about how to store and version your code?

Developing apps for me is definitely development on a small scale, since I’m a team of one. Sure, I bounce ideas off people, scour the net for ways to solve coding issues and present the results to others, but the development process is pretty much just me and my code.

Working like this can be both a blessing and a curse, if you’re doing it like me. On one hand choice of tools and process is up to you and decided by you alone, so it’s going to be just like you want it. On the other hand, if you don’t do something that needs doing, no one does it. That said, having a proper set of tools can make it easier to keep track of all the moving parts and make you focus on what’s important, namely your app.

The tools

All of the tools listed below are free of charge if it’s just you or a few people using them. I find they make collaboration easier, should you need it down the road 🙂

Android Studio: If you’re developing in Java or Kotlin, I definitely recommend using Googles Android Studio. The IDE basically runs out of the box and updates are handled through the environment. This tool has sped up my development process quite a bit, compared to my previous experience with Eclipse and other tools. Android Studio gives you emulator, profiler, Git integration, build engine, a good code editor out of the box. So far that has been all I needed and wanted.

Bitbucket: Your code is probably your most important asset, and you want to keep it safe. Store it somewhere you won’t accidentally delete it. There’s a host of source control systems, but none is more known than Git. Personally I use bitbucket.org, which integrates nicely with Android Studio. If you don’t know what source control is, I recommend you look into it. I find it giving me the added benefit of always being able to switch to a specific version or branch at any time and not having to spend time on setting it up.

Trello: At my full time job (I know, “Whaaat you can’t live off this ?!?”), we’re using the agile methodology. Thru working this way I learned how user stories and features can encapsulate the work everyone is doing and going to do in a fast and efficient manner. Again I highly recommend you check it out, as I find it gives me a good toolbox for capturing and organizing relevant information, even if I’m just one person. Personally I use Trello, which integrates nicely with bitbucket.org, but there’s probably a whole bunch of these tools out there. Never again will I have to store to do lists in emails, on sketchpads etc. and have a billion ways to misplace my notes.

Stack Overflow: I don’t know if this really counts as a tool, but countless times I’ve been looking for a way to resize a button, find an example of how to use a collection or remember the symbol for that XOR operator. I’ve mostly ended up at Stack Overflow. Basically what I’m trying to say is I try not to sit and battle with a problem too long before I look up a solution on the net. Nobody is grading you on how well you know all the answers, but only on how well you application is made. If credit is due to someone who helped you solve a problem, then give it. It doesn’t detract from your ability to make great stuff.

These are the tools I’m currently using, so feel free and give them a try. In the meantime I’ll start working on my next app. I hope to document a little bit about the process for you to see.

Until then Happy New Year to everyone 😀

(feature image from Good Free Photos)

“Terraforming Mars” – and why I think a board game like this is worth your time

Hello good people!

Recently I acquired a new board game dubbed Terraforming Mars. The game is developed by Jacob Fryxelius and published by Stronghold Games. It has a price tag of around 60 EUR / 45 USD on Amazon. The game has an impressive rating of 8.4 on BoardGameGeek.com.
The game can be played by 2 to 5 people. The box says a game should take 90 to 120 minutes, but in my experience it’s more like 2 to 3 hours (I’ve played 20+ games so far).

The objective and how the game is played
You and your fellow gamers will be assuming the role of big corporations working to … *queue suspense sound effects* … Terraform Mars *fanfare*. Not that surprising really, is it 😉
You start out by having a set production for your corporation, some starting capital and a corporate feat, which may help you throughout the game to a greater or lesser extent.
The games is played in rounds (simulating generations in timespan), where you go through phases of producing resources, buying project options, spending money to built said project or from a set of standard projects. Players take turns performing one or two actions per turn. When everyone is done, the round ends and a new one begins. Each project can have a variety of effects, of which some raises one or more of the three global parameters (oxygen, water and tempetature). When all these parameters reach a set level each, the game ends.
During the course of the game you raise your Terraforming Rating, which ultimately serves as Victory Points. The player with the highest amount of victory points is the winner.
The game is composed of both cards and a board on which you play tiles, thus giving an additional way to interact with other players.
You can find the rules here; Terraforming Mars rules

Why I love it and what I think makes it great
Terraforming Mars has me hooked on a number of things, which is why I’ve played more than 20 games in the course of 4 weeks. First off it has a set of really interesting mechanics. I’ve found myself pondering over which projects and actions are the best, what the return on investment is on each, how I should sequence them and lastly what my opponents are doing. I’ve played 2-player games by far the most. Even here the actions taken by my opponent in these games are an important enough factor, that I could never successfully disregard this.

Another interesting thing is that the resources you produce over time enable you to complete more projects, making you produce even more resources over time. Thus building up resource production is the most important thing in the beginning of the game. But when the game end all these resources are worth nothing in terms of winning the game – only Victory Points is – which brings in a whole new aspects of when should you shift your focus from producing resources, to gaining Victory Points.

The setting of the game is great too. It’s really well executed with regards to mechanics and gives a great ambiance to the game as a whole. I’ve caught myself chuckling a few times, when I read the flavor text on a project card and seen how well the story on it supports what it actually does in terms of gameplay.

Complexity wise the game has a lot to offer. More than once I’ve found myself missing things, so if I had to say something negative it’s got to be that the game is best played when you’re not too tired, as it will affect your enjoyment, as misplays will happen more frequently.

Terraforming Mars does have an element of luck, but I’ve never felt that you couldn’t make skill count too. It balances a fine line between skill and chance, and it does it well.

Ending remarks
I see myself playing this game over and over, and are trying to find pockets of time during my week constantly.
Terraforming Mars has all the good elements that you could stuff in a box and I am happy to toss countless hours into managing my interstellar corporation for generations to come.

Kudos FryxGames.se on a job well done 😀

10,000 version 1.6 is up on Google Play

Hi,

The 10,000 app has recieved an update.
I’ve made some improvements to the User Interface, so that buttons will be easier to tell apart from the rest of the UI. There has also been made some modifications to the computer player, so that it will try and score more than you, if you’ve reached 10,000.

I hope you all enjoy it. Go check it out 🙂

Best Regards
Lars Sonne

Authentication using WordPress

Hi,

From time to time I’ve made a few PHP pages, for various reasons. Some of these use a MySQL database for storing and retrieving data. When it comes to securing my data and restricting access to editing and deleting functions to me only, I’ve looked at a few simple solutions to the problem. One of the ways I’ve done this, and the one I prefer, is by letting WordPress handle the authentication of the user. The WordPress authentication can probably be bypassed, but since it’s not personal or top secret data, I’ve come to the conclusion that a basic protection is adequate for these data.

How to do it?
First off you need to use WordPress own login page and the users you want to let on to the custom page need to have access to log onto the WordPress site you’re using for authentication purposes.
In my PHP code I’ve included the following lines (the page is located in an adjacent directory to the WordPress installation):

require(‘../wp-blog-header.php’);

and

if(is_user_logged_in()) {
   // Show the page, since the user is logged in
} else {
   // The user is not logged in
}

The inclusion of the wp-blog-header.php file is required if you want to be able to use the method is_user_logged_in(). It is this method that check to see if the user is logged in (surprise, surprise!). Then all I need to do is put the magic inside the curly brackets between the if and the else. Easy, peasy 🙂

Things that I haven’t checked
There are some obvious things that I haven’t checked, like if it’s possible to circumvent the authentication and if so how easy it is. I also haven’t looked into the possibility of making a special right for the page, but just given access to any user that can log into the WordPress site that I piggyback my authentication off.
The solution is simple, I know, but it covers the bare minimum I needed for the pages I’ve created. Oh, and any updates to the login procedure is not my headache, since they get handled with the WordPress updates. Which is probably better than what I could piece together on my own anyways 😉

Cheers!
Lars

The Android likes dice – 10,000 version 1.5 released

Hi all,

I’ve released a new version of the 10,000 – The Dice Game app on Google Play. This release features a few things.

  • You can now play against the computer
  • German translation
  • Better randomness of the dice rolls

The option to play against the computer is something that has been on my mind for quite some time and I’m happy to say that the result is now here. The AI proved to be a bit more challenging to implement than I first thought, but from my time in the computer industry I was hardly surprised. Things are in my opinion never straight forward 😉 Nevertheless I’m quite pleased with the result.
I’ve aimed for the computer to be beatable but not a walkover, relying on a set of simple rules to govern its behaviour. I also tried to make it animated so you can follow the steps it takes when playing and who knows, maybe you’ll even get a new trick or two. I hope you’ll enjoy it!

Happy rolling 🙂