LINE Engineering
Blog

  • 類似文字列検索ライブラリResemblaを公開しました
    Takashi Uemura 2017.12.13

    LINEでClovaの開発をしている上村です。これはLINE Advent Calendar 2017の13日目の記事です。今日は文字列の話をします。

    はじめに

    与えられた文字列によく似たものを大きな文字列集合から探すということは、古典的でありふれていながら奥が深く難しい問題です。文字列の類似度を正確に見積もるには複雑な計算が必要ですが、膨大な量のコーパスが与えられたときも可能な限り高速に応答を返す必要があります。

    検索する文字列の性質をよく把握することも、品質のよい類似文字列検索を行うためには極めて大切です。ここで、今回考える問題の例を見てみます。

    問題

    AdventCalendar Resembla

    もっと見る

  • イメージマップメッセージを使って終電に乗り遅れないボットを作りました
    Sho Tachibana 2017.12.12

    LINEのMessaging API、LINE Login等のプラットフォーム全般の啓蒙活動を担当しています。

    こんにちは。LINEでLINE Messaging APIやLINEログイン等のプラットフォームの啓蒙活動を担当している立花です。この記事はLINE Advent Calendar 2017の12日目の記事です。

    本記事では、LINE Messaging APIに実装されているイメージマップメッセージ(Imagemap message)の概要と、日頃ハッカソンで最も多くご要望をいただく、タップして詳細を表示できる、ピンがたくさん刺さったマップの表示方法について解説します。

    LINE Messaging APIとは

    Messaging APIは、ボットを作るためのAPIです。ボットというと、テキストでしかやり取りしかできず不便という印象をお持ちの方もいらっしゃるかもしれません。しかし、Messaging APIを使うと、画像やファイル、さらにはHTMLアプリやネイティブアプリでいうところのAlertViewのようなものも手軽に実装でき、ユーザーにストレスなく使ってもらえるボットを簡単に作ることができます。

    画像、動画、ファイル

    AdventCalendar Bot Messaging API

    もっと見る

  • 詰将棋LINE Botを作りました
    sugyan 2017.12.11

    DataLabs所属の@sugyanです。この記事はLINE Advent Calendar 2017の11日目の記事です。

    個人的な話ですが、この秋から新たな趣味として将棋を始めました。この趣味に自分の技能を活かして何かしてみたいと思い「詰将棋の問題を自動生成して出題してくれるLINE Bot」を作りましたので、紹介します。

    詰将棋とは

    簡単に紹介しますと、詰将棋とは将棋のルールを用いた一種のパズルで、以下のようなルールになっています。

    1. 攻め方(先手)が玉方(後手)の玉を詰ますのが目的。
    2. 攻め方は必ず王手をかける(玉方は必ず王手をはずす)。
    3. 玉方は盤上と攻め方の持駒以外すべての駒(ただし玉は除く)を合駒として使用できる。
    4. 玉方は最善を尽くし、最も長く手数がかかるように逃げる。
    5. 玉方は無駄な合駒をしない。
    6. その他は指し将棋のルール通り。二歩、打ち歩詰め、行き所のない駒、連続王手の千日手はいけない。

    日本将棋連盟 詰将棋ページより)

    例えば、以下のような形で出題されます。

    AdventCalendar

    もっと見る

  • React Starter KitにみるWebフロントエンドに求められる機能と実装
    Soichi Takamura 2017.12.10

    初めまして、IT戦略3チームでUIUXデザインと社内プロジェクトのTech Leadを担当している高村といいます。この記事では、React Starter Kitという汎用的なWebプロジェクトテンプレートの実装を参考にしながら、改めて、なぜWebフロントエンドは複雑なのか、その解決方法は何かを振り返ってみたいと思います。この記事をきっかけとして、実際に現場でツール選定を行うフロントエンド開発者の方だけでなく、普段「フロントエンドには時間をかけたくない」と思っているサーバサイド開発者やWebディレクターの方たちに、「だからフロントエンドの課題は収束しにくいんだな」「フロントエンドといっても範囲は広いから、目的やユースケースを絞ってツールを選定しよう」と感じていただければ幸いです。

    この記事はLINE Advent Calendar 2017の10日目の記事です。

    AdventCalendar

    もっと見る

  • UIにMetalが使えないかいろいろ試してみた話
    Masaki Haga 2017.12.09

    こんにちは、LINEマンガiOSクライアント担当のMasaki Haga(@hagmas)と申します。この記事はLINE Advent Calendar 2017の9日目の記事です。

    2014年になって初めて発表されたMetalですが、2017年になってさらに効率化、洗練され、VRのサポートも組み込まれたMetal2が発表されたり、Appleのさまざまなフレームワークの基幹部分にMetalが導入されていたりと、Metalへの注目がさらに高まりつつあります。そんなMetalに、みなさんは「Metalを触ってみたいけど、どこから、何から始めたらいいのかわからない」または「Metalに興味はあるんだけど、自分のアプリケーションにはいまいち関係なさそうだ」などと感じたことはないでしょうか。

    私が担当しているLINEマンガのようなWebアプリケーションのiOSクライアントでは、ほとんどの場合、ゲームのような複雑な3D描写も大きなデータを並列計算で処理していくような場面もないかと思われます。しかし、「ユーザーにWOWと言わせるようなアプリ体験ってなんだろう」と考えている時、Metalのパワフルな並列計算と柔軟なAPIを使うことによって、UIKitでは実現できないような複雑で魅力的な描写をShaderで作りだして既存のUIにうまく溶け込ませることができれば、より新鮮なユーザー体験が実現できるかもしれないと思いたち、いろいろ試してみました。

    ShaderでできることですのでOpenGLを使ってももちろん実現できますが、サンプルのプロジェクトなども複数掲載しておきましたので、それらを通してMetalのコーディングのしやすさや楽しさなど知ってもらえれば幸いです。

    Metal GPGPU iOS macOS tvOS AdventCalendar

    もっと見る