iOS Development
現状のSwiftUIではナビゲーションバー(NavigationView)の色を変更するModifierが提供されていません。 しかし、ナビゲーションバーの色を変更したいモチベーションは多々あると思います。 本記事では、ViewModifierを使ってナビゲーションバーのスタイルを…
あれ...たったの1.08倍? そう思われると思いますが事実ですw 理由としては、RxSwiftなどビルドに時間がかかるライブラリがCarthageに移行できなかったからですが、このあたりの話も含めてCocoaPods管理からCarthage管理に移行した件について共有させていた…
iOS UIテストにて、アプリで保存したファイルの内容をテストコード側で検証したいことがありました。 結論からいうと、シミュレーターではできたけど、実機ではできませんでした。 できなかったけど色々試行錯誤したので、記録として残しておこうと思います…
割とよく書くけど(私が)忘れやすいので、SwiftでJSONファイルを扱う方法についてまとめます。 本記事ではJSONSerializationを取り上げます。 JSONデータ ⇔ オブジェクト変換 ファイルからJSONデータを読み込んでオブジェクトとして取り出す オブジェクトを…
仕事が忙しいことを理由に個人アプリをずっとアップデートできず、気がついたら2年が経過。。 当時はXcode10で開発していましたが、いまではXcode12に。 最近仕事がちょっと落ち着いてきたので個人アプリの開発を再開しようと思い、まずは開発環境全体を最新…
iOSアプリでファイルを扱う処理を書くときに、iOSシミュレーターのフォルダ構成について知っておくと便利です。 本記事ではiOSシミュレーターのフォルダ構成について説明します。 iOSシミュレーターのフォルダ構成 iOSアプリのフォルダ構成については公式ド…
エラーの原因 対応方法 別の対応方法 エラーの原因 XcodeでAppleアカウントにサインインしようとしたら以下のエラーが出ました。 エラーの原因と対処法は色々とあるようですが、私の場合はXVim2を導入するためにオレオレ証明書でXcodeに署名し直していること…
iOSのUIテストを実装する上で有用な要素検索のTipsをまとめました。 要素検索APIのクラス構成を把握する UI構造のスナップショットを見ながら検索コードを書く NSPredicateを使った条件検索 まとめ 要素検索APIのクラス構成を把握する UIテストの実装に慣れ…
開発プロジェクトが大きくなってくると、ユニットテスト、UIテストとテストの量がどんどん増えていきます。 特にUIテストは実行に時間がかかるので、Pull Requestが作成・更新されるたびに実行するのは現実的ではないケースもあります。 このため、Pull Requ…
UIテスト時はアニメーションをオフにしたり、アプリ初回起動時のダイアログを非表示にするなどの制御をしたいとき、UIテストコード側で以下のように起動時引数を与え、アプリコード側でその引数を参照して制御を行うことができます。 // UIテストコード let …
現在開発しているiOSアプリには、メインターゲットに加えて複数のエクステンションターゲットがあり、それぞれバラバラのバージョンが指定されているなど整理されていない状態だったため、プロジェクトのDeployment Targetのみ指定する形に修正しました。 し…
Bitrise上でのビルドは、すんなりとはいかないものです。 以下の記事でワークフローにiOS Device Testingステップを組み込む方法について紹介したのですが、対象が巨大で複雑化したiOSアプリとなると、うまく設定したつもりでもなかなかビルドが通らなかった…
BitriseではFirebase Test Labを使ったiOSアプリの実機テストをサポートしています。 ここではその設定方法をご紹介します。 なお、ここではInitialコミット状態のXCodeプロジェクト(新規作成直後のプロジェクト)を使用します。 コード署名用ファイルのア…
iOSアプリ開発をしていると、急にビルドが失敗するようになったり、実機にアプリがインストールできなくなったりすることがあります。 そういうとき、DerivedDataフォルダを削除する良い、とか、XCodeのキャッシュを削除しましょうとかっていう記事を見て、…
トリガーの設定を何度やってもビルドが始まらず、なんでろうと思っていたのですが、Webhookの設定がされていないことが原因でした... 最初のアプリのセットアップでWebhookの設定の工程を飛ばしてしまっていたようです。 Bitriseでアプリを選択し、Codeタブ…
ユニットテストを実装し、ローカルでテストがパスすることが確認できた。 コードをプッシュしてBitriseでテストできるように設定しよう。 ...ビルドが失敗する。。 たぶんこの設定がおかしいんだな。もう一度プッシュしてビルド! ...ビルドが失敗する。。 …
iOSアプリのプロジェクトにユニットテストとUIテストが両方あるのですが、1つのワークフローで両方を実行するととんでもなく時間がかかってしまうので、UIテストだけを実行するワークフローを作りたいと考えました。 もう少し具体的に説明すると、以下の2つ…
XCodeでSwiftUIの新規プロジェクトを作ったときに、最初はLife CycleとしてSwiftUI Appを選択したけど、後々AppDelegateに変更したいことがありました。 SwiftUI Appを選択してプロジェクトを作成すると、xxxApp.swiftというファイルが作成されてそれがエン…