Why we use Kotlin in LINE Creators Studio

Before we begin

Hi everyone, I am Freddie Wang from LINE Fukuoka’s development team. I’m currently in charge of developing a new Android app called LINE Creators Studio. LINE Creators Studio is a sticker creation tool that lets anyone create his or her own stickers and sell them on LINE Store.

In this blog, I’d like to talk about Kotlin, the programming language which the LINE Creators Studio app is built on. I will explain why we chose Kotlin as our main language and introduce some of the Kotlin features we are using.

Note: LINE Creators Studio is currently available in Japan only. It will be released to other regions soon.

Advantages and key features of Kotlin

Why Kotlin?

At Google I/O 2017, Google announced that Kotlin is now officially supported in Android Studio 3.0. When we kicked off the development project for LINE Creators Studio at the end of 2016, we were tasked with the challenge of growing it into an MVP (Minimum Viable Product) project in a very short time. Although Kotlin 1.0 had been released quite some time ago, no one in our team had the experience of using Kotlin. We spent some time to conduct a survey on Kotlin before starting the development and eventually decided to use Kotlin because of the benefits it provides as described below.

100% interoperable with Java

The most appealing aspect of Kotlin is that you can mix Kotlin code and Java code in the same project and continue to use all existing Java libraries. Although we don’t have any legacy Java code in our project, we wanted to use some awesome libraries such as Dagger 2, Retrofit, and RxJava.

Concise syntax

Kotlin is designed for solving problems. One of its main goals is to write clean code more easily than Java. This is the first and foremost essential factor for us when developing Android applications.

Reduced dependencies

Kotlin has a compact runtime library which can replace some large Java libraries such as Guava. Using large libraries may not be a problem in server or desktop environments but it can be problematic in Android. Because the Android environment puts 65K methods limit on Android apps, we should avoid using large Java libraries. Kotlin’s stdlib library (version 1.1.3-2) has only 6306 methods, which means it has less impact than the Guava libraries in terms of the number of methods.

Compatible with old Android devices

Kotlin 1.0 is based on Java 6, which means it can support Android devices whose version is 2.3 or higher. This is another very important factor for Android developers.

BigDB – an ad data pipeline for LINE

Before we begin

Hello, we are Jongkyu Lim and Joonghoon Shin responsible for processing of ads data and development of ads platform in LINE. In this blog post, I’d like to talk about BigDB: a big data processing pipeline for LINE ads. I’ll go into detail about how BigDB came to be, what BigDB is, how it’s structured, what it does, and what use cases it has.

How BigDB came to be

As we gather data from various services that are growing in size, the size of the data grows larger as well, making it difficult to properly use them for analysis. Up until now, we’ve used several open solutions that support big data to tackle this problem. While using several of these open solutions that have different strengths and weaknesses, we felt the need for a more simple and standardized way to collect, process, and look up data. And that is where the idea for BigDB began. Below are some of the key features we had in mind for BigDB.

Introducing BigDB

What is BigDB

BigDB is a big data processing pipeline for LINE ads. It can collect, reprocess, and look up data. LINE ads are analyzed in two ways: The first is in real-time whenever an ad is shown to a user. The second is batch analysis, where events are collected and analyzed after a set time, such as hourly or daily. BigDB fluidly provides the data used for analysis. Sometimes combining time series and static data if necessary.

Geo-linked applications with beacon

Hello, my name is Charlotte Yu and I am currently in charge of the business development and planning of the LINE Beacon platform in Taiwan.

One of the projects I’m working on involves using LINE Beacon as a feasible location contextual technology which can play an important role in LINE’s “Smart Portal” concept to bring people, information and services closer together and march toward our mission of “CLOSING THE DISTANCE”.

Currently, at this early stage, we are focusing on creating successful beacon deployments and use cases to raise user awareness and usage rates.

Our strategy behind the LINE Beacon platform is to take advantage of LINE’s extensive user base and other LINE services and features popular in Taiwan. We believe that location-awareness will be a driving force in the advancement of mobile technology, and that’s why we are building a beacon network by deploying LINE Beacon to as many places as possible. This is in line with two key factors of the online-to-offline (O2O) ecosystem: geo-linked applications using location-aware technology and platforms with a high user base.

O2O messaging is used to connect the online digital platform to offline merchants. In terms of commerce, the aim of O2O is to drive customers from the online marketplace and platforms (where they spend most of their time) to offline brick-and-mortar stores. This can happen through digital coupons, membership cards, and proximity marketing. That’s why we designed various beacon applications to build online-to-offline networks where the virtual world expands to the real world.

O2O and beacons link everyday products and features such as LINE Coupon, LINE Points, and LINE Shop Card to drive sales. We can push GeoADs (geo-linked advertisements) to promote stores, clients, and events with LINE business accounts (such as official accounts or LINE@ accounts) to nearby LINE users. By encouraging LINE users to walk into stores using LBS (location-based service) incentives such as coupons and stickers, we can enhance the user experience and help LINE@ owners, who have an LBS add-on such as indoor navigation or a shopping guide, achieve higher user retention rates.

