アプリなら、コメントが見やすい!
トップへ戻る
なごみ系Wikipedia
techlife.cookpad.com
こんにちは、クックパッドで最近はモバイルアプリを離れもっぱらウェブアプリを作っている @morishin です。 先日、社内で「モダンウェブフロントエンド勉強会」と題して React, Next.js, Core Web Vitals, SSR, CSR, SSG, ISR, SSR Streaming, React Server Component といったキーワードに触れつつ、昨今のウェブ開発事情について話をしました。せっかくなのでその内容の共有と、勉強会を開催した動機などを紹介したいと思います。 背景・動機 クックパッドのウェブアプリケーションは10年以上もの間 Ruby on Rails で開発されてきましたが、2020年から一部のページは Next.js のアプリケーションがホストするようになりました。具体的な構成については次の記事をご覧ください。 techlife.cookpa
こんにちは、モバイル基盤部のヴァンサン(@vincentisambart)です。 Swift Package ManagerはAppleがXcodeで公式にサポートしている唯一のパッケージマネージャーです。Xcode公式サポートの他に、Swift Package Manager形式でのみ提供されているswift-algorithms、swift-atomics、将来的に期待されているswift-async-algorithmsといった準標準ライブラリを利用できるようになるという大きなメリットがあります。 クックパッドiOSアプリ(以下クックパッドアプリ)で一部の依存パッケージをXcodeのSwift Package Manager対応を使って入れるようにしました。この導入で得たいくつかの知見をまとめました。 XcodeのSwift Package Manager対応 本来のSwift Pa
こんにちは、クックパッド事業本部 買物サービス開発部の佐藤(@n_atmark)です。 普段はクックパッドiOS/Androidアプリ向けの買い物機能の開発に従事しています。 SwiftUI を活用した「レシピ」×「買い物」の新機能開発 既存実装を活用しつつJetpack Composeを用いてクックパッドAndroidアプリの買い物機能を高速に開発している話 さて、タイトルにある通り、今回は Android App Links の話を書こうと思います。 付録: ディープリンク用語まとめ この記事ではDeepLinkに関連する用語がいくつか登場するため、説明のためにできるだけわかりやすく図示してみました。 DeepLink関連用語の図示 Android App Links とは Android App Linksの動作イメージ アプリとウェブサイトURLの両方の所有権を証明することによって
買物プロダクト開発部部長の勝間(@ryo_katsuma) です。3/24に「Cookpad Tech Kitchen #26 数千万レコードをリアルタイムに捌く生鮮EC事業開発」をWeWork 渋谷スクランブルスクエアで開催しました。 イベントにはクックパッドの新規事業「クックパッドマート」を開発するエンジニア、デザイナーが参加し、クックパッドマートの最新の開発状況や組織についていろいろお話させていただきました。今回は当日の様子を発表資料も交えて紹介させていただきます。 クックパッドマートの概要とチャレンジ by 勝間 まず、1番めのトークとして私、勝間からクックパッドマートの事業紹介、および2022年3月現在の事業や組織規模、開発体制などについてお話させていただきました。 外から見るとある意味ほぼ完成されている(?)とも見えかねないサービスですが、実際は既存機能の価値向上や新たな価値づ
クックパッドマート流通基盤アプリケーション開発グループでバックエンドエンジニアをしている奥薗 ( @mokuzon )です。今日まで 4 日間連載でクックパッドマートの流通についてご紹介してきました。最後のこのエントリーではマート内で 1,2 を争う難解かつ重要な処理と言われている「採番」についてご紹介します。 先に クックパッド生鮮 EC お届けの裏側 2022 年版 を読むとよりイメージがつきやすいです。 採番とは マートでは 商品はハブという大規模拠点に出荷され ハブ便でハブからハブへ移動し ステーション便でハブからステーションと呼ばれる拠点に移動して ユーザーはステーションに商品を受け取りに行く というのが基本の流通になっています。 マート流通の概略図 採番とは、この商品がどのようなスケジュールで出荷されどういった経路でユーザーまで運ばれるかを計画する処理です。多くは注文時にオンラ
こんにちは、クックパッドマート流通基盤アプリケーション開発グループのオサ(@s_osa_)です。 生鮮食品の EC サービスであるクックパッドマートでは、「1品から送料無料」をはじめとするサービスの特徴を実現するために、商品の流通網を自分たちでつくっています。 このエントリでは、商品をユーザーに届けるための配送ルートを自動生成している仕組みについて紹介します。 解決したい問題 配送ルートとは クックパッドマートにはいくつかの流通方法がありますが、ここでは「ステーション便」と呼ばれるものについて解説します。他の流通方法などを含む全体像が気になる方は以下のエントリがオススメです。 クックパッド生鮮 EC お届けの裏側 2022 年版 - クックパッド開発者ブログ ステーション便では、ハブと呼ばれる流通拠点からユーザーが商品を受け取りに行く場所であるステーションへと商品を運びます。東京都、神奈川
クックパッドマートの開発に携わっていますバックエンドエンジニアの中村です。 クックパッドマートは生鮮食品のECサービスで、流通の仕組みを自分たちで作っています。当然ですが商品を流通させるには、物理世界でものを動かす必要があります。実際にものを運ぶのはドライバーと呼ばれる人が行っており、このドライバーに向けていつ・何を・どこに運ぶといった指示をする必要があります。このエントリではそんなドライバーへの指示のために開発しているWebアプリケーションを紹介します。 各便のアプリケーション クックパッドマートの流通の中には販売者が出荷してからユーザーの手元に届くまでに、タイムライン別に複数の流通方法が存在しています。タイムライン順に 「出荷サポート便」,「ハブ便」,「ステーション便」 といった流通方法が存在しておりそれぞれの便で個別にWebアプリケーションを用意しています。各流通方法を含む流通全体に
クックパッドマート流通基盤アプリケーション開発グループでバックエンドエンジニアをしている奥薗 ( @mokuzon ) です。クックパッドマートは生鮮食品の EC サービスで、商品を届ける流通を内製しています。そんなクックパッドマート流通にエンジニアがどう貢献しているかを今日から 4 日連続でご紹介していきます。 今回はクックパッドマートの裏側の流通がどんな要素で構成されているかを一気にご紹介します。このエントリを読んでおくと今後クックパッドマートの関連エントリを読むときにより具体的にイメージしやすくもなると思います。 項目が多いので全体を俯瞰しやすいよう目次を貼っておきます。 クックパッドマートについて クックパッドマートの流通 資材 コンテナ シッパー ラベル ドライバー 拠点 ステーション ハブ ローカルスポット ルート ステーション便 ハブ便 出荷サポート便 タイムライン アプリケ
研究開発部の原島です。去年からはレシピサービス開発部も兼務しています。そちらの話(検索の話)はおいおいするとして、今日は研究開発部の話(機械学習の話)をします。 fastText 単語の分散表現、重要ですよね。ニューラル全盛期の現代において、使わないという選択肢はほとんどないように思います。 最初に話題になったのは、2013 年に発表された word2vec でしょう。「king」のベクトルから「man」のベクトルを引き、「woman」のベクトルを足したら「queen」のベクトルになったという話は有名です。一方、最近は、2018 年に発表された BERT(及び、それに類するモデル)の話題で持ちきりですね。 fastText は、ご存知の方も多いと思いますが、分散表現を学習するためのライブラリです。学習のアルゴリズム自体を指すこともあるように思います。fastText の論文は以下です。20
こんにちは。 レシピサービス開発部でエンジニアを担当しているnaraです。 クックパッドには2022年1月に転職し、早くも3ヶ月が過ぎました。 まだまだ分からないことが多いですが、日々楽しく開発に携わっています。 今回は転職間もない自分が、クックパッドで"実際に働いてみて感じたこと"を紹介したいと思います。 本エントリーが、クックパッドに興味を持っている方の参考になれば幸いです! 働き方が柔軟 突然ですが、私は現在イギリスの大学でComputer Scienceを専攻しています。 日中は仕事を行い、仕事が終われば学業に専念するといったハードな生活を送っており これらを両立させるには、時間を上手くコントロールする必要があります。 特に、試験期間中は学業に専念したくなるのですが、クックパッドではフルフレックスで働けるので、 業務時間を柔軟に調整できています。 実際、前期の試験期間中は"稼働を減
メディアプロダクト開発部の長田(@osadake212)です。 私の主な仕事は、ライブ配信サービスの cookpadLive などを運営しているクックパッドグループの CookpadTV 株式会社のサービス開発をすることです。CookpadTV ではサービス開発部の部長としてエンジニア組織の運営を通してサービス開発に関わっています。 本記事では、CookpadTV で取り組んでいることと、そこでのエンジニアチームの動き方や、エンジニアマネージャーの役割についてざっくりお話しします。 CookpadTV? CookpadTV はクックパッドグループで動画関連サービスを提供している会社で、2018年4月に設立されました。もともとはクックパッドの事業部の一つだったのですが、素早く意思決定し多くのチャレンジをするために分社化しました。 CookpadTV は料理が持つ人を幸せにする力を信じていて、
こんにちは、ボイスサービス部の ymd (@y_am_a_da) です。今年は新卒採用エンジニアリーダーもやっています。 今年もクックパッドはサマーインターンシップを開催します!本記事ではエンジニアコースについてご紹介いたします。 以下のサイトからご応募頂けます。 internship.cookpad.jp 今年は、 15-day Tech Course と 3-day Tech Course の 2 種類をご用意しております。 15-day Tech Course こちらのコースでは、前半の5日間でクックパッドが日々のプロダクトづくりに活用しているサービス開発の手法論や、Rubyによるサーバーサイド開発とSwiftによるモバイルアプリケーションの開発についての講義を実施します。 そして後半の10日間では、 OJT として前半の講義で得た知識を用いてメンターと共に実際に現場で業務を行って頂
こんにちは.研究開発部の鈴本 (@_meltingrabbit) です. クックパッドの研究開発部 では,「毎日の料理を楽しみにする」というミッションを実現するために,様々な野心的なチャレンジをしています.一方で,我々研究開発部のメンバーには,自分のもてる技術を用いて,部署内外の課題を発見し,解決するという使命もあるのです. 今回はクックパッドの生鮮 EC プラットフォームサービスであるクックパッドマートで食品流通のために展開している冷蔵庫の温度管理についてご紹介します.クックパッドマートで使用されてる冷蔵庫は,サービスの安定稼働のため,次のように工学的知見と実際の観測データに基づき運用されています. マートステーションに設置されている冷蔵庫の課題 クックパッドマートでは,ユーザーの皆さまが食品を受け取る場所をマートステーションと呼んでおり,そこには下図のような冷蔵庫が設置されています.
6社合同SRE勉強会について クックパッド技術部 SRE チームの @eagletmt と @mozamimy が、以下の Connpass で告知・募集されている「6社合同SRE勉強会」に登壇します。 https://line.connpass.com/event/236497/ 6社合同SRE勉強会は、IT 企業 6 社 (LINE/メルカリ/クックパッド/ディー・エヌ・エー/サイバーエージェント/リクルート) が合同で開催する、Site Reliability Engineering (SRE) 領域の勉強会です。各社が特徴的な事例を共有し、各セッションのAsk the Speakerでは違う会社の登壇者がモデレーター兼聞き手を務めて、知見共有&深堀りを行なっていきます。 多様なバックグラウンドを持つ各社の SRE が取り組んでいる課題について、技術的な面から組織的な面までを絡めた、
こんにちは、クックパッドでエンジニアをやっている @morishin です。入社してわりと長い間 iOS アプリやそのバックエンドの開発を中心にやってきましたが、最近は専らウェブフロントエンドとその基盤をいい感じにするというのをやっています。先日クックパッドウェブサイトのレシピページの OGP 画像を素敵に刷新したのでそのお話をしたいと思います。 ※ ここで OGP 画像と呼んでいるのは Open Graph Protocol で定義されている og:image プロパティに指定する画像のことです。 ※ OGP 画像と呼んでいますが厳密には今回変更したのは Twitter Card (twitter:image) 用の画像のみなので、その他の SNS に表示される画像 (og:image) は変わっていません。 できたもの これまではレシピ作者さんがアップロードされた料理写真を単にクロップ
メディアプロダクト開発部の後藤(id:mtgto)です。 世間ではバレンタインですね。最近私はハンドメイドスイーツオークションというWebサービスの立ち上げをやっていました。ライブ配信でバレンタインのスイーツを作っていただき、ライバーのファンがスイーツをオークション形式で実際に購入できるというサービスです。 私のチームでは仮想DOMを扱うのにVue 2を使うことが多いのですが、今回は期日がずらせないイベントだったことや必要なライブラリがReact版しか提供されていなかったこともあり私がVueより使い慣れているReactで作りました。 本記事ではAWS CodeBuildでのRailsアプリのDocker buildを早くするための工夫を紹介します。 docker buildを早くしたい理由 クックパッドでは多くのアプリケーションを運用していますが、その多くはAWS ECS上で動いています(
はじめに こんにちは。クックパッドレシピサービス開発部の宮崎(HN:どや)です。 私は2021年新卒としてクックパッドに入社し、そろそろ1年が経とうとしています。時の流れははやいですね。 さて、表題にも記しましたが、去年の末に新しくサーバーサイドのアプリケーションを作成しました。 クックパッドではサービスメッシュを用いたマイクロサービスアーキテクチャを採用しており、ドメインやチームに応じてアプリケーションが小さく分割されています。今回、クックパッドで利用されるマイクロサービスの1つとして、新しいアプリケーションサーバーを立ち上げました。 社内のマイクロサービスの状況については以下の記事が詳しいので、ぜひ読んでみてください。 techlife.cookpad.com 「アプリケーションサーバーを立ち上げる」と一口に言っても、新しいアプリケーションを作るのは意外と大変です。そもそも、新しいアプ
はじめに こんにちは!クックパッド採用グループのカレー大好きくろきです。 1/12にアンドパッドさん、Sansanさんとの合同イベントモバイルアプリエンジニア向け勉強会「iOS/Androidアプリ開発のマルチモジュール化」が開催されました。 クックパッドからは児山(こやまカニ大好き)が登壇しました。 この記事では、合同イベントで発表した内容について、児山のコメントを添えてご紹介します。 当日の様子は #ANDPAD_cookpad_Sansan からもどうぞ! 登壇概要 発表タイトル:クックパッド Android アプリのマルチモジュール化とデモアプリの活用 by こやまカニ大好き クックパッドでは Android アプリのマルチモジュール化に取り組んでおり、各機能をライブラリモジュールとして実装しています。マルチモジュール化することで差分ビルド時間は短縮できますが、アプリ全体をビルドし
技術部の笹田です。今日保育園に娘を送りにいったら、娘が先生に「サンタさんにプレゼントもらったよ! お母さんもプレゼントもらってたけどお父さんはもらってなかった!」と報告しており、私だけが悪い子と保育園に伝わってしまいました。 2021年は、笹田は Ruby 3.1 に導入された debug.gem (ruby/debug: Debugging functionality for Ruby)に結構長い時間をかけました(かけてしまいました)。だいたい半年で終わるだろうと思ってたんですが、終わらず。Ractor をもっとやる予定だったんだけどなぁ。ソフトウェア開発の見積もりは難しいですね。 本記事では、debug.gem について、導入の背景、簡単な使い方、それからちょっと面白い機能までご紹介します。 youtu.be (本稿では動画をいくつか載せていますが、動画作成時と記事執筆時が違うので、そ
技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.1.0 がリリースされました(Ruby 3.1.0 リリース )。今年も Ruby 3.1 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は以前の記事を見てください。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ プロと読み解くRuby 3.0 NEWS - クックパッド開発者ブログ 本記事は新機能を解説することもさることながら、変更が入った背景や苦労な
こんにちは、クックパッド事業本部 買物サービス開発部の佐藤(@n_atmark)です。 私の所属する買物サービス開発部ではクックパッドアプリにおける買い物機能*1の開発を行なっており、私は2020年の上期から買い物機能のモバイルアプリ開発の担当をしています。 2020年上期〜2021年上期では、クックパッドiOSアプリの買い物機能開発に、 2021年下期からは、クックパッドAndroidアプリの買い物機能開発に携わっています。 クックパッドアプリの買い物機能開発に関する詳細はクックパッド開発者ブログにもまとまっていますので、ぜひ合わせてご覧ください。 techlife.cookpad.com techlife.cookpad.com 前述の通りクックパッドアプリにおける買い物機能をiOS/Android両プラットフォーム向けに開発しているのですが、実はそれらの開発には共通している点がありま
こんにちは、クリエイション開発部の橋本和幸(@funwarioisii)です。今期は同じ本部に橋本さんが3人いたので3倍反応しました。 12月2日に(一昨年私が卒業した)岩手県立大学で、「サービス開発とその進め方」について講義をしました。*1 この記事では「何を提供しようとしたか」「どういう反応が得られたか」を紹介します。 それでは背景から説明していきます。 背景 授業の立て付け 授業の名前はシステムデザインPBLで、デザイン思考を学び、アジャイルに開発してみようというものでした。 外部からの講師を招待し、どういう開発をしているかの話が聞ける授業でもありました。特にアジャイルやデザイン思考など、現在の大学の枠組みで教えることが難しいものを中心に扱う授業でした。 私も学生時代に受講していて、コードを書くというよりモノを作ってる感じがして、つらくも楽しい授業でした。 一方で何か物足りず、何かが
こんにちは、ruby-devチームの遠藤(@mametter)です。 Among Usというゲームをやってるのですが、友達が少なくてあまり開催できないのが悩みです。 今日は、Ruby 3.1に導入される予定のerror_highlightという機能を紹介します。 どんな機能? NoMethodErrorが起きたとき、次のような表示が出るようになります。 error_highlightの動作例 どこのメソッド呼び出しで失敗したかが一目瞭然ですね。これだけの機能ですが、使ってみると意外と便利です。 もう少し詳しく この機能が本領を発揮するのは、RailsのparamsやJSONデータの取り扱いなどのときです。 たとえばjson[:articles][:title]みたいなコードを書いて、undefined method '[]' for nil:NilClassという例外が出たとします。 この
こんにちは、技術部データ基盤グループの佐藤です。この記事では最近業務として主に取り組んでいたDWHから外部へのデータ転送基盤であるQueuery(きゅうり)について、OSSとしてGitHubへの公開しましたのでこの記事でご紹介をします。 github.com Queueryというシステムは2017年の春頃にid:koba789の手により作られ、クックパッドのデータ基盤における重要な立ち位置を担っています。 背景 従来、RedshiftでSELECT文などの取得系クエリを実行するためにはRedshiftに直接接続してクエリを発行していました。この方法ではクエリ結果が巨大な場合にクライアント側のリソースを逼迫させることがありました。 しかし、それを避けるためにカーソルを使おうものなら今度はたちまちRedshiftのリーダーノードの具合が悪くなってしまいます。Redshiftから巨大な結果を得る
こんにちは、クックパッド事業本部 買物サービス開発部の佐藤(@n_atmark)です。 2019年新卒で入社後、クックパッドの新規サービスである「クックパッドマート」の開発に従事しており、2020年からはレシピサービス「クックパッド」iOSアプリの買い物機能を開発していました。 レシピサービス「クックパッド」の買い物機能は、iOSアプリ(以下: クックパッドiOS)で先行リリースしており、現在Androidアプリ(以下: クックパッドAndroid)でも同様の機能開発を行っています。 本稿ではクックパッドAndroidの買い物機能の開発について紹介します。 買い物機能とは なぜやるのか 楽しみが広がる、まったく新しい「買い物」を 買い物機能を最速でリリースするために選択したこと 再利用可能なAndroid実装の活用 宣言的UIフレームワークの活用 方針 実装について Jetpack Com
こんにちは。モバイル基盤部のこやまカニ大好きです。 先日行われた DroidKaigi 2021 で「2020年代の WebView 実装」というタイトルで発表させていただいたので、今日はその発表を簡単にまとめようと思います。 当日聴いて頂いた参加者の方、本当にありがとうございました。 流れていくコメントを眺めていると他社でも WebView 増殖はやっぱり発生するんだなあという気持ちが沸き起こり、胸が熱くなりました。 現時点で話せる内容は大体話せたと思うので、この記事では DroidKaigi公式の動画と発表資料の共有、当日うまく答えられなかった質問への回答だけ記載しようと思います。 最高の WebView を作る作業はまだ継続中ですので、完全版 WebView に関しては完成し次第別記事でお知らせいたします。 動画 https://www.youtube.com/watch?v=IOn
こんにちは。研究開発部の深澤(@fufufukakaka)です。 本記事では最近面白いなと思って watch しているレコメンド系のプロジェクト RecBole を紹介いたします。また、クックパッドが展開している事業の一つであるクックパッドマートのデータを使って数多くのレコメンドモデルを試す実験も行いました。その結果も合わせて紹介します。 TL;DR: レコメンドモデルは作者実装に安定性がなく、またモデルをどのように評価したかも基準がバラバラで、再現性が難しいとされている(from RecSys 2019 Best Paper) 再現性に取り組むプロジェクトとして 2020年12月に始まった RecBole がある。 RecBole を利用することでなんと 50個以上のレコメンドモデルを大体1コマンドで試せる クックパッドマートでユーザに対してアイテムをレコメンドするシチュエーションを想定
こんにちは、モバイル基盤部のヴァンサン(@vincentisambart)です。 iOS 15とXcode 13がリリースされました。最新のiOS SDKでビルドしてみたら、カスタマイズされたナビゲーションバーに修正が必要だったアプリが少なくなかったようです。しかし、iOS版のクックパッドアプリでは大きくカスタマイズされているナビゲーションバーを使ってはいるものの、iOS 15に合わせてナビゲーションバーに手を入れる必要は特になかったです。 iOS版のクックパッドアプリは最近様々な形のナビゲーションバーを使っています。例えばおすすめタブはスクロールするとナビゲーションバーの高さが変わります。 また、さがすタブは画面によってナビゲーションバーの中身や高さが違いますし、レシピ詳細ではスクロールするとレシピ名がナビゲーションバーに入ります。 なぜiOS版のクックパッドアプリには修正が必要なかった
研究開発部の山口 (@altescy) です.今回は最近開発したクックパッドマートの商品の「食材キーワード」を予測する機械学習モデルを紹介します. 商品の食材キーワード予測とは? クックパッドマートでは日々様々な食材が多くの販売者から出品されています.出品される商品の情報は販売者によって登録されるため,多様な表記が存在します.「じゃがいも」の商品名を例に挙げると,「ジャガイモ」「じゃが芋」といった表記の揺れや,「メークイン」「インカのめざめ」といった品種名が書かれているもの,「農家直送」や「お徳用」のようなキャッチコピーがついたもの,など様々です.一方で,商品の検索や推薦を行う際にはその商品がいったい何なのかを簡潔に表す情報が欲しくなります. そこで登場するのが「食材キーワード」です.商品名や商品説明とは別に,その商品がどんな食材なのかを表すキーワードを設定しておくことで,商品名の表記揺れ
次のページ
このページを最初にブックマークしてみませんか?
『クックパッド開発者ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く