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

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

Swift

iOSエンジニアの挑戦:iPhone端末カメラ問題の解決

はじめに iOSエンジニアの譚です。 今回は開発中に遭遇したiPhone端末のカメラピント問題とその対応について紹介させていただきます。 開発環境 Xcode 15 iOS 17 iPhone 12 Pro Max, iPhone 15, iPhone 15 Pro Max ピント問題とその対応 今回発生した問題は…

(iOS) Alamofire + Swift Concurrency でのAPI通信処理の実装例

ローソンデジタルイノベーション(LDI)のiOS/Android開発マネージャーの阪口です。 開発しているアプリのAPI通信処理は、Alamofire を利用して実装しています。 通信処理部分をSwift Concurrency に対応したため、今回はどのように実装したか紹介します! 通…

Combineを使った開発で用意した拡張関数の紹介

はじめに 開発環境 Combineの拡張関数 sink(with:cancellables:receiveValue:) Parameters コード sinkWithMainThread(with:cancellables:receiveValue:) Parameters コード sinkAsync(with:cancellables:receiveValue:) Parameters コード 最後に はじめに …

Combineフレームワークを使ったViewModelの形について

はじめに こんにちは、ローソンデジタルイノベーション(LDI)でiOSエンジニアを担当している山形です。 今LDIでは開発しているiOSアプリで使用しているRxSwiftをCombineやSwift Concurrencyへ置き換えを進めています。 開発しているiOSアプリはMVVMを採用して…

NotificationCenter の publisher を Swift Concurrency でハンドリング対応

ローソンデジタルイノベーション(LDI)のiOS/Android開発マネージャーの阪口です。 今回は、NotificationCenter.publisher のイベントを Swift Concurrency でハンドリングする方法についてご紹介します。 開発環境 macOS:Ventura 13.6 Xcode:15.0 サポート…

(iOS)Quick/NimbleのテストコードをRxSwiftからSwift Concurrencyへ置き換え

こんにちは、LDIのiOS/Android開発マネージャーの阪口です。 LDIで開発しているiOSアプリでは、RxSwift から Combine や Swift Concurrency への置き換えを進めています。 今回は、Quick/Nimble を利用したテストコードを RxSwift のコードから Swift Concur…

LDIの開発環境を紹介します!(2023年版)

ローソンデジタルイノベーション(LDI)のiOS/Android開発マネージャーの阪口です。 www.ldi.co.jp 前回の開発環境紹介記事(LDIの開発環境を紹介します! - ローソンデジタルイノベーション テックブログ)から変化があるため、2023年の情報をご共有させていた…

初期値を入れて楽々コーディング

こんにちは、iOSエンジニアの柳です。 今回はコーディングする際に工夫していることについて記事を書きたいと思います! メソッドの引数に初期値を入れてコード量を減らす取り組み 最近開発をしていてメソッドの引数に初期値が入っていないと呼び出すのが少…

SwiftPackageManagerによるライブラリの導入をしてみた

はじめまして、LDIのモバイルアプリエンジニアの庄司です。 今回はLDIの開発でSwiftPackageManager(SPM)を導入したため、導入方法を紹介していきます。 この記事はSPMを導入したいと思ってる人向けです。 導入経緯 テストフレームワークのNimbleとQuickをCar…

finalとprivate修飾子の有無でビルド速度が変化するのか検証してみた

はじめまして、去年末にLDIに入社したiOSエンジニアの柳です。 今回はビルド速度改善に関する記事を書きたいと思います。 今回やったこと finalとprivateを付与することでビルドの速度が改善される。という話は以前から聞いたことがあったのですが、どれくら…