Currently the most popular key-value store in the world, Redis has earned its wide adoption rate by providing high speeds and low latency, packed with a flexible feature-set aimed at app developers.
Redis is an in-memory data structure store, used as a database, cache, and message broker distributed under the BSD license. Redis is used by many leading tech brands in their web stack. Among them is Github, using Redis as a “persistent key/value store for the routing information and a variety of other data”. Another brand you might be (intimately) familiar with is Stackoverflow, that employs Redis as a caching layer for the entire network.
Redis Java clients and integration tools are accessed as libraries in the code to provide functionality according to the unique requirements of the specific application and developer.
That said, it’s interesting to learn which libraries are employed most by Java app developers today. The popularity of a library or specific Java client doesn’t only influence its maintenance and upkeep, but also eases troubleshooting.
In addition, it can even ease the process of recruiting and training developers for your team – the more popular the library, the more likely you are to find coders well-versed in its intricacies.
Bottom line, the most popular libraries are much more likely to have better upkeep and provide superior functionality and ease of use. This means time and money saved for you, especially on repairing broken keyboards.
To get a better glimpse into how developers are integrating and using Redis with their Java applications, we decided to check: which are the libraries used most?
We collected anonymous library usage statistics among a random selection of 1871 developers from the Tabnine community over a period of three months (between June and September 2019). We then summarized the total number of projects and apps employing each library, and removed irrelevant records. Here are our results:
The most popular library on our list, with over 56% of users queried, comes as no surprise. Spring Data Redis is probably the easiest and fastest way to integrate Redis into your Spring application, providing the abstractions of the Spring Data platform to Redis.
Dubbing itself “a blazingly small and sane Redis java client” Jedis was conceived with simplicity and ease of use in mind. In our data, Jedis has quite a following, with close to 29% of Tabnine users choosing it over other options.
Reddison is a Redis Java client with features of In-Memory Data Grid and over 30 available objects and services. Based on high-performance async and lock-free Java Redis client and Netty framework, this library has a small following with just 8% of users among Tabnine’s user base.
Lettuce is a fully non-blocking Redis client also built with the Netty framework and it provides Reactive, Asynchronous and Synchronous Data Access. In our statistics, it was the choice of 5% of developers.
Redis embedded server for Java integration testing is not a very commonly used library according to Tabnine users, with under 2% of unique users.
The last on our list is Vert.x, a Redis client that provides an asynchronous API to interact with a Redis data-structure server. This library attracted slightly more than 0.5% of our users.
Do you think these numbers are representative of the overall developer community? Tell us in the comments!
Android development is one of the most popular fields of software development. Currently, 75.16% of all mobile users worldwide use an Android device. It’s also very likely that Google’s Android operating system will continue retaining its market position in the future as well.
Android offers endless opportunities for developers: it is a versatile, open platform used by millions of users worldwide with a powerful distribution platform to reach a large audience. There are plenty of Android developer tools to get you started and help streamline your workflow. The number of these tools is increasing all the time, while each one continues to become more efficient and intuitive.
Integrated development environments (IDEs) can contain a compiler, which translates the language you are coding into Android’s Java, and a debugging console, all usable through the same graphical interface.
This is where you’ll be doing most of the work—creating, designing, testing and polishing your mobile app.
The official IDE for Android development, created by Google. Android Studio provides code editing, debugging, and testing tools such as AVD Manager, Android Debug Bridge, and AVD Manager. It is free to download and is supported not only by Google but also by a large and actively engaged community of Android developers.
A Java IDE with built-in Android support, created by JetBrains. IntelliJ IDEA is a good choice for simple Android applications.
IntelliJ IDEA provides features like clever code completion, on-the-fly code analysis, refactoring tools, and useful JetBrains plugins. IntelliJ IDEA has both Community and Ultimate (commercial) Editions.
Not purely an IDE. Tabnine is an IDE plugin that provides AI based code suggestions inline as you write. Think of it as Grammarly for code. Tabnine’s free plugin is available for Android Studio, IntelliJ, Eclipse, and Webstorm and provide relevant code suggestions for Java, Javascript, and Kotlin.
Visual Studio 2019 is Microsoft’s official and free IDE for developers. It supports several different programming languages and when combined with Xamarin, it can be utilized to create native Windows, Android, and iOS applications.
Visual Studio with Xamarin is a good choice for developers looking to create cross-platform apps. One downside, however, is that it less convenient to access and use Java libraries and you lose some of Google’s support and advanced integrated features.
A game engine and IDE for cross-platform game development. Unity is easy to learn and comes with multiple game-specific features. With Unity 3D, you can create both two- and three-dimensional games. It has an all-in-one editor that features storytelling rather than coding, advanced performance profiling tools, a real-time rendering engine, and many other features. Unity 3D also allows you to build virtual reality applications.
The dev community tends to be quite open with a lot of their work, and chances are someone has made the library you need, but you can always pick and choose bits of code that are useful to you and put them into your own library.
Provides a flexible and customizable solution to upload images on Android. This library offers developers customizable features to cache and display images.
Provides a collection of many animation effects.
An image caching and networking library for Android. It is supported by Square and has an easy to use syntax, multiple online resources and support and features like image transformations, filters and more.
Simplifies communication between activities, fragments, threads, and services, with less code and better quality. Android application development requires communication between Android components, which sometimes becomes very difficult to manage. The EventBus library makes this task easy.
A view binding library that uses annotation to generate boilerplate code. It makes the code more clear and eliminates the need to write repetitive lines of code.
A mobile platform for developers from Google. Firebase includes a number of different features. These features revolve around cloud services, allowing users to save and retrieve data from any device or browser. Firebase can be useful for things like cloud messaging, hosting, crash reporting, notifications, analytics and even earning money through AdMob.
A mobile development tool that brings Google’s machine learning functionality to Android. That means adding things like computer vision and OCR without the need to have knowledge in deep learning and big data.
A collection of architectural patterns and tools for Android app development. It’s maintained by the Google Developers team.
Before developing a mobile app, it’s recommended to design the architecture of your application. Android Architecture Blueprints can help avoid typical architectural mistakes and inconsistencies.
A testing platform that allows checking memory leaks, bugs, and other issues on Android apps before publishing on Google Play. NimbleDroid helps to free up app developers’ time and speed up the overall QA process, helping to get the app to market faster.
A sophisticated debugging platform, developed by Facebook. Stetho offers an interactive debugging experience to Android developers. Stetho allows using Google Chrome’s developer tools to perform various debugging activities, such as view hierarchy inspection, network inspection, SQLite database management, and more.
LeakCanary is a memory leak detection tool based on MAT open source from Square. When a memory leak occurs, LeakCanary will automatically display the leak information, enabling developers to immediately repair the issue.
There are hundreds of other useful Android development tools available. Every Android developer has his own personal preference for what tools and environments to choose based on the particular application they are developing.
As the demand for Android applications continues to grow, the pool of platforms and solutions that help save developers time while helping to produce higher quality apps will continue to increase as well.