Jetpack Composeでアイコンの直前でテキストを省略したい

こんにちは、Androidエンジニアの @syarihu です。 今回は、Jetpack Composeでアイコンの直前でテキストを省略したい場合の実装について紹介します。 具体的には次のようなUIを実現します。 テキストが2行を超えたら省略するだけならTextの標準機能だけで簡…

RDS Blue/Green Deploymentを使ったProduction DB移行の記録

はじめに こんにちは。GiftmallのEC機能の開発やインフラの運用を担当している藤原(@fujishochan)と申します。本年の1月、Aurora MySQL V1のEOLを受けて、GiftmallのProduction環境の一部で使っていたAurora MySQL V1のDBをAWS RDS Blue/Green Deployment (…

BottomNavigationViewとJetpack Navigationを組み合わせた画面遷移の実装の勘所

こんにちは。ギフトモールで Android アプリの開発をしている @KeithYokoma です。 スマホアプリで一般的な UI のパターンのひとつに Bottom Navigation (いわゆる下タブ)があります。Android においては、Jetpack ライブラリにある BottomNavigationView …

Jetpack Composeでグリッドに柔軟にスペースを入れたい

こんにちは、Androidエンジニアの @syarihu です。 ギフトモールでは、Jetpack Composeを積極的に使って開発をしています。Jetpack Composeでは基本的には簡単にいろいろなUIを作成することができますが、ときどき少し工夫をしないと期待通りのUIを実現でき…

Kotlin で Either が欲しくなったときに考えること

Kotlinは表現力が豊かな言語で標準ライブラリも充実しており、モダンな機能を多数備えています。現在も活発に開発が進んでいて他の言語から様々な概念を取り入れることも頻繁にあります。そんなKotlinですが、他の言語にあってKotlinにはないものも少なから…

UI の複雑化にともなう画面実装の改善の取り組み

こんにちは。ギフトモールで Android アプリの開発をしている @KeithYokoma です。 前回の記事ではアプリの UI の進化に合わせた設計の見直しについて解説しました。今回も UI の設計について解説しますが、特に View レイヤーに相当する部分の設計について …

Fragment が SavedStateHandle で保存したオブジェクトを2重に保持してしまう問題の発見と解決までの道のり

こんにちは。@KeithYokoma です。今回はこれまでの投稿からは少し話題を変え、AndroidX Fragment ライブラリに関する問題の発見と解決にまつわることを解説しようと思います。 画面の状態を保存する時に TransactionTooLargeException が多発し始める 以前の…

検索クエリからファジーにキーワードを抽出する(スミス・ウォーターマン法に基づく実装)

TL;DR 表記揺れがふくまれる検索クエリにマッチしたコンテンツを表示するための手法として、スミス・ウォーターマン法に基づくあいまい検索を実装して検索精度を向上しました。この手法は機械学習システムを使わないためメンテナンスコストが低く、その一方…

アプリの機能拡充を支える新たな設計方針の追加

こんにちは。ギフトモールで Android アプリの開発をしている @KeithYokoma です。 前回の記事では最初の技術選定や設計にあった課題のうち、ViewModel の肥大化についてどのように解決したかを解説しました。今回は次の課題として浮上した Fragment と Acti…

DroidKaigi 2022にギフトモールの社員が登壇します

こんにちは、ギフトモールでAndroidアプリエンジニアをしているしゃりふ( @syarihu )です。 2022年10月5日 (水)から10月7日(金)にかけて開催されるDroidKaigi 2022の1日目に、ギフトモールから私しゃりふが登壇します。 本記事では、しゃりふが登壇するセ…

アプリの成長とともに形を変えたレイヤー構造の進化の過程

こんにちは。ギフトモールで Android アプリの開発をしている @KeithYokoma です。 前回の記事では新規アプリ開発にあたってひとりチーム体制でどのような技術を選び設計に落とし込んだか、またその体制で開発をスタートしリリースを続けていく中で見えてき…

DataDog カスタムメトリクスを利用したアプリケーションの異常監視

こんにちは。ギフトモール Engineering Managerをやっている @nori0620 です。 はじめに Giftmallではサーバ監視、アラート送信の仕組みに Datadog を導入しています。 Datadogの各種インテグレーションを利用することでEC2, ECS, RDS, ALBといった様々なイ…

Androidアプリケーションエンジニア 佐藤太一インタビュー 「人の役に立つアプリを作りたい私が今ギフトモールにいる理由」

ギフトモールで働くメンバーに「今ギフトモールにいる理由」を聞く入社インタビューシリーズ。 初回は2022年4月に入社したアプリケーションエンジニアの佐藤太一さん(@syarihu)のインタビューをご紹介します。

ひとり体制から始める Android アプリ開発

こんにちは。ギフトモールで Android アプリの開発をしている @KeithYokoma です。 はじめに ギフトモールの Android アプリは開発開始から1年半以上が経過しています。Web サービスとしてのギフトモールと比べると歴史が浅く、今も活発に機能開発を進めてい…

不要なコードや機能を安全に削除していく仕組みを作って18万行削除した話

ギフトモール でEngeering Managerをやっている @nori0620 です。 ギフトモール のアプリケーションは7年以上運用しておりコードの肥大化、認知負荷の増大などの課題が出てきています。対応として機能ごとのサービス分割などの対応も進めていますが、この記…

ブログをリブートさせるにあたって考えてみた、「私たちがブログをやる理由」

こんにちは。株式会社ギフトモール、人事担当の西村です。 この度投稿を再開したGiftmall Inside Blogについて、そもそもどういう経緯で再開したのか?というお話をさせていただきたいと思います。 このブログはこんな方にぜひ読んでいただきたいです。 株式…

PHP Conference Asia 2018 in シンガポールで PHP 作者の話を聞いてきました

こんにちは。 ギフトモール の藤原です。 弊社は日本とシンガポールに拠点があり、私は現在シンガポールで勤務しています。 シンガポールにて9月26日から9月29日までPHP Conference Asiaという PHPコミュニティのカンファレンスがあり、参加してきました。 …

S3/CloudFront/Route53/ACM構成の静的サイトをTerraformで構築 & CircleCIで自動デプロイ

みなさん、はじめまして。ギフトモールの@nori0620です。 ギフトモールはギフト領域にフォーカスしたベンチャー企業で、日本とシンガポールに拠点があります。 今まであまり情報を発信できていなかったのですが、今後積極的に情報を発信していく一環として、…