クックパッド開発者ブログ

https://techlife.cookpad.com/

クックパッド開発者ブログ

フィード

記事のアイキャッチ画像
モバイルアプリのログをいい感じに収集するライブラリ「Puree」の Kotlin Multiplatform 版をリリースしました
クックパッド開発者ブログ
はじめに こんにちは。レシピ事業部でアルバイト中の松本 (@matsumo0922) です。クックパッドでは以前からモバイルアプリケーション向けのロギングライブラリである Puree を公開していましたが、今回新しく Kotlin Multiplatform1 を用いた KMP 版をリリースしました。また、このライブラリは既に iOS、 Android 両方のクックパッドアプリで動作しており、クックパッド初の Kotlin Multiplatform 導入事例ということで、難しかった点などをライブラリの紹介と合わせてご紹介します。 Pureeとは サービスのログを収集する際に、Web アプリケ…
19日前
記事のアイキャッチ画像
RubyKaigi 2025 のクックパッドブースで出来ること
クックパッド開発者ブログ
レシピ事業部の石川です。 4 月 16 日(水)から 3 日間、RubyKaigi 2025 が開催されます: https://rubykaigi.org/2025。1 週間後の今日には愛媛に立っている……はず! クックパッドは Platinum スポンサーとして RubyKaigi 2025 に協賛しています。今年はそれに加え、スポンサーブースを出展いたします。 今年のスポンサーブースでは、最近のクックパッドの様子をご理解いただけるコンテンツをご用意しました。2024 年に日本とグローバルにあった 2 つの「クックパッド」サービスを統合したあと、クックパッドでは引き続き、毎日の料理を楽しみに…
1ヶ月前
記事のアイキャッチ画像
NLP2025 に参加しました
クックパッド開発者ブログ
検索・MLチームの山口 (@altescy)です。 先月 3/10〜3/14 にかけて長崎で行われた言語処理学会第31回年次大会に参加し発表・聴講してきたので、今回はその参加報告となります。 その前に 4/23 (水) に検索・MLをテーマにオフラインイベント Tech Kitchen を開催します。 Tech Kitchen #31 クックパッドのレシピ検索のいま 〜多言語対応と機械学習〜 私からは『レシピのための埋め込みモデルの学習とベンチマーク構築』についてお話しする予定です。 ご興味のある方はぜひキッチンへ遊びに来てください 🥳 発表した内容 クックパッドからは以下の発表を行いました。…
1ヶ月前
記事のアイキャッチ画像
東京Ruby会議12のスポンサーブースでサービス統合の展示をします / 料理を食べながらRubyの話ができる非公式関連イベントを開催します
クックパッド開発者ブログ
こんにちは。SRE の小川 (@coord_e) です。 東京Ruby会議12というイベントが 2025-01-18 (土) に開催されます。クックパッドは Ruby スポンサーとして協賛させていただきます。クックパッドから基調講演で鈴木 (id:eagletmt) が登壇します。また、筆者の小川もトークで登壇します。 regional.rubykaigi.org クックパッドのスポンサーブースでは、以下の Techlife 記事で話題に上げた One Experience プロジェクトについて Ruby の視点で説明する展示を行います。 One Experience はレシピサービスのコード…
4ヶ月前
記事のアイキャッチ画像
【開催レポ】Tech Kitchen #29 Mobile App One Experience
クックパッド開発者ブログ
レシピ事業部プロダクト開発グループの @miichan_ocha です。昨年の 12/18 (水) に「Tech Kitchen #29 Mobile App One Experience 〜サービス統合について語っちゃいます モバイルアプリ編〜」を弊社オフィスにて開催しました。 イベントではクックパッドレシピサービスの iOS/Android アプリ開発に携わる3名のモバイルアプリエンジニアから、昨年行った「One Experience」プロジェクトに関するお話をさせていただきました。この記事では、イベント当日の様子を発表資料とともに紹介させていただきます。 なお、「One Experien…
4ヶ月前
記事のアイキャッチ画像
トレンドワード機能を新システムに移行するときに考慮したこと
クックパッド開発者ブログ
こんにちは。レシピ事業部検索チームの薄羽 (@usulity) です。 続々と関連記事が投稿されていますが、日本とグローバルのクックパッドを統合しました。 この統合に際して、日本のクックパッドの様々な機能がグローバル版へ移植されました。今回は、移植された機能の一つである「人気のキーワード」について、移植した際にどんな課題があってどう解決したのかの一部をご紹介できればと思います。 人気のキーワード 人気のキーワードは、「クックパッドで最近よく検索されているキーワード」を集計して、ランキング形式で掲載する機能です。 日本版人気のキーワード このように、人気のキーワードは1時間おきに更新され、その時…
5ヶ月前
記事のアイキャッチ画像
One experience 検索移行の話
クックパッド開発者ブログ
こんにちは、レシピ事業部検索チームのオリギル(@orgil_)です。 先日、この開発者ブログで紹介されたOne experienceプロジェクトによって、クックパッドはプロダクト基盤をグローバル版のシステムに移行しました。私はこのプロジェクトにおいて検索の領域で移行の進行、開発を担当していました。このブログでは検索システムの移行について紹介します。 グローバルのシステムに寄せた理由 One experience によってクックパッドは検索基盤をグローバル側のシステムに移行しました。プロジェクト発足当初、日本とグローバルのどちらのシステムに寄せるかをいろんな観点から検討しました。日本ではSolr…
5ヶ月前
記事のアイキャッチ画像
Gradle Composite Build を用いたビルドロジックの共通化について
クックパッド開発者ブログ
はじめに こんにちは。レシピ事業部で長期インターン中の松本 (@matsumo0922) です。先日このブログでも公開した通り、クックパッドでは日本とグローバルで体験を統一する One Experience というプロジェクトを行っています。 One Experience 以前では Android 開発においても日本とグローバルでコードベースが異なり、それぞれ使用している技術やライブラリが異なる状態でした。特にグローバルのコードベース (以下 global-android と呼びます) では AGP のバージョンも低く、加えて groovy + buildSrc と言った旧世代のビルドロジック…
6ヶ月前
記事のアイキャッチ画像
レシピIDリンク移行の話
クックパッド開発者ブログ
こんにちは、2024年4月から、新卒でレシピ事業部プロダクト開発グループに所属している、張頌です。私が新卒入社して最初に取り組むこととなったのが、このブログで以前ご紹介したOne Experienceプロジェクトです。 このプロジェクトには、データ移行や多言語対応など、私が経験してこなかったタスクがたくさんありました。私が所属しているチームではスクラム開発によってプロジェクトを進めております。初めてこの体制で大きなプロジェクトに参加することは、大変でしたが面白い体験でした。私はこの中で、データ移行のレシピIDリンクの移行を担当いたしました。 私が最初にこのタスクを携わっていた時に、色々な理由で…
6ヶ月前
記事のアイキャッチ画像
iOSアプリにおける複数リリースに跨った機能改善の開発事例紹介
クックパッド開発者ブログ
レシピ事業部のHaurta (@0x746572616e79 )です。グローバルサービスとの統合プロジェクト(One Experienceプロジェクト)に伴いiOSアプリケーションもグローバルと日本で別々のアプリケーションを開発していた体制から一変して、グローバルのアプリケーションベースの開発(グローバル版)へ移行を進めました。 グローバルと日本で異なるアプリケーションを開発してきたため、同じクックパッドでも細かな挙動の違いが見られます。気になる挙動がないかどうかチームで何度もウォークスルーを重ねた結果、レシピエディターやプロフィール設定画面で使われるフォトピッカーの挙動が問題として浮上しまし…
6ヶ月前
記事のアイキャッチ画像
ちょっと複雑なサイドバーをHotwireで簡単に作りたい
クックパッド開発者ブログ
こんにちは、レシピ事業部プロダクト開発グループの渡邉(@taso0096)です。 クックパッドは最近、One Experienceというプロジェクトによって日本版とグローバル版のシステムが統合されました。 どちらのシステムもRailsで実装されているという点は同じですが、統合先となったグローバル版ではHotwireが使われていました*1。そのため、One Experience関連の開発ではHotwireが積極的に活用されています。本記事ではそんなHotwireの多くの機能が使われたデスクトップ版のサイドバーについてご紹介します。 デスクトップ版で表示されるサイドバー ちょっと複雑なサイドバー …
6ヶ月前
記事のアイキャッチ画像
Simple Custom Compose Layout
クックパッド開発者ブログ
こんにちは、「ウィリアム」です。クックパッドのAndroidエンジニアです。 私の日本語はまだ上手ではないので、これから英語で書きます! Self-introduction (自己紹介) Hi, my name is William, I'm an Android Engineer from the Cookpad's recipe team. I was originally in the global recipe team in Bristol, Uk, but I'm rehired to join the recipe team in Japan instead last year …
6ヶ月前
記事のアイキャッチ画像
モバイルアプリの One Experience
クックパッド開発者ブログ
こんにちは。レシピ事業部でAndroidアプリ開発をしているこやまカニ大好きです。 好きなイジンカードは行基と近松門左衛門、最近気になるカードは松尾芭蕉です。 このブログの日本とグローバルのクックパッドを統合しましたという記事で、日本とグローバルのクックパッドサービスの統合が行われたこと、プロジェクトの名称が One Experience であったことについて説明がありました。 もちろん One Experience プロジェクトについては Web だけでなくモバイルアプリについても行われており、現在日本向けにリリースされているクックパッドアプリは、クックパッドがサービスを展開しているすべての…
6ヶ月前
記事のアイキャッチ画像
Flux + Helm における即時ロールバック
クックパッド開発者ブログ
こんにちは。SRE の小川 (@coord_e) です。先日の投稿にあった通り、クックパッドはレシピサービスをグローバル版に統合しました。サービスの統合に伴って、開発や運用のインフラもグローバルチームで利用されているものを使うことになりました。 運用インフラの中でも特に大きな違いとして、日本とグローバル版ではコンテナオーケストレーションの仕組みが異なっています。日本では Amazon Elastic Container Service (ECS) を使ってコンテナを実行していますが、グローバル版では Amazon Elastic Kubernetes Service (EKS) の上でコンテナ…
6ヶ月前
記事のアイキャッチ画像
日本とアメリカの太平洋を超えたパフォーマンス改善の取り組み: CloudWatch RUM を中心としたパフォーマンス測定とデータ活用方法
クックパッド開発者ブログ
はじめに こんにちは。クックパッド SRE の @mozamimy です。先日この開発者ブログで One Experience プロジェクトについての紹介がありました。 このプロジェクトにおいて、わたしは日本版からグローバル版への移行の際の全般的なパフォーマンス周りについて取り組んでいました。 パフォーマンスと一言でいっても、その中にはネットワークやアプリケーションレイヤでのレイテンシ、MySQL などのミドルウェアでのレイテンシなど、様々な要因が関わってきます。それらの改善において、何よりも重要なのはまず観測することです。移行において取り組んだ様々な作業のうち、ここでは CloudWatch…
7ヶ月前
記事のアイキャッチ画像
DMS を利用した継続的なデータ変更検知
クックパッド開発者ブログ
SRE の鈴木 (id:eagletmt) です。先日、この開発者ブログで赤松から One Experience プロジェクトについての紹介がありました。 自分もこの One Experiene プロジェクトに携わっており、このプロジェクトが始まったちょうど1年くらい前にはイギリスにあるオフィスに行き、グローバル版のシステムを開発・運用しているメンバーと直接顔を合わせたりもしていました。自分は One Experience プロジェクトにおいて主にデータ移行について担当していました。データ移行に必要な作業はいくつかありますが、この記事ではその中から日本版のシステムのデータベースで発生したデータ…
7ヶ月前
記事のアイキャッチ画像
日本とグローバルのクックパッドを統合しました
クックパッド開発者ブログ
こんにちは、レシピ事業部プロダクト開発グループの赤松(@ukstudio)です。 昨年の10月頃からレシピ事業部ではひとつの大きなプロジェクトに取り組んでいました。このプロジェクトは社内ではOne experienceと呼ばれています。本記事ではこのOne experienceについてご紹介します。 追記: これまでに投稿された One Experience 関連の記事をまとめました。あわせてご覧ください。 Web ちょっと複雑なサイドバーをHotwireで簡単に作りたい - クックパッド開発者ブログ レシピIDリンク移行の話 - クックパッド開発者ブログ モバイル モバイルアプリの One …
7ヶ月前
記事のアイキャッチ画像
Cookpad Summer Internship 2024に参加しました
クックパッド開発者ブログ
はじめに こんにちは。9月からクックパッドで1ヶ月間サマーインターンシップに参加していた中尾です。 今回はクックパッドで1ヶ月間過ごしてみて、やったことや感じたことをレポートしていきます。 自己紹介 私は現在、立命館大学の学部3年で、情報系を専攻しています。今回のインターンシップでは遠方に住んでいるということもあり、初めの1週間はオフィスに出社し、以降はリモートで勤務していました。宿泊したホテルからオフィスまでが徒歩2分くらいで激アツでした。 インターンシップに参加するまで クックパッドは技術力の高い会社というイメージで、ロゴやデザインが好きだったということもあり(かわいいですよね?)、募集が…
7ヶ月前
記事のアイキャッチ画像
開発環境のデータベースでも本番環境相当のデータを使う
クックパッド開発者ブログ
こんにちは。レシピ事業部バックエンド基盤グループの石川です。 2014 年、このブログに『開発環境のデータをできるだけ本番に近づける』というタイトルの記事が投稿されました。 クックパッドでは、ユーザーさんが実際に体験している状況と近い状況を再現しながら開発することに価値があると考えています。技術的には、最初からレコードがたくさんあることによってパフォーマンス問題に気付きやすくなるなどの長所がありますし、サービス開発としても、実際のユーザーさんの体験を最速でなぞって素早くフィードバックループを回せるようになるという長所があります。 この慣習は 2014 年の記事から 10 年経った今でも続いてい…
7ヶ月前
記事のアイキャッチ画像
iOSDC Japan 2024に社員2名が登壇 & スポンサー企画のご案内
クックパッド開発者ブログ
こんにちは!クックパッドでモバイルアプリ開発エンジニアをしている新堀 (@tk108gabalian) です。 現在クックパッドでは空前のイジンデンブームが到来しております。イジンデンというのはダイソーから発売されているトレーディングカードゲームです。社内では日々イジンデン対応社員達のバトルが繰り広げられています。ダイブトゥ……イジンデン! さて、今年もiOSDCが8/22(木)〜8/24(土)に開催されますね! クックパッドはゴールドスポンサーとして協賛させていただきます。 トーク紹介 今回クックパッドからは2名が登壇いたします! Day 1 8/23(金) 17:40〜 Track B ル…
9ヶ月前
記事のアイキャッチ画像
Cookpad Drinkup at RubyKaigi 2024 を開くために気にしていたこと
クックパッド開発者ブログ
RubyKaigi 2024 が開かれました。クックパッドは協賛しており、懇親会も開きました。この記事では、カンファレンスで懇親会を開くにあたって気をつけていたことや、うまくいったこと、うまくいかなかったことをまとめます。RubyKaigi に関わらず、技術者コミュニティを盛り上げる手段のひとつとしてご覧ください。
1年前
記事のアイキャッチ画像
クックパッドは RubyKaigi 2024 に参加していました!イベントレポート
クックパッド開発者ブログ
はじめに こんにちは。レシピ事業部プロダクト開発グループの堀内 (@Sota_Horiuchi)です。普段はバックエンドの開発を行っている新卒2年目のエンジニアです。 RubyKaigi 2024が 2024 年 5 月 15 日から 17 日に沖縄県那覇市で開催され、クックパッドからは総勢 24 名が参加しました。参加したメンバーのうち 13 名が新卒 3 年目までのエンジニアであり、社内の若手バックエンドエンジニアがほぼ参加していました。 また、クックパッドは Wi-Fi スポンサーとして協賛しており、更に 16 日の夜には Cookpad Drinkup at RubyKaigi 202…
1年前
記事のアイキャッチ画像
NLP2024 に参加しました
クックパッド開発者ブログ
こんにちは! 技術部機械学習グループの山口 (@altescy) です。 先月、神戸にて開催された言語処理学会第30回年次大会 (NLP2024)に同じく機械学習グループの深澤 (@fufufukakaka)と共に参加してきました。 昨年に引き続き今年も過去最多の参加者数となり、言語処理研究の盛り上がりを実感しました。 特に去年の年次大会 (NLP2023) のタイミングで GPT-4 が発表されて以降、自然言語処理の研究は大きな転換期を迎えていると感じます。 大規模言語モデル (LLM) が研究の主流となる中、どんな課題や発見があるのか、期待をもって参加する大会となりました。 この記事では …
1年前
記事のアイキャッチ画像
AWS 内で大規模言語モデルを利用できる Amazon Bedrock を使って作る RAG アプリケーション
クックパッド開発者ブログ
こんにちは。機械学習グループの深澤(@fukkaa1225)です。 先日、Amazon Bedrock が一般利用できるよう(GA)になりました 。本記事ではこちらを用いて RAG(Retrieval-augmented generation) アプリケーションを作成してみた様子と、他 LLM モデルとの比較結果についてご紹介します。 Amazon Bedrock とは aws.amazon.com 公式サイトより文言を引用します。 Amazon Bedrock は、Amazon や主要な AI スタートアップ企業が提供する基盤モデル (FM) を API を通じて利用できるようにする完全マネ…
2年前
記事のアイキャッチ画像
Hatamoto 〜モバイルアプリに関する情報を一元管理するためのWebアプリケーション〜
クックパッド開発者ブログ
こんにちは。元モバイル基盤部(現クックパッドマートプロダクト開発部)の大川(@aomathwift)です。 クックパッドでは、レシピサービスのクックパッドアプリだけでなく、生鮮 EC サービスのクックパッドマートをはじめ、複数の iOS アプリを開発しています。 複数のアプリを開発する上で、機能そのものの開発以外に開発者が気にかけないといけないことがいくつかあります。 例えば、各種証明書の有効期限、ライブラリの選定やバージョンアップなどです。開発者はこれらの関心事に対して、全てのアプリで同じように注意していなければいけません。 クックパッドでは、「Hatamoto」という Web アプリケーシ…
2年前
記事のアイキャッチ画像
開発を快適にするiOSアプリ内ログ確認ツール
クックパッド開発者ブログ
クックパッドでは、iOSアプリ内の行動ログやネットワーク通信ログを見やすく使いやすくする「ログ確認ツール」を活用しています。その使い方や背景、実装時の知見などについて詳しくご紹介します。
2年前
記事のアイキャッチ画像
クックパッドの検索反映時間を 1/288 にしたシステム改修
クックパッド開発者ブログ
レシピを投稿してから検索結果に反映されるまでの時間を、24 時間から 5 分にまで短縮したシステム改修について紹介します。
2年前
記事のアイキャッチ画像
クックパッドのフロントエンド CSS in JS をゼロランタイムに切り替えました
クックパッド開発者ブログ
こんにちは。レシピ事業部のkaorun343です。我々のチームではレシピサービスのフロントエンドを Next.js と GraphQL のシステムに置き換えている話 - クックパッド開発者ブログにて紹介したとおり、レシピサービスを Next.js ベースの新システムへと移行しています。今回は、この新システムのCSS in JSをEmotionからゼロランタイムのvanilla-extractへ変更した話です。 vanilla-extract.style 背景 以前書いた レシピサービスのフロントエンドに CSS in JS を採用した話 - クックパッド開発者ブログでは、CSS in JSライ…
2年前
記事のアイキャッチ画像
iOSアプリに実装されたUI要素のフレームやマージンを手軽に確認できるツールを作る
クックパッド開発者ブログ
こんにちは、クックパッドマートプロダクト開発部の佐藤(@n_atmark)です。 普段はクックパッドマートのモバイルアプリ開発に従事しています。 今回、iOSアプリに実装されたUI要素のフレームやマージンを手軽に確認できるツールを作ってみたのでその紹介を行います。 動作している物を見ていただくのが分かりやすいと思うので、早速ですが動作イメージがこちらになります。 フレームインスペクタの動作の様子 (gif) アプリに実装されたUI要素を長押しすると、スクリーンとの距離やUI要素のサイズ、角丸の半径を表示するようにしています。 また、2本指で二つのUI要素を長押しすると、長押ししたUI要素間のマ…
2年前
記事のアイキャッチ画像
クローズしたサービスの管理画面を静的サイトにする
クックパッド開発者ブログ
こんにちは、技術部の石川です。 ある日、社内の各種アプリケーションを眺めている中で、とあるクローズしたサービスの管理画面を担っていたウェブアプリが今も動いていると気付きました。簡単にヒアリングしたところ、サービス自体はクローズしたものの、保有していたデータが次のチャレンジに生かせるため管理画面だけ残しているとのことでした。 一方で、その管理画面へのアクセスはそう多くありませんでした。毎日ちょっとだけのリクエストを処理するためだけにデータベースとサーバーが動いており、少し無駄がある状態になっていました。 やや気になったので検討した結果、最終的にこの管理画面アプリを Next.js 製の静的なデー…
2年前