読者です 読者をやめる 読者になる 読者になる

Android/iOSアプリのテストの区分戦略

技術部の松尾(@Kazu_cocoa)です。 クックパッドのモバイルアプリ開発では、どのようなテストを書き、どのようなタイミングで、どのようなテストを実施するか?に関してエンジニア各位が意識を合わせるためにテストサイズを定義し運用してきました。ここでは…

海外のユーザーを向いたプロダクト開発の工夫

こんにちは、検索事業部の岡根谷です。クックパッドは日本だけでなく海外でもレシピサービスを展開しています。今回は自分がプロダクトオーナーとして行った「関連レシピ」の複数言語同時リリースの話をしたいと思います。 関連レシピとは? レシピページの…

新サービスを使い続けてもらうために工夫した2つのこと

こんにちは。くらしのきほんグループのエンジニアの長田です。 私たちのチームでは、「くらしのきほん」という普段の暮らしの楽しさや感動を再発見するサービスを提供しています。 くらしのきほんでは、料理をはじめとした日々の暮らしを丁寧に送るためのコ…

データベースドキュメント管理システム dmemo のご案内

こんにちは、みんなのウェディングに出向中の小室 (id:hogelog) です。 今回はクックパッドとみんなのウェディングで利用しているデータベースドキュメント管理システム dmemo を紹介します。 https://github.com/hogelog/dmemo dmemo を作成し導入した経緯 …

アプリのユーザーテストをGoogle Play ベータテストで行う

プロダクトのリリースや改善にあたり、ユーザーテストによる仮説検証は不可欠です。先日クックパッドAndroidアプリで初めて、GooglePlayのベータテスト機能を使ってユーザーテストを行った話をご紹介します。

アプリのアップデートに依存せずにアプリの画面を改善し続ける仕組み

検索事業部の日高(@kaa)です。 検索事業部では作りたいレシピが見つかることをひとつの目標に、レシピを探す行動を助けることに挑戦しています。 その中で、レシピ検索した際の結果画面でのコンテンツを改善していくための仕組みについて紹介します。 作りた…

ユーザーの気持ちを考えてデザインをするために大切なこと

こんにちは。クックパッド ダイエットのデザイナーの新妻です。 クックパッド ダイエットでは、「正しく食べてやせる」をコンセプトに銀座と代々木にある店舗でのダイエット指導と、ダイエット情報を毎日配信するメディアサイトの運営を管理栄養士と一緒に行…

webpackを使った Rails上でのReact開発

はじめに こんにちは、投稿開発部エンジニアの芳賀です。 既存のRailsプロジェクトの中でReact.jsを利用する機会があったので、その時にやったことについてまとめてみます。 私自身は普段RailsのサーバサイドとCoffeeScriptが中心で、最近のJavaScript開発環…

デザイナー横断組織の変遷

こんにちは。デザイナーの池田(id:tikeda)です。6月末までユーザーファースト推進室というデザイナーを中心としたユーザー体験について横断的に責任をもっている室の室長を勤めていました。7月からこのユーザーファースト推進室をなくし役割を各部室に分散…

ディレクターがSQLを使えてよかった話

こんにちは。ディレクターの川原田です。 クックパッドでお気に入りレシピを保存する「MYフォルダ」のサービス開発や、保存・記録に関する新規サービスの検討・開発を担当しています。 ディレクターの仕事は様々ありますが、今回は私が身につけたことで仕事…

ActiveRecordを使ってRedshiftから大量のデータを効率的に読み出す

こんにちは、トレンド調査ラボの井上寛之(@inohiro)です。 普段は、クックパッドの検索ログを基にした法人向けデータサービス「たべみる」の開発や、 広告事業周辺のデータ分析などを担当しています。 Amazon Redshiftなどのデータベースに蓄積されたログ…

そのメールアドレス、現在も使っていますか?

こんにちは。ユーザーファースト推進室ディレクターの大黒です。 ありがたいことにクックパッドは今年で20年目をむかえ、数多くのユーザーに利用されるまでに成長しました。それ故に発生する課題もあり、今回はその中でもユーザー登録に使われているメールア…

