【新卒研修体験談】社内ツールの実運用で見えてきた課題と反省点

こんにちは、エキサイト株式会社でエンジニアをしている2024年度新卒の岡島です。 今回は、新卒研修プロジェクトで開発した社内ツールの実運用が始まったので、このプロジェクトを振り返り見えてきた課題と反省点を共有したいと思います。 はじめに 社内ツー…

Flutter 3.22アップデートで起きたビルドエラーの解決方法 RangeError (offset): Invalid value: Not in inclusive range

こんにちは。エキサイト株式会社でアプリエンジニアをしている岡島です。Flutter SDKのバージョンアップをする際、iOS・Androidともにビルドができなくなりました。今回はなぜビルドができなくなってしまったのか、そのエラーの原因と解決方法について共有し…

Tailwind CSSでブレイクポイントをカスタマイズする方法

こんにちは。エキサイトでデザイナーをしている齋藤です。 今回はTailwind CSSでレスポンシブデザイン用のブレイクポイントをカスタマイズする方法をご紹介したいと思います。 はじめに 従来のCSS Tailwind CSSのユーティリティクラスを用いたレスポンシブデ…

SpringBootのローカル環境でSSOしているプロファイルでAWS Parameter Storeから値を取得する方法

エキサイト株式会社メディア事業部エンジニアの佐々木です。タイトルがわかりにくいですが、SpringBootのローカル開発環境でもAWS PamareterStoreにある値を使用したいのでご紹介します。通常はAWS ParameterStoreのパッケージを入れるだけで、すぐできるの…

AWS Copilot CLI の manifest.yml で定義できない設定をYaml Patchを使用して設定する

エキサイト株式会社エンジニアの佐々木です。AWS Copilot CLIはECS Fargateを使うにはかなり便利なツールですが、その分設定ファイルでできないことも結構あります。AWS Copilot CLIのチームもそれがわかっているのか、YamlでPatchを当てる機能をリリースし…

AWS Copilotを利用してコンテナアプリケーションを高速に立ち上げる

エキサイト株式会社エンジニアの佐々木です。IaCといえば、Terraformがデファクトスタンダードですが、AWSのECSを利用しているのであれば、 AWS Copilotコマンドが便利だと思いますので紹介します。 前準備 AWS クレデンシャルの設定 AWS Copilotの環境構築 …

Gitエイリアスを設定してよく使うコマンドを簡略化する方法

Git

こんにちは。エキサイトでデザイナーをしている齋藤です。 私はGit操作をコマンドで行うことが多いのですが、長いGitコマンドは入力が手間だったり、typoしやすかったりするためGitエイリアスを設定してコマンドを簡略化しています。 今回は、そんなGitエイ…

Lombokの@RequiredArgsConstructorにSpringBootの@Qualifierを渡したいときのlombok.copyableAnnotationsの設定方法

エキサイト株式会社メディア事業部エンジニアの佐々木です。Lombokの@RequiredArgsConstructorが便利で弊社では多用しているのですが、@Qualifierを使用したいときに、コンストラクタを書かないといけないのが面倒でした。Lombokのドキュメントを眺めていた…

Tailwind CSSの@applyを使用してUtility classをまとめた独自Classを定義する方法

こんにちは。エキサイトでデザイナーをしている齋藤です。 今回はTailwind CSSの@applyを使用してUtility classをまとめたClassを独自に定義をする方法をご紹介します。 なぜUtility classをまとめたいのか Utility classをまとめた独自Classを定義する方法 …

【Flutter】PopScopeを理解する

はじめに こんにちは。エキサイト株式会社でアプリエンジニアをしている岡島です。 今回は、PopScopeについて勉強したことをまとめていこうと思います。 はじめに バージョン PopScopeとは 基本的な使い方 まとめ 参考記事 バージョン Flutter: 3.22.2 PopSc…

【Flutter/Dart】enum, enhanced enumsについてとenumの要素→文字列に変換する方法

はじめに こんにちは。エキサイト株式会社でエンジニアをしている新卒の岡島です。 普段業務ではFlutterを用いたアプリ開発を行っています。 今回は、業務中にenumについて学んだことがあるので、勉強したことも含めて共有していきたいと思います。 私は、列…

Tailwind CSSでfont-sizeやline-heightなどの文字の構成要素がまとまったタイポグラフィトークンを定義する

こんにちは。エキサイトでデザイナーをしている齋藤です。 今回は、Tailwind CSSで文字の主な構成要素であるfont-size、font-weight、line-height、letter-spacingをまとめたタイポグラフィトークンを定義する方法についてお話します。 CSSを用いた従来のト…

Spring Securityでログイン後に任意の処理を行なってからログイン前にアクセスしたページにリダイレクトする

こんにちは、エキサイト株式会社の平石です。 今回は、Spring Securityでログイン後に任意の処理を行なってからログイン前にアクセスしたページにリダイレクトする方法をご紹介します。 はじめに 環境 実現方法 終わりに はじめに Spring SecurityはSpringで…

【Flutter】dioのInterceptorでAPI通信の共通処理を実装する

こんにちは。エキサイト株式会社 モバイルアプリエンジニアの克です。 今回は、FlutterにおけるdioのInterceptorを利用したAPI通信時の共通処理の実装についてお話しします。 各種バージョン Flutter: 3.22.2 dio: 5.4.3+1 Interceptor dioはFlutterでHTTP通…

AWS Summit Japan 2日目にオフライン参加してきました

AWS

