UNIGHT Main idea

Unight allows users to plan an eventful evening of their own: discover and choose clubs, pubs and restaurants, attend events, get VIP-venues access and connect with their partymates online. The whole check-in, get bonuses and payment systems are built on QR-generating and scanning algorithms so popular in China.

  • Latest
    events
  • Cool
    Offers
  • Interesting
    News
  • Photos
    & Videos

Can You Feel The Midnight City Vibes?

Have you ever payed a visit to China? If you have, then you know how different is life in there. Even the nightlife in China has a different schedule, pulse and rules. Today, nightclubs rely on either promoters or event agencies to bring funky foreign customers to their venue. Though all the clubs do not get a glance of customer’s data or a chance to appeal to them personally. So when our client, Artur Engalychev, CEO and founder of Unight, has first approached us, he was determined to change the situation.

UNIGHT Wireframing

In the Event App

Taking into account the volumes of the future Unight system, the first step we took was detailed Business Analysis stage, during the which we have accurately studied the Chinese nightlife market and the factual system requirements.

Market research has proved - there are tools (not so popular within the Western digital word) that are commonly used by locals in China - for instance, WeChat messenger and QR-code scanning for everything. This was important for us, as we were trying to make users interact with the system as organically as possible.

While planning the look of the web-version for the place owners we made a huge deal of research, asking them to expose the most acute issues they have - so that we could resolve them. After all the data was collected, we have finally come to wireframing Unight.

Here our main UX-focus was put on adapting Unight to Chinese market. Following this logic, we have also decided to make 2 apps out of 1 product: the second app would be Unight Stuff app. There venue stuff would check-in customers at the entrance, and cashier could make QR-bill payments within the app. The mechanism of QR-code operation is easy, understandable and handy same for customers and place’s stuff.

More to this, at this app owners would get their visitors’ data - to finally engage with them.

UNIGHT The Color of the Night.

In the event applications design is particularly important, as it has to make users feel the atmosphere of the listed venues. At this stage some color solutions had to be added up to our black-and-white interface.

Concept exploration is the key-principle we took, trying on different color schemes, playing with emotions and feels of the app.

After a few design-brainstorming sessions with Arthur we came to a conclusion that white color scheme makes Unight’s look absolutely outstanding. Unight is glittering white - designed in the color of perfection, safety and purity.

The talented design team from HeartBeat.ua has kindly helped us realize the appropriate color scheme. Unight at it's current look won’t be possible without their hard design work.

UNIGHT Development

The Great Wall of Challenges for App Makers in China.

Chinese digital market is a place with it’s own rules, and you have to accept them once you’re willing to play there. The main challenge for Unight’s development was the adoption of all services to Chinese market -as there is a long list of services that do not work properly in China.

So the first challenge we faced were push notification services.

For the iOS we used available Apple’s services - APNS, that proved to be helpful and working in China; with Android though situation was a bit more tricky. With the complete ban of Google-related services in the People’s Republic, we had to search for alternatives, and we chose the wide-spread Baidu notification service. We carried an in-depth research exploring the way they work and the way they could be customized before implementing them on Unight.

The challenge number two was social networks and authorization through them.

Apparently, by “social networks”, one in particular is meant - the most widely-used social network in Middle Kingdom is WeChat, so we need to implement login via WeChat. Our Android developers have integrated WeChat API for authorization feature, following the algorithm it sets - each class needs to carry an appropriate name and has to be stored in the appropriate place.

With iOS platform things went a bit less smoothly - WeChat does not provide web-interface for logging in, even if a user doesn’t have WeChat app installed, and according to App Stores Guidelines users can not be forced to download any kind of third-party resources in your app. So we set WeChat SDK to check if the app has already been installed on user’s device, and if it isn’t - we just hide this login opportunity from user.

The third time Chinese market challenged us with maps integration.

Same as with notification alerts, Apple’s standard maps work perfectly well on Unight iOS. For Android devices, Google Maps are same banned as other services for Google - so the solution we picked was AMAP maps, which we customized later on.

Map’s clusterization was another trouble-making part on Chinese servers. We have played catch with many options: firstly, we tried to clusterize on the client’s part, but this solution would fail when there are thousands of places in one area.

Second clusterization attempt we’ve had was on the server part, this time with a Geohash system that splits the whole area into geohashes - square-point pieces, and allows to maximize the mapping accuracy; although it’s smoothness and readability left much to be desired.

Which is why we took the PostGIS-based solution, extracting it out of PostgreSQL database; it dynamically calculates the distance between two points and unites them into 1 cluster. As Chinese geographic data is quite blurry, solution search was an intriguing activity to conduct.

So many Chinese markets for Android apps also got us triggered - there is a large number of them, so releases would be time-consuming and perplexed with conditions of every store we had to examine and follow.

The special attention was payed to QR-codes scanning, as the huge amount of in-app operations would rely on it.

UNIGHT iOS stack of tech used

Swift

Both apps are written on: Swift’s latest 4.0 version.

VIPER

Pattern - VIPER

We have also added a few custom-written libraries to make a 100% design correspondence:

Swifty

Swifty-player

A simple yet customizable player used to manage the playback and timing of a media asset.

Jarvis

Jarvis

A library aimed to simplify client-to-server communication.

UNIGHT Android stack of tech used

Kotlin

Kotlin - Android program language

RxJava

RxJava - Framework

MVP

Pattern + Repository and Interactor included

UNIGHT In the Deep Forests

If you set servers in China...

The most massive challenge for our team appeared to be the Chinese web and server part - with everything, starting from cloud hosting and up to push-notification services. We’ve struggled, exploring dozens of options, but managed to pick out the handiest solution possible for the following features:

Aliyun

For cloud hosting

GoDaddy

For web hosting

Aliyun Cloud for cloud hosting and GoDaddy for web hosting.

Here the main difficulties were caused due to technical documentation, written in Chinese.

Payment

Another demanding for our developers part was payment services and Unight’s integration with Chinese payment providers.

The most convenient way was to aggregate Alipay and WeChat Pay via the Ping++ agregator.

Alipay

Payment provider

WeChat Pay

Payment provider

Ping++

Agregator

Baidu Cloud

Baidu Cloud Notification service

For Android push-notifications our server includes Baidu Cloud Notification service.

UNIGHT Gems & Libraries

Ruby on Rails

  • Sass-rails
  • Rabl
  • Haml
  • ActAsTaggableOn
  • Figaro
  • Apnotic
  • Logstasher
  • Config
  • Doorkeeper
  • Geocoder
  • Paperclip
  • Faraday
  • Devise
  • Kaminari
  • Ransack
  • Sidekiq

Frontend

  • Momentjs
  • Bootstrap 4
  • jQuery
  • AdminLTE
  • Underscore
  • CLD
  • Turbolinks
  • jQuery UI
  • Selectize