エキサイト株式会社の@mthiroshiです。 GitHub Actions から AWS ECS にコンテナアプリケーションをデプロイする際に、OIDC 認証を使用して AWS にアクセスする方法を試してみました。その内容について紹介します。 GitHub 公式ドキュメントは下記です。 doc…
エキサイト株式会社の@mthiroshiです。 運用している Terraform に TFLint を導入してみましたので、設定の方法や lint ルールの一例について紹介します。 TFLint とは TFLint は、Terraform の lintです。 github.com HashiCorp 非公式のサードパーティツー…
エキサイト株式会社の@mthiroshiです。 アプリのプッシュ通知は、Firebase Cloud Messaging を用いて実装できます。サーバー環境から FCM 実装でプッシュ通知を送る方法の一つとして、FCM HTTP API があります。現在、FCM HTTP API は、新しいAPIへの移行の…
エキサイト株式会社の@mthiroshiです。 エキサイトHD主催の社内テックカンファレンス「Excite × iXIT TechCon 2024」にて、登壇発表をしました。 「Excite × iXIT TechCon 2024」の詳細については、下記記事をご参照ください。 tech.excite.co.jp iOS / Andr…
エキサイト株式会社の@mthiroshiです。 potatotips #86 にてLT発表をしてきました。その内容をレポートします! potatotips #86 感想 採用情報 potatotips #86 potatotips は iOS / Android アプリ開発者向けの勉強会です。 potatotips.connpass.com #86 は …
エキサイト株式会社の@mthiroshiです。 エキサイトホールディングス Advent Calendar 2023の13日目を担当します。 Flutter で画面スリープを無効にする(画面を常時点灯にする)wakelock_plus パッケージについて紹介します。 wakelock_plus とは wakelock_p…
エキサイト株式会社の@mthiroshiです。 エキサイトホールディングス Advent Calendar 2023の8日目を担当します。 エキサイトでは、 iOS / Android ネイティブアプリの Flutter によるリビルドを行ってきました。 ローカル DB でデータを管理するアプリの場合…
エキサイト株式会社の@mthiroshiです。 FlutterKaigi 2023に参加してきましたので、その内容をレポートします。 FlutterKaigi 2023の概要 聴講したセッション 基調講演「Flutter's 8 years journey」 「Flutter アプリにおけるテスト戦略の見直しと自動テス…
エキサイト株式会社の@mthiroshiです。 Flutterのアプリ内課金の実装には、 in_app_purchase パッケージを使います。 Androidで実装する際に、少し躓いた問題があったのでご紹介します。 動作環境は、下記のpubspec.ymlの内容です。 dependencies: in_app_pu…
エキサイト株式会社の@mthiroshiです。 Dockerコンテナのログ出力設定について、調べた内容を紹介します。 Dockerコンテナのログ出力設定 Dockerコンテナのログについて、公式ドキュメントに詳細が記載されてあります。 docs.docker.jp docker logsコマンド…
エキサイト株式会社の@mthiroshiです。 Terraformを運用していると、ディレクトリ構造を整理したいケースがあります。 コード上での変更は容易ですが、それだけではStateファイル(tfstate)に差分が生まれてしまい、予期しないリソースの削除を招く危険があり…
エキサイト株式会社の@mthiroshiです。 FlutterでRawAutocompleteを使って、テキストの入力に応じて検索候補のワードを表示する、検索フォームを実装してみました。検索候補ワードは、APIから取得します。 下記が公式ドキュメントです。公式ドキュメントには…
エキサイト株式会社の武藤です。 GA3(ユニバーサルアナリティクス、UA)の終了が2023年7月1日となっており、いよいよ期日が迫ってきました。 引き続きGAを利用するためには、GA4への変更が必要になります。 私が担当しているサービスでは、バッチ処理をPHPで…
エキサイトの武藤です。 FlutterにおけるWidgetのフェードイン・アウトアニメーションUIについて簡単に紹介します。 Visibilityの表示・非表示の場合 AnimatedSwitcherを使ったフェードイン・アウトのアニメーションUI FadeTransitionを使ったフェードイン・…
エキサイト株式会社の武藤です。 2023年2月17日(金)にエキサイトで第二回TechConが開催されました。 tech.excite.co.jp 私は「AWS移行を通して得られた知見と教訓」というタイトルで発表しました。 speakerdeck.com 発表の概要 2022年6月に E・レシピのAWS…
エキサイト株式会社の武藤です。 FlutterでViewを構築するときに、Text Widgetのサイズが欲しいときがあります。今回は、Text WidgetのWidth、Heightの取得について紹介します。 また、求めたサイズを使ってアニメーションをつけたUIのサンプルを紹介します…
エキサイトの武藤です。 Flutterで多言語対応をする際、基本的にはWidget内でBuildContextからAppLocalizationsを呼び出して利用します。 しかし、複雑なロジックが必要な表示テキストの場合、Viewでそのロジックを書いてしまうとViewのコードが肥大化してし…
エキサイトの武藤です。 IntelliJ でシェルスクリプトを開くと、構文に警告を見かけることがあります。 IntelliJのシェルスクリプトの構文警告 SC2006 のリンクは下記のページに遷移します。 github.com ShellCheckは、シェルスクリプトの静的解析ツールです…
エキサイトの武藤です。 FlutterのRippleエフェクトの挙動について紹介します。 Rippleの種類 ListViewのRipple表示 ListTile, 独自レイアウトの場合 Imageの上にTextを重ねたレイアウト まとめ 採用情報 参考記事 Rippleの種類 Button Widgetを例にRippleを…
エキサイトの武藤です。 エキサイトホールディングス Advent Calendar 2022の14日目の記事です。 https://qiita.com/advent-calendar/2022/excite-hd 担当しているサービスのランキング機能のリビルドを行いました。 実現するにあたって、考慮したところを紹…
エキサイトの武藤です。 Flutter 開発を通して、freezed でのJSONの扱いに慣れてきました。 今回は freezed, json_annotation パッケージの基本的な使い方やTIPSをまとめていきます。 @JsonKey アノテーション name プロパティー defalutValue プロパティー …
エキサイトの武藤です。 GitHubのプルリクエスト(PR)のマージ機能の一つである Squash and mergeの使い方と注意点について紹介します。 マージの種類 PRのマージには3つの種類があります。 Create a merge commit Squash and merge Rebase and merge デフ…
エキサイトの武藤です。 オンプレ環境のサーバをAWS EC2へ移行する際に、サーバ時刻の同期について注意点があります。 サーバ時刻を扱うアプリケーション アプリケーションによっては、サーバ時刻をアプリケーションの実装に利用するケースがあります。 例え…
エキサイトの武藤です。 Firebaseのロール設定について、細かく付与する手順を説明します。 Firebaseから基本的なロール設定 歯車のメニューアイコンから「ユーザと権限」ページを開きます。 Firebaseの「ユーザと権限」ページ ユーザに対して、オーナーや閲…
エキサイト株式会社の武藤です。 Flutterを使ったアプリ開発のプロジェクトにジョインしました。 Dartを触ってみて、コンストラクタにいくつか種類があることがわかったので、整理してみたいと思います。 コンストラクタ デフォルトコンストラクタ 名前付き…
エキサイト株式会社の武藤です。 以前VPCのサイジングに失敗し、VPCを再構築したお話を紹介しました。 VPC再構築判断の結果、既にAWSで本番稼働していたDBも移行することになりました。 tech.excite.co.jp DBをAWSに移行した際に、DMSを使った事例も以前に紹…
エキサイト株式会社の武藤です。 AWSのVPCのサイジングについて失敗談がありますので、それについて説明します。 オンプレからAWSへシステム移行 internet-facing ALBのIPに関する仕様 VPCの再構築 終わりに 参考記事 オンプレからAWSへシステム移行 担当サ…
エキサイト株式会社の武藤です。 オンプレにあるサーバをAWSへ移行する際に、AWS Application Migration Service (AWS MGN)を使いました。 その際に、オンプレ特有のサーバの設定もそのまま引き継がれるため、修正すべき箇所がいくつか出てきます。 EC2に…
エキサイト株式会社の武藤です。 エキサイトではAWSの構成管理にTerraformを採用しているサービスがいくつかあります。 Terraformのディレクトリ構造について検索してみると、様々なパターンが出てきます。 どのパターンが最適なのか、選択に迷ってしまう方…
エキサイト株式会社の武藤です。 エキサイトホールディングス Advent Calendar 2021の18日目の記事です。 qiita.com 今回は、Spring Boot プロジェクトでSolrJを使ってSolr検索を実装する手順について説明します。 SolrJ SolrのJava用のAPIです。 solr.apach…