タグ

ブックマーク / techlife.cookpad.com (119)

  • AWS 対応した GitHub Enterprise v2 へスムーズに移行した話 - クックパッド開発者ブログ

    技術部 id:sora_h です。今回は v2 より AWS 上での運用に対応した GitHub Enterprise を、オフィスにある既存の環境から AWS へスムーズに移行した話について説明します。 GitHub Enterprise v2 GitHub Enterprise (以下 GHE) とは、github.com を自前の環境で運用できるアプライアンスです。クックパッドでは主に GHE 上で開発を行っています。 従来まで GHE の実行環境として VMware vSphere, VirtualBox 上の実行しかサポートされていませんでしたが、11 月にリリースされたアップデート v2 より、AWS での実行がサポートされました。 クックパッドでは全面的に AWS を利用していますが、いままで GHE を AWS 上で動作させる事はできませんでした。そのため、オフィス内に E

    AWS 対応した GitHub Enterprise v2 へスムーズに移行した話 - クックパッド開発者ブログ
    hamaco
    hamaco 2015/01/13
  • RESTful Web API 開発をささえる Garage (client 編) - クックパッド開発者ブログ

    料理動画事業室の @yoshiori です。前に「RESTful Web API 開発をささえる Garage」で紹介した RESTful Web API を開発する Garage のクライアント側のライブラリを公開しました。この記事ではその使い方を紹介したいと思います。Garage の設計思想やサーバ側の実装については上記記事を御覧ください。 今回は簡単にクライアント側の挙動を知っていただくために pry を使って説明したいと思います。 アクセスするサーバは先程の記事で作成したアプリケーションを使用してみます。 サーバの準備 https://github.com/taiki45/garage-example の README にも書いてありますので簡単に進めたいと思います。 まずは下準備としてコードを github から clone してきて、ライブラリのインストールと DB のマイグレ

    RESTful Web API 開発をささえる Garage (client 編) - クックパッド開発者ブログ
    hamaco
    hamaco 2015/01/09
  • Android開発を爆速にする10のコマンドラインスクリプト - クックパッド開発者ブログ

    モバイルファースト室の山下( @tomorrowkey )です。 みなさんはAndroidアプリをビルドするときに AndroidStudioの実行ボタンを押すのと、ターミナルでgradleコマンドを実行するのと、どちらを使っていますか。 クックパッド社内のAndroidエンジニアでもどちらを使うか好みが分かれるのですが、私はたいていターミナルでgradleコマンドを使っています。 AndroidStudioの実行ボタンだとビルドを途中で中止できないことがあるからです。コマンドであればcontrol+cでいつでも中止できるという気軽さからコマンドを好んで使用しています。 開発するうえでIDEなどのGUIツールはとても便利なのですが、実はコマンドを実行する方がはるかに早くストレスなく開発を進めることができることがあります。 今回は私が実際に使っている便利なコマンドラインスクリプトを10個紹介

    Android開発を爆速にする10のコマンドラインスクリプト - クックパッド開発者ブログ
    hamaco
    hamaco 2014/12/29
  • Androidアプリ開発で素早くフィードバックをえるためのライブラリを作りました - クックパッド開発者ブログ

    モバイルファースト室の山下(@tomorrowkey)です。 Androidアプリを開発していて、ふとした時に不具合を見つけたりしませんか。 クラッシュであればDeploygateやCrashlyticsなどでクラッシュレポートを送ることができますが、表示崩れを報告をするにはスクリーンキャプチャを撮ってメールアプリを開き、画像を添付して、送信する、といった手順が必要でなかなか面倒です 。 アプリを開発する側は不具合のあったスクリーンショットがほしい、不具合を報告する人は報告する手順がめんどうといったギャップを解決するためのライブラリを作りましたので、紹介します。 不具合報告する機能を作りました 冒頭のアニメーションgifで一通りの挙動を見ることができます。 このライブラリを使っているアプリを開くと通知領域に「不具合を報告する」という項目が増えます。 不具合を見つけた時にこの通知を選択すると

    Androidアプリ開発で素早くフィードバックをえるためのライブラリを作りました - クックパッド開発者ブログ
    hamaco
    hamaco 2014/12/28
  • MacからiPhoneに遷移させよう - クックパッド開発者ブログ

    こんにちは。モバイルファースト室の中村(@_nkmrh)です。 突然ですが、Mac上で探したレシピをすぐiPhoneで見られると便利だと思いませんか? 先日リリースしたiOSクックパッドアプリではそれが出来るようになりました。 とても便利なのでぜひ活用してください。 ※ 実はこの便利機能、次のバージョンで一旦取り下げ、問題を解決したあとで再度導入することになりました。以降の記事で事情を説明します。 Mac OS X YosemiteがインストールされたMac、iOS 8がインストールされたiPhone 5以降、iPad 第4世代、iPad Air、iPad mini、iPad mini Retinaディスプレイモデル、iPod touch 第5世代でご利用いただけます。 MaciPhoneに同じiCloudアカウントを設定して下さい。 これがその様子...。 Mac上のSafariでクッ

    MacからiPhoneに遷移させよう - クックパッド開発者ブログ
    hamaco
    hamaco 2014/12/18
  • WebPでモバイルアプリの通信量を劇的に削減する - クックパッド開発者ブログ

    モバイルファースト室の @slightair です。 クックパッドの iOS/Android アプリは、少し前のバージョンからWebP形式の画像をサーバから取得して表示するようにしています。 この記事では、なぜ画像形式をWebPに切り替えたのか、また切り替える上で注意した点などを説明します。 Cookpad アプリと画像 クックパッドのアプリはユーザさんに投稿していただいたレシピを表示するアプリケーションです。その性質上、レシピ画像や調理手順、検索画面のサムネイルなどたくさんの画像をサーバから取得して表示する必要があります。 画像の数が増えたりサイズが大きくなればなるほど通信量が増えます。最近はスマートフォンの画面サイズがどんどん大きくなっているので、それに合わせて取得する画像を大きくしていくとさらにファイルサイズが増え、通信量も増えていってしまいます。 サーバとやりとりするデータが多くな

    WebPでモバイルアプリの通信量を劇的に削減する - クックパッド開発者ブログ
  • サービス開発エンジニアからマネージャになった話 - クックパッド開発者ブログ

    はじめに こんにちは、レシピ投稿推進室の勝間(@ryo_katsuma)です。 techlifeでの執筆は5年ぶり(!)になります。 さて、そんな私も今年2014年の5月にエンジニアからサービス開発の部署のマネージャに転身しました。 そこで今回のtechlifeブログは、いつもの技術ネタとは少し異なるテーマとして、「クックパッドにおいて、エンジニアからマネージャに転身する」ことが、どういうことなのかを自分自身で振り返り、まとめたいと思います。 エンジニアが自身のキャリアを考える上で、少しでも参考になれば幸いです。 現状 私は、2009年5月に中途入社し、今年で6年目になります。この年数は、エンジニア全体はもちろん、社内全体で見ても古い方になります。 これまで、技術部、HappyAuthor部(現在、私が所属している前身になった部)、新規事業部、プレミアム会員事業部...など、いろんな部署で

    サービス開発エンジニアからマネージャになった話 - クックパッド開発者ブログ
    hamaco
    hamaco 2014/12/04
  • スマートフォンWebのフロントエンドを高速化する取り組み - クックパッド開発者ブログ

    ユーザファースト推進部の丸山(@h13i32maru)です。 先日「撮るレシピ」というサービスを cookpad.com にて公開しました。「撮るレシピ」というサービスは料理や雑誌のレシピを写真に撮ってクックパッド上に保存できるというものです。料理や雑誌でレシピを良く見る方はぜひ使ってみてください(Androidアプリ版もあります)。 この「撮るレシピ」は全体公開前に一部のユーザに限定公開をしていました。そして全体公開をするにあたりフロント側のコードを全面的に書き換え高速化を行いました。その結果、最大で30倍高速化することができユーザの使い勝手が向上しました。以下が「書き換え前」と「書き換え後」の計測結果です(Android端末8機種 + iOS3機種で各操作のターンアラウンド時間*1を計測)。 閲覧系 最大: 30倍高速化(4.2秒→0.14秒) 平均: 15.7倍高速化(3.6秒→

    スマートフォンWebのフロントエンドを高速化する取り組み - クックパッド開発者ブログ
    hamaco
    hamaco 2014/12/03
  • KPTで粘り強く品質改善に取り組んだ話 - クックパッド開発者ブログ

    はじめに こんにちは、モバイルファースト室の@y_310です。 部署名からもお分かりの通りクックパッドでは今年からスマートフォンアプリの開発に特に力を入れて取り組んできました。 実際に昨年と比べて開発体制が大きく変化しています。以前はアプリ開発専門のエンジニアのみで開発していたものを、サーバサイドエンジニアもアプリ開発を学び、自分が所属する部署に必要な機能をアプリに実装するようになりました。 そのため、以前は2、3人のチームでの開発だったものが、現在は多い時には複数の部署にまたがって10人ほどのエンジニアが1つのアプリにコミットする状況になりました。 そのような環境の変化によりアプリの品質維持が大きな課題となり、この半年間継続的に品質改善に取り組んできました。今回はその改善プロセスについてご紹介したいと思います。 課題 取り組みを始める前は、様々な部分で課題がありました。 具体例を上げると

    KPTで粘り強く品質改善に取り組んだ話 - クックパッド開発者ブログ
    hamaco
    hamaco 2014/11/30
  • iOSアプリ間連携の実装に x-callback-url を使う - クックパッド開発者ブログ

    はじめに モバイルファースト室の @slightair です。 クックパッドが提供しているiOSアプリには、連携して機能するものがあります。 買い物リストアプリを例に挙げると、クックパッドアプリのレシピ画面からレシピに使われている材料を買い物リストアプリに登録することができます。 この機能は、x-callback-url という仕様に沿って実装しています。 x-callback-url は別のアプリの呼び出しや情報の受け渡しに使うカスタムURLスキームの形式を定義するものです。 この仕様に沿って実装することで、他のアプリから呼び出せる処理や必要なパラメータをきれいにまとめることができます。 この記事では x-callback-url を用いたアプリ間連携の実装について説明します。 カスタムURLスキーム iOSアプリで他のアプリに遷移しつつなにかしらの情報を渡すにはカスタムURLスキームを

    iOSアプリ間連携の実装に x-callback-url を使う - クックパッド開発者ブログ
    hamaco
    hamaco 2014/11/25
  • デザイン設計に集中する時間を増やしてみよう - クックパッド開発者ブログ

    こんにちは! ユーザーファースト推進部のデザイングループのジョン・ジンホ(@img75)です。 前回、クックパッドのデザインプロセスについてご紹介しましたが、私からはクックパッドのデザインプロセスをより効率的にまわす為に、デザイナーとしてどのようなツールを活用しているのかを、今回は Adobe Photoshop CC のプラグインを中心にご紹介したいと思います。 デザイン設計に集中できる Photoshop などでの作業効率を向上させると、デザイナーにとって貴重な「デザイン設計に集中できる時間」が生まれます。それは結果的にクックパッドを利用してくださるみなさまにより良い機能をすばやく提供できることにつながるので、私はいつもデザインするにあたって不必要な時間を減らす努力をしています。 最近、私は「撮るレシピ」(Android/ SPweb版)のデザインを担当しました。 「撮るレシピ」は、こ

    デザイン設計に集中する時間を増やしてみよう - クックパッド開発者ブログ
    hamaco
    hamaco 2014/11/19
  • aptly による apt リポジトリ管理 - クックパッド開発者ブログ

    インフラストラクチャー部の宮下(@gosukenator)です。 クックパッドでは一部のサーバで Ubuntu を使い始めており、 apt リポジトリをどのように管理するのが良いのか、試行錯誤しています。aptリポジトリ管理で実現したいことは、主に次の2点です。 自前でビルドしたパッケージの管理 リモートリポジトリから削除された旧バージョンパッケージの保全 このあたりをいい感じにできるツールはないかな、と社内で話していたところ、カルビ生焼け王 に教えてもらったのが aptly です。 aptly とは 公式サイトに「aptly is a swiss army knife for Debian repository management」とあるように、aptly は多機能な apt リポジトリ管理用ツールです。外部リポジトリのミラー作成、ローカルリポジトリの作成、リポジトリのスナップショット

    aptly による apt リポジトリ管理 - クックパッド開発者ブログ
    hamaco
    hamaco 2014/11/10
  • 「関連する○○」機能を手軽に実現できる。そう、Elasticsearch ならね。 - クックパッド開発者ブログ

    セコン (id:secondlife, @hotchpotch) です。ウェブサービスにはよく「このエントリーに関連するブログ記事」や「このレシピに関連するレシピ」という機能が実現されてますよね。さて、この機能はどのように実現すれば良いでしょうか。例えば tf-idf で単語の類似度を求め…といった実装が必要になり、いささか面倒です。 しかしながら Elasticsearch や Solr *1を使うと手軽に実現できます。例えば、クックパッドニュースの記事では Solr を使い「この記事を読んだ人におすすめ」の機能に、最近クックパッドにジョインしたインドネシアの会社の DapurMasak では Elasticsearch を使い「Resep serupa(関連レシピ)」の機能で利用しています。 クックパッドニュースでのこの記事を読んだ人におすすめ DapurMasak での関連レシピ 使

    「関連する○○」機能を手軽に実現できる。そう、Elasticsearch ならね。 - クックパッド開発者ブログ
  • レシピ検索を改善する工夫 - クックパッド開発者ブログ

    こんにちは。技術部検索グループの兼山(@PENGUINANA_)です。 クックパッドの中でレシピ検索はレシピをのせる人とさがす人をつなぐ大事な仕組みです。 今回はレシピ検索を運用改善していく上での工夫のうち、他の検索システムでも役立ちそうな内容を紹介させていただきます。 改善ポイントを発見しやすくする 工夫1. 検索語をモニタリングする search monitorという社内ツールを作りました。前日の検索傾向を表示できます。 このツールは以下の作業をサポートします。 検索語をUU(ニーズ)が多かった順に知る キーワードごとに何人に使われたのかを知る ユーザーが実際に目にする検索結果を素早く確認する レシピが1品も見つけられなかったキーワードを知る 他にも「キーワードごとにどのようなキーワードと組み合わされやすいか」、「その検索語のCTRはどの程度か」、「その検索語は何時頃あるいは何曜日によ

    レシピ検索を改善する工夫 - クックパッド開発者ブログ
    hamaco
    hamaco 2014/11/03
  • 多腕バンディットによる表示コンテンツの最適化 - クックパッド開発者ブログ

    こんにちは。技術部検索グループの原島です。 上の画像は、スマートフォン(ブラウザ版)で見たクックパッドの検索結果ページです。レシピだけでなく、ニュースも表示されていますね。献立や掲示板のスレッドなどが表示されることもあります。 クックパッドでは、検索結果ページに表示するコンテンツをクエリなどに応じて最適化しています。最適化は、膨大なログデータと最新の機械学習を用いることで、実現しています。このエントリでは、クックパッドにおけるコンテンツ最適化の裏側を紹介します。 最適化の背景 スマートフォンの普及に伴って、ユーザが利用するプラットフォームは PC からモバイルにシフトしつつあります。クックパッドにおけるモバイル利用者の割合も、ここ 2 年で 10% 以上増加しました。最近では、60% 以上のユーザがモバイルからアクセスしています。 ユーザの利用形態が変化すれば、検索結果ページもその変化に対

    多腕バンディットによる表示コンテンツの最適化 - クックパッド開発者ブログ
    hamaco
    hamaco 2014/11/03
  • 正常なAndroidアプリをビルドできない問題とその対策 - クックパッド開発者ブログ

    モバイルファースト室の山下(@tomorrowkey)です。 先日撮るレシピというAndroidアプリをリリースしました。 みなさんの自宅には開かずにずっとおいてあるレシピ雑誌はないでしょうか。その中でも作ってみたいと思うレシピは何品あるでしょうか。 また母親や友達から教えてもらったレシピを付箋に書いて冷蔵庫に貼っていたりしませんか。冷蔵庫が付箋だらけになっていませんか。 このアプリはそんなレシピたちを写真に撮って残せるアプリです。雑誌や冷蔵庫のドアなどちらばったレシピを1つにまとめることができます! そんなとっても便利なアプリなのですが、今回このアプリをリリースするときにGoogle Playからインストールできなくなるという現象に遭遇しました。 同じ轍を踏む人がでてこないように、その原因と対策を紹介します。 ビルド環境 この問題が発生したのは以下の環境です。 例えばantなどの他のビル

    正常なAndroidアプリをビルドできない問題とその対策 - クックパッド開発者ブログ
  • iOSアプリデザインリニューアルの舞台裏の舞台裏 - クックパッド開発者ブログ

    技術部の松尾(@Kazu_cocoa)です。 iOSアプリデザインリニューアルの舞台裏でも書かれていた、" 修正期間中は毎日夜間にアプリケーションの全画面のスクリーンショットを記録するスクリプトを実行し、画面崩れが起きてないか、新デザイン未反映の画面はないか、進捗状況の確認に利用していました。"の舞台裏を少し書いてみようと思います。 はじめに モバイルアプリケーションのテスト環境はまだまだ成長中で、様々なツールが飛び交っていることかと思います。ここでは、E2Eテストに対しての話題に絞り、使っているツール、シナリオの書き方、クックパッドでは、という話しをします。この記事におけるE2Eテストは、UIからの操作によりユーザの操作を模倣して実施するテスト、という意味合いです。 ツール E2Eテストを自動化する為のツールの選定には以下を気にしていました。 OSの更新に追従できそうなもの 特別なテスト

    iOSアプリデザインリニューアルの舞台裏の舞台裏 - クックパッド開発者ブログ
  • クックパッドの検索の裏側 - クックパッド開発者ブログ

    初めまして、インフラストラクチャー部の加藤 (@EugeneK) です。 クックパッドでは現在178万ものレシピが公開されていますが、目的のレシピを探すために検索機能を提供しています。 今回は検索機能の裏側の仕組みについて、インフラストラクチャーの観点からお話ししようと思います。 全ての検索機能を支えるSolrと周辺のアーキテクチャ クックパッドにはレシピの検索だけでなく様々な検索機能がありますが、その全てはSolrを活用して実装されています。 以前はMySQL Tritonnによる全文検索機能を使用していましたが、2011年頃からSolrに切り替わりました。 クックパッドではSolrをマスタ - スレーブ構成にすることで冗長性と負荷分散を実現しています。以下の構成図をご覧ください。 マスタとスレーブの間には、リピータと呼ばれる検索インデックスを中継するためだけの役割のサーバがいます。この

    クックパッドの検索の裏側 - クックパッド開発者ブログ
  • アプリ開発の品質底上げ施策をWebhooksでBotが支援する世界 - クックパッド開発者ブログ

    こんにちは。技術部の松尾(@Kazu_cocoa)です。 主にモバイルアプリ開発において、数ヶ月前よりGitHubのWebhooksを使ったとある取り組みを始めました。HipChatやSlackなどをはじめとした様々なサービスとの連携サービスを提供しているGitHubですが、Webhooksの機能を使うことで、より自分たちの開発を支援する未来を創造できればと思います。以降では、実際の使用例、その実装よりな話しへと話しをすすめます。 クックパッドにおけるWebhooksの使用例 チェックリストによるセルフチェックをPR時に実施する モバイルアプリ開発はWebアプリ開発と異なる点が多々あります。例えば、開発対象の面では端末の多様性、端末システム側設定・通信状態の多様さなど、リリースの面ではデプロイに対する制限や更新がユーザ依存であることなど、です。そのため、当たり前品質の底上げのために不具合の

    アプリ開発の品質底上げ施策をWebhooksでBotが支援する世界 - クックパッド開発者ブログ
    hamaco
    hamaco 2014/10/19
  • オリジナルフォントを使ったデザイン - クックパッド開発者ブログ

    こんにちは、ユーザファースト推進部デザイングループの元山です。 デザイナーの皆さんはWebやアプリなどをデザインする上でフォントを作った事があるでしょうか? ずいぶんと前から「これからはWebフォントの時代だ」なんて言われながらも、現実は中々使うのが難しいなぁと感じている方は多いかもしれません。 今回はクックパッドで実際に作ったオリジナルフォントを使ったWebやアプリのデザインについて事例を交えながら紹介してみたいと思います。 クックパッドでの事例 印象と機能を向上させるデザインのためのフォント ブラウザやアプリの標準のフォントではない特殊なフォントを使う理由として真っ先にあげられるのは、やはり文字の雰囲気や見た目でデザイン的な印象や見え方を向上することができる点だと思います。最近ではAppleのWebサイトもオリジナルのWebFontを使ったデザインに変わりましたね。 クックパッドでは特

    オリジナルフォントを使ったデザイン - クックパッド開発者ブログ
    hamaco
    hamaco 2014/10/14