2019 年度版:クックパッド x 広告領域の紹介

こんにちは。メディアプロダクト開発部の我妻謙樹です。サーバーサイドエンジニアとして、広告配信システムの開発・運用を担当しています。入社以来広告領域を担当するグループに所属しています。 クックパッドと広告 クックパッドでは、PS に次ぐ売上高を占…

Cookpad Summer Internship 2019 10 Day Techコースを開催しました

クックパッドでは毎年恒例となっているサマーインターンシップのうち「10 Day Tech コース」を 8月19日から8月30日にかけて開催しました。今年もたくさんの優秀な学生の方が参加し、10日間毎日真剣に取り組んでくれました。本当にありがとうございます。講義…

iOSDC Japan 2019 に社員2名がLT枠で登壇&ブース企画のご案内

こんにちは!広報部のとくなり餃子大好き( id:tokunarigyozadaisuki )です。 「今年は梅雨が長いな」なんて思っていたらあっという間に暑くなり、気づけば本当の夏も過ぎ……。夏の終りの気配が見えてきましたね。 さて、iOSと周辺技術を題材としたカンファ…

Android cookpadLiveで採用してる技術 2019夏

メディアプロダクト開発部の安部(@STAR_ZERO)です。 Android cookpadLiveで採用してる技術について紹介したいと思います。 cookpadLiveとは cookpadLive は、料理上手な有名人や料理家がクッキングLiveを生配信しています。一緒に、Live配信でリアルタイムに…

UICollectionViewでページングスクロールを実装する

iOS

こんにちは。新規サービス開発部の中村です。普段は「たべドリ」アプリの開発をしています。「たべドリ」は料理の学習アプリです。詳細はこちらの記事をご覧ください。本記事では UICollectionView でページングスクロールを実装する方法について解説します…

Google Play Billing Client 2.0における消費型商品の決済の承認(acknowledgement)について

Cookpad.apk #3で深堀りできなかった、Google Play Billing Client 2.0における消費型商品の決済の承認(acknowledgement)について解説します。

インフラのコスト最適化の重要性と RI (リザーブドインスタンス) の維持管理におけるクックパッドでの取り組み

クックパッドで取り組んでいる AWS のコスト最適化についてご紹介します。 前半パートではコスト最適化そのものについて言及し、後半パートでは実践的な RI のモニタリングシステムについて説明します。

AWS re:Inforce 2019に参加してきました

技術部セキュリティグループの三戸 (@mittyorz) です。こんにちは。 去る6/25,26日に開催されたAWS re:Inforce 2019に参加しましたので、簡単ではありますが紹介させていただきたいと思います。 今回が初開催なため規模感や雰囲気などは未知数の中、クックパ…

Grafana の scripted dashboards を利用してダッシュボードを自動生成する

技術部 SRE グループの鈴木 (id:eagletmt) です。 去年クックパッド開発者ブログでも紹介した hako-console の延長として、メトリクス表示に Grafana の scripted dashboards を利用するようにしているのでその紹介をしようと思います。 アプリケーション毎…

ISMM 2019 で発表してきました

技術部の笹田です。遠藤さんと同じく Ruby のフルタイムコミッタとして、Ruby インタプリタの開発だけをしています。 先日、アメリカのフェニックスで開催された ISMM 2019 という会議で発表してきたのと、同時開催の PLDI 2019 という会議についでに参加し…

冪等なデータ処理ジョブを書く

こんにちは、マーケティングサポート事業部データインテリジェンスグループの井上寛之(@inohiro)です。普段はマーケティングに使われるプライベートDMP(データマネジメントプラットフォーム)の開発を行っています。本稿では、その過程で得られた冪等なデ…

サービス開発でぶつかってきた壁と、そのとき助けてくれた本

クックパッド開発ディレクターの五味です。サービス開発では、ユーザーと事業目標に真摯に向き合うほど、たくさんの壁が現れます。クックパッドには、日常的に書籍を読んで、仕事に取り入れる文化があります。特に壁にぶつかった時は、ブレイクスルーを図る…

EuRuKo 2019 で発表してきました

技術部でフルタイム Ruby コミッタをしている遠藤(@mametter)です。フルタイムで Ruby を開発しています。 先日、オランダのロッテルダムで開催された EuRuKo 2019 で発表してきたので、簡単にレポートします。 EuRuKo は、毎年ヨーロッパのどこかで開催さ…

Simpacker: Rails と webpack をもっとシンプルにインテグレーションしたいのです

Rails で webpack を利用する場合、最近だと Webpacker が利用されることが多いですが、Webpacker は webpack の設定を直接触れないなど、いくつか不満に思う点があったので、よりシンプルに Rails と webpack をインテグレーションする Simpacker という gem…

Firebaseで運用するKomercoの管理用アプリケーションの開発

こんにちは。Komerco事業部エンジニアの高橋(id:yosuke403)です。「料理が楽しくなるマルシェアプリ」であるKomercoの開発を行っています。 Webサービス開発と聞くとユーザが利用するWebアプリやモバイルアプリの開発を思い浮かべますが、運営スタッフがサー…

