PLAY DEVELOPERS BLOG

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

React 17 から React 19 への段階的なバージョンアップと Legacy Context の話

皆様はじめまして。 24卒で新卒入社いたしました、OTTサービス技術部の篠原です。 本稿では、React 17 から React 19 へのバージョンアップに伴い実施した対応について紹介します。 前提 React 19 への移行のポイント 全体の移行方針 この移行方法を採用した…

エンジニアが Figma のデザインを実装するときに見るべきポイント

デザイナーの白川です。 主にプロダクトのUIをデザインしています。 前回はデザイナー向けに「Figma で実装イメージを効果的に伝えるためのデザインのコツ」という記事を書きました。 developers.play.jp 今回の記事ではエンジニアさん向けにFigmaのデザイン…

AWS GameDay イベントレポート

2025年3月27日(木)に 社内のエンジニアの技術力向上を目的として、 AWS 様と合同で開催したイベントについてのレポートです! AWS 様から5名、PLAYオフィスにお越しいただき、セミナールームで実施しました。 AWS GameDayとは AWS GameDay は、チームベー…

ブラウザ上で HTML 要素を画像化してテロップ画像を作る

24卒で新卒入社いたしました。メディアサプライチェーン技術部開発第1グループの山口です。 私は業務の中で、動画に任意のテキストをテロップとして重ねられる機能を実装しました。 その際、テロップ画像をサーバーサイドで生成すると、ブラウザでプレビュ…

Android Studio で標準搭載された Gemini の紹介

こんにちは、Androidアプリの開発を担当しているOTTサービス技術部の山田です。 2024年4月以降、「Gemini (ジェミニ)」がAndroid Studioで標準搭載されているということで、使用感について紹介させていただきます。 Geminiとは? 導入してみる 事前準備 構築…

社内 LT 会「てっくじゃむ」3月7日のイベントレポート

こんにちは、運営です。 2025年3月7日(金)に、PLAY 社内で 「てっくじゃむ」を開催しました。 このイベントは PLAY の技術情報交流を活発化させるため不定期で開催している社内の LT 会です。 ジャムセッション(即興で行われる演奏会)のように、普段はあ…

キーボードにこだわってみませんか

みなさんこんにちは。 OTTサービス技術部 開発第一グループの諸岡です。 今回は少し毛色を変えて、身近な入力機器であるキーボードについて書いていこうと思います。 左右分割キーボードの利点 自作キーボードの利点 快適に作業する為のキーマップカスタマイ…

デザインパターンでコード改善! ストラテジーパターンの紹介と適用事例

こんにちは、PLAY CLOUD本部 プラットフォーム技術部開発第1Gのキムテヒョンです。 入社してから早くも3ヶ月が経ちました。新しい環境で様々な技術に触れながら、多くのことを学んでいます。 特に、良いコードについての考えが深まってきましたが、今回の記…

Apple Intelligence は私たちの生活をどう変えるか

iOS

株式会社PLAYでiOSエンジニアをしております鈴木斗夢と申します。 WWDCのApple Intelligenceに関する発表がかなり刺激的だったのでご紹介いたします。 Apple Intelligenceとは何か Apple Intelligenceは私たちの生活をどう変えるか 画面の内容を認識する 免…

社内 LT 会「てっくじゃむ」1月16日のイベントレポート

こんにちは、運営です。 2025年1月16日(木)に、PLAY 社内で 「てっくじゃむ」を開催しました。 このイベントは PLAY の技術情報交流を活発化させるため不定期で開催している社内の LT 会です。 ジャムセッション(即興で行われる演奏会)のように、普段は…

PM を経験したことでエンジニアとしての働き方はどう変わったか

こんにちは。2024年5月に中途入社しました、OTTサービス技術部第2グループの千葉です。 私は前職でエンジニアとしてのキャリアをスタートし、その後、エンジニアとして開発業務を続けながらプロジェクトマネージャー(PM)も兼務して、自社サービスの開発に…

Docker を使った Redis Cluster 開発環境を構築し Rails などのアプリから接続する方法

こんにちは、OTTサービス技術部 開発第2グループの榊です。 今回は、当社でRuby on RailsでのRedisクライアントのクラスターモード対応を行った際の事例についてお話しします。 私が担当しているプロジェクトでは、これまでAmazon ElastiCache with Redis OS…

動画配信サービスへの入稿に使用される Universal Media Catalog および MovieLabs Digital Distribution Framework の概要

2024年も終わりが近づいてまいりました。 メディアサプライチェーン技術部開発第1グループの松尾です。業務では動画配信サービスへの入稿を支援するプロダクトを開発しています。 みなさんが使っている Netflix や Amazon Prime Video などの動画配信サービ…

MinIO を用いてローカル開発環境に S3 互換ストレージを構築する

24卒で新卒入社いたしました、OTTサービス技術部第2グループの比嘉です。 私が配属されて初めて行なった業務で使って便利だったMinIO*1というツールについてご紹介します。 MinIOはクラウドサービスとして提供されていますが、Dockerなどを用いてローカル環…

App Development with Swift の受験をした話

こんにちは。ULIZAサービス部の松原です。 先日、趣味で「App Development with Swift Certified User」および「Associate」を受験しましたので、その体験談をお話ししようと思います。 App Development with Swift とは 試験概要 教材と勉強法 教材 私の勉…

Figma で実装イメージを効果的に伝えるためのデザインのコツ

