Book recommendation “Clean Architecture”

Hi all,

This time I’d been fortunate enough to have the book “Clean Architecture” in my hands. Why fortunate, you may ask. Well, I’d say the the book is a must read if you want to improve your skills when it come to building maintainable software.

Programming principles

The author Robert C. Martin (or “Uncle Bob” as he known as in the industry( goes through a set of software architecture principles coined the SOLID principles. I believe that following these principles you will write better software, as you’ll architect and structure it much better. And I try to do I when I’m programming.

I think the book does a good job of explaining these and through practice I believe you should be able to incorporate these whenever you program. Or at least that is my hypothesis πŸ˜‰

Writing maintainable code

The book also goes to some lengths to point out what a good software architect should strive to accomplish, namely making code easy to maintain. If you look at online review there are diverging opinions on how many pages should be spent on this, but what I can say is that from my professional experience I have never seen any piece of code, component or system that over time became harder and harder to maintain, as features where added. So, in my opinion, you always need to be diligent about reducing your technical debt or maintenance overhead if you will.

You can go have a look at the book at Amazon

Problems with Wacom Touch Ring not working

I’ve had a Wacom Cintiq QHD27 for some time now. Awesome tool and way too flashy for my skill level in Photoshop. None the less I occasionally have some fun drawing on it (I actually made the graphics for my games using it).

One thing that has aggravated me from time to time is that the touch ring, on the EK remote I got with it, was not responding in Photoshop. I’d like to be using it for controlling the size of the brush, canvas rotation and such, basically speeding up my work flow, but it was just dead somehow. Trawling my way through various support sites I came across a solution that worked for me; resetting the darn thing. I’m not talking one of those software resets here, no no, that would have been too easy. No, what I had to do was pull off the back and push the reset button under the cover, doing a hard reset. But it fixed the problem in the end πŸ˜€

I got the guide from here in case you need it (thank you, Frank Doorhof for making the guide)

Hope it works for you too πŸ™‚

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)