Top 6 most used Redis libraries by Tabnine users

Posted on October 30th, 2019

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?

How we gathered the data on Redis usage

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:

Top 6 Redis Libraries

1. Spring Data Redis

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.

2. Jedis

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.

3. Reddison

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.

4. Lettuce

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.

5. Redis embedded server

Redis embedded server for Java integration testing is not a very commonly used library according to Tabnine users, with under 2% of unique users.

6. Vert.x

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!

16 key tools and resources for Android development

Posted on October 7th, 2019

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. 

Android Editors and IDEs

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.

1. Android Studio

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.

2. IntelliJ IDEA

IntelliJ_IDEA_Logo

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.

3. Tabnine

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.

4. Visual Studio With Xamarin

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.

5. Unity 3D

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.

Android Libraries

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.

6. Universal Image Loader

Provides a flexible and customizable solution to upload images on Android. This library offers developers customizable features to cache and display images.

Usages examples

7. AndroidView Animations

Provides a collection of many animation effects.

Usages examples

8. Picasso

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.

Usages examples

9. EventBus

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.

Usages examples

10. ButterKnife

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.

Usages examples

Advanced Tools

11. Firebase

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.

12. ML Kit

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.

13. Android Architecture Blueprints

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. 

14. NimbleDroid

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.

15. Stetho

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.

16. LeakCanary

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.

Conclusion

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.