Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

サーバーサイドグループのインシデント改善の取り組み

こんにちは、サーバーサイドグループのマネージャーの鬼木です。 今回は今年から取り組み始めたサーバーサイドグループで行っているインシデント改善の取り組みについて紹介します。 弊社では今後のサービス拡大に向けて、新規開発だけでなく保守面の強化も…

CircleCIで失敗したテストケースのみ再実行できるようにする方法

はじめに Rerun failed testとは? 実装ポイント 前提 環境 config.ymlの実装 circleci tests runを利用する before after ハマりポイントその1 - junit.xmlが出力されないケースの考慮 ハマりポイントその2 - テスト再実行時に persist_to_workspace ステッ…

#TROCCOUG にて「私のdbt布教用資料 〜TROCCOUG Ver.〜」という題で登壇してきました

こんにちは!データサイエンス室(以下、DS室)の山本です(@__Y4M4MOTO__)です。 2024年9月13日に開催されたTROCCOのユーザー会「TROCCO UG」にて、「私のdbt布教用資料 〜TROCCOUG Ver.〜」というタイトルでお話ししてきました。 TROCCO UGはTROCCOを中心…

iOSDC Japan 2024 オフライン参加レポート

こんにちは。iOS エンジニアの kamimi です。 今年も早稲田大学で開催された iOSDC Japan 2024 に参加してきました!(去年の記事はこちら) ということで、イベント全体や視聴したセッションの感想について書きたいと思います。 イベント全体 例年通りスポ…

DroidKaigi 2024で登壇してきました

こんにちは、Androidグループに所属しているにゃふんた(nyafunta9858)です。 2024年9月11日からの3日間、ベルサール渋谷ガーデンで開催されたDroidKaigi 2024で「いまから追い上げる、Jetpack Composeトレーニング」というタイトルで登壇してきましたので…

DroidKaigi 2024に参加してきました!

こんにちは!株式会社ヤプリでAndroidエンジニアをしている伊藤です。 今年で10年を迎えるDroidKaigi 2024に参加してきました! DroidKaigiへの参加は初めてでしたので感想も踏まえて会場の様子を紹介します! 2024年9月11日(水)〜13(金)の3日間で開催され、…

【参加レポート】 iOSDC Japan 2024

はじめに セッションのご紹介 空間ビデオフォーマット、MV-HEVCが映し撮る世界 続・SharePlayの歴史と進化:iOS18とApple Vision Proにおける新展開 Mergeable Librayで高速なアプリ起動を実装しよう! Appleの新しいプライバシー要件対応:ノーコードアプリ…

プロダクト開発本部LT大会#13を開催しました

こんにちは!データエンジニアの山本( @__Y4M4MOTO__ )です 先日、開発統括本部にて毎Q恒例のLT大会を開催しました(13回目です!) LT大会は、ヤプリに所属するメンバーが、業務や技術情報にとどまらず、個人の趣味や興味をテーマに5分間でプレゼンテーシ…

iOSDC Japan 2024にオンラインで参加しました

この度iOSDC Japan 2024にオンラインで参加させていただきました。 興味深い発表ばかりだったのですがその中でも気になったものをいくつか取り上げさせていただきます。 詳解UIWindow by atsuyan UIWindowはiOSアプリ開発だと常に1つだと想定することが多い…

iOSDC Japan 2024 に参加しました

こんにちは、iOSエンジニアの西村です。 今年も8/22 ~ 8/24にiOSDCが開催され、ヤプリはプラチナスポンサーとして協賛しました! 私は今回で3回目のiOSDC参加となりますが、特に印象に残ったセッションをいくつかご紹介したいと思います。 気になったセッシ…

iOSDC Japan 2024 スポンサーセッションで登壇しました

はじめに 発表にあたって 発表内容をブログ記事を書いて整理する ヤプリiOSエンジニアの新プライバシー要件対応① | 時系列で振り返り、関連用語を理解する ヤプリiOSエンジニアの新プライバシー要件対応① | 時系列で振り返り、関連用語を理解する ヤプリiOS…

Laravel Worker x SQSの組み合わせで少しハマったこと

こんにちは!SREグループの三橋です。 普段はNew Relicのことばかり書いている私ですが、本日はLaravel Worker x SQSのお話しをします。 弊社ではちょうどPHPアプリケーションのコンテナ化対応に取り組んでおり、その対応の中でLaravel WorkerとAmazon SQSを…

New Relic x OpenTelemetryを使ってサービスの健康状態が一目でわかるダッシュボードを作りました

こんにちは、SREグループの三橋です。 今回はNew Relic x OpenTelemetryを使ってサービスの健康状態がわかるダッシュボードを作ったのでそのお話をします。 ※ 主にWhyにフォーカスしており、New RelicやOpenTelemetryなどの技術的な部分についての説明は記載…

Vueで複数表示もドラッグもできる最強のフローティングパネルを作った話

複数のフローティングパネルを表示する例フロントエンドエンジニアのゆう(@aose_developer)です。 ヤプリのCMSにはBlock UIという、直感的かつフレキシブルにアプリを制作できる基盤があります。 Yappliの新基盤「Block UI」 のご紹介 個人的にはノーコー…

ヤプリのテックブログ投稿をGitHubを利用してできるようにしました

はじめに ヤプリで新卒SREをやっている眞田です。 ヤプリでは、エンジニアが日々業務を遂行する上で学んだ技術をテックブログに公開しています。 ヤプリのテックブログははてなブログ上で管理されていますが、GitHubなどを利用した運用はされていない状態で…

