Programming world evolves extremely quick and it's impossible to track all the news and be up to date with all technologies. We have to narrow down and pick carefully.
I have picked a number of technologies I want to learn in 2018 and I'd like to share the list with you and try to explain why I did this choice.
Kotlin is a new official language for Android platform, statically typed and seamlessly interoperable with Java.
- Approximately 40% fewer lines of code compared to Java
- Easy to learn especially if you know Java.
- Avoids errors such as null exceptions
The good thing about Kotlin is that if you already have started a project in Java, no need to worry as you can use Kotlin syntax in existing Java code and it will work perfectly.
Apollo allows to build GraphQL API on top of your existing REST APIs. It is a family of technologies you can incrementally add to your stack: Apollo Client to connect data to your UI, Apollo Engine for infrastructure and tooling, and Apollo Server to translate your REST API and backends into a GraphQL schema.
You can put computed fields, data transformations, and security logic into your API so your front-ends don't have to reimplement them every time.
Add fields to GraphQL as you go and deprecate old fields when you no longer need them. Mock some or all of your API and build the front-end in parallel.
Fetch exactly data you need, no more and no less. Improve performance with GraphQL specific caching and optimizations across the stack.
Cypress is a complete solution for end-to-end testing. Writing E2E tests with Selenium based technologies always was a pain and Cypress seems to be a game changer that simplifies it a lot. Totally worth to give it a go.