Recent Posts

I came across this framework, ok lets just call it plugin, because there are no words to describe what lombok is. For some might just be some nice plugin for IntelliJ (come on, no one is using eclipse nowadays!), for others some sort of auto generation wizardry, and for others (like me) a really neat way of keeping the code clean and avoid some nasty boilerplate code.

I am gonna keep this post short, because well, lombok is quite simple actually. Do you know every time you write a POJO in Java? Do you remember every time you have to auto generate those nasty getters and setters? And you end up with a file full of methods, that just fill up your screen? Yeah, those days are over… let me (quickly) introduce you to lombok.

Do you see this class:

import lombok.Data;

@Data
public class Person {

    private long id;
    private String name;
    private int age;

}

Lombok works through annotations, you just mark your POJO and the getters and setters will be generated. Or in other cases where lombok can help, for example @SneakyThrows allows to bypass a checked exceptions.
To tell you the truth, the @Data annotation generates you more than just getters and setters, also redefines the equals and hashcode method, and the toString as well. But you can specify each one of these by using @Getter, @Setter, @EqualsAndHashCode, @ToString respectably.
For cases where you need to avoid cyclic dependencies, you can specifically choose to ignore a particular field from being used in this auto-generation.

Now for this to work you have a nice IntelliJ plugin, and you guessed it right, also works in Android Studio.

I will leave you with some links but please feel free to ask me any questions.
IntelliJ Plugin: https://plugins.jetbrains.com/plugin/6317
Project Lombok: http://jnb.ociweb.com/jnb/jnbJan2010.html
Lombok dependencies (maven/gradle): https://projectlombok.org/mavenrepo/

Cheers

Tags , ,

Today I was adding some new GameObjects(GOs) to my game scene, some of those GOs were Item Pickups, some small components that have a trigger to identify that the player has found them, a component that implements an interface to identify that the player found something that can be picked up, a property for a ScriptableObject that represents an item and a Sprite to show the look of the object inside the scene.

But after placing the Item Pickup I ran into a small problem, the item and the environment have the same color pallete, giving the chance for the player to completely miss it.

Not difficult to fix this, just add another trigger and a script that kicks in when the player character is close enough to the item and it flashes, that would easily do the trick.

Tags , , ,

At the end of last February, the Android developers youtube channel launched a new series called Pivotal where Reto Meier screencasts a way how to build a simple location-based app.

There is only one video out as for now, but the content looks promising in several ways. Not only because as Reto says “There’s a thousand ways in which this implementation is wrong, and the end of the video explains some of why everything should be done differently” but also, and mainly, because it shows that everyone makes mistakes. And by mistakes I mean silly mistakes.

Tags , ,

I have been working with TypeScript for almost 2 years, using it in both frontend and backend. In my opinion, TypeScript makes developers life easier, especially when they have a OOP background.

But why TypeScript?

First of all “how cool is it to have types in JavaScript?” Answer: It’s awesome!!!

It’s very important to have types when writing complex applications or libraries. Types can avoid mistakes and, in my opinion, make the code more readable. Secondly, TypeScript is maintained by Microsoft and they are doing an excellent job updating the language to support the lastest EcmaScript features. Lastly, TypeScript supports all features from ES5, ES2015 and much more: types, generics, enums, interfaces etc…

Tags ,

This seems off my previous topic but I have lots of interests and this is one of many.

Microbit appear in a big world of micro computers with the simplest and most honorable propose, logic. Want to make inputs generate outputs (with a 5×5 lights screen and two buttons) and nothing more, simple but over is glued four ways to program it, one of them is my cup of tea (javascript), python and two others created by microsoft that are not so appealing as true coding.

Tags ,

This week I published the talk I had given on how I evolved from a Monolithic architecture to a Clean Architecture based on Fernando Cejas proposal but with a few differences in the domain layer which I would like to explain. I am not saying these are better approaches but just some tweaks that made the data flow and the architecture clearer to me, so take them with a grain of salt.

Tags , , ,

Every company has, usually, a single service to handle images that allows people to get easy access to them. Microservices aren’t a new thing, but now it’s an hot topic (although I won’t discuss about the advantages of using microservices in this post, I think this is a must read.) – and that’s why I have decided to create a microservice to store images into the file system, and called it ImaUp.

Tags ,

This post assumes that you have knowledge about finite state machines, for a good understanding of that subject follow this link or use your favorite search engine to find more about this topic.

Recently I had to add additional functionalities to one of my game characters, at the time the character’s actions were only idle, running and jumping, but I had plans for actions such as rolling, ducking, walking and ledge grabbing.

The problem was that adding additional functionality was becoming not only an unpredictable bug hunting but also was opening holes for new ones to come in, and when this happens it’s clearly a sign of a bad design.