Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

iOSのSwiftのネイティブで顔認識して3DのオブジェクトでFacial Animationする話

Mercari Advent Calendar 2018の20日目はメルカリのR4D XRチーム@tarotarokunがお送りします。

はじめに

「mercari R4D」は2017年12月に設立した、社会実装を目的とした研究開発組織です。

R4Dは、研究(Research)と4つのD、設計(Design)・開発(Development)・実装(Deployment)・破壊(Disruption)を意味し、スピーディーな研究開発と社会実装を目的としています。

自分はそのなかでも、VR/AR/MRの領域の研究開発を担当していて、Swiftのネイティブ、Unityなどのゲームエンジンを問わず使用し、その研究にあった開発方法を利用してスピーディーにxR領域の実証実験を行っています。またVRに相性のいいIoT分野の実装も少しやったりしています。

続きを読む

Storybook による UI & Unit Testing のススメ

Mercari Advent Calendar 2018 19 日目です。 担当はメルカリ JP フロントエンドチームの @nekobato がお送りします。

メルカリ フロントエンドチームでは主に React を利用してフロントエンド構築を行っており、 その中のWeb Rearchitecture では Storybook による UI Testing に取り組んでいます。

今回はフロントエンドの UI Testing と Unit Testing を Storybook & Storyshots を利用して行っているという話をします。

Storybook とは

Storybook は個別の UI コンポーネントをブラウジングする開発環境を構築するモジュールです。

単独では目視による UI テストを可能にするのみですが、アドオンと組み合わせることで様々なテスト環境を構築することが可能になります。

続きを読む

Kotlin Multiplatformでアプリ作ってみた!

Mercari Advent Calendar 2018 の18日目は Mercari US Android チームの @panini がお送りします。

メルカリではアプリ開発でKotlinというプログラミング言語をよく使っています。 主のユースケースではKotlinはJVM上で使うのは一番有名だと思いますが、公式のKotlinJSとKotlin/NativeプロジェクトでJavaScriptとNative(C言語)の環境でもKotlin使えます!

Kotlin Multiplatform

Kotlin Multiplatformで、一つのコードベースで複数プラットフォーム対応出来るようになります。

Problem

僕はDRYコーディングは大事だと思っています。

プラットフォームごとにアプリ作っちゃうとbusiness logicは完全にrepeatしてるのであんまり効率は良くないですね。さらに、プラットフォームごとにlogicのバグも生み出すこともあるので、メンテは大変になる。 この問題は結構痛いので、ReactNativeやFlutterみたいなフレームワークを利用して1アプリ複数プラットフォーム対応出来るアプリは作りたくなりますが、やはりそうしちゃうとそれぞれのプラットフォームの特集ポイントは使えなくなる、もしくは if(platform == "iOS") みたいなコードは出てきて、全体的にアプリの設計はぐちゃぐちゃになってしまいます。

共通にしたいのはlogicだけなので、logicだけ共通しているAndroid/iOSアプリを作ってみました!

続きを読む

メルカリの Karakuri Challenge について ~ Chrome Extension で会議室の場所をわかりやすくする ~

こんにちは。メルカリ Engineering Manager の @_hitima です。Mercari Advent Calendar 2018 の17日目を担当します。Frontend チームに所属しています。

本記事ではメルカリが取り組んでいる Karakuri Challenge というものと、実際に作った Karakuri について、紹介させてください。

続きを読む

Goにおける静的解析のモジュール化について

Mercari Advent Calendar 2018 の16日目はメルペイ エキスパートチームの@tenntenn お送りします。

この記事では、Goの静的解析の新しいムーブメントであるgolang.org/x/tools/go/analysisを使ったモジュール化について解説したいと思います。

「静的解析は関係ないや」と思って、タイトルを見てブラウザのタブを閉じようと思ったかもしれませんが、ほとんどのGopherには無関係ではないと思いますので、ぐっと我慢してしばらく間お付き合いください。

続きを読む