フレームワーク の検索結果:

クックパッドマートのドライバー向けWebアプリケーション

…。Reactベースのフレームワークは他にも選択肢がありますが社内でも実績・ノウハウのあるNext.jsを選びました。 ネイティブ特有の機能 リプレイスの際、大きなハードルだったのはネイティブアプリ特有の機能をどうするかということです。幸いにも最近のブラウザはかなりの機能を実現できるようになってきており、絶対にネイティブアプリでなければならないということが少なくなってきました。 カメラ 集荷・納品時の検品のためにQRコードを読んだり、納品結果の撮影のために使用しています。 一番…

Cookpad Summer Internship 2022 を開催します!

…ス開発で活用しているフレームワークを中心に講義を実施します。そして、実際にユーザーとコミュニケーションを取りながら価値仮説を検証し、課題解決のためのプロダクトづくりに取り組んでいただきます。 サービス開発に日々注力している社員のサポートを受けつつ、アウトプットに対して実際のユーザーからレビューやフィードバックを受けることができる短い期間ながら実践的な内容となっております! こちらの開催日や詳細については別途、後日に公開を予定しております。 最後に 参加してくださる皆さまのため…

クックパッドの基盤をフル活用して新卒が新規アプリケーションを作った話

…ずアプリケーションのフレームワークとして社内で多くの採用実績がある Ruby on Rails を採用しました。クックパッドでは多くのケースでサーバーの実装に Ruby on Rails が採用されており、社内にも大量の知見やライブラリなどの資産があることが決定の主な理由です。 また、新規作成するアプリケーションの API の方式として、以下の2つを検討しました。 RESTful Garage なる Restful API をサポートする gem がある。 認証を設定すればク…

モバイルアプリ開発において宣言的UIフレームワークを利用する際のコンポーネント粒度についての考察

…ーム向けの宣言的UIフレームワークを利用しており、 クックパッドAndroidアプリの買い物機能ではJetpack ComposeというAndroid向けの宣言的UIフレームワークを利用している点です。 モバイルアプリ開発で宣言的UIフレームワークを利用する利点 SwiftUIやJetpack ComposeといったUIフレームワークを利用することで、従来のUI構築の手法と比べて以下のようなメリットがあります。 コード量を減らすことができる 複雑・多様な条件のある画面実装をシ…

既存実装を活用しつつJetpack Composeを用いてクックパッドAndroidアプリの買い物機能を高速に開発している話

…装の活用 宣言的UIフレームワークの活用 方針 実装について Jetpack Compose版VIPERベースのアーキテクチャ Presentationレイヤーについて データフローについて UI層でのみJetpack Composeを活用する実装に関して UILayerの実装に関して Activity Fragment ViewModelの実装に関して Screenの実装に関して 実際どうだったのか うまくいった点 うまくいかなかった点 まとめ クックパッドでは一緒に働く仲…

データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました

…itz.js というフレームワークを使いました。Blitz.js は Next.js と Prisma を内包した Ruby on Rails 風の開発体験を提供するフルスタックフレームワークとなっています。Next.js と Prisma の機能を使うことに加え、rails generate 風なコード生成機能があったり "Zero-API" という思想で作られたデータベースクライアント実装があったりします。"Zero-API" は面白くて、サーバーサイドの実装でもクライア…

音声インターフェースに最適なビジュアルインタラクションを実現するための APL テクニック

…ラットフォームで似たフレームワークを利用した経験がある方からすれば当たり前のことのように聞こえるかもしれませんが、 APL では意外とやりがちなので意識しておくと良いと思います。 SendEvent によるリクエストの処理は Intent Request に合わせる APL には SendEvent という、サーバーにリクエストを送信するコマンドが用意されています。例えば画面遷移をしたい場合にはサーバーにリクエストを送信して新しい画面を受け取る必要があるため、このコマンドを使…

Xcode12時代のCarthageで起こった問題とXCFrameworkへの移行

iOS

