LINE Engineering
Blog

  • LINEマンガ:Page Stackを使ってサクサクなページ遷移を実現できました
    sunderls 2017.10.20

    はじめに

    こんにちは、LINEマンガでJavaScriptを使った開発を担当しているsunderlsです。
    LINEの中でマンガを読めるようになったことに、皆さんお気づきでしょうか。
    「···」をタップし、「LINEマンガ」アイコンをタップすると、マンガをサクサク読むことができます。

    LINEマンガ Page Stack

    もっと見る

  • LINE Creators Studioに広がる美しい型の世界(後篇)
    ukitaka 2017.10.03

    LINE Creators Studio担当の@ukitakaです。タイトルのハードルの高さに驚きつつ、前篇に引き続きLINE Creators Studio iOSアプリでのAPI周りの実装の話をします。主に APIKit というライブラリを中心とした話になります。

    Proxyパターンで必要なパラメータを後から設定する

    リクエストヘッダに認可トークンを埋め込んで〜のような処理はよくあると思いますが、みなさんどう設定していますか? APIKitではRequestheaderFieldsというプロパティがあり、これを設定することでHTTPヘッダの設定ができます。

    struct MyRequest: Request {
       var headerFields: [String: String] { ... }
    }
    

    LINE Creators Studio

    もっと見る

  • LINE Creators Studioに広がる美しい型の世界(前篇)
    tarunon 2017.08.04

    こんにちは、tarunonです。 この半年間はLINE Creators StudioのiOS appを担当していました。一番最初のコードベースを作るところから担当でき、そして前回のLINE Engineering Blogでの知見もあったので、「コンパイラが証明できる世界」というものを目標に開発に取り組むことができました。 中でも、特に上手く行って他のプロジェクトにおいても同様に有用であろうものを2つ、紹介致します。前篇はInterface Builderについてtarunonが、 後篇はAPI Clientについて@ukitakaがお話します。

    LINE Creators Studioで使っているInterface Builderの環境と同様(少し進歩しています)のものは、こちらに切り出していて、すぐにPlaygroundで遊べるようになっています。→ Instantiate

    もしかしたらスター点けてくれてる方もいらっしゃるかも? Instantiate自体はLINE BLOGの頃からちょこちょこ書いていて、LINE Creators Studioの開発中も並行して書き進めていました。 コードを見たほうが楽しい方はぜひ上記リポジトリもご参照下さい。 LINE Creators StudioのView/ViewControllerは以下のコードでインスタンス化することが出来ます。これは全てのView/ViewControllerで共通しています。(※Instantiateとは若干の差異があります。)

    LINE Creators Studio

    もっと見る

  • LINE Creators Studio開発に使われるKotlinのご紹介
    Freddie Wang 2017.07.28

    LINE FukuokaでAndroid開発を担当しています。熱心なKotlinユーザーです。

    はじめに

    こんにちは。LINE Fukuokaの開発チームで働いているFreddie Wangです。LINE Creators Studioという、誰でもオリジナルのスタンプを作ることができるようサポートするスタンプ制作ツールのAndroidアプリ開発を担当しています。LINE Creators Studioで作成したスタンプはLINE Storeで販売することができ、LINEを利用しているすべてのユーザーが購入できます。

    今回の記事では、LINE Creators Studioアプリの開発に全面的に採用しているプログラミング言語「Kotlin」についてご紹介します。Kotlinをメイン言語として選んだ理由と主に使っているKotlinの機能を説明します。

    Kotlinの利点と主要機能

    Google I/O 2017において、GoogleはAndroid Studio 3.0からKotlinを公式にサポートすることを発表しました。LINE Creators Studio開発プロジェクトをキックオフしたのは2016年末でしたが、当時は、短期間でこのプロジェクトをMVP(Minimum Viable Product)プロジェクトに成長させないといけない課題を抱えていました。Kotlin 1.0がリリースされてからかなりの時間が経っていましたが、チームの中にはKotlinを使ってみた経験のあるメンバーがいませんでした。そのため、開発に着手する前にまずKotlinについて調べてみました。その結果、以下のような利点からKotlinを採用することにしました。

    Kotlinを選んだ背景

    Javaとの互換性は100%

    Kotlinの最大の魅力は、KotlinコードとJavaコードを一つのプロジェクト内で共存させることができ、既存のJavaライブラリをすべて使用できるということです。このプロジェクトにはJavaレガシーコードはありませんでしたが、Dagger 2、Retrofit、RxJavaといったJava互換ライブラリを使いたいという希望がありました。

    簡潔な構文

    Kotlinは問題解決のために設計された言語です。Kotlinの主な目標の一つは、簡潔なコードをJavaより簡単に書けることです。これは、Androidアプリ開発において欠かせない重要な要素です。

    依存性の減少

    Kotlinは、Guavaのようにサイズの大きいJavaライブラリに取って代わることのできるコンパクトなランタイムライブラリを持っています。大容量のライブラリは、サーバーやデスクトップ環境では大した問題ではありませんが、Androidでは問題を引き起こす可能性があります。Androidアプリを開発する際にはメソッド数が65Kを超えられないという制限があるので、大容量のJavaライブラリの利用は控える必要があります。Kotlinのstdlibライブラリ(バージョン1.1.3-2)はメソッド数が6306個なので、メソッド数による影響はGuavaライブラリより少なくなります。

    旧バージョンのAndroid端末をサポート

    Kotlin 1.0はJava 6を基準にしているので、バージョン2.3以上のAndroid端末をサポートできます。これもまた、Android開発者にとって重要なポイントです。

    Kotlin Android Programming language

    もっと見る

  • LINE BLOGアプリ開発で contenteditable と戦った話
    tarunon 2017.04.27

    こんにちは、LINE Fukuoka の tarunon です。LINE BLOG iOSのリリースまで、クライアントとエディタの開発を担当していました。昨年11月に、LINE BLOG は一般開放と、iOS/Androidクライアントの公開を行いました。ほぼ1年がかりの開発だったのですが、クライアント側で最も大変だったのがエディタの開発でした。この記事では LINE BLOG のエディタの根幹を支えている Workaround について解説します。普段は Swift を書いていて、ほぼその話しかしていないのですが、今回は HTML と JavaScript の話になります。

    LINE BLOG contenteditable JavaScript

    もっと見る