ローソンデジタルイノベーション テックブログ

ローソンデジタルイノベーション(LDI)の技術ブログです

Android TextViewのURL自動検出と文字列選択が引き起こす罠

はじめに 発生した事象 調査 TextView.java (外部リンク) ArrowKeyMovementMethod.java (外部リンク) 不具合挙動になる原因の分析 1 回目の URL タップ アプリに戻ってから 2 回目のタップ(URL 以外の箇所) その後 原因まとめ 解決案 1. LinkMovementM…

【iOS】AppDelegateからSceneDelegateへ シングルウィンドウアプリ向けのライフサイクル変更対応

はじめに iOSアプリのライフサイクルについてと、移行対応の必要性 app-basedとscene-based、2つのライフサイクル scene-basedライフサイクルへの移行が必須化 移行方法 1. Info.plistに設定を追加する 2. AppDelegateにSceneの構成を取得するデリゲートメソ…

LDI コンシューマーサービス部の開発環境を紹介します!(2025年版)

ローソンデジタルイノベーション(LDI) コンシューマーサービス部で、iOS/Android開発マネージャーをしている阪口です。 www.ldi.co.jp はじめに 主なプロダクト 開発環境 プロセス 開発ツール 生成AI環境 CI/CD デザイン 使用ツール 開発 採用技術の全体像 …

better-authで実装する2要素認証(メールOTP)

はじめに LDIで開発担当しているOKこと岡崎です。 普段はバックエンドの開発を主にやってますが、最近はWebのフロントエンドも学習しており、 今回はその一環で作ったところをテーマにブログに起こそうと思います。 本記事では、better-authを使ってメールOT…

【Android】パラメタライズドテストの導入

はじめに パラメタライズドテストとは? パラメタライズドテストの書き方 最後に はじめに Androidエンジニアの篠本(ささもと)です。 今回は、テストコードのメンテナンス性向上を目的にパラメタライズドテストを導入しましたので、パラメタライズドテストに…

LiteLLMを利用したAI活用基盤を紹介します

AI

はじめに 記事を開いていただきありがとうございます。サーバサイドエンジニアのオーです。 今回は「LiteLLMを利用したAI活用基盤」をテーマに「システム構築例」と「運用面のメリット」を簡単に紹介します。 LDIでは、業務生産性の向上の一環としてAIの導入…

ご当地からあげクンをできるだけ簡単に2種類買いたい。エリア限定商品の空間解析

こんにちは、データ分析チームのIです。今回はご当地からあげクンのお話をさせていただきます。 1. ご当地からあげクン 2. 最短距離の探索と計算 3. 最短店舗探索の実行 4. からあげクンが2種類買える最短距離の店舗 4.1 東北と首都圏 4.2 首都圏と中部 4.3 …

【Android】startActivityForResultとonActivityResultのdeprecated対応

はじめに startActivityForResultとonActivityResultとは? deprecatedの内容と置き換え方法 置き換えのメリット 遷移元画面の結果受け取り処理の可読性向上 ActivityResultContractによる返り値の型の強制 最後に はじめに Androidエンジニアの篠本(ささも…

【Android】GlobalScopeの置き換え対応

はじめに GlobalScopeとは? GlobalScopeがdelicate扱いに 対応方法 最後に はじめに Androidエンジニアの篠本(ささもと)です。 今回、delicate(取り扱い注意)のGlobalScopeをwithContext(NonCancellable)に置き換えまして、そのご紹介をさせていただきます…

【Android】getSerializableやgetParcelableのdeprecated対応

はじめに getSerializableとgetParcelableとは? deprecatedの内容 対応方法 最後に はじめに Androidエンジニアの篠本(ささもと)です。 今回は、AndroidのgetSerializableやgetParcelableなどで発生しているdeprecated対応についてご紹介させていただきます…