実践 Pact:マイクロサービス時代のテストツール

技術部の taiki45 です。 以前「サービス分割時の複雑性に対処する: テスト戦略の話」という記事で、サービス間のインテグレーションテストにおける問題について紹介しました。現在のクックパッドではこの問題の解決のために Pact というツールを導入して運…

より良いデザインにするために大切にしたいと思っていること

既存の機能をリデザインする際に大切にしたいことを事例をふまえてまとめました。

Core Text と遊んでみましょう

こんにちは、技術部モバイル基盤グループのヴァンサン(@vincentisambart)です。 この間、クックパッドの iOS アプリの開発で Core Text と色々遊んだので、今日は Core Text の話をしましょう。 課題は表示する文字の一部の裏に角丸長方形を表示することです…

開発コストを最小限にして施策を進める

投稿推進部・ディレクターの中山です。 普段ディレクターはエンジニアとペアを組んでサービス開発をすることが多いですが、エンジニアが別の開発に集中したい時は、ディレクターだけで施策を進めることもあります。エンジニアがいないと動くものができない……

インフラ新卒研修と社内ISUCONのはなし

5月下旬におこなったインフラ新卒研修とその後の社内ISUCONについてご紹介します。

API クライアントを書きつつ Swift らしいコードを考える

こんにちは、技術部モバイル基盤グループの茂呂(@slightair)です。 クックパッドは Garage という RESTful Web API 開発を楽にする Rails のためのライブラリを作り、内部通信やモバイルアプリケーションのためのAPIサーバの開発に利用しています。 過去の G…

クックパッド 2016 サマーインターンシップ開催します!

こんにちは! 人事部長兼エンジニアの @yoshiori です。 クックパッドでは、今年も夏に 2 つのインターンシップを開催します!!!! Cookpad Tech Internship - Summer 2016 - 「この夏、クックパッドで腕試しをしませんか。」ということで Cookpad Tech In…

エンジニアが0からのサービス開発で学んだこと

こんにちは、買物情報事業部の三浦です。 私たちのチームでは1つのプロダクトの開発が佳境を迎えています。 私は普段エンジニアとしてチームに所属していますが、今回はプロダクトオーナーとして開発に携わっています。そこで単に実装者としてだけでなく、…

6/18(土) Think User First - Cookpad × Fablic 第4回を開催します!

こんにちは。Holiday の多田です。 このたび、フリマアプリ「フリル」でおなじみの Fablic さんと共同で行っているデザイナー向けイベントの第4回を開催します! 今回は Fablic 流の サービスの立ち上げ や ユーザーインタビュー手法 を体感することができる…

複数サービス間の整合性の取り組みについて