おすすめの食べ方を見ながら食材を買える体験を作った話

はじめに こんにちは、買物事業部のデザイナー兼エンジニアの長野です。 生鮮食品ECサービス「クックパッドマート」の開発チームで、注文ユーザー向けのサービス開発全般を担当しています。 今日は、先日クックパッドマートのiOSアプリでリリースした新機能…

Markdown と GitHub で社内規程を便利に管理

VP of Technology の星 (@kani_b) です。技術基盤や研究開発領域などを担当しつつ、社内の色々なことを技術の力でいい感じにする仕事をしています。セキュリティや AWS の話が好きです。 さて、みなさんは、ご自身が勤務する会社の就業規則を読んだことはあ…

SwiftUIで使用されているSwift5.1の新機能

こんにちは。会員事業部の岡村 (@iceman5499) です。 普段はクックパッドアプリ(iOS)を開発しています。 先日San Joseで開催されたWorldwide Developers Conference 2019 (WWDC19)に参加し、そこでSwiftUIの発表をうけていくつか調べたことがあるので簡単…

モダンBFFを活用した既存APIサーバーの再構築

クックパッドのレシピサービスに導入した新たなBFF "Orcha" について、導入の経緯とアーテキテクチャ、その評価を述べます

レシピ検索を支えるレガシーでクリティカルな大規模バッチを刷新した話

こんにちは、会員事業部の新井です。余暇を全て Auto Chess に喰われています。 過去このブログにはサービス開発に関する記事*1を投稿させていただいているのですが、今回はシステム改修についての記事になります。 クックパッドには検索バッチと呼ばれる大…

Working with AWS AppSync on iOS

I'll discuss some lessons we've learned while integrating AWS AppSync into our iOS app.

Google I/O 2019 に参加しました

こんにちは、技術部品質向上グループの加藤です。 普段は主にモバイルアプリのテスト周りに関わっています。 今回は先日開催された Google I/O 2019 に参加したので、現場の環境や気になったセッションを初参加の目線で書いていきます。 Google I/O 2019 毎…

XcodeGenによる新時代のiOSプロジェクト管理

こんにちは。モバイル基盤部の@giginetです。平成最後のエントリを担当させていただきます。 iOSアプリの開発では、Xcodeが生成するプロジェクトファイルである、*.xcodeprojをリポジトリで共有するのが一般的です。 しかし、この運用は大規模なプロジェクト…

RubyKaigi 2019 Cookpad Daily Ruby Puzzles の正解と解説

Ruby 開発チームの遠藤です。RubyKaigi 2019 が無事に終わりました。すばらしい会議に関わったすべてのみなさんに感謝します。 開催前に記事を書いたとおり、クックパッドからはのべ 7 件くらいの発表を行い、一部メンバは会議運営にもオーガナイザとして貢…

GraphQL Asia 2019 で登壇しました

こんにちは。メディアプロダクト開発部の我妻謙樹(@itiskj)です。 ソフトウェアエンジニアとして、広告配信システムの開発・運用を担当しています。好きな言語は Go と TypeScript です。 先日、GraphQL に関してアジア圏初の大型カンファレンス、GraphQL A…

Bitrise & Cookpad Developer Meetupを開催しました

モバイル基盤部の@hiragramです。先日try! Swiftに合わせて来日したBitriseチームを恵比寿オフィスに招いてミートアップを開催しました。 Bitriseはモバイルアプリ開発に特化したクラウドCIサービスで、最近日本での採用もスタートされたそうです。 cookpad.…

RubyKaigi 2019: Write a Ruby interpreter in Ruby for Ruby 3

技術部の笹田です。フルタイム Ruby コミッタとして働いているので、明日から始まる RubyKaigi 2019 は仕事で行きます。あまり日のあたることが少ない我々の晴れの舞台です。 宣伝もかねて、RubyKaigi 中に自分がどんな仕事があるか並べてみました(クックパ…

RubyKaigi 2019 "A Type-level Ruby Interpreter for Testing and Understanding" の発表要旨

こんにちは、クックパッドで仕事で Ruby の開発をしている遠藤(@mametter)です。もうすぐ RubyKaigi ですね! クックパッドはいろんな形で RubyKaigi に参加していく予定なのでよろしくお願いします。詳しくは昨日の記事をごらんください。 さて、そういう…

クックパッド一同は、RubyKaigi 2019でみなさんにお会いできることを楽しみにしています!

こんにちは! 広報部のとくなり餃子大好き( id:tokunarigyouzadaisuki )です。 クックパッドは、2019年4月18日(木)〜20日(土)に福岡にて開催される RubyKaigi 2019に、Ruby Committers’ SponsorとWi-Fi Sponsorとして協賛します。 クックパッドからは4名…

新規事業のIoTプロダクト開発に必要なこと【連載:クックパッドマート開発の裏側 vol.5】

クックパッド 買物事業部の篠原 @shanonim です。社内の新規事業「クックパッドマート」でエンジニアをやっています。 このエントリは、連載シリーズ【連載:クックパッドマート開発の裏側】の第5回目です。本日が最終回となります。 以前のエントリはこちら…

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/