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

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

iOS

【Xcode16】【iOS18】UIViewControllerを継承したクラスの同期的な静的メソッドを非同期呼び出しするとクラッシュする問題の解決

はじめに 実行環境 発生した事象 調査内容 パターン1. @MainActorを付与した自作クラスを使用する場合 パターン2. @MainActorを付与した自作クラスを継承したサブクラスの場合 パターン3. @MainActorを付与したベースクラスを外部モジュールで定義し、それを…

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