株式会社ZOZO の技術ブログ

IBIS2017参加報告

こんにちは、データチームの後藤です。 VASILYデータチームは2017年11月8日〜11日にかけて、東京大学の本郷キャンパスで行われた第20回情報論的学習理論ワークショップ(以下、IBIS2017)に参加しました。本記事では、発表の様子や参加した感想をお伝えしたいと思います。 IBIS2017について IBIS2017 IBISは機械学習に関する国内最大規模の学会です。機械学習や統計学、情報理

Puppeteerを使用したHeadless Chromeの操作

こんにちは、フロントエンド開発部の荒井です。 先日VASILYでは開発合宿が行われました。本記事では私が合宿で使用したHeadless Chrome + Puppeteerを紹介したいと思います。 開発合宿のテーマ決め 合宿での開発内容は個人に委ねられており、普段出来ない開発を自由に行うことが出来ました。各々興味深いテーマを持ち寄っており、非常に面白い開発合宿でした。私も何をテ

Androidアプリにおける角丸の帯グラフの実装

こんにちは、フロントエンドエンジニアの権守です。Androidアプリ開発を始めてから2か月が経ちましたが、まだまだ実装に苦戦することも多いです。本記事では特に苦戦した実装の1つである角丸の帯グラフについて実装方法を3パターン紹介します。 満たすべき仕様 今回の実装では API level 16以上 を対象とし、実装する帯グラフは以下のデザイン要件を満たす必要がありま

Facebook Graph APIを使用したユーザー情報の取得

こんにちは。 季節の中では秋が好き、バックエンドエンジニアのりほやんです。 近年、Facebookログインを使うサービスがとても増えています。 VASILYでもFacebookログインとFacebook Graph APIを使用した機能を実装しました。 本記事では、Facebook Graph APIを用いてユーザー情報を取得する方法と注意点について紹介します。 これからFacebook Graph APIを使用する方の参考になれば幸い

Spring Animationの動きを理解して使いこなす

フロントエンドチームの茨木です。 前回ブログを執筆したときにはiOSアプリを開発していましたが、先月からAndroidアプリを開発しています。 本記事では、Androidで美しいバウンドのアニメーションを手軽に導入できるSpring Animationをご紹介します。 Spring Animationとは Spring AnimationはGoogleが公式にサポートしているアニメーションのライブラリで、名前の通りばねの動きを模

Swift 4のUserDefaultsライブラリ: Default

VASILYのiOSエンジニアにこらすです。 今回のテックブログではiOS・macOS・watchOS・tvOSのUserDefaultsにユーザー設定などを保存するのに便利なラッパーライブラリ Default を作ったので紹介します。 github.com Defaultとは? Defaultは、Codableに準拠するカスタムオブジェクトを保存するための拡張機能を提供するライブラリです。プロトコル DefaultStorable を介して、UserDefaultsに以下で説明

ビルドバリアントによる複数バージョンのAPKのビルド

アプリエンジニアの堀江( @Horie1024 )です。 先日、1つのコードベースからアプリ名やアプリアイコン、アプリの挙動を変更した複数のバージョンのAPKをビルドする必要があり、その際どのように対応したかをご紹介しようと思います。 サンプルコード 本記事内で使用するコードは以下になります。 github.com Androidアプリのビルド Androidビルドシステムは、アプリのリソース

iOSアプリに導入したプロトコル指向なAPI抽象レイヤーの設計

iOSアプリエンジニアの @hiragram です。VASILYにジョインしてだいたい3か月経ちました。 今回は、僕がジョインしたプロジェクトに導入した、APIリクエストの抽象レイヤーの設計について紹介します。また、記事の最後にこの抽象レイヤーのコードをフレームワークとして切り出したもののリンクがありますので、興味がある方は見てみてください。 課題と方針 当プロジェ

RubyKaigi2017参加レポート(全日分)とスライドまとめ

こんにちは、VASILYのバックエンドエンジニアの塩崎です。 9/17〜9/20にかけて広島で開催されたRubyKaigi2017に、VASILYから4人が参加しました。 3日間で約50個の講演があり、参加者も数百人を超えるであろう大変大規模なカンファレンスでした。 たくさんの講演の中で、VASILYのエンジニアが興味を持ったものを、この記事でいくつか紹介いたします。 The many faces of module Ruby Laugua

iOSDC Japan 2017参加レポート

こんにちは。iOSエンジニアの遠藤です。 9/15〜17にかけiOSDC Japan 2017が開催され、VASILYでもiOSチーム全員で参加しました。 また、私はLTとしてShift_JISのURLデコードについて発表させていただきました。 以下、発表資料です。 speakerdeck.com M”e (@re___you) | Twitter スタッフ、スポンサー、スピーカー、参加者の皆さんお疲れ様でした。 とても楽しかったです! 今年はトラック

アニメーションのイージングを自由に作る

iOSエンジニアの庄司です。最近Android開発をはじめて、Android Studioのコード補完力の高さに驚かされています。 iOS11のリリースが間近ですが、今回は最近開発したiOSアプリで実装したアニメーションについてご紹介します。 こんなものを作りました GitHubにサンプルプロジェクトを上げておきました。 https://github.com/WorldDownTown/CurvingProgressBarSample ポイント残高や、工程の進捗

RubyのパパMatzさんに、RubyKaigi2017の見所を聞いてみた

こんにちは、VASILYバックエンドエンジニアの塩崎です。 RubyKaigi2017の開催時期が間近に迫っていますが、皆さんの広島グルメ探訪の予定はいかがでしょうか? 今年のRubyKaigiにはVASILYから4人が参加する予定で、そのうちの3人は初参加です。 発表の要旨はすでに公開されていて以下のページで確認できますが、まだどれを見て回ろうかを決めかねている人もいるかと思いま

CloudFormationとOpsWorksでインフラを育てる

こんにちは。インフラエンジニアの光野です。 弊社ではネットワークの構築と管理に AWS CloudFormation と AWS OpsWorks を導入しました。 本記事では、その効果と導入に際しての工夫について紹介いたします。 目次 Before / After 効果 CloudFormarionとは CloudFormation or Terraform OpsWorksとは SSH/sudo管理 CloudFormationとOpsWorksの役割分担 CloudFormationテンプレートの分離方針 OpsWorksマルチレイヤー

iOSの消耗型課金のサーバーサイドTipsまとめ

こんにちは、バックエンドエンジニアのじょーです。 以前、月額課金型のサーバーサイドでのレシート検証の記事を書きました。( iOSの月額課金レシート検証をサーバーサイドで行うときのTipsまとめ ) 今回は、消耗型課金のサーバーサイド実装について書きます! 注意 この情報は2017年8月25日現在のものです。 目次 消耗型課金全体の処理フロー レシート検証について 課

MIRU2017参加報告

こんにちは、データチームの後藤です。 VASILYデータチームは2017年8月7日〜10日にかけて、広島で行われた第20回画像の認識・理解シンポジウム(以下、MIRU2017)に参加しました。本記事では、発表の様子や参加した感想をお伝えしたいと思います。 MIRU2017 MIRUはMeeting on Image Recognition and Understandingの略で、国内最大規模の画像の認識と理解技術に関する会議です。事前に選定