大規模リファクタリングで痛感したSwiftのOptionalとの正しい付き合い方

iOSアプリチームの@hiragramです。 最近、ファーストリリース時からあった画面の大規模なリファクタリングを担当しました。 コードは遅かれ早かれ賞味期限が切れて少しずつ腐っていくものですが、その賞味期限を少しでも伸ばすために、普段コードを書く時にS…

OpsWorksにおける複数レイヤ構成の構築Tips

こんにちは。インフラエンジニアの内山(@k4ri474)です。 弊社ではCloudFormationとOpsWorksを活用してインフラ構築をしています。 この両サービスではハマりどころが多く、中でもOpsWorksでインスタンスが複数のレイヤに所属する構成を構築した際にとても…

検索システムだって高可用性にしたい!SolrCloudを用いた高可用性構成の紹介

全文検索用のミドルウェアであるSolrをSolrCloudという構成で運用することにより、SPOFをゼロにし深夜のアラートに怯えずに済むようにする方法を紹介します。

6年半のテックブログ運用を振り返って気づいたメリットと長く続けるコツ

あけましておめでとうございます、CTOの今村(@kyuns)です。 このテックブログを購読してくださっている読者の皆さん、いつもありがとうございます。 VASILYテックブログも記事を投稿し始めてから約6年半が経ちました。 今回はテックブログを長年続けてきた…

コーディネートの自動生成

この服装に合う靴を選んでコーディネートを完成させたいと思います。皆さんはどの靴を選びますか? データサイエンティストの中村です。今回、このようなタスクを解くためのシステムを開発しました。本記事ではシステムと裏側の要素技術について紹介したいと…

本番DBと開発DBが乖離した無法地帯の整備

こんにちは。バックエンドエンジニアインターンの田島です。弊社ではIQONの運用を7年間続けています。長年の運用から技術的負債が溜まってきていました。その中の1つに、IQONの本番DBと開発DBの状態が乖離しているという問題があります。この問題をどのよう…

BigQueryによるデータ分析のための前処理Tips

こんにちは。 使うSQLが200行を超えるのが当たり前になってきたデータチームの後藤です。 本記事では、VASILYデータチームで利用しているBigQueryによるデータの前処理のTipsを紹介します。

S3の からにこもる ぼうぎょりょくが 100あがった

こんにちは。インフラエンジニアの光野です。 AWS re:Invent 2017で次々と新発表があり、ワクワクがとまりません。また最近はACMがDNS検証で証明書を発行できるようになったり、SpotFleetがELB Auto Attachできるようになったり、個人的に嬉しいアップデート…

第1回VASILY開発合宿をおんやど恵で行いました!

こんにちは! 食欲の秋でいつもお腹が空いているバックエンドエンジニアのりほやんです。 VASILYでは11月の13,14日に第1回開発合宿を開催しました! とても楽しい合宿になったため、本記事では開発合宿の様子をレポートします!

大事故防止!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を実際に導入したい場合は、こちらの記事がとても参考に…