JIF is a brand new and easy way to chat and share gif’s with your friends. Developed by a dedicated team at Nation, the idea started as a small side project and has evolved into a social sharing application. There are plenty of social sharing apps available on the market, however we felt that they weren’t making the most of what gifs could offer. The crew at Nation has always had a soft spot for gifs, using it as a means of expressing ourselves on a daily basis; so we decided to join our love of watching animated images of cats falling off of things with creating new, interesting tech projects.
The idea was simple — let users create an account and follow their friends. They can then upload a gif from their phone, or search for an appropriate gif from a centralised gif repository. The app makes very little use of actual text. Any text attached to a gif is optional, and limited to 80 characters. We are trying to encourage users to communicate mainly through gifs.
Being a predominantly PHP based development team, it was an exciting challenge to dive head first into the world of native Android apps. Learning Java and the Android OS was just the first step on a long road to develop a market ready application. The decision to build a native Android app was based on two decisions: the lead developer’s slight obsession with all things Android and the fact that this was new territory for the development team which we were keen to explore.
The notion of a hybrid app was discussed, and a small prototype was developed using Apache Cordova. However, we quickly found that the hybrid app just could not perform as efficiently its native counterpart when it came to rendering videos. Handling multiple videos in a single list and trying to smoothly scroll the list was proving to be too much for the interface to handle successfully, causing “jittery” video playback and black boxes overlaying the video views when trying to scroll. As such, the hybrid app was scratched and all focus was placed back onto the native app. While users upload animated gifs, the system actually converts each gif into an mp4 video, and it is this video that is displayed on the user’s gif list. We chose to use videos instead of the original gif for multiple reasons, but the biggest benefit of using videos instead of gifs comes purely down to size. Converting a gif to video can take a 6MB file and compresses it down to 283kB. This instantly improved performance on the app.
Other challenges we encountered…
Even though the native app’s capability of handling videos was significantly better than that of the hybrid app, we still had some issues with creating a smooth experience for users. In the end, we decided the best solution for the time being would be to limit the number of videos that get rendered at any one time and prevent more than one video being played in a single instance.
The name ‘jif’ prevented us from using our initial gif repository of choice; which meant we had to either find another repo that was just as good or change the name. However we had our hearts set on the name, so in the end we found PopKey, who gave us access to their api to search for appropriate gifs.
It’s no secret that Android has a plethora of devices, each with its own screen dimensions and each running its own version of the operating system. We wanted an app that was dynamic enough to run across as many of these devices as possible. Achieving this required a lot of thoughtful consideration from both development as well as design and UX testing.
We decided to adopt a phased release for the JIF app, creating new features (and improving the existing ones!) as we go along, so watch this space - there is more to come!