LINEでフロントエンド開発を担当しています。プログラミング言語に興味を持っています。
こんにちは!LINEでフロントエンド開発を担当しているJunと申します。この記事はLINE Advent Calendar 2017の4日目の記事です。今日はMessaging APIのNode.js版SDKの開発について書きたいと思います。Node.js版SDKのv1.0がリリースされてもう半年以上、今更感がすごくありますが、開発前から今にかけて面白かったことや工夫したことをいろいろ紹介します。 開発のはじまり Node.js版の開発が始まろうとしていた当時、Messaging API SDKが対応している言語プラットフォームは以下の6つでした。 Java Perl Ruby Go PHP Python 各SDKの開発は担当のチームがあるわけではなく、その言語に興味を持っている社内の人がボランティアで開発していました。そしてNode.jsはどんな感じだったのかというと… (社内WikiのMessaging API FAQから) …という感じでしたね。SDK開発自体はもちろん誰でも参加できる雰囲気ですが、そのプラットフォームの経験があまりないと後のメ
LINE Engineer
こんにちは、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 KYOTOで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 Vi
こんにちは、LINE Fukuoka の tarunon です。LINE BLOG iOSのリリースまで、クライアントとエディタの開発を担当していました。昨年11月に、LINE BLOG は一般開放と、iOS/Androidクライアントの公開を行いました。ほぼ1年がかりの開発だったのですが、クライアント側で最も大変だったのがエディタの開発でした。この記事では LINE BLOG のエディタの根幹を支えている Workaround について解説します。普段は Swift を書いていて、ほぼその話しかしていないのですが、今回は HTML と JavaScript の話になります。 LINE BLOG はこういったサービスです。LINE BLOG - 芸能人・有名人ブログ contenteditable LINE BLOGエディタはWebブラウザの上で動作しています。開発は iOS/Android 共通のソースコードで、 iOS と Android の担当者1人ずつで協力して開発を行いました。 HTML5 ではcontenteditableという標準化された仕様が存在するので、これを利用すれ
Front-end Engineer
こんにちは! UIT(User Interface Technology)エンジニアのTomoakiです。 UITはLINEの様々なプロダクトで利用されるWebフロントエンドの技術を支えるチームです。昨今フロントエンドに求められることやできることはどんどん増えており、UITでも日々様々なブレイクスルーがなされています。 そこで、各プロダクト・各エンジニアによって培われた技術や知見を改めて共有しよう! ということで、東京・福岡・韓国・台湾のUITメンバーが一堂に会し、2日間にわたるWorkshop(Technical Conference)を開催しました。今回はその様子をご紹介します! 新しい新宿オフィスで開幕 UIT室長の福島さんのオープニングトーク。和やかな雰囲気で幕開けです。「これほど大きな規模でWorkshopを開催できる機会は初めて」とのことで、進行役のHyunjeさんの表情からも緊張とワクワクが伝わってきます。 会場は最近移転したばかりの新宿オフィス内にあるオーディトリアム。UIT総勢45人が揃う光景はなかなか見られないので圧巻です…! HTML/CSS/
関数型プログラミングが好きな、LINEのiOSエンジニアです。
この記事は、LINE Advent Calendar 2016の 7日目の記事です こんにちは、開発1センター・開発2室の 稲見 (@inamiy) です。 普段はiOSエンジニアとしてSwiftを書いていますが、最近はもっぱら関数型プログラミング全般に興味があります。 今日は、「SwiftでElmを作る」というテーマで、お話しさせていただきます。 Elmって何? Web向けの静的型付け・関数型プログラミング言語です。詳しくは http://elm-lang.org をご参照ください。 簡単に言うと、「Haskell + React.js + Redux」です。コンパイル時に、JavaScriptに変換されます。 さっそく、簡単なボタンカウンターの例を見てみましょう。 import Html exposing (beginnerProgram, div, button, text) import Html.Events exposing (onClick) -- `main`関数 = プログラムの始まり。 -- 初期状態(model)に`0`をセット + 以下にあるview関数、
LINE Notifyの開発を担当しています。
はじめに LINE Notifyの開発をしている渡辺です。開発者向けにLINE Notifyを使ってコマンドラインからメッセージを送るという方法を紹介いたします。 これまでシステム的にLINEにメッセージを送るためにはBot API TrialまたはBusiness Connectを使用する必要がありました。これらの機能はMessaging APIとしてより洗練されましたが、Messaging APIは高機能な一方で、API呼び出しのためには多少高度な実装が必要になります。 LINE Notifyではメッセージ送信に機能を絞り、極めて短いステップでLINEにメッセージを送れるAPIを用意しています。 curl を使ってメッセージを送ってみる LINE Notifyで発行できる「パーソナルアクセストークン」を使い、APIのエンドポイントにHTTP POSTリクエストを送るだけでメッセージを送ることができます。HTTPリクエストができればどんな方法でも使うことができますが、ここではコマンドラインで使えるHTTPクライアントであるcurlを使ってみることにします。 パーソナルアクセストークン
LINEでLIVEサービスを開発しています。
LINE株式会社のmoznionです。 私の所属するチームではLIVEという動画配信サービスを開発しています。芸能人や有名人の生配信やコンサートの様子の中継など様々な映像コンテンツが日々配信されているホットなサービスとなっておりiOS/Androidアプリと共にPCブラウザをサポートしています。本記事ではこのLIVEにおける連打を支える技術についてご紹介します。 背景 iOS/AndroidのLIVEアプリには、動画プレイヤー上に配置されている「ハート」を押すことで配信者を応援するというシステムがあります(図中1)。視聴者はこの「ハート」を連打することが可能であり、それに呼応してプレイヤー画面に表示されるカウント、すなわち「すべての視聴者が押した『ハート』の数」が増えていくというインタラクションを得ることができます(図中2)。この数字が増えることで配信者はファンの応援を感じることができますし、視聴者は数字がどんどん増えていくさまを目のあたりにすることで配信に対する一体感や熱狂を感じることができるかもしれません。 ところで、開発者の間ではこの「ハート」機能全般のことを指して&ldqu
LINEでB612 Android開発を担当しています。
こんにちは。LINE+でB612 Android開発を担当しているHTです。今回のブログでご紹介するB612は、小説『星の王子さま』に登場する王子さまが住んでいた星の名前にちなんで名付けられた自撮り専用アプリです。セルフィーアプリでは初めて撮影前フィルターと3~6秒の分割動画撮影に対応しています。今回のブログでは、B612アプリ開発においてMediaCodecを活用してコラージュ形式のビデオを作成し、最終的にMP4ファイルに仕上げるまでの過程についてお話したいと思います。 動画サイズの決定 B612アプリでは動画撮影が可能ですが、リアルタイムで動画をエンコードする作業は大量のデータ処理が必要になり、実装がとても大変です。スクリーンに描画するデータをGPUメモリからシステムメモリに引っ張り、これをまたハードウェアのエンコーダに渡して処理するか、CPUで各ピクセルに対し個別演算を実行して動画データを作成しなければなりません。 また、大量のデータをリアルタイムで絶え間なく処理しなければならないため、データのサイズは極力小さければ小さいほど有利です。少量のデータで動画情報を作成するには、まず
LINE iOS開発を担当しています。
こんにちは。LINE iOS開発を担当しているRoyです。Apple Watchの公開に足並みを揃え、Apple Watchの機能についての簡単なレビューとApple Watch向けのアプリ開発、そしてLINEでのApple Watch対応について紹介したいと思います。 (注:現在はLINEのApple Watch向けアプリは非公開です) Apple Watch Apple Watchは、2014年9月9日の発表会ではじめて公開されました。この日、iPhone6、iPhone6+、Apple Payが次々と紹介され、終盤のOne More Thingで38mmと42mmサイズのWatch、Watch Sport、Watch Editionの3種が発表されました。 Apple Watchではユーザーの動きの測定はもちろん、iPhoneで受信した通知も確認できます。また、Apple以外の3rd party企業のためのSDKも公開されました。 Apple Watchには、タッチスクリーンとデジタルクラウン、サイドボタンがあります。右サイドのデジタルクラウンでは画面をスクロールしたり、ズーム