大事故防止!iOSの自動更新購読型と消耗型の課金を共存させるときのサーバーサイドTipsまとめ

iOS

課金とPush通知攻略に邁進中のじょーです。 今回は、ひとつのアプリに自動更新購読型と消耗型を共存させたときのサーバーサイドで行うレシート検証のTipsを紹介します。 自動更新購読型課金のサーバーサイド実装について 自動更新購読型課金単体で実装する場…

IBIS2017参加報告

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

Puppeteerを使用したHeadless Chromeの操作

Web

こんにちは、フロントエンド開発部の荒井です。 先日VASILYでは開発合宿が行われました。本記事では私が合宿で使用したHeadless Chrome + Puppeteerを紹介したいと思います。

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

本記事ではAndroidアプリにおける角丸の帯グラフについて実装方法を3パターン紹介します。

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

こんにちは。 季節の中では秋が好き、バックエンドエンジニアのりほやんです。 近年、Facebookログインを使うサービスがとても増えています。 VASILYでもFacebookログインとFacebook Graph APIを使用した機能を実装しました。 本記事では、Facebook Graph AP…

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

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

Swift 4のUserDefaultsライブラリ: Default

VASILYのiOSエンジニアにこらすです。 今回のテックブログではiOS・macOS・watchOS・tvOSのUserDefaultsにユーザー設定などを保存するのに便利なラッパーライブラリ Default を作ったので紹介します。 github.com Defaultとは? Defaultは、Codableに準拠す…

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

アプリエンジニアの堀江(@Horie1024)です。 先日、1つのコードベースからアプリ名やアプリアイコン、アプリの挙動を変更した複数のバージョンのAPKをビルドする必要があり、その際どのように対応したかをご紹介しようと思います。

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

iOSアプリエンジニアの@hiragramです。VASILYにジョインしてだいたい3か月経ちました。 今回は、僕がジョインしたプロジェクトに導入した、APIリクエストの抽象レイヤーの設計について紹介します。また、記事の最後にこの抽象レイヤーのコードをフレームワー…

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

今年のRubyKaigi2017にはVASILYから4人が参加しました。この記事ではVASILYエンジニアが興味を持った発表やスライドを紹介しています。

iOSDC Japan 2017参加レポート