こんにちは、エキサイト株式会社の平石です。 2024年6月20日(木)、21日(金)の二日間に渡り開催された AWS Summit Japan の2日目に参加しました。 会場 セッション 基調講演 AWS NoSQL コスト削減大全 生成 AI の発展的な活用 展示 おまけ 終わりに 会場 …

pre-commitを使用してgit commit時にPrettierを実行させる

こんにちは。エキサイトでデザイナーをしている齋藤です。 前回、【JetBrains製エディタ対応】PrettierでTailwind CSSのclass名を規則的に自動ソーティングさせる と称して、IntelliJ IDEAでファイル保存時にPrettierを自動実行させる方法をご紹介しました。…

【Terraform】 GitHub Actions から OIDC 認証によって AWS ECS にデプロイ

エキサイト株式会社の@mthiroshiです。 GitHub Actions から AWS ECS にコンテナアプリケーションをデプロイする際に、OIDC 認証を使用して AWS にアクセスする方法を試してみました。その内容について紹介します。 GitHub 公式ドキュメントは下記です。 doc…

チームメンバーとふりかえり会を実施してみた

こんにちは!エキサイト株式会社のまさきちです。 今回は自分の所属するチームで開発プロジェクト終了後にふりかえり会を実施してみた時のことについてお話しします。 メンバーが集まってふりかえりの時間を取ることはあまりなかったので、学びが多い時間で…

【新卒技術研修】24卒メンバーでチーム開発に取り組みました(意識したこと&学んだこと)

こんにちは。エキサイト株式会社でデザイナーをしている齋藤です。 今回は、24卒技術職メンバーが新卒技術研修で約1ヶ月間チーム開発に取り組みましたので、各々が意識したことや学んだことを体験記として記したいと思います。 はじめに メンバー構成 チーム…

【Dart】Nullの扱い方について

こんにちは。エキサイト株式会社でエンジニアをしている新卒の岡島です。 普段業務ではFlutterを用いたアプリ開発を行っています。 今回は、業務中にnullの扱いについて悩む場面があったので、Dartのドキュメントを読んで良いとされるnullの扱い方をみていこ…

OpenAPI Generatorで生成したAPIクライアントをコンパイルせずに利用する

こんにちは、エキサイト株式会社の平石です。 今回は、OpenAPI Generatorで自動生成したAPIクライアントをコンパイルせずに利用する方法をご紹介します。 はじめに 環境 手順 1. これまでの方法で一旦生成する 2. 生成したファイルを実行するために必要な依…

Interop24 Tokyoに行ってきた!

こんにちは、エキサイト新卒3年目、趣味は自宅鯖(オンプレ)のNOGU(@NOGU_D626)です。 本日はInterop24 Tokyo の 13日(2日目)に行ってきたので熱が冷めないうちにレポートとして記事を書きたいと思います!! Interop Tokyoとはインターネットテクノロジーの…

【アプリ開発】データレイヤにおけるリポジトリ層とデータソース層について

こんにちは。エキサイト株式会社でエンジニアをしている新卒の岡島と申します。 普段業務ではFlutterを用いたアプリ開発を行っています。 今回は、既存APIからリビルド後のAPIへの繋ぎ込みを行った際に、アーキテクチャの重要性を痛感したので、アーキテクチ…

【JetBrains製エディタ対応】PrettierでTailwind CSSのclass名を規則的に自動ソーティングさせる

こんにちは。エキサイトでデザイナーをしている齋藤です。 今回は、Prettierを使用してTailwind CSSのclass名を自動でソーティングさせる方法についてお話をします。 VS Codeを使用した環境での情報は多く出回っていますが、IntelliJ IDEAやWebStormなどのJe…

SpringBoot Adminを利用して簡易的なアプリケーションモニタリングツールを導入する

エキサイト株式会社エンジニア佐々木です。メディア事業部ではSpringBootとAWSを使用してサービスを展開しています。簡易的な監視にSpringBootAdminを利用していますので、その紹介になります。 環境 なぜ簡易モニタリングが欲しかったのか? SpringBoot Adm…

[Java]GoogleのOAuth2.0で受け取ったトークンを取り消す方法[Spring Boot]

はじめに こんにちは、新卒2年目の岡崎です。今回は、GoogleのOAuth2.0で受け取ったトークンを取り消す方法を紹介します。 環境 Java openjdk version "21.0.2" 2024-01-16 LTS OpenJDK Runtime Environment Corretto-21.0.2.13.1 (build 21.0.2+13-LTS) Ope…

【Flutter】UIのイベントをデバウンスする

こんにちは。エキサイト株式会社 モバイルアプリエンジニアの克です。 今回は、FlutterにおいてUIのイベントをデバウンスする手法についてです。 デバウンスについて デバウンスとは、短時間に複数回のイベントが発生することを防ぐための手法です。 例えば…

Docker 運用の Terraform に TFLint を導入する

エキサイト株式会社の@mthiroshiです。 運用している Terraform に TFLint を導入してみましたので、設定の方法や lint ルールの一例について紹介します。 TFLint とは TFLint は、Terraform の lintです。 github.com HashiCorp 非公式のサードパーティツー…

ModelMapperの使い方

はじめに こんにちは、新卒2年目の岡崎です。今回は、ModelMapperの使い方について紹介します。 はじめに 環境 ModelMapperについて 準備 実装 補足 最後に 環境 Spring boot . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| …

PHPカンファレンス小田原で初スタッフに挑戦しました!

こんにちは!エキサイト株式会社のまさきちです。 先日、PHPカンファレンス小田原でスタッフしてきました。 今までカンファレンススタッフの経験は無くドキドキでしたが振り返っていきます。 PHPカンファレンス小田原とは 会場準備お手伝い 前夜祭 カンファ…