…Sアプリに組み込めるフレームワークをビルドします。Mac上で動くiOSシミュレータと実機の両方で使えるようにするため、それぞれのCPUアーキテクチャのためのバイナリを lipo というツールで1つのバイナリにまとめて、XXX.framework というファイルを作ります。lipoで作られた、複数のアーキテクチャ向けのバイナリを含むものはファットバイナリと呼ばれます。 この仕組みはXcode11以前から用いられてきましたが、Xcode12のツールチェインを使って、従来の方法でラ…

形態素解析を行うだけのバッチをつくる

…して、SQL バッチフレームワーク bricolage を使い、TSV の中身を Redshift に COPY します(4-3)。これで、数億行のロードでも 10 分弱で終わります。 最終的に、下表のようなテーブルに解析結果が保存されます。これはタイトルの解析結果を保存したテーブル(上図では recipe_title_words)です。一行が一単語です。主なカラムは position(単語の出現位置)と surface(表層形)、pos(品詞)、base(原形)です。ana…

Rails に Babel と Rollup を組み込んで CoffeeScript を JavaScript に段階的に移行した話

…eeScript をフレームワークに統合し、新しい JavaScript コードは CoffeScript で書くように推奨していました。レシピサービスでも CoffeeScript のコードが多く書かれました。 いっときブームを起こした CoffeeScript でしたが、 JavaScript 自体がそれなりに書きやすく進化し、 TypeScript など有力な AltJS が台頭してきた現在では、積極的に採用する理由はほとんどなくなってしまいました。むしろ「JavaSc…

SwiftUI を活用した「レシピ」×「買い物」の新機能開発

… アプリを構築できるフレームワーク*3です。2019年の WWDC で Apple から発表されました。従来の UIKit と比べて、より簡潔なコードで UI を組める点が特徴的です。 利点 UI を作りやすく、生産性が向上する 将来的に標準化しうる SwiftUI にキャッチアップできる UIKit と組み合わせて使える Dynamic Type、Dark Mode など iOS の最近の機能が考慮されている 欠点 まだ挙動に不具合が残っている部分もある iOS 12 以前…

データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020

… Bricolageフレームワークで作ってロードしています。 Redshift内での処理はBricolageを使ったSQLバッチが大半です。 ごく一部はUDFを使ったり他システムへ処理を投げたりしていますが、 9割以上はpure SQLで処理しています。 一方のデータエクスポートも3系統あります。 管理画面などの社内アプリケーション、BIツール(社内標準はTableau)、 それに他システムへのバルクエクスポートです。 バルクエクスポートについてのみ詳細を説明すると、 基本的…

Compositional LayoutとDiffable Data Sourceを使ってiOSアプリのつくれぽ詳細画面を実装する

iOS

…ことでデータの保持をフレームワーク側に任せることができ実装が簡素化できる 型による制約が強いため、データとUIの不整合を防止できる 実装内容 全てのコードを載せると全体が分かりにくくなってしまうため、一部割愛しながら実装内容についてご紹介します。 DataSourceの定義 まずdataSourceですが、以下のような定義になっています。 var dataSource: UICollectionViewDiffableDataSource<Section, Item>! Se…

AWS の This is My Architecture(動画)でS3を中心としたセキュリティログ基盤の紹介をしました

…ティアラート自動対応フレームワーク で紹介しております。 また、ログ検索については動画中でgraylogを使っていると話していますが、その後Athenaをベースとしたセキュリティログ向け全文検索システムminerva に移行しており、graylogは退役しています。こちらについてはAmazon Athena を使ったセキュリティログ検索基盤の構築 でも紹介しておりますので、よろしければあわせて御覧ください。 まとめ 最初、この撮影の話を聞いたときは「まあ5分喋るくらい大したこ…

レシピサービスのフロントエンドを Next.js と GraphQL のシステムに置き換えている話

