サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
tech.every.tv
はじめに ML Kit とは ML Kit Document Scanner API とは 主なクラスについて GmsDocumentScannerOptions (オプション) スキャナーのモード 最大ページ数 フォトギャラリーからのインポートの可否 結果のフォーマット GmsDocumentScanning (スキャナーの開始) GmsDocumentScanningResult (結果処理) まとめ 余談 未実装のキャプチャーモード はじめに トモニテでAndroid開発を担当している岡田です。 先日、ML Kit Document Scanner API のベータ版がリリースされました。 公式ドキュメントやサンプルアプリを参考に、今回はAndroidでの実装方法・内容をご紹介したいと思います。 以下に参考にしたサイトのリンクを示します。是非覗いてみてください。 android-de
はじめに 目指す状態と現状のギャップを考える 足りない情報を要求・整理 コミュニケーションツール、ドキュメンテーションツールの重要性 契約上の引き継ぎ時点を迎えての作業 Git リポジトリの移管 クラウドベンダー、ドメインレジストラなど各種契約の移管 AWS ドメインレジストラ 各種管理者の認証情報の受領 引き継ぎの後にやったこと クラウドサービスの料金の傾向・コスト構造の確認 手動運用の自動化 監視機構の確認、追加 共同でのトラブル対応 おわりに はじめに エブリーで小売業界向き合いの開発を行っている @kosukeohmura です。 今年、エブリーでは ネットスーパーのシステムを株式会社ベクトルワン様から引き継ぎました。その裏で、私たちのチームでは知見のないシステムを、自分たちで運用・開発可能な状態にするように様々なことをやってきました。 ここでは every Tech Blog A
はじめに こんにちは、retail HUBで Software Engineer をしているほんだです。 今回は私が現在着手している事業譲渡されたアプリを社内で持続的なプロダクト開発を行える状態にするリプレイスプロジェクトをどのように行っているか紹介しようと思います。 この記事ではリプレイスを行うにあたってどのようなことを課題に感じてその課題に対してどのような解決策をとったか主にサーバーの実装について説明しています。 ネットスーパーアプリとは 現在弊社ではネットスーパーアプリとして Web アプリとスマホアプリの二つのシステムを提供しています。 Web アプリは販促コンテンツの設定や売り上げの管理・集計を行うことが可能な管理システムと受け取り方法に応じた価格変更や送料変更にも対応し、消費者の柔軟な買い物を実現するお客様向けアプリを 17 の小売り様に、スマホアプリでは Web アプリのお客
お久しぶりです,トモニテ開発部でSoftware Engineer(SE)をしている鈴木です. 私が普段実装しているトモニテ相談室のフロントエンドはTypeScriptを採用しているのですが,トモニテ相談室の実装中にTypeScriptでは検出することが出来ないミスをしてしまい,原因解明までに時間を要した経験があります. この経験からTypeScriptを普段より少し型安全にする手法を学んだので,本記事で具体例を交えながら紹介させていただこうと思います. はじめに TypeScriptは型を区別するための方式として構造的型付けを採用しています. したがって,type宣言子による宣言は単に構造に対してエイリアスを張っているに過ぎず,トランスパイラはエイリアスの参照先の構造のみを検査しています. この自由度は名前的型付けとは対称的であり,TypeScriptがJavaScriptに対してシーム
はじめに こんにちは、retail HUBで Software Engineer をしているほんだです。 今回は私が現在着手している事業譲渡されたアプリを社内で持続的なプロダクト開発を行える状態にするリプレイスプロジェクトをどのように行っているか紹介しようと思います。 …
はじめに エブリーでCTOをしている今井です。先日の池のブログ でも少し触れておりますが、2月にDevEnableグループ を設立したので、その紹介と設立した背景ついてお話しできればと思います。 tech.every.tv DevEnableグループとは DevEnableグループはCTO室に属しているグループで、開発本部を横断し、組織の活性化・成長環境の提供・発信・広報の強化・採用など、さまざまな課題解決を推進するグループです。 DevEnableという名前は Developer Enablement から取られており、「社内外から憧れる開発組織へ」というのをミッションに、エンジニア自身やエンジニア組織がより活性化し、成果を出し続けられる人・組織にすることを目標としています。 Developer Enablementは各社定義もかなり幅があるように感じておりますが、自分は、エンジニア自身
はじめに こんにちは。DELISH KITCHEN 開発部 SERS グループ兼、CTO 室 DevEnable グループ所属の池です。 SERS グループでは主に小売向けプロダクトの開発を行なっており、DevEnable グループでは社内開発組織活性化に向けた活動を行なっています。 今回は DevEnable グループの活動の一つである、”TechTalk” という社内技術共有会の取り組みにスポットを当てたイベントレポートをお届けします。 DevEnable グループとは 2024 年 2 月に DevEnable グループが新設されました。有志が組織活性化委員会として行なっていた活動を正式な組織活動としてより広く深く取り組むためのグループです。 私たち DevEnable グループのミッションは「社内外から憧れる開発組織へ」です。そのミッションの実現に向けて採用・発信・成長環境などの課
はじめに 子育てメディア「トモニテ」でバックエンドやフロントエンドの設計・開発を担当している桝村です。 エブリーは、現在 GitHub Copilot Business を持つ Organization アカウントであるため、多くの開発メンバーが Github Copilot を業務で活用しています。 Github Copilot は、コーディング時に AI ペアプログラマーからオートコンプリート スタイルの候補を提示する拡張機能です。 github.com Github Copilot のユースケースとして、コーディングにおける補完はもちろん、コメントからのコード・テストの自動生成やコードの説明を求めるなど、様々な場面で活用しています。 今回は Github Copilot Chat について、その基本的な機能や使い方を整理しつつ、開発者体験が向上するような活用事例を考えてみました。 前
はじめに TIMELINE開発部の内原です。 本日はGo言語のテストにおける可読性について考えてみます。この記事を読んでいただいている皆さんにも、テストを書いていて以下のような問題を感じた経験があるのではないでしょうか。 既存のコードに機能追加をするためテストコードにもテストケースを追加しようとしたが、テストコードが複雑で読み解きづらく、テストを追加するのに苦労した テストケースの種類が多く、少しデータを追加しただけでも既存のテストが動かなくなる テストデータの登録方法が複雑で、テストコードの実装以前に手間取る 上記のような問題に対処するべく、実践的なシナリオに従ってGo言語のテストコードを実際に書きつつ都度改善していくことにします。 仕様(ver.1) ユーザ情報には名前、状態(有効、無効)とがある 有効なユーザ一覧を返却する関数 LoadActive() を実装する。その際並び順はID
WWDC23で発表されているように、Xcode 15からPrivacy Manifestsという機能が追加されています。 Privacy Manifestsの実体は PrivacyInfo.xcprivacy という名前のplistファイルで、アプリやSDKのプライバシーに関する情報を記述します。 2024年春以降、Privacy ManifestsはApp Storeのレビューの対象になり、新規やアップデートの際に適切に対応しないとリジェクトされるようです。 Privacy Manifestsにはプライバシーに関する複数の情報が記述できますが、レビューで義務化されるものはその一部だけのようです。 この記事では、2024年春時点でアプリに求められる最低限の対応について調べました。 参考 developer.apple.com developer.apple.com developer.ap
エブリーで小売業界向き合いの開発を行っている @kosukeohmura です。 昨年、エブリーではネットスーパーの事業を株式会社ベクトルワン様から引き継ぎました。引き継いだシステムを運用していく中で、ネットスーパーの各種サイトや API に使用している 20 個超の SSL 証明書の有効期限を切らさないように更新していく必要があり、そのために監視を導入したお話をします。 引き継ぎ作業の概観については以前公開しました ゼロからはじめるシステム引き継ぎ - every Tech Blog に書きましたので、合わせて御覧ください。 背景とモチベーション システムを引き継いだ時点では SSL 証明書の更新の運用は素朴なものでした。具体的にはエンジニアが有効期限を切らさないようにたまにそれぞれのサイトの有効期限をチェックし、有効期限が近づいたものを発見次第手動で更新作業を行うというものです。抜け漏
はじめに はじめまして。DELISH KITCHEN開発部の羽馬(@naokihaba)と申します。 私が所属するDELISH KITCHEN開発部では、現在Nuxt3へのアップグレードに向けた取り組みを進めています。 この記事では、私たちが行っているNuxt3へのアップグレードに向けた取り組みについて紹介いたします。 移行背景 私が所属するDELISH KITCHEN開発部では、いくつかのプロダクトでNuxt.jsバージョン2.xを利用しています。 しかしながら、Nuxt.js@2.xのサポートは2024年6月30日に予定されており、Nuxt3にアップグレードする必要が出てきました。 そこで、私たちはNuxt3へのアップグレードに向けて「Nuxt3に移行するべきか、それともNext.jsに移行するべきか」という議論を続けてきました。 Nuxt3への移行を選択した理由 近年、Next.js
はじめに こんにちは。DELISH KITCHENでデータサイエンティストをやっている山西です。 今回は、挑戦WEEKにて実践したDELISH KITCHENユーザーのクラスター分析事例についてご紹介いたします。 挑戦WEEKとは 「弊社開発メンバーが通常業務から離れ、技術的に何かに集中して挑戦する」という位置付けの1週間です。 詳細はCTOの今井が下記記事にて説明しておりますので、よろしければ併せてご覧ください。 tech.every.tv 本記事の想定読者 Webサービスの分析従事者(PdM, データサイエンティスト, データアナリスト) クラスター分析の実務例に興味がある人 レシピ提供サービスの分析事例に興味がある人 サービスが手がけるドメイン知識を活用した分析事例に興味がある人 説明しないこと クラスタリングアルゴリズムの統計/機械学習的性質の詳細 扱ったデータの具体値に触れるよう
はじめに こんにちは トモニテ でバックエンド周りの開発を行っている rymiyamoto です。 今回はトモニテの新規事業として、2023 年 11 月 30 日にローンチした家族・家庭や恋愛に対する悩みをプロのカウンセラーと相談出来る新サービス トモニテ相談室 の開発に関わる中で API サーバーの開発環境での工夫について紹介していきます。 トモニテ相談室の通話周りの基盤の話は別の記事で紹介されていますので、こちらも合わせてご覧いただけると幸いです。 tech.every.tv 技術選定 新規でサービスを立ち上げるに当たっての技術選定は 2 点を意識して選びました できるだけ既存の技術をを使う 面倒なところは楽できるようにする できるだけ既存の技術をを使う こちらに関しては基本的にはトモニテの技術スタックを踏襲することにしました。 使用言語: Go フレームワーク: echo インフラ
はじめに こんにちは トモニテ でバックエンド周りの開発を行っている rymiyamoto です。 トモニテ ではこれまで構成を AWS の EKS を使ってきましたが、2 月の初旬に ECS に移行したのでその内容を紹介していきます。 経緯 移行を決断したのは最大の理由は、現状のメンバーで kubernetes(以下 k8s) のをメンテナンスしていくコストが高すぎるためです。 k8s 自体が高頻度にアップデートが進んでおり、日々の業務を進めがらのキャッチアップが難しく、いざアップデートするのは EKS のサポートが切れる間際になってしまい後手に回っていました。 (大体年 1 回ぐらいのペースでやっていました) 対応をすすめる際もバージョンが大きく飛んでしまうため、リリースノートを追ってちゃんとアップデートを完了するにはだいたい 1 メンバー 1 ヶ月ぐらいはかかってしまいます。 かかる
ドウデュース、武豊さん、さすがの競馬でしたね。 CTOの @imakei_ です。株式会社エブリーの2023年アドベントカレンダーの締めとなる25日目のブログです。 他のブログも力作が揃っておりますでの、まだの方はぜひ こちら をご覧ください! 本ブログでは、2023年の振り返りと、2024年に向けた思いを書きたいと思います。 2023年は、開発本部としても「挑戦WEEK」を始めたり、 7月から会社としても「挑戦」をテーマに掲げるなど、 「挑戦」をたくさん行った1年となりました。 2023年のハイライト 開発本部としての挑戦をいくつか振り返ります。 コンパウンドなプロダクトへの挑戦 弊社はDELISH KITCHEN、トモニテ、TEMELINEと3つのカンパニーに分かれ、 ドメインの異なる複数のプロダクトを運営しています。 これだけでもコンパウンドといえばコンパウンドなのですが、 さらに各
はじめに every Tech Blog Advent Calendar 2023 24日目の記事になります。 DELISH KITCHENでデータサイエンティストをしている山西です。 普段はDELISH KITCHENの企画/改善に向けた分析をPdMと連携しながら行っています。 今回はその経験談をもとに、分析用ログ策定の流れを改善&仕組み化した事例をノウハウとして紹介したいと思います。 経緯: ログがカオス DELISH KITCHENサービスの改善に向けた分析では、ユーザーのイベントログ(ユーザーがいつ、どこで、何を見たかの情報が含まれるもの)をデータとして利用しています。 これをSQL等の手段で集計し、分析を通して意思決定に向けた示唆が得られるような利活用をしています。 ところが、ログをいざ集計しようとなると困難に直面することが多々ありました。 これは、歴史的経緯から行き当たりばった
はじめに この記事は、every Tech Blog Advent Calendar 2023 の21日目の記事です! 男梅シート、あのクセになるしょっぱさと噛めば噛むほど溢れ出てくる旨さは悪魔的ですよね。僕の推しです。 初めまして!エブリーで内定者インターンをしている @きょー です! インターンでは業務でサーバーやフロントをタスクベースで開発しています。 現在フロントのコードをリプレイスしていて、Eslintの設定ファイルを見直す機会をもらったのでその際に得た知見を共有していきたいと思います! 導入に至った背景 We expect the first alpha release of ESLint v9.0.0 to be released in December or January, depending on the progress we make on our tasks. E
はじめに こんにちは!トモニテにて開発を行なっている吉田です。 この記事は every Tech Blog Advent Calendar 2023 の 21 日目の記事となります。 今回は、私が実務に入る前に理解していたらもう少し開発速度を上げられたかなと思うことについて取り上げます。 経緯 私は今年の 2 月にエブリー入社し、エンジニアとしてのキャリアも同じタイミングでスタートしました。 入社してもうすぐ1年経つのですが、日々の業務に取り組む中でさまざまなサービスや技術にふれてきました。 出会うもの全てが未知との遭遇でエブリー入社当初、知らないことだらけでまずい!と思ったことを覚えています。 そこで今回はタイトルの通り「実務に入る前に理解していたらもう少し開発速度を上げられたかなと思うこと」、その中でもアークテクチャとテストについて取り上げます。 エンジニアとしての初心者の立場からの視
はじめに この記事は every Tech Blog Advent Calendar 2023 の17日目の記事です。 先日 DELISH KITCHEN アプリにライブ配信機能が追加されました。 開発をはじめてから2ヶ月弱を経て、ついにリリースです。 今回はライブ配信画面の UI でソフトウェアキーボードの動きに追従する View の実装を簡単なサンプルを用いて紹介したいと思います。 ゴール コメントにフォーカスを当てるとソフトウェアキーボードが表示され、コメントはキーボードの上部に追従する。この動きを作っていきます。 仕様 構成要素は次の3つです。 動画プレイヤーの View コメントの EditText いいねの ImageView 動作仕様は次の通りです。 動画プレイヤーは 16:9 の表示 いいねボタンは固定 コメントはソフトウェアキーボードに追従し、ソフトウェアキーボードが表示
お久しぶりです,トモニテ開発部でSoftware Engineer(SE)をしている鈴木です. every Tech Blog Advent Calendar 2023 の18日目を担当する事になりましたので,鈴木が関わっているトモニテの新規事業についてお話させていただきます. はじめに トモニテ相談室のロゴ トモニテは2023年11月30日に家族・家庭や恋愛に対する悩みをプロのカウンセラーと相談出来る新サービス トモニテ相談室 をローンチしました! 有り難いことに,新卒2年目にも関わらずトモニテ相談室のローンチメンバーの1人に選任していただき,webサイトとそれに必要なAPI全般,及びサービスの基盤である相談の仕組みを任せていただきました. 開発当初,通話形式での相談を提供することだけが決まっており,通話に関する技術に対して弊社に知見があまり無かったことやコスト面,そしてリリースまでの工
こんにちは。開発本部のデータ&AIチームでマネージャー兼データサイエンティストをしている伊藤です。 この記事は every Tech Blog Advent Calendar 12日目の記事です。 今回は、先日発表されたOpenAI Assistants APIを使って分析用のSQLの生成を試してみた取り組みについて紹介します。 分析用SQLの生成 最近1年ほどでLLMが注目されるようになり、ChatGPTをはじめLLMを使ってより効率的に処理できる作業が増えてきています。 自分自身も、社内のChatAppにコーディングを手伝ってもらったり、ちょっとした文章の整形や知識の深掘りに活用しています。 中でも、データサイエンティストとしてLLMで効率化したい作業の一つにデータ分析、特にSQLの作成があると思います。 LLMによってSQLが生成できるようになると、データサイエンティストをはじめ分析
はじめに 子育てメディア「トモニテ」でバックエンドやフロントエンドの設計・開発を担当している桝村です。 この記事は「every Tech Blog Advent Calendar 2023」 の 15 日目の記事です。 tech.every.tv 私たちは 2023 年 6 月にシステムメンテナンスを実施し、トモニテのアプリやWebサイト等で利用している本番環境のデータベース Amazon Aurora の MySQL バージョンを 5.7 から 8.0 へアップグレードしました。 tomonite.com 本記事では、メンテナンスを伴う MySQL 8.0 へのアップグレードについて、実施内容やそれによって得られた知見について紹介します。 背景 前提として、Amazon Aurora は 1 〜 3 の メジャーバージョンが存在し、それぞれのバージョンに対してサポート終了日が設定されてい
概要 この記事は every Tech Blog Advent Calendar 2023 の10日目です。 TIMELINE開発部の内原です。 本日はTIMELINE開発部で利用しているAWS RDSへの踏み台サーバの構成を、ECS Fargate+PortForward+Adhocな機構に変更した話を書きます。 似たような記事はいたるところで見かけるので何番煎じになるか分からない状況ですが、以前からやってみたいと考えていたものだったので個人的にはよかったです。 変更前の構成 変更前の踏み台サーバの構成は以下のようなものでした。 EC2インスタンス (Amazon Linux, t2.micro) SSHポート転送を利用してRDSに接続 SSH用アカウントはgithubの公開鍵を手動で登録 上記構成を利用してSSHポート転送を行うには、以下のようなコマンドを実行します。 $ ssh -L
目次 はじめに range over int range over intとは range over intをGo Playgroundで触ってみる range over intを用いる利点 よくあるfor文が簡潔になる リーディングコストが軽減される range over func range over funcとは range over funcをGo Playgroundで触ってみる func(func()bool) func(func(V)bool) func(func(K, V)bool) range over funcを用いる利点 シンプルで標準的なイテレータを実装できる おわりに Appendix: range over funcを理解するコツ はじめに 株式会社エブリーでDELISH KITCHEN事業のバックエンドエンジニアをしている、GopherのYuki(@YukiB
はじめに この記事は every Tech Blog Advent Calendar 2023 の 6 日目です。 今回は「DI toolkit samber/do の紹介」と題しまして、samber/do のざっくりとした紹介と、今後リリースされるであろう次期バージョンでの変更点についてまとめていきます。 samber/do とは samber/do は Go で DI を実現するモジュールのひとつです。 同様の領域ではgoogle/wire が一番メジャーでしょうか。 その次にuber-go/fx が使われている印象です。 google/wire は現在はメンテナンスモードで、継続的な開発は行われていません。 uber-go/fx は reflection を利用した高度な機能を提供しているほか、単なるDIツールではなく、アプリケーションフレームワークとしての性格も兼ね備えている点が特
こんにちは、トモニテ開発部の Android エンジニアです。 この記事は every Tech Blog Advent Calendar 2023 の 5 日目です。 最近、 Android エンジニアに新たなメンバが増えました。 こんなこともあろうかと作っておいた贈り物としてドキュメントがありますので、どんなものか紹介します。 どんなドキュメントなのか GitHub にあるプロダクトのリポジトリの Wiki に、 アプリの構成 開発の前に 開発時の Q&A File Templates をまとめたものです。 アプリがどんな作りなのか? 開発するにあたり守るべきことはあるか? xxx をやりたいときはどうすればよいか? を知り、今後の開発作業での詰まりポイントを減らしていきたい、という思いから作成しました。 ドキュメントの内容 1: アプリの構成 自分自身、まずはアプリの歩き方を知りたく
Playwrightを活用したE2Eテストの導入 はじめに 想定読者 ハンズオンの前提条件 この記事で得られるもの 実行環境 Playwrightを活用したE2Eテストの導入 Playwrightとは Playwrightの特徴的な機能 Test generator UI Mode Watch mode 定義したアクションごとのスナップショット ハンズオン Next.jsをセットアップする Playwrightをセットアップする Next.jsのサンプルアプリケーションを起動する テストコードの作成 テストの実行 GitHub Actionsでテストを実行する playwrightの設定ファイルを変更する テストの結果を確認する 最後に Playwrightを活用したE2Eテストの導入 はじめに この記事は、every Tech Blog Advent Calendar 2023 の4日目
every Tech Blog Advent Calendar 3日目の記事になります! こんにちは 開発本部データ&AIチームでデータエンジニアを担当している塚田です。 今回は、挑戦WEEK中にGitHub Packagesを利用したnpmパッケージの社内利用を行いましたのでその内容についてご紹介します。 挑戦WEEKとは 開発メンバーが通常の各事業部のロードマップから離れ、技術的に何かに集中して挑戦する1週間 としており、 弊社CTOの今井がTech Blogにて説明しておりますので、よろしければ併せてご覧ください。 tech.every.tv エブリーで利用している画像について エブリーではDELISH KITCHEN、トモニテ、TIMELINEの3つのメディアを運営しています。 どのメディアも画像を多数利用して構成しており、画像配信基盤はシステムを構成する重要な一機能となっています
次のページ
このページを最初にブックマークしてみませんか?
『every Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く