Why You Should Be Building Bots for SNS Services

Hi, I’m Jose Luis from LINE Development Center 1, a lead technical consultant and a product manager at LINE.

On May 18th, I participated in one of the Engage sessions at The Next Web conference in Amsterdam as an invited speaker. I’d like to share about the Engage session and briefly cover the event itself, but first, I would like to express my gratitude to The Next Web for the invitation.

Opening

The opening event was fantastic. It was filled with music and visual effects, which most IT events do not have much acquaintance with. Can you feel the excitement from the pictures?

Exhibition

The exhibition was mostly filled with startups with great ideas. Sponsoring companies were looking for investment opportunities. It was great to see such venue set up to help startups. I personally hope to see LINE get more involved in helping out startup companies in near future.

WWDC17 Recap

Introduction

Hello, we are Taejeong Lee and Hyuk Heo, both iOS app developers at LINE. We had an opportunity to attend WWDC17 held at the San Jose Convention Center, from June 5th to June 9th. WWDC is an event for developers held by Apple every June in California. The event starts with the CEO’s keynote speech and is followed by 100 sessions and 200 labs in the course of 5 days, in which attendees can experience Apple’s latest software and technology. WWDC has been held in San Francisco in recent years, but this year, it was held in San Jose, which is regarded as the heart of Silicon Valley and is close to Apple Infinite Loop and Apple Park of Cupertino. This year, 5,300 developers from 75 countries attended the event. Well-serving its reputation as the icon of renovation, Apple did not fail to surprise the world with new ideas and technologies, and we are happy to share them with you.

Elastic{ON} 2017 Recap

I am a software engineer at LINE and am in charge of developing a monitoring system. I am quite talented at catching cute stuff around me. Thanks to LINE, I was able to attend Elastic{ON} 2017. LINE encourages and supports LINE developers to attend conferences. On this post, I’d like to share my visit to Elastic{ON} 2017 along with some pictures and brief summaries of each session I attended.

Introducing Elastic{ON} 2017

On Site

Elastic{ON} 2017 was held at Pier 48 in San Francisco, U.S.A from March 7th to 9th, 2017. As you can probably tell by the venue name, the conference was held in a warehouse-like building located near the AT&T Park. More than two thousand attendees came from all over the world. The conference was huge.

Elastic Stack products, especially Elasticsearch and Kibana, are widely used at LINE in various ways. I myself am using Elastic Stack in the monitoring system I am in charge of, to save, analyze and visualize events. Our monitoring system had no analyzing feature or visualizing feature until we used Elastic Stack to add these two features. Implementing the new features was simpler than I expected, thanks to Elastic Stack. However, I did encounter some issues while the system was up and running and solving the problems was quite difficult. Now, we are about to upgrade Elastic Stack to version 5.x. I was in a need to learn from other users’ experiences and to learn new features and the optimal ways to implement the new features. This is why I attended the conference.

Let me start by showing you some pictures of the conference.

The first thing I did at the conference was getting an attendee card. The conference site was bigger than I expected. The site consisted of session halls, AMA (Ask Me Anything) section, promotional booths, and Elastic booths where I was able to get my hands on the Elastic Stack products.

Google I/O 2017 Recap

Introduction

Hello, my name is Seungwon Lee, I work at LINE as an Android developer. This post is about our visit to Google I/O 2017 held in Mountain View, USA from May 17th to 19th. Google I/O, started in 2008, is an annual developer-oriented conference. Along with Apple’s WWDC, Google I/O is by far one of the largest events for software developers worldwide. The “I“and “O“in the conference name stand for “Input and Output” and also for “Innovation in the Open”. This conference is renowned for Google announcing its future visions. For me, the conference was a chance to learn the changes in the new Android OS that would immediately affect LINE, and to glance at Google’s latest achievements and future plans for web technologies, cloud services and VR (Virtual Reality).

Improving LINE Timeline performance on iOS through implementation of a view model

Introductions

Hello, my name is Keonhong Lee and I’m in charge of development for Timeline on iOS. In this blog post, I’d like to talk about how we improved performance of the Timeline on iOS, after it had become heavy, slow, and difficult to manage from the many added features and history over time.

Background

First, some background on why we started on this path.

The LINE Timeline is a place where you and your friends can share all of your social activities. Theoretically, a post uploaded to the Timeline can be seen in dozens of different ways. One single post may need to processed in different ways depending on the screen it’s being displayed on, or the situation it’s being read in.

Using BitBar to monitor Prometheus alerts

Taking advantage of the menu bar on macOS

I’m Paul Traylor from LINE Fukuoka’s development team. Since starting at LINE, my primary responsibility has been working with Prometheus and Grafana to update our internal server monitoring system into something that is easier to use. The end goal is to make it possible for developers to easily set their own alerts. Since I’m in charge of monitoring the monitoring system, I often have to look at many different charts and check servers from several different environments. As it gets quite difficult to keep an eye on everything, I like to find small tools that make that easier. One of my favorites to work with is a tool called BitBar, which allows me to build simple status plugins to observe anything that I can think of.