こんにちは。技術部 開発基盤グループの大石です。 本日は開発基盤グループが社内の各サービスに提供している共通基盤サービスの1つである共通決済基盤を例にサービス間の整合性を維持するための取り組みを紹介したいと思います。(共通決済基盤については以…

「現在時刻」を外部入力とする設計と、その実装のこと

こんにちは。技術部 開発基盤グループの諸橋です。 クックパッドでは昨今の多くのWeb企業と同じように、GitHub EnterpriseのPull Requestを使ったコードレビューを広範に実施しています。わたしたちのコードレビューでは、ソースコードの字面にとどまらず、…

システム障害で消耗してるあなたに:失敗から学ぶための取り組み「Failure teaches Success」

根本原因分析、そして再発防止は大事な作業ですが、とても難しい作業です。クックパッドでは、これらを少しでもやりやすくするために、ルールと仕組みをまとめています。この仕組みを「Failure Teaches Success」(略してFtS)と名づけています。直訳すると…

Spotlight 検索に iOS アプリのコンテンツを表示させる

こんにちは。検索・編成部の中村です。いよいよ来月は WWDC 2016 が開催されますね。どんな発表があるか今から楽しみです。本エントリでは、Core Spotlight APIs を使用してアプリ内のコンテンツを Spotlight 検索に表示させる方法について解説していきます…

ImageMagickのピクセルキャッシュとリソース制限

こんにちは、成田(@mirakui)です。今日はみんな大好き ImageMagick チューニングのお話です。 2016/5/13 に公開された、いわゆる ImageTragick と呼ばれる脆弱性では、 policy.xml というファイルを更新するという workaround が紹介されていたのは記憶に…

Androidアプリのリソースを整理して開発効率を改善した話

開発効率を下げる要因 themeが整備されていない styleによるデザインの再利用ができていない 文字の色、サイズ、書体などが整理されていない エンジニアとデザイナの間に共通言語がない 開発効率を上げるための工夫 未使用のリソースを削除する themeの定義 …

日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか

こんにちは、買物情報事業部の荒引 (@a_bicky) です。 前回、「検索結果の疑問を解消するための検索の基礎」で単語単位でインデキシングする前提で説明しましたが、今回は文などを単語単位で分割するために使う技術である形態素解析について触れます。 形態…

iOSアプリケーションの国際化と地域化

海外事業向けのiOSアプリケーション開発を担当している西山(@yuseinishiyama)です。クックパッドは現在、海外複数カ国に向けてサービスを展開しています。 海外事業向けのiOSアプリケーションは、英語、スペイン語、インドネシア語、タイ語、ベトナム語、ア…

オープンソースライセンスの管理を楽にする -Android アプリ編

こんにちは、投稿推進部の吉田です。 オープンソースライセンスの管理はアプリ開発における悩み事の一つですよね。今回はこの煩雑な作業をgradleプラグインを使って自動化する話をします。

どのようにして高速に iOS アプリの UI を作り上げるか:動作モックの活用と実装時の UI 作りこみ

Holiday デザイナーの多田です。 皆さんは Web アプリやモバイルアプリを開発する時、モックアップ作成にどれだけ時間を割いているでしょうか?もしくはモックアップを作成せずにすぐに実装に入るでしょうか?私はこれまで Web アプリ開発ではいきなり実装に…

オープンソースソフトウェアポリシーをつくろう

みんなのウェディングやクックパッドといったインターネットサービス企業では、オープンソースソフトウェアは欠かすことのできない存在です。今回は、クックパッドがどのようにオープンソースソフトウェアポリシーをつくったか、その背景も含めてをご紹介い…

株主優待を迷わずご利用いただくために気をつけたこと

こんにちは。会員事業部の高田です。 クックパッドでは、昨年に続き今年も株主優待としてプレミアムサービス1年分クーポンを配布しました。 株主の方々は、普段クックパッドを使っているユーザー層より年齢層が高く、インターネットに慣れていない方も多いと…

Try! Swiftで感じた将来

こんにちは。広告事業部のモバイルエンジニアパヴェウ @RusinPaw です。 先日、3月に東京で開催されたtry! Swiftカンファレンスに行ってきました。開催者のおかげで世界中の様々な優秀なスピーカーが発表してくれました。発表内容はSwiftに留まらずiOSフレ…

開発の見積もりとスケジュール管理

こんにちは。会員事業部の丸山です。 エンジニアが開発を開始する時にはタスクの見積もりとスケジュールを作成行って、実装を進めていくと思います。 しかし1ヶ月を超えるような規模の開発をする場合、なかなか予定通りの期日に終わらなかったりすると思いま…

開発チームと営業チームとのコミュニケーションで気を付けていること

こんにちは。クックパッド特売情報ディレクターの田中です。 本日は、開発チームと営業チームのつなぎ役として働くディレクターとして、コミュニケーションにおいて意識していることをご紹介したいと思います。 特売情報のビジネスモデル 私が担当しているク…

安心してRailsアップグレードを行うための工夫

こんにちは。技術部の国分 (@k0kubun) です。 3/28にクラウドワークスさんで行なわれたRails Upgrade Casual Talksで、Railsアップグレードの際にクックパッドが行なっている工夫について紹介しました。 影響範囲の予測が難しいRailsのアップグレードを安全…

社内共用カメラのすゝめ

舘野 (id:secondlife / @hotchpotch) です。 クックパッドでは会社の中心にキッチンがあり、社員同士でランチやお菓子を作ったり、イベントを開いたりと社内のコミュニケーション用途で広く使われています。そんなキッチンで作られている様々な料理や、楽し…

ブラウザから使える O/R マッパ、 js-data を使ってみる

ブラウザから ActiveRecord のような使い勝手で RESTful API を操作できるライブラリ、js-data を紹介。実際に CRUD 処理を行うまでのガイド、使い方の情報の集め方など、js-data の最初の一歩について簡単にまとめます。

Elasticsearch の Percolator を使った地理属性判別システムの構築

こんにちは、ホリデー株式会社の内藤です。Holiday ( https://haveagood.holiday/ ) というサービスの開発を行っています。 先日開催した Cookpad TechConf 2016 では、『おでかけスポット検索のむずかしさ - Holiday を支える検索技術』という題で発表を行…

クックパッドにおける最近のMicroservices事例

こんにちは。技術部の吉川です。 最近ではMicroservicesという言葉もかなり浸透し、そのテクニックも体系化されつつあります。 一方でMicroservicesについての話は概論や抽象的な話が多く、具体像が見えないという方もいらっしゃるのではないでしょうか。 当…

デザイン品質を高めるための仕組みづくり

安定したデザイン品質のモバイルアプリをユーザーさんに届けるために取り組んだ、デザインリリースマネージャの概要と成果について

クックパッドxMESH「未来のクッキングを描くアイデアソン」を開催します!

こんにちは。クックパッドCTO室の住 朋享(すみ ともみち)です。 皆様にあまり馴染みのない部署名かと思いますが、IoTなどを中心に未来の技術を考えながらクックパッドの未来を思い描く・・・といったお仕事をしております。 今回、クックパッドとIoTでどの…

CSVからモデルオブジェクトを生成する際に気をつけたこと

こんにちは、クックパッド編集室の加々美です。 現在、食や暮らしのトレンドを発信するメディアであるクックパッドニュースの開発に携わっています。 クックパッドニュースは、1週間に100本以上の記事を配信しています。 このように比較的多くの記事コンテン…

年間100冊以上本を読むための読書術とおすすめ書籍

こんにちは。会員事業部の小久保です。 有料会員のプロモーション、及び他社企業とのアライアンスを担当しており、直近ではユーザーの入退会の傾向に関するデータ分析をしています。 ちょうど1年前くらいからディレクターとして働くことになったのですが、当…

テストを使いサービス開発を駆動していくために取り組んでいること

技術部の松尾(@Kazu_cocoa)です。 最近、 @moroや私を中心に、テストから開発を駆動するという方向で、とある活動を始めました。その活動の中では、 @t_wadaさん を 技術顧問 として巻き込んで活動を進めています。そんな取り組みを少しここにまとめます。 …

たべみるを研究者に向けて公開します

こんにちは、研究開発チームの伊尾木です。 クックパッドには「たべみる」というレシピの検索データを分析できるサービスがあります。 例えば、「唐揚げと豚の角煮はどっちが検索されるの?(ちなみに唐揚げです)」とか「冷やし中華と鍋焼きうどんはどっち…

アプリの動作確認をする時に心がけていること

こんにちは。投稿推進部ディレクターの新里です。 私はディレクターとして、動作確認に積極的に関わるようにしています。その理由は、担当したサービスをより多くのユーザーに快適にご利用いただきたいという思いからです。 せっかくサービスを使おうと思っ…

成熟期にあるWebサービスの新たな価値を求めて - サービス開発はじめの一歩

会員事業部の小椋(@littlestarling)です。 会員事業部では会員向けサービス全般、中でもプレミアムサービスの価値向上を継続すべく、日々サービス開発を行っています。 クックパッドのプレミアムサービスの柱のひとつは人気順検索機能です。 今年、私はその…

品質アップの時間を確保するデザインの進め方について

こんにちは。ユーザーファースト推進室、デザイナーの坂本です。 私は、クックパッドのレシピを主に生活習慣病の方に向けて管理栄養士が健康的にアレンジした「おいしい健康」というサービスのデザインを担当しています。 「おいしい健康」は2月22日に、アカ…

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('http://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('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/