タグ

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

  • UICollectionViewでページングスクロールを実装する - クックパッド開発者ブログ

    こんにちは。新規サービス開発部の中村です。普段は「たべドリ」アプリの開発をしています。「たべドリ」は料理の学習アプリです。詳細はこちらの記事をご覧ください。記事では UICollectionView でページングスクロールを実装する方法について解説します。 概要 上記画像が今回解説する iOS アプリのUIです。左右のコンテンツが少し見えているカルーセルUIで、以下の要件を満たすものです。 先頭にヘッダーを表示する セルが水平方向にページングスクロールする 色々な実装方法があると思いますが、今回はヘッダーがあるため複数の異なる幅のViewを表示させながら、ページングスクロールを実現する方法を解説します。実装のポイントは以下の2点です。 UICollectionViewFlowLayoutのサブクラスを作成しtargetContentOffset(forProposedContentOff

    UICollectionViewでページングスクロールを実装する - クックパッド開発者ブログ
    stilo
    stilo 2019/08/19
    UICollectionViewでカード型コンテンツの水平スクロールの事例。 #iOS #UI
  • サービス開発でぶつかってきた壁と、そのとき助けてくれた本 - クックパッド開発者ブログ

    こんにちは、開発ディレクターの五味です。クックパッドレシピを投稿してくれるユーザーのための機能やサービスを開発する「投稿開発部」に在籍しております。 投稿開発部は、2018年1月に前身となる部からメンバーを一新して発足した部署です。自分たちで1から戦略を作るため、強い実感を持ってユーザーを理解することを信条に、資料を読んだり前任者に聞いたりするだけではなく、実際にユーザーとたくさん話し、たくさんレシピを投稿し、ユーザーのことをたくさん考えてきました。 この記事では、その中でぶつかった課題を解決するために取り入れた書籍や、それをうまく業務に取り入れるために行っている工夫を紹介します。 サービス開発にはさまざまな壁が現れる ユーザーと事業目標に真摯に向き合うほど、サービス開発にはたくさんの壁が現れます。私たちも例外ではなく、部の発足以降、以下のような壁に激突してきました。 「ユーザー課題の見

    サービス開発でぶつかってきた壁と、そのとき助けてくれた本 - クックパッド開発者ブログ
    stilo
    stilo 2019/07/12
    「せっかく読んだ本から知識を”モノにする”には、読了後すみやかに得た知識を業務で実践することが1番重要だと感じます。」ジョブ理論、ストーリーとしての競争戦略、SPRINT 最速仕事術、直感と論理をつなぐ思考法
  • 1日でSwiftコンパイラを作る!Swiftコンパイラインターンを開催しました - クックパッド開発者ブログ

    こんにちは、モバイル基盤部の @giginet です。 去る3月28日、Cookpad Spring 1day Internship 2019の一環として、Swiftコンパイラコースを開講しました。 最近のSwiftコンパイラ 近年、iOSエンジニアの間ではOpen Source Swiftがホットトピックとなっています。 ここ1年ほど、わいわいswiftcというSwift言語処理系に関する勉強会が盛り上がっていますし、 先日のtry!Swiftでは、参加者がSwift自体にcontributionするOpen Source Swiftワークショップが開かれました。 Swiftコンパイラに用いられているLLVMという技術は今、多くの言語処理系で利用されています。これを学ぶことで、さまざまな言語処理系に応用することができます。 このインターンは、Swiftコンパイラを例に、LLVMに触れ、コ

    1日でSwiftコンパイラを作る!Swiftコンパイラインターンを開催しました - クックパッド開発者ブログ
  • 入力時間11%減!書きやすいエディタのUIデザイン - クックパッド開発者ブログ

    こんにちは、投稿開発部の佐野大河(@sn_taiga)です。 先日、クックパッドのiOSアプリでレシピのエディタ画面をリニューアルしました。今日はそのUIデザインの設計についてお話します。 方針は「簡素化」 エディタ画面は、レシピを考えて記録・投稿する人にとって重要な機能の一つです。レシピには材料や作り方、料理写真、タイトル、紹介文などさまざまな項目があり、頭の中にある料理をこれらの形に落とし込んでいくのはなかなか大変な作業でもあります。なので、レシピを書く際の手間を減らし、ユーザーがストレスなくレシピを書けることを目的に「簡素化」という方針を定め、改善に取り組みました。具体的に行ったことは大きく以下の二つです。 1.入力や編集のステップを少なくする 以前のエディタ 新しいエディタ 以前のレシピエディタはひとつの項目を選択するとモーダルが開き、入力を終えたら元の画面へ戻ってくるウィジェット

    入力時間11%減!書きやすいエディタのUIデザイン - クックパッド開発者ブログ
    stilo
    stilo 2019/04/01
    このUIScrollViewの使い方はエグい
  • iOSアプリの大規模なCustom URL Schemeを支える技術 - クックパッド開発者ブログ

    こんにちは。技術部モバイル基盤グループの@giginetです。 今回は、iOSアプリでCustom URL Schemeを簡単に処理するライブラリを公開しましたので紹介します。 Custom URL Schemeは、アプリの特定の画面に遷移させることができるリンク(ディープリンク)を提供する機能です。 アプリ開発をしていると、Custom URL Schemeを用いたディープリンクを実装したい需要は多いでしょう。 特にクックパッドのような、ブラウザ版を提供するWebサービスですと、アプリとWebページの行き来のため非常に多くのCustom URL Schemeを処理する必要が出てきます。 現に、クックパッドアプリでは、30以上のパターンが遷移先として実装されています。 渡ってきたURLのパーサーを愚直に書いていくのは、コードの記述量も増えますし、どのようなURL Schemeが有効なのか簡

    iOSアプリの大規模なCustom URL Schemeを支える技術 - クックパッド開発者ブログ
  • "体系的" に開発サイクルを回して "効果的" に学びを得るには - クックパッド開発者ブログ

    会員事業部エンジニアの新井( @SpicyCoffee66 )です。 Splatoon2 で各ルール S+1 以上になるため日々奮闘中のところに MHW が発売されました。 加えて最近ぷよぷよを始めたので、どう考えてもいろいろ計算が合わなくなってきました。 日おこなわれた Cookpad TechConf 2018 では「クックパッドの "体系的" サービス開発」と題し、社内でどのような点に気をつけて開発サイクルが回されているかをお話しさせていただきました。 動画・発表資料は後日アップロードされる予定ですので、よろしければ合わせてご覧ください*1。 今回は、TechConf 2018 での発表内容から、BML ループの運用について、多少の補足や要約を交えながら書きたいと思います。 サービス開発は難しい まず前提として、サービス開発は難しいです。 その難しさの大部分は、以下の2つの要因から

    "体系的" に開発サイクルを回して "効果的" に学びを得るには - クックパッド開発者ブログ
    stilo
    stilo 2018/02/11
    リーンスタートアップのBMLループの回し方。
  • Xcode のビルドログの読込 - クックパッド開発者ブログ

    モバイル基盤グループのヴァンサン(@vincentisambart)です。 開発者がどれくらいアプリのビルドを待っているのか気になったことありませんか?計測してみたらおもしろいかもしれません。どうすれば Xcode でビルド時間を計測できるのでしょうか。 プロジェクトBuild Phases の一番上と一番下にスクリプトを入れたら、ある程度計測できそうですが、制限が多そうですね。失敗したビルドや途中で止められたビルドは計測できないし、ビルドのどういうところに時間が掛かったのか詳しく分かりません。 ビルド時に Xcode がログを取っているはずなので、ログの中に時間が入っていないかな…? 最初から複雑なプロジェクトで試すのは不便でしかないので、始める前に Xcode (現時点で 9.1 ) で新規のプロジェクト(例えば iOS の Single View App)を作って、いじらずに1〜

    Xcode のビルドログの読込 - クックパッド開発者ブログ
    stilo
    stilo 2018/02/11
    Xcodeのログファイルからビルド時間を計測する
  • 料理の追体験を実現する「タイムライン」のデザイン - クックパッド開発者ブログ

    こんにちは、サービス開発部のデザイナー若月(id:puzzeljp)です。 すでにご利用していただいている方もいらっしゃると思いますが、iOS / Android アプリにタイムラインという機能が登場しました。 先日そのタイムラインのデザインについての登壇しました。 (イベントレポートはこちら) 今回はその時話しきれなかったこと、タイムラインの開発時のデザインの工夫や苦労についてご紹介します。 タイムラインとは フォローしているユーザーさんやすべてのユーザーさんの新しいレシピ投稿やつくれぽが見られるようになりました。 レシピ検索では出会えなかった料理に出会うことができ、実際にレシピが見られるので料理をすることができます。 どんな使い方があるかと言うと例えば「Aさんがパエリアを作っている!私作ったことないけど、Aさんが作っているなら私でも作れそう。作ってみよ!」のような料理の追体験ができるよ

    料理の追体験を実現する「タイムライン」のデザイン - クックパッド開発者ブログ
    stilo
    stilo 2017/10/02
    なぜ今更タイムラインを実装したのか??...
  • 分析SQLのコーディングスタイル - クックパッド開発者ブログ

    SQL、書いてますか? こと大規模データ処理の分野においてはSQLはもはや標準インターフェイスであり、 分析やらバッチやらに関わっている皆様は日々大量のSQLクエリーを生産していることと思います。 そこでちょっと気になるのが、 SQLのコーディングスタイルってどうするのが一般的なんだっけ……? という点です。 イマドキはSQLなんてO/R mapperに吐かせることが多いからなのか、 それともコードを広い範囲で共有することがそもそもないからか、 SQLのコーディングスタイルについて見聞きすることは他のプログラミング言語に比べるとだいぶ少なく、 いまいち決定版と言えるスタイルがないなと感じています。 そんなわけで日は、SQLのコーディングスタイルについての意識を活発化させるべく、 クックパッドでわたし(青木)が使っているコーディングスタイルから特徴的な点を紹介したいと思います。 特に、分析

    分析SQLのコーディングスタイル - クックパッド開発者ブログ
    stilo
    stilo 2016/11/09
    「おまえは今まで使ったSQLのキーワードがいくつあるか覚えているのか?」
  • 開発速度を上げるための Pull-Request のつくり方 - クックパッド開発者ブログ

    こんにちは、投稿開発部の森川 (@morishin127) です。クックパッド、お料理アルバム、みんなのお弁当の iOS アプリの開発等に携わっています。 クックパッドでの開発は GitHub Enterprise 上で行われており、書いたコードをプロダクトに取り込む前には基的に第三者のコードレビューが必須です。コードレビューはプロダクトの品質向上に貢献していますが、往々にして結構な時間と労力がかかるものです。Pull-Request を出してレビューをしてもらい指摘の修正を繰り返していると、場合によってはマージに数日〜1週間ほどかかってしまうこともあります。自分の開発速度を速めるため、また周りのエンジニアの開発速度を下げないためにレビューしやすい Pull-Request を出すことは重要です。この記事ではレビューしやすい Pull-Request のために心がけていることを紹介したい

    開発速度を上げるための Pull-Request のつくり方 - クックパッド開発者ブログ
    stilo
    stilo 2016/08/17
    プルリク事例。参考になりました。
  • Spotlight 検索に iOS アプリのコンテンツを表示させる - クックパッド開発者ブログ

    こんにちは。検索・編成部の中村です。いよいよ来月は WWDC 2016 が開催されますね。どんな発表があるか今から楽しみです。エントリでは、Core Spotlight APIs を使用してアプリ内のコンテンツを Spotlight 検索に表示させる方法について解説していきます。 Spotlight 検索 Spotlight 検索はホーム画面を右や下にスワイプして表示します。画面上部の検索窓からアプリ内のコンテンツを検索でき、ヒットした項目をタップするとアプリが起動して目的のコンテンツが表示されます。この仕組を利用してユーザーは素早く目的を達成できます。数多くアプリをインストールしているユーザーは、アプリの検索に利用しているのではないでしょうか。 iOS クックパッドアプリ(v16.3.0.0 以降)では、特売情報を掲載している店舗が Spotlight 検索にヒットします。店舗をタップ

    Spotlight 検索に iOS アプリのコンテンツを表示させる - クックパッド開発者ブログ
    stilo
    stilo 2016/05/20
    Google検索からSpotlight検索への流れ、ここに注目しています。
  • Swift2で作るコマンドラインツール - クックパッド開発者ブログ

    会員事業部の三木(@giginet)です。 この記事では、業務改善のために開発者向けのツールをSwiftで開発してみたため、その知見についてお伝えしたいと思います。 なお、この記事はXcode7.1上でSwift2.1を使った開発を前提としています。 作ったもの クックパッドiOSアプリでは開発の際に、新しい機能を実装したり、インターフェイスを改善したあとにiOSシミュレーターの動画を撮影しPull Requestに貼り付けています。 動画を撮影する際には、汎用的にスクリーンキャストを撮影する社内ツールを使っていたのですが、使いづらい面も多かったため、 簡単にiOSシミュレーターの操作をアニメーションgifとして記録したいという需要がありました。 そのため、空き時間を使って、簡単なユーティリティを実装しました。 なぜSwiftで作るのか 今回は、OS Xの開発用SDKであるCocoaを使い

    Swift2で作るコマンドラインツール - クックパッド開発者ブログ
    stilo
    stilo 2015/11/09
    これはマネしてやってみたい!
  • iOS9 のリリースでクックパッドに起きたこと - クックパッド開発者ブログ

    こんにちは、技術部モバイル基盤グループの茂呂(@slightair)です。 モバイル基盤グループでは、クックパッドの iOS/Android アプリに関する様々な仕事をしています。 不具合を抑え、品質を保ちながら安定してリリースサイクルを回せる環境づくり アプリの開発者がサービス開発に専念できるように、コードリファクタリングやライブラリの整備 OSやライブラリ、開発ツールのバージョンアップに伴う調査・検証・対応 この記事にはiOS9がリリースされた結果、クックパッドのサービスに何が起き、どういう対応をしてきたかをまとめます。 Universal Links iOS9 で Universal Links という機能が入りました。これは、Safari で開いた Web ページ中のリンクに対応したアプリが端末にインストールされていれば、アプリでリンク先のコンテンツを表示できるというものです。 う

    iOS9 のリリースでクックパッドに起きたこと - クックパッド開発者ブログ
    stilo
    stilo 2015/10/21
    けっこう闇が多い... AutoLayoutを使っていなかった技術的負債の返済は大変そうだ。
  • 心地よいアニメーションを求めて - クックパッド開発者ブログ

    こんにちは、買物情報事業部の三浦です。 日々アプリを使っていて、ふとしたところでさりげないアニメーションや気の利いた効果音があると心地よく感じますね。 UIKitには手軽にアニメーションを実装できるようにAPIが用意されています。少し工夫するだけで効果的な動きを作ることができます。 サンプルを見ながらみていきましょう。 Basic まずはUIViewのクラスメソッドのシンプルなアニメーションです。 オブジェクトを下にアニメーションさせます。 UIView.animateWithDuration( 0.5, delay: 0.0, options: nil, animations: { () -> Void in self.circle.center = CGPoint(x: 0, y: 100) }, completion: nil) 動きの加減をコントロールするイージングもUIViewA

    心地よいアニメーションを求めて - クックパッド開発者ブログ
  • 1