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 , ,

Recently I wrote a post introducing the Elastic Search engine and how to install it. Now it’s time to move on and start doing some funny things with this powerfull tool.

If you follow the Part 1 of Elastify your Search post you are able to:

  • Start ES engine by typing elasticsearch on the terminal
  • Get a JSON response with basic ES information when accessing localhost:9200 on the browser
  • Access Head plugin by typing localhost:9200/_plugin/head

Now let jump into create and search for data in Elastic Search

Tags

As our lives move on, it has been hard to keep up with updates on our side projects so we hope we can explain you what has been happening.

As you may recall, one of our projects we mentioned here was Checklist, a simple checklist for developers of any platform whose main goal was to develop a platform in our behalf, while we would learn new tools and try others.

As time passed, we found other platforms that did the same (or sometimes even more) and the fact that some of us weren’t able to respect the deadlines, it was decided to stop its development.

But as people say ”when one door closes, another opens” and so we started a project called TourGo.

It has been a while since my last blog post about Xamarin and I feel this is the time to write something more about it. Although I haven’t been working with Xamarin for some months, I will write here some questions people often asked me when I was full-time working with it:

Have you used any java library directly? How easy is it to use them?
First of all, let me say that Xamarin itself created a github account with many samples some of which have Android API wrappers for C# of popular java libraries (ex: ActionBarSherlock) which is worth checking out.

One of the requirements I had concerning the project was its feature of uploading files from the device to the server and I knew it wouldn’t be easy especially due to the Documents API introduced in Android 4.4.

In this post I will show how I organize my node.js applications. I’ll start explaning the nodejs principles, with examples.

NodeJs Principles

NodeJs follows the next principles:

Unix philosophy

  • “Small is beautiful”
  • “Make each program do one thing well”

Keep It Simple, Stupid (KISS) principle.

“Simplicity is the ultimate sophistication.” – Leonardo da Vinci

I think I already gave the idea of the way to structuring a node application. Creating microservices to do specific work, separating the complexity and decoupling the responsibilities.

One of the biggest problems that people have with Nodejs is the maintainability of the application. That’s the reason why is better to have 3 different micro applications than a big one.

In this post I’m gonna talk about Cordova and its integration with Visual Studio. For this I created a simple bootstrap project using Cordova, Ionic and Typescript for people that are starting this adventure like me.

What is Apache Cordova?

Cordova it’s a open source platform to develop mobile applications with Web Technologies (Javascript, Html5, CSS). It’s possible to install plugins to access the device native api. For example, if we want to access the camera, we just need to install the camera plugin.

Tags , , , , ,

In this post i will explain how to integrate Jenkins with Nodejs.
Why Jenkis? Because it’s the most popular CI.

What is Jenkins?

Jenkins is a continuous integration application. The main features are:

  • Building/testing software projects continuously
  • Monitoring executions of externally-run jobs

More information here.

Pros:

  • Easy to learn
  • Open Source
  • Good Documentation & Tutorials
  • Plugins for everything

Cons:

  • 404: Not Found
Tags , ,

If you had started to learn Android development while pursuing a degree in a computer science (just like I did) as soon as you begun to build an app with an advanced UI, you realised that you didn’t have the knowledge to reproduce complex layouts in xml besides simple textviews, buttons and edittexts. The above can be justified by the fact that computer science degrees courses do not put enough emphasis on the UI side of development.

Therefore, this post is the first one from a series of tips I would like to give to everyone who is just starting to develop applications for Android. The tips will be based on my experience and on what I’ve learnt from more experienced developers over the time.