Press "Enter" to skip to content

DEVelopments Posts

Fun with RxJava 2 and Retrofit

RxJava and Retrofit. Two really good java libraries that I recently started playing with. RxJava is a java implementation of Reactive Streams standard. It is a specification of API for processing asynchronous processing of streams. RxJava, now in version 2, is a pretty mature implementation of standard and offers a wide array of tools for use with streams. It supports basic operations like map, reduce, filtering, grouping, joining, sorting, time operations like delay, timeout, interval, window, error handling with retrying and many more. Its API is just huge, it probably has everything you may need.

Retrofit is something different and much more simple. It’s just a HTTP client library, a typed HTTP client library! It lets you easily define a java interface for remote Rest service with just a few annotations. Thanks to this, you can use your rest service like plain, local, java service, just invoke a method, pass parameters and get the results, simple as that. Oh, and it has support for RxJava, so these two play with each other really nice.

Documenting Spring Boot REST services

Documentation is important, everybody knows this, especially when you are the one who needs to use some third party service or library. Without good documentation it’s often a living hell, it’s like walking through a minefield. You carefully take step after step, praying that things won’t blow up. That’s why you HAVE to create documentation, especially for your libraries and REST services. Another important thing about documentation is that you have to update it whenever code changes because the only worse thing than no documentation is wrong documentation, a documentation that is not valid for the current code base.

So if everybody knows about this, it should be ok, right? Wrong. Developers hate creating documentation and they do not do it unless it is really necessary or someone makes them do it – and unfortunately that statement is also true for me. Creating documentation is not bad, but maintaining it, may be hard, especially when you have a critical bug after bug to fix, and deadlines closing in – you just don’t have time to do it.

But there is hope… you can generate it!

Week #0 – It’s about to begin…

Get Noticed competition is starting soon. Only a few days left for registration. If you didn’t do it yet, do it, I assure you that it will be a great experience.

For me, it is already great, I really enjoy writing posts, it allows me to express myself, to give something back to The Internet. Yes, I know, it sounds a bit weird. But most of my professional knowledge comes from the internet, from the Stack Overflow, from the examples on GitHub, from numerous blog posts about various technologies. When I didn’t know much, all these things helped me tremendously. It allowed me to learn at my own pace, I could learn what I wanted to, what was interesting for me or what I needed at work. Everything at a click of a Google Search button.

We are really lucky to live in times when it is so easy to learn all the stuff. You just need time and motivation, and you can create anything, even if you have no idea how.

Commutee functional requirements

When you want to create an application, first, you have to know what this app will do. That’s a pretty important thing to know. You may know technology, know how to use it, how the user interface will look like, how data will be stored, but if you don’t know what this app have to do, you won’t be able to make it. An application must have some use cases so that users would use it for something. But wait, we know what will Commutee do, it will find me a route from here to where I want to get to, right? Yes and no. That is a general idea, but we need more than that to even start thinking about the implementation.

The Choice

I did not manage to get an idea for another, third,  project, so I have to choose from those two that I described before. The choice wasn’t easy because both of these projects would be fun to do. Some of you advised me already on which one of these two do, even though I’m sure that you guys would not use it ;). And I have my own preferences in terms of which app I would use daily. But let’s look at this from another perspective.

But what should I do? – part 2

In my last post, I have described one of my ideas for a project that I could try to develop for "Get Noticed!" competition. It is something that I would use personally on daily basis, so it really makes me want to do it. If you haven’t read about it, head to part 1 to check it out. But there is also another project that I have in mind, unfortunately, this one is not so well planned as the first one. Here’s what it is about.

But what should I do? – part 1

Last time, I wrote about "Get Noticed" competition, where you have to create an open source project in 10 weeks and during this time you also have to blog about the whole process. When you look at these requirements it’s not so complicated, it sounds really easy, but it’s not. First of all, writing posts. It’s hard, especially if you didn’t do anything of that sort ever, but that’s part of a challenge, isn’t it? Like with everything in life, you need to practice to develop new abilities and skills, so bear with my writing skills for now 🙂

Now let’s move to the other creative process of the competition – software development! That’s more comfortable zone for me. It doesn’t look like it does, but it really gives a lot of joy – and sometimes frustration, anger, feeling of helplessness and many other fun feelings. Try it!

But to develop software you need one important thing – an idea for a project. I have few in my mind… here’s one of them.