2021-02-01から1ヶ月間の記事一覧
先日久しぶりに Zenn を眺めていたら、今まで使ったことのない便利な Array のメソッドの紹介記事を見つけたので、忘れないようにメモしておきます zenn.dev 例えば、配列の全ての要素がStringであるかどうかを調べる必要があった場合、今までは下記のように…
先日に引き続き、Carthage を剥がして Swift Package Manager への移行作業をしている際に下記のようなエラーに遭遇しました。 具体的には、マルチモジュール化しているプロジェクトのメインターゲット以外にも、SwiftPM で導入したライブラリを Frameworks …
とあるプロジェクトにて、Carthage でインストールしていたライブラリ達をそろそろ Swift Package Manager に移行しようということで、今回はそんな移行作業に必要な Carthage ライブラリの削除方法を紹介しようと思います♀️ Carthage もう使わないだったら…
とあるプロジェクトで Carthage のビルド済みバイナリをソース管理から除外したことで、今後の iOS プロジェクトのセットアップの手順が増えてしまったので、これを機に Makefile にプロジェクトのセットアップをまとめてしまおうという記事です♀️ 結論 と…
Local Notification を設定する際に、指定した日時でトリガーされるようにした時の UNCalendarNotificationTrigger の生成方法をメモしておきます 結論 結論としては下記のようになります。日時でトリガーする際に必要な UNCalendarNotificationTrigger は D…
先日開発を行っているプロジェクトの Xcode バージョンを 12.0.1 から 12.4 に更新すると下記のようなエラーが発生していました 「シュミレーターのビルドでこけてるん?」と思い実機ビルドを試してみましたが、同じようなエラーが発生してビルドできません…
今回は csv からデータを取得する方法をメモ程度に残しておきます。 それではやっていく 下記のような、お酒の情報が並んだ liquors.csv ファイルからデータを取得していきたいと思います。 ビール1缶,5,350 ビール1缶,5,500 チューハイ1缶,5,350 チューハイ…
今回は短い内容になりますが、SwinjectStoryboard と通常の Storyboard で UIViewController を生成する方法を紹介したいと思います♀️ SwinjectStoryboard については下記を参照してください。ちなみに現時点でリリースされている最新版のソースをビルドす…
先日 Carthage/Build をソース管理から外そうと、gitignore を修正後 git rm -r --cached . してから git add . を実行すると下記のようなエラーに遭遇しました。 fatal: Unable to create '/.git/index.lock': File exists. Another git process seems to b…
先日に引き続き今日も Firestore のセキュリティルール について書いていきたいと思います 今回はタイトルの通り、Firestore のドキュメントに書き込めるフィールドのバリデーションを行っていきたいと思います。 それではやっていく ということで、「こんな…
先日 Firestore のセキュリティールールで undefined かどうかの判定をするために下記のようなコードを書いていました function isUndefined(data) { return data.hoge == undefined; } 実はこれ正しく動作しないので注意が必要です。サンプル実装などによく…
本日はタイトルの通りクラッシュログを解析する方法を自分用にメモしておきます(他にもっといいい方法あれば教えてください!!)。 それではやっていく みなさんご存知の通りアプリのクラッシュログは通常だと、16進数でレポートされるため一見しただけだと、…
今回は Swift の Date で、現在から特定の Date までがどの程度離れているかを示す Text の表示方法を簡単に紹介したいと思います 結論 今回は下記のように Date に Extension メソッドを追加し、1週間以上前の Date に関しては日付を取得できるようにしてみ…
ということで今回も Swift5.4 をちょろっと見てみます SR-10069 requested the ability to overload functions in local contexts, which in practice means nested functions can now be overloaded so that Swift chooses which one to run based on the t…
今回はタイトルの通り、Kotlin でちょろっと正規表現を行ったのでそのメモです。 結論 Kotlin ではこんな感じで行える見たいですね。正規表現を """ で囲むことで、エスケープが必要にならないのでシンプルに記述することができます。 val pattern = """"^[A…
今回は Algolia で、特定の属性のみをクエリの対象とした検索機能の実装を行ったので、その方法を簡単に紹介したいと思います♂️ それではやっていく ということで、Query の .restrictSearchableAttributes として属性を設定することで、特定の属性を対象と…
Xcode12.5 beta がリリースされ、これから Swift5.4 を使う機会もあると思うので少しづつ進化した部分を見ていきたいと思います 今回はこちらから。 This proposal seeks to remove the first restriction while leaving the second in place, allowing a fu…
今回は UITableView で、セクションごとに Separator を出し分ける方法を紹介したいと思います♀️ 結論 Separator を表示したくない Cell の場合、下記のように UITableViewCell の separatorInset プロパティの値をうまく調整することで非表示にすることが…
久しぶりに通知の許可周りの実装をしたので、今回は初学者向けに通知の許可設定の実装方法を紹介していきたいと思います♀️ ユーザがアプリの許可をしているかどうか UNUserNotificationCenter.current().getNotificationSettings { settings in switch sett…
今回は Firebase Firestore であるドキュメントが作成された時、ユーザの通知設定に応じて通知も送信をハンドリングする実装を行ったので、簡単に記事にまとめてみようと思います♀️ それではやっていく 今回は、一般的にありえそうな下記のようなユースケー…
RxSwift で TextField.text の変更をリッスンしたい時、下記のように書こうとした経験がある人は結構多いかと思います textField.rx.text .subscribe(onNext: { text in print(text) }) .disposed(by: disposeBag) あまり RxSwift に馴染みのない場合、これ…
今回は Firebase Cloud Messaging のトピック通知を Functions 経由で登録する方法を紹介していきたいと思います それではやっていく Node.js で実装していくので、とりあえず Firebase の Admin SDK を導入し、初期化します。 $ npm install firebase-admi…
RxKotlin で実行する Observable のスレッドをどのように切り替えるのか調査したので、調べた内容を簡単にまとめておこうかと思います それではやっていく まずは、Android プラットフォーム上のメインスレッドで処理を実行できるようにしてみます。Android …
RxKotlin を使用するにあたり、それぞれのクラスでライフサイクルを理解していないと、そろそろ Android 初心者という言い訳が通用しなくなりそうなので、Fragment や Activity (今回は Fragment のみ) のライフサイクルを再度しっかりと認識して良い Rx ラ…
前回に引き続き、RxKotlin 導入中に下記のエラーが Static interface methods are only supported starting with Android N (--min-api 24): io.reactivex.rxjava3.disposables.Disposable io.reactivex.rxjava3.disposables.Disposable.disposed() Stack tr…
絶賛個人開発中のアプリで RxKotlin をインストールし、ビルドすると下記のようなエラーが発生しました Cannot fit requested classes in a single dex file (# methods: 74679 > 65536) 調べてみると割とgeneralな問題らしく、「64K 参照制限」なんて呼ばれ…
さっそくですがみなさん、下記のコードの出力はどうなると思いますか? let textField = UITextField() textField.text = nil print(textField.text) 結果は Optional("") になります。何故 nil にならないのか不思議ですよね 理由としては、Objective-C で…
時々使う UIViewController のプロパティ presentingViewController と presentedViewController において、どっちがどの ViewController を指しているのか分からなくなってしまうことがあるのでメモしておきます 結論 それぞれの対応関係は下記のようになり…