Cloud Storage トリガーによって呼び出している Go の Cloud Functions 関数を第2世代へ移行する

はじめに やること CloudEvent 関数を利用したコードに書き換える Eventarc APIの有効化とロールの付与 デプロイコマンドのオプションを変更する 関数をデプロイする まとめ 参考 はじめに こんにちは、サーバーサイドエンジニアの加味(@kami_tsukai)です…

Classmethod Odysseyで登壇してきました

こんにちは! New Relic大好きSREグループの三橋です!! 先日行われたクラスメソッド様の20周年イベントClassmethod Odysseyに招待いただき、登壇してまいりましたので、そのご紹介です。 classmethod.jp 発表内容 こちらが当日の登壇資料になります speakerd…

dbt-osmosisを導入してdbt docsのdescriptionの拡充率を30%→80%まで上げた話

こんにちは! データサイエンス室の山本(@__Y4M4MOTO__)です。 ヤプリではdbtを用いてデータ基盤を運用しており、dbt docsをデータカタログとして使用しています。 dbt docs整備の話はこちらの資料にて公開しているので、そちらをご覧いただけましたら幸い…

Nuxt3で@sentry/vueを使うとエラー発生時に500エラーが表示される時がある

フロントエンドエンジニアのこん(@k0n_karin)です!今回はNuxt3でSentryを扱ったときに遭遇した事象について投稿します。 ※NuxtとSentryそのものの説明は割愛します。 ※本記事執筆時点のバージョンは以下のとおりです。 nuxt: 3.12.2 @sentry/vue: 8.13.0 解…

フロントエンドチーム、勉強会始めました

はじめに フロントエンドチームについて 文部科学大臣設立の経緯 現状のフロントエンドチームの課題を知る 第1回勉強会の内容 まとめ はじめに こんにちは。フロントエンドエンジニアの平川です。 今回はヤプリのフロントエンドチームで始めた勉強会の活動に…

ヤプリiOSエンジニアの新プライバシー要件対応③ | ノーコードアプリプラットフォームの運用体制も大公開!

はじめに こんにちは、ヤプリでiOSエンジニアをしている菅(@Nao_RandD)です。 Appleの新しいプライバシー要件のアップデート に関する記事 「第3弾」 です! これまでに、2つの記事でそれぞれの読者を対象に、プライバシーマニフェスト1についてや、ヤプ…

サーバサイドエンジニアが中途入社半年で感じたヤプリの魅力

こんにちは!サーバーサイドエンジニアの柿本です! 2023年12月にサーバーサイドエンジニアとして中途入社し、早くも半年が経過しました。 この記事ではその半年で感じたヤプリのことについて、ご紹介できればと思います。 ヤプリに興味を持ってくださってい…

画面回転でLazyVGridのカラム数を変更する

こんにちは、iOSエンジニアの西村です。 今回は、SwiftUIのLazyVGridを使って画面回転に応じてカラム数を変更する処理を実装したいと思います。 縦画面(2列での表示) 横画面(4列での表示) LazyVGridで絵文字を表示する まずは、LazyVGridを使用してUnico…

Kotlin Fest 2024で登壇してきました

こんにちは、Androidチームに所属しているにゃふんた(nyafunta9858)です。 2024年6月22日にベルサール渋谷ファーストで開催されたKotlin Fest 2024で「KotlinのLinterまなびなおし2024」というタイトルで登壇してきましたので、その参加レポートとなります…

CircleCIを並列化してCIの実行時間を半分以下に改善した話

はじめに こんにちは。サーバーサイドエンジニアの佐野きよ(@Kiyo_Karl2)です。 ヤプリではコード品質維持のため、CI(継続的インテグレーション)を取り入れており、GitHubへのプッシュをトリガーに自動テストや構文/フォーマットチェックなどが実行されます…

UICollectionViewでサムネイルスライダーを実装する

こんにちは、iOSエンジニアの西村です。 iPhoneの写真アプリには目的の写真を見つけやすくするため、画面下部にサムネイル形式のスライダーが実装されています。最近撮った写真を見返すときに便利なので意外と嬉しい機能の一つです。 今回は、このようなサム…

Goのgo-playground/validateパッケージを理解する

はじめに こんにちは、サーバーサイドエンジニアの中川(tkdev0728)です。 最近タイピング中の手首の疲れが気になりパームレストを導入しました。正直言って元々パームレストに対して否定的だったのですが、 ある日手首の位置が落ち着かず半信半疑で導入し…

厳密モードの記述をチェックするPHPStanの独自拡張を作った話

はじめに こんにちは。サーバーサイドエンジニアの佐野きよ(@Kiyo_Karl2)です。 PHPでは、declare(strict_types=1);をファイルの先頭に記述することで厳密な型チェックを有効にすることができます。これにより暗黙の型変換がされなくなり、関数やメソッドの…

ヤプリ内定者インターンの世界

はじめに 初めまして、ヤプリで2025年新卒サーバーサイドエンジニアとして4月から内定者インターンに参加している大学院修士2年生の籔本と申します。 普段は大学院で深層学習を利用したCGの研究をしています。 この記事では「なぜヤプリを選んだのか」「内定…

New Relic Streaming methodについて紹介

こんにちは、サーバーサイドグループのマネージャーの鬼木です。 弊社ではAPMとしてNew Relicを導入、活用しています。調査時のログ検索やAPMの確認以外にも、追加したapplicationのアラートを作成するなどサーバーサイドエンジニアもNew Relicを活用してい…