こんにちは。iOSエンジニアの遠藤です。 9/15〜17にかけiOSDC Japan 2017が開催され、VASILYでもiOSチーム全員で参加しました。 また、私はLTとしてShift_JISのURLデコードについて発表させていただきました。 以下、発表資料です。 speakerdeck.com M”e (@r…

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

iOSエンジニアの庄司です。最近Android開発をはじめて、Android Studioのコード補完力の高さに驚かされています。 iOS11のリリースが間近ですが、今回は最近開発したiOSアプリで実装したアニメーションについてご紹介します。 こんなものを作りました GitHub…

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

RubyKaigi2017の見所を、VASILYの技術顧問であるMatzさんに質問してみました。RubyKaigiに参加する人にもしない人にも役に立つ情報です。

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

こんにちは。インフラエンジニアの光野です。 弊社ではネットワークの構築と管理にAWS CloudFormationとAWS OpsWorksを導入しました。 本記事では、その効果と導入に際しての工夫について紹介いたします。 目次 Before / After 効果 CloudFormarionとは Clou…

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

こんにちは、バックエンドエンジニアのじょーです。 以前、月額課金型のサーバーサイドでのレシート検証の記事を書きました。(iOSの月額課金レシート検証をサーバーサイドで行うときのTipsまとめ) 今回は、消耗型課金のサーバーサイド実装について書きます!…

MIRU2017参加報告

こんにちは、データチームの後藤です。 VASILYデータチームは2017年8月7日〜10日にかけて、広島で行われた第20回画像の認識・理解シンポジウム(以下、MIRU2017)に参加しました。本記事では、発表の様子や参加した感想をお伝えしたいと思います。

SwiftでLottieを使ってアニメーションを実装する

こんにちはフロントエンジニアの茨木です。一ヶ月ほど前からSwiftでiOSアプリ開発をやっています。iOS開発経験は浅いですが、Lottieというライブラリを使用し、いきなりアニメーションごりごりの画面を担当してみました。 LottieはAirbnb社が開発したライブ…

コーポレートサイトをリニューアルしました

Web

既にお気づきの方も多いと思われますが、VASILYのテックブログは今月から装いを新たにしています。これは先日行った弊社コーポレートサイトのリニューアルに合わせたものです。この記事では、今回行ったコーポレートサイトリニューアルについて実装面から紹…

ファッション×機械学習の論文紹介

こんにちは。データチームの後藤です。 弊社のデータサイエンティストは職務の1つとしてファッション×機械学習の研究・開発に取り組んでいます。このファッション×機械学習の分野は世界中の大学や研究機関で精力的に研究されているため、我々も最新の動向を…

DigdagとEmbulkを利用してBigQueryにRDS(Aurora、MySQL)のマスタデータを同期する

Treasure Data製のOSSであるDigdagとEmbulkと組み合わせることで、効率的にRDS(Aurora、MySQL)のデータをBigQueryに同期するシステムの構築を実現しました。概要図だけでなく、具体的な設定ファイルもほぼ公開しています。

開発効率を上げる!Swaggerの記法まとめ

こんにちは! バックエンドエンジニアのりほやんです。 以前、テックブログでAPIモックと仕様書を作成することができるSwaggerについてご紹介しました。 Swaggerそのものについて知りたい場合やSwaggerを実際に導入したい場合は、こちらの記事がとても参考に…

Embulkを利用したデータ転送基盤の構築

こんにちは。バックエンドエンジニアインターンの田島です。 VASILYでは分析にBigQueryを使用しており、MySQLのデータを毎日BigQueryに同期しています。この同期処理を行うシステムは、約2年前にRubyで書かれたもので、プロダクトの成長に伴うデータ量の増加…

初日から本番にデプロイ!VASILYフロントエンドインターンの紹介

こんにちは、フロントエンドエンジニアの茨木です。 VASILYでは通期でエンジニアインターンを募集しており、厳しい選考を突破した学生をインターン生として受け入れています。中にはインターン後選考に進んで内定を獲得するケースもあります。フロントエンド…

自己回帰型モデルの深層学習

初めまして、データチームの上月です。 今回はVASILYテックブログ初の論文紹介、テーマは 自己回帰型モデル(Autoregressive, AR)です。 はじめに VASILYではIQONの類似画像検索にAutoencoderを適用しています。 具体的にはアイテム画像で学習したAutoencod…

Fashion Tech meetup vol.4を開催しました

2017年6月7日、第4回目となるFashion Tech meetupを開催しました。今回はVASILYが主催となり、バックエンドチーム、フロントエンドチーム、データチームが業務で行っている開発・運用のノウハウを発表しました。 本記事で弊社の登壇資料を公開しますので、ご…

レコメンドに画像の情報を活用する方法

データサイエンティストの中村です。 ファッションアイテムの画像から抽出した特徴量は検索以外にも利用することができます。 今回はレコメンドにおける画像特徴量の活用について、以下の3トピックを考えてみたいと思います。 画像特徴量を利用したコンテン…

HTML5における画像のレスポンシブ対応方法まとめ

Web

こんにちは、Webフロントエンドエンジニアの権守です。 弊社では200以上の提携ECサイトから集めた大量の商品写真を取り扱っています。そのサービスの性質上、画像配信の最適化は非常に重要な課題の1つです。今回は最適化の一環として画像のレスポンシブ対応…

開発効率を上げる!Swaggerで作るWEB APIモック

こんにちは。バックエンドエンジニアのじょーです。 みなさんは、開発初期の段階でWeb API(以下API)の実装が追いつかずクライアント側が開発できないという経験をしたことはありますか? クライアント側はAPIがないと開発が滞ってしまうことがありますが、…

Apache Mesos / Marathon を本番で運用するための5つのTips

こんにちは。 インフラエンジニアの光野です。 先日のブログ記事でご紹介したとおり、弊社のクローラーはDockerコンテナ化されています。このコンテナはApache MesosとMarathonのクラスタ上で動いています。 先日の記事はクローラーシステム全体を取り扱いま…

モダンなSwiftのExtensionについて - Targeted Extensions

VASILYのiOSエンジニアにこらすです。最近、Swift Evolutionに私の2つ目の提案がマージされました。 今回は、Swiftで型にExtensionを作る特殊な方法について説明します。 今回紹介する方法を使ってExtensionを作ると、名前空間が切り分けられ、コードの読み…