デザイナーの白川です。 主にプロダクトのUIをデザインしています。 自分がデザインしたUIの実装をエンジニアさんにお任せする場合、実装イメージをエンジニアさんに伝える必要があります。 デザインパーツひとつを例にとっても、 ・どこで使われているのか(…

UI とロジックを分離することで UI パーツの再利用性と開発効率を改善できた話

こんにちは。プラットフォーム技術部開発第3グループの荒川です。プロダクトの「PLAY VIDEO STORES」の開発をしています。 フロントエンドの開発をしている際、デザインを確認するために特定の操作を行わなければならなかったり、コードを変更したりしなけれ…

Code 兄弟 (CodePipeline/CodeBuild/CodeDeploy) を使ってデプロイを自動化してみた

こんにちは、OTTサービス技術部開発第1Gの大元です。 みなさんはどのようにデプロイを行っていますか? 私の担当している案件ではビルド、ECSタスクのエラーの確認、切り替えなど手動で行っていました。 手動で行うとミスも発生しやすいですし、デプロイに毎…

社内 LT 会「てっくじゃむ」を開催しました!

こんにちは、テックリードの丸山 @maruyamaworks です。 最近、PLAY 社内で LT 会「てっくじゃむ」を開催しました。「てっくじゃむ」という名前は、ジャムセッション(即興で行われる演奏会)のように、普段はあまり関わりがない人たちが、ふらりと立ち寄っ…

Path Hierarchy を活用した Elasticsearch におけるファイルシステム検索の実現

こんにちは、メディアサプライチェーン技術部開発第1グループの渕です。 任意に指定したパスの直下にあるフォルダ・ファイルを取得するファイルシステム検索をElasticsearchで実現するために、Path hierarchyというトークナイザーを使用してみました。 Path…

UI テストツールの XCUITest と Maestro を実際の iOS アプリで比較してみた

こんにちは、iOSアプリの開発を担当しているOTTサービス技術部開発第3Gの鈴木です。 皆様、UIテストは実施しておりますでしょうか。 UIテストを実施する場面としては、リグレッションテストが多いかと思います。 そんなUIテストが自動化されているかというと…

スプレッドシートと Jira を連携し課題リストを作成する

こんにちは、Androidアプリの開発を担当しているソリューション技術部の呉です。 システムやアプリ開発にあたっては、タスクや不具合の管理が非常に重要です。それらを一括管理できるJiraという管理システムがあるおかげで、開発がすごくスムーズに進められ…

AWS DMS を使って Aurora MySQL の無停止エンジン更新を試してみた

こんにちは、SaaSプロダクト開発部の滝波です。弊社プロダクト「PLAY VIDEO STORES」のエンジニアを担当しています。 昨年末、AWSから重要な通知が届きました。 Amazon Aurora MySQL は、2024 年 1 月 15 日にバージョン 3.01 と 3.02 (MySQL 8.0.23 互換) …

初心者必見! AWS の基礎をゲーム感覚で身につけられる AWS Cloud Quest のご紹介

AWS

初めまして 、ソリューション技術部の中西と申します。 エンジニアになり初めてAWSに触れることになった時、どこから勉強をすれば良いか分からない、実際に参考記事通りに操作をしてみようと思っても、注意として「時間単位でお金がかかります!終わったら消…

初心者が知るべき CORS の基本

こんにちは 、ソリューション技術部の木下です。 ベンチプレス100kgは上げられるものの105kgが一向に上げられず、減量中のせいだということにして、やり過ごしている日々です。きっと増量し始めたら上げられると信じています。 さて、CORSはWeb開発を行って…

大規模案件におけるReact Nativeでのスタイリング手法

最近新しい趣味を始めようと、前々から欲しかった車を買いました。 みなさんこんにちは、ソリューション技術部の隈本(クマモト)です。 今回は弊社でも新しい試みであるReact Nativeのお話です。 React Nativeを触ったことあるみなさんは、その中でもスタイリ…

YouTube, X, Instagram で OAuth 2.0 を実装してみた

こんにちは。プラットフォーム技術部第2グループの冷牟田です。 今回は、自社プロダクト開発を進める中でOAuth 2.0というものに触れました。いくつか実際に処理を実装したため、簡単にご紹介させていただきます。 OAuth 2.0について OAuthとは OAuth 1.0とOA…

字幕つきの動画配信を行おう

こんにちは。クラウド推進技術部の牧田です。 今回は、HLS での VOD 配信において字幕のつけ方をご紹介したいと思います。 はじめに 動画に字幕をつけるには 1. 字幕ファイルを用意する。 2. 字幕のメディアプレイリストに字幕ファイルを記述する。 3. マル…

AndroidTV・FireTV でアクティブ率を高めるために対応したい機能のご紹介

こんにちは、Androidアプリの開発を担当しているソリューション技術部の宮本です。 AndroidTV・FireTVのアプリは、スマホに比べると対応している数が少なくどういった機能に対応できるかあまり認知されていないと感じる場面があったので、一部機能を紹介させ…

多言語翻訳サービスの WOVN について調べてみた

こんにちは、SaaSプロダクト開発部第1開発グループの平原です。 最近テイルズオブヴェスペリアをプレイしましたが、なんと開始時に日本語/英語が選べるんです。そんな15年以上前のゲームに思いを馳せつつ、今回は多言語翻訳について話します。 今回は開発の…