…js(フロントエンドフレームワーク) GraphQL(API) 技術選択する上でまず最初に考えたのは、TypeScript を中心に据えることです。型チェックによる整合性の検査、補完やリファクタリングを中心としたエディタの支援など、TypeScript を導入することによる生産性の向上は非常に大きいものがあります。 次にフロントエンドの描画ライブラリはシェアの大きさやTypeScript との相性、使いやすさなどを考慮したうえで React を採用することにし、サイトの性質上…

検索インフラを安全に切り替えた話

… & 対策 あらゆるフレームワークに対して、バージョンアップの正攻法はまずリリースノートおよびチェンジログを調べるところから始まるのかなと思います。 ですが今回の場合だと、 Solr 4.9 から Solr 8.6 までの変更履歴を全て調べることになるので流石に無理です。 ではどうやって変更を調べるのか。今回は実クエリを利用することにしました。 実際のクエリを数日分抽出し、 Solr 4.9 と Solr 8.6 に投げてそのレスポンスの差分を取りました。そこで見つかった差分…

nerman: AllenNLP と Optuna で作る固有表現抽出システム

…している自然言語処理フレームワークであり, 最新の機械学習手法に基づく自然言語処理のためのニューラルネットワークを簡単に作成できる便利なライブラリです. AllenNLP は pip でインストールできます. pip install allennlp AllenNLP ではモデルの定義や学習の設定を Jsonnet 形式のファイルに記述します. 以下に今回の固有表現抽出モデルの学習で利用する設定ファイル(config.jsonnet)を示します. (モデルは BiLSTM-C…

負荷試験用 Web コンソールの開発

…をデプロイするためのフレームワーク serverless framework を組み合わせ、Artillery を AWS Lambda 上で実行するものです。Lambda function の実行時間やリソースの制限に合わせてテストシナリオを分割し、同時並列に Lambda function を実行し、目標負荷を実現する仕組みです。テストシナリオはドキュメントが充実している Artillery の記法 (YAML) で書くことができます。例えば、https://exampl…

サーバーレスで作るセキュリティアラート自動対応フレームワーク

…率化するため、独自のフレームワークを構築して利用しています。具体的には、セキュリティアラートが発生した際に自動的に様々なデータソースから関連情報を収集し、収集した情報をもとにアラートのリスクを評価、そして評価結果をもとに自動対応をするという一連のワークフローを実現するフレームワーク DeepAlert をAWS上にサーバーレスで構築しました。この記事では、このフレームワークを構築した経緯やアーキテクチャ、仕組みについて解説します。 セキュリティアラートの対応 ここでは、セキュ…

プロと読み解くRuby 2.7 NEWS

…です。 ただ、現代のフレームワークでは、$SAFE について考慮せず、適切な taint フラグの付与が行われないなど、$SAFE が実質的に利用可能ではなくなっていました。このような不完全な状況で、$SAFE を間違って信頼してしまうとセキュリティ上問題なので、いっそ消してしまおう、というのが今回の提案です。 $SAFE に何か代入しても、下記のような警告が出ます。 $SAFE = 1 #=> t.rb:1: warning: $SAFE will become a nor…

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

…SQL バッチジョブフレームワークである bricolage を使った、冪等なジョブの実装例を示します。 クックパッドのDMPと冪等なジョブ クックパッドのプライベートDMPは、データウェアハウス(社内の巨大な分析用データベースで、クックパッドでは Amazon Redshift を使っている。以下 DWH) 上で構築されており、主に cookpad.com 上のターゲット広告や、社内のデータ分析に活用されています。材料となるデータは、広告のインプレッションログや、クックパッ…

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

…「スプリント」というフレームワークを紹介し、その実践手順を詳しく解説している。 どう活用したか? 施策検証の段階にある施策で何度かそのまま取り入れて、スプリントを実施しました その後、一部の手法を部分的に切り出して、普段の会議に取り入れるようにしました やってみてどうだった? スプリント自体は一長一短あると感じます。良いところは、テーマに対して参加者全員で大量のインプットを得て、めちゃくちゃ集中して考えることです。メンバーの脳内同期やステークホルダーの巻き込みにも効いたりしま…

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

… や Vue などのフレームワーク、CSS も 素の CSS から Sass、PostCSS など様々な組み合わせがあり、それらの組み合わせをインストーラーでまかなうのは複雑すぎると思ったからです。 なので開発者自身が自分が使いたいものを選んで webpack.config.js を設定していく必要があります。webpack や各種言語やフレームワークのドキュメントを見て webpack の設定をがんばってください、でもいいのですが、何も知らない状態から webpack を設…

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

iOS

…UIという新たなUIフレームワークが発表されました。 SwiftUIはReactやFlutterのような形式でViewを宣言して画面を構築できる、これまで使用されてきたUIKitとは全く異なる形式のフレームワークです (AppleのSwiftUI紹介ページ ) この発表をうけてKeynoteはとても盛り上がっていました。期間中もSwiftUIの話題でもちきりで、セッションも多く開かれていました SwiftUIでできるようになること DSLでViewを宣言的に適宜できるようにな…

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

… 非同期リクエストのフレームワークがあり、実行効率が高いとなると、定番はJVM系かGoです。 そこで結局、何度もJavaを利用した実績があったこと、 Java 8とJava 9での改善およびLombokの登場により言語仕様に目立った不満がなくなったこと、 さらに品質の高いAWS SDKやDBドライバがあること、の3点からJavaとSpringに落ち着きました。 なお正確に言うと、限定公開を始めた当初はリクエスト数も非常に少なかったため、 Spring WebMVCを使って同期…

GraphQL Asia 2019 で登壇しました

…大の価値は、RPC フレームワークであるFacebook's branch of Apache Thrift と GraphQL を併用した場合のアンチパターン及びエッジケースについて紹介されていることでした。おそらくこの組み合わせを大規模なサービスで用いているのは Airbnb が初めてとのことで、彼らならではのチャレンジから生まれる知見が世に出たことは、今後の GraphQL community の資産となることでしょう。 発表資料 メディアプロダクト開発部のうち、動画領…

NPSアンケートを自動分類した話

…時点では分かち書きのフレームワークとしてJanomeを選択しました。今回はベクトル化ではTF-IDFを採用しましたが、将来的にfastTextやWord2Vecとの比較も考えています。 分類 機械学習でよく使われるscikit-learnの公式ドキュメントにはChoosing the right estimatorというページがあり、今回モデルの選定に利用しました。具体的には対象となるデータはラベルつきのデータがあり、かつ量が多くないためLinear SVCを選択しました。 …

【開催レポ】Cookpad.apk#2を開催しました

…ン向けのE2Eテストフレームワークです。以前はUIAutomatorと組み合わせて使うことが一般的でしたが、内部状態に干渉できないため通信が終わるまでsleepを入れるなどのノウハウが必要でした。Espresso Driverが登場したことでContextにアクセスできるなどより高度な操作が可能になりました。 安部 建二「Dynamic feature moduleの基本」 Dynamic feature moduleの基本 五人目はKenji Abe からDynamic f…

得られた知見をフリーズドライ〜情報共有のための仕組み Report.md の紹介〜

…りますが、社内独自のフレームワークである価値仮説シート*3に沿って表現することが多いです。 形式に迷う場合は (ターゲット) は (ジョブ/インサイト) したいが (何らか要因でそれができていない状況) なので、 (体験) すると (目的) になる といったフォーマットで表現してみるのがよいと思います。 仮説分析 そもそも上記の仮説はどこからきたのか、その妥当性はあるのかといったような仮説の価値自体やその詳細を示す項目です。 具体的には ターゲットボリューム 「仮説」で定義し…

Cloud Firestoreのrulesのテストを全てローカルエミュレータを使うように書き換えた話

…viderと、テストフレームワークであるjestを使ってテストを実際に書いてみます。 rulesとテストケースはCloud Firestore emulator quickstartと同じもので組んでみました。 import * as ftest from '@firebase/testing' import FirestoreTestProvider from './firestoreTestProvider' const testName = 'firestore-emu…