はじめまして、ローソンデジタルイノベーション(LDI)の開発チームです。
この度、技術ブログを立ち上げることになりました。
今回は弊社の紹介も兼ねて開発環境の全体像を紹介させていただければと思います。
それでは早速本題に入りましょう!
はじめに
私たちLDIはテクノロジーやITの力を駆使してローソンの価値を最大化させるために生まれたIT戦略子会社です。
社内に蓄積されたナレッジを技術ブログに掲載して外部に発信していこう!という声が前々からあったので、今回思い切って技術ブログを立ち上げました。
この技術ブログを通して少しでもLDIの魅力が伝われば幸いです。
主なプロダクト
ローソンアプリの開発を行っています。
こちらのアプリでは以下のような機能を提供しています。
- クーポン
- ポイント
- スマホレジ
- etc
iOS:https://apps.apple.com/jp/app/id515191813
Android:https://play.google.com/store/apps/details?id=jp.co.lawson.android
他にも各種メディアに開発した内容が取り上げられたりもしています!
開発体制
プロセス
スクラムを導入して開発を進めています。
ベストな開発プロセスを日々模索して改善を続けています。
開発ツール
LDIでは一般的な技術とツールも利用していますが、社内のオリジナルツールも存在しています。
- GitLab
- Jira
- GitLab上のメンションコメントをSlackにお届けするbot(Yagi)
- ブランチマージ時に該当チケットを自動クローズするbot(Yatsuhashi)
- ライブラリやiOS, Androidのリリース情報をSlackに投稿するbot(Suzuka)
オリジナルツール開発者には命名できる権利がもらえます!!笑
CI/CD
GitLab Runnerを利用してCIを実施しています。
Lintやテストコード実行が自動で動作する環境を構築しています。
デザイン
遷移設計、画面設計、開発チームへの実現性(フィジビリティ)確認、UIデザイン制作、開発チームへのデザイン連携 の一連をデザインチームで実施しています。
使用ツール
遷移・画面設計:
- Adobe XD
- PowerPoint
- Excel
UIデザイン:
- Sketch
デザイン連携:
- Zeplin
開発
採用技術の全体像
採用アーキテクチャ
アプリ:Clean Architecture + MVVM
サーバー:Clean Architecture
依存関係が少なくメンテしやすいアーキテクチャを採用しています。
使用言語や主なライブラリ
iOS:
- Swift
- RxSwift
- Alamofire
- R.swift
- Quick
Android:
- Kotlin
- Kotlin Coroutine
- Android Jetpack(Room, Navigation, ConstraintLayout ... )
- Dagger
- Retrofit
- MockK
- Mockito
サーバー:
- Go
- Gin
- zap
- Ginkgo
品質
コーディング規約、LinterやFormatterを用いてコードの品質を高めています。
アプリケーションの品質に関してはテストコードを書きながら開発するよう日々取り組んでいます。
UIやサーバーとの結合部分のテストの自動化にも取り組んでいます。
改善活動
スクラムで開発を進めていることもあり定期的に振り返りを実施しています。
より良い開発プロセスを常に模索しております。
また、コードレベルの振り返りも定期的に行っており、
- 開発時点では気づけなかった技術的負債に対するリファクタ
- ライブラリ更新やOSバージョン更新など最新情報への追従
- 製品品質向上に向けたテストナレッジの蓄積および自動化
- 定型業務のCIへの組み込みやCIの速度向上
- あったら便利そうなDevOpsツールの開発
などなど日々課題の抽出と改善に取り組んでいます!
締めのご挨拶
これから定期的に技術ブログを更新していくので、興味がある方は是非「読者になる」で応援していただけますと幸いです。
今後とも株式会社ローソンデジタルイノベーションをよろしくお願いいたします!