TECH PLAY

Luup

Luup の技術ブログ

184

※この記事は Luup Advent Calendar 2024 の 23 日目の記事です。 IoT チーム業務委託エンジニアの山口です。本記事では PLC のプログラミングについてご紹介します。 はじめに 朝のエレベーター、自動改札、自動ドア、コンビニに並ぶ工業製品、私たちの周りには数えきれないほどの自動化システムが働いています。これらを制御しているのが PLC(Programmable Logic Controller)です。 制御に特化したコンピュータである PLC は、過酷な環境下で 24 時間 365 日の連続運転に耐える高い信頼性を備えており、各メーカーがそれぞれの特徴を
アバター
こちらの記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の22日目の記事です。 はじめに こんにちは、QAチームのかすみです。 今回はLuupのQAチームの不具合の扱い方についての記事です。 使用ツール QAをするにあたって切り離せないものがあります。不具合管理です。 スプレッドシートやJIRA、Redmine、Backlogなど起票ツールは星の数ほどありますが、うちのチームではGitHubを使っています。 理由として他チームとのやり取りがほぼGitHubメインで、ストレスなくやり取りができる為です。
アバター
こちらの記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の21日目の記事です。 こんにちは。SREチームの岡谷です。 LuupではCloud Run Functions(以下、CF)がバックエンドの主なインフラとなっています。 そのなかで同期的に行う必要のない重い処理をPub/Subを経由して非同期実行する場合があります。その時の連携のメジャーパターンとしてCF -(Pub/Sub)-> Pub/Sub Triggerd CFというパターンがあります。 このようなメジャーパターンの連携ですが、普通にしてい
アバター
※この記事は、Luup Developers Advent Calendar 2024の20日目の記事です。 こんにちは。IoTチームのYuxiです。 今日は Google Cloud Run Jobs を使って、反復的な定型作業をどう効率化したのかをお話しします。開発者として、「面倒な作業をいかに楽にするか」に情熱を燃やす日々ですが、今回もその一環です。 背景と課題 IoTチームでは、以下のような「やりたくないけど必要」な定型作業があります。 1. SORACOM通信量の手動集計 毎月、SORACOM の API から SIM のステータスと通信量を手動で取得してレポートを作
アバター
こんにちは! 実は私、Luupでは少ないWindows派です。MacBookを持ち歩く同僚たちの中で、Windowsを愛用している変わり者です(笑)。 「なんでWindowsなの?」とよく聞かれますが、社内のWindowsトラブル対応のために重宝しているという理由があるためです。また、プライベートではSteamのゲームをするためWindowsに慣れているためでもあります。 ただし、業務でWindowsの機能をがっつり使うというよりはLinuxのように使い、たまにWindowsの機能を使うというような使い方をしています。 今回は、そんな私が日々の開発で重宝している便利ツールを5つほどご紹介
アバター
はじめに LuupのSREチームに所属している、ぐりもお(@gr1m0h)です。 この記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の18日目の記事です。 11/9に広島県で開催されたオープンセミナー2024@広島に登壇しました。 本内容は、Luupでの取り組みとはほぼ関係ありません。「インシデント対応において必要な力」についての個人的な整理です。事例として一部Luup SREチームで行っている取り組みを取り上げています。 https://osh.connpass.com/event/324736/ 登壇
アバター
社内システムの優先度をどう考えるか — Luupにおける実践例 こちらの記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の17日目の記事です。 はじめに 本記事では、システムの優先度付けの考え方や判断基準について、実例とともにご紹介します。 Luupでは、日々のバッテリー交換や車両の修理を支えるフィールドオペレーション部、ハードウェア部、カスタマーサポート部など、多岐にわたる部署から寄せられる開発要望に対して、限られたリソースで対応していく必要があります。 そのため、私たちが特に大切にしている優先度決定
アバター
※この記事は LuupのCM放映に合わせた「少し早いAdvent Calendar」 の16日目の記事です。 こんにちは。iOSエンジニアの山手です。普段は公共交通関連のiOSアプリ開発に携わり、Luupでは業務委託としてiOSアプリの機能改修や品質改善のお手伝いをさせていただいています。 今回は、LUUP iOSアプリに発生したバイナリサイズの肥大化問題についてご紹介いたします。 LUUP iOSアプリのマルチモジュール構成について LUUP iOS版アプリでは、Swift Package Managerを用いたマルチモジュール構成を採用しています。 マルチモジュール構成への移行は
アバター
こちらの記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の15日目の記事です。 はじめに こんにちは。Data Groupの小林(@mizkino) です。 Luupにおけるデータ活用とそれを支えるデータ基盤についてお話しします。 近年、多くの企業でデータの信頼性をいかに担保するかが大きなトピックとなっています。 データの収集から加工、分析、そして意思決定への活用まで、各フェーズでの品質管理の重要性が認識され、様々な取り組みが行われています。 Luupも例外ではなく、データパイプラインにおける品質管理の仕組
アバター
こちらの記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の15日目の記事です。 はじめに こんにちは。Data Groupの小林(@mizkino) です。 Luupにおけるデータ活用とそれを支えるデータ基盤についてお話しします。 近年、多くの企業でデータの信頼性をいかに担保するかが大きなトピックとなっています。 データの収集から加工、分析、そして意思決定への活用まで、各フェーズでの品質管理の重要性が認識され、様々な取り組みが行われています。 Luupも例外ではなく、データパイプラインにおける品質管理の仕組
アバター
この記事は、LUUPのTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の14日目の記事です。 こんにちは、SREチームの髙橋です。 今回は、RegoとConftestで実現するTerraformのポリシーチェック自動化についてご紹介します。 はじめに インフラコードの管理において、適切な権限管理とポリシーの徹底はセキュリティーを守る上で非常に重要です。そこで、柔軟なポリシー定義ができるRegoと、自動テストを行うConftestを用いることで、コードに対する一貫したポリシーチェックを実現できます。 今回の記事では、RegoとC
アバター
こちらの記事は、「Luup Developers Advent Calendar 2024」の13日目の記事です。 こんにちは。Luup Serverチームの原です。 LUUPでは、土日祝日にユーザー体験を損なわせないことを目的として、バックエンドのシステムで発生したインシデントを迅速に復旧する取り組みを行っております(以降はオンコールと呼びます)。 この記事では、実際のオンコール対応の進め方について、Waroomを中心としたアーキテクチャに触れながら紹介していきます。 オンコール対応のためのシステムアーキテクチャ オンコール概要図 オンコール観点でのLUUPのバックエンドのシステ
アバター
はじめに こちらの記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の7日目の記事です。(公開が数日遅れました) こんにちは、Luup Androidチームの河原です。 GitHubでは、画像のプレビュー機能があり、一般的な画像形式(PNG、JPG、GIF、PSD、SVG) の画像をGitHubのWeb上でプレビューすることができます。(2024/11/07時点の情報) pngファイルの差分の様子 この機能はレビューをする際などにとても便利なのですが、Androidで扱えるVector画像のファイル形式であ
アバター
こちらの記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の12日目の記事です。 こんにちは! Luup Serverチーム所属の安元です。私たちServerチームでは、開発の効率と品質を向上させるためにさまざまな取り組みを行っています💪 その一環として、APIドキュメントの整備に関してZodとOpenAPIを共存させる方針を採用しました。また、生成AIの利用を通じて、開発者体験の改善にも取り組んでいます。この記事では、その具体的な取り組みについてサンプルコードとともに紹介します。 ZodとOpenAPIの共
アバター
はじめに LuupのSREチームに所属している、ぐりもお(@gr1m0h)です。 この記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の11日目の記事です。 LUUPでは、iOS、Androidのアプリを2週間単位でリリースしています。 つまり、2週間単位で新しいバージョンが利用できるようになるのですが、新しいバージョンが前バージョンよりも著しくパフォーマンスが悪くなっているかを早期に検知する必要があります。 今回は、これを検知するためにDatadogを使ってアラートをPdMと調整しながら作成したので、これ
アバター
この記事はLuup Advent Calendarの10日目の記事です。 こんにちは、モバイルアプリエンジニアの大瀧です。 今回は、Flutterで開発されている社内向けオペレーションアプリについてご紹介します。 OPSアプリの概要 LUUPでは日々ユーザーが快適に使えるよう、車両のバッテリー交換や故障車両の改修やメンテナンス・ポートの設置など様々なオペレーション作業が裏側で行われています。それらを支えるためのツールとして社内向けにオペレーションアプリを開発しています。 主に以下の機能があります。 メンテナンス・バッテリー交換・故障修理が必要な車両情報の可視化 車両の偏りがある地域
アバター
こちらの記事は、LUUPのTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の9日目の記事です。 はじめに こんにちは。Luup Serverチーム所属の井上です。 突然ですが問いを発します。 Q. サーバー(GCP上)からiOS/Androidアプリへ送るプッシュ通知を、ユーザーの行動から一定時間遅延させるには…? A. Cloud Tasks キュー でscheduleDelaySeconds を指定するとキューイングを遅延させることができるよ!タスクを受け取った側でプッシュ通知を送信しよう! …ということをお伝えするた
アバター
この記事は、LUUPのTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の8日目の記事です。 はじめに こんにちは、iOSアプリエンジニアの茂呂(@slightair)です。 この記事ではLUUPのiOSアプリ開発で利用しているプレビューやスナップショットテストを実現する上でのテクニックについて紹介します。 LUUPアプリの設計 まず、LUUPアプリの設計について簡単に説明します。 LUUPアプリではシンプルなMVPアーキテクチャを採用しています。 過去の記事でもアーキテクチャやモジュール構成について触れているので[1]、気
アバター
こちらの記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の6日目の記事です。 こんにちは、Luup Androidチーム所属の土谷です。 みなさん、Android Google マップでやっているあのUI、標準APIでどうやってやるの?と思うこと多いですよね。 現在地アイコン、ボトムシートの展開状態、など。 今回はボトムシートの展開状態について焦点を当ててみようかなと思います。 Android Googleマップのボトムシートの高さが三段階になっているあれをやりたい! 普段、Android Googleマッ
アバター
こちらの記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の5日目の記事です。 はじめに こんにちは!iOSエンジニアとして、Software Development部でLUUPアプリを開発している @tsuboyan5 です。 LUUPアプリは今年5月、ダークモード対応を行いました。本記事では、この対応にあたってiOSアプリへの実装視点で考慮したこと・どのような手順で対応を進めたかなどについて解説します。 ▼ ダークモード対応時のX上での告知 https://x.com/Luup_Official/stat
アバター