2021-03-01から1ヶ月間の記事一覧
今回はFSCalendarの小ネタです github.com 結論 FSCalendarのallowsMultipleSelectionとswipeToChooseGestureの値の両方を有効にすると、スワイプによる複数選択ができるようになります。 calendar.allowsMultipleSelection = true calendar.swipeToChooseGe…
本日はAlgoliaのインデックスを日付でソートする方法を簡単に紹介していきたいと思います👷♀️ それではやっていく インデックスをソートするにあたり、まず大前提として知っておくべきことが二点ほどあります。一つ目は、インデックス毎に一つのランキング式…
結論 Build Optionsで除外したいファイルのパターンリストをEXCLUDED_SOURCE_FILE_NAMESに設定することで、ビルド時に特定のファイルを除外することができるようになります。 例えば、Mockという名前がついているファイル群を本番環境で除きたい場合は下記の…
CocoaPods Specsとは? ライブラリのバージョン、プラットフォーム 、ソースの取得場所、説明などのメタデータが記載されたファイルのことです。 また、これらのファイルはGithub上のCocoaPods/Specsに一覧として存在します。 ちなみに、これらSpecsはCocoaP…
先日CircleCIでCocoaPodsによるライブラリの依存関係をキャッシュしようと下記のようなJobをconfig.ymlに追加しました。 jobs: // 省略 cocoapods_dependencies: executor: hoge-macos steps: - restore_caches - run: name: CocoaPods install command: mak…
Capture Listとは? キャプチャリストは、よくClosure内で強参照によるインスタンスを保持を防ぐ下記のようなもので、Closure内で、ある値のキャプチャ方法を指定する役割があります。 let hoge = {[weak self] in self.hoge() } キャプチャ方法 キャプチャ…
最近ユーザにアプリのレビューリクエストを行う対応をしたので、備忘録として残しておきます✍️ ちなみにこれ。 結論 iOS10.3以降はこれでできる。ちなみにこのリクエストダイアログは一年で3回までしか表示できないらしいので注意が必要。 import StoreKit S…
get() 指定したパスのドキュメントの情報を取得します。例えばusersコレクションのhogeというドキュメントのnameフィールド値を取得したい場合は下記のようになります。 allow read: if get(/databases/$(database)/documents/users/hoge).data.name == 'hog…
今回は、Visual Studio Code でのスニペット登録を簡単に紹介します ちなみにバージョンは1.54.3です。 それではやっていく まずは、Code > Preferences > User Snippets を選択します。 次に表示されたウィンドウから、スニペットを作成したい言語を選択し…
本日もJavascriptの軽いメモです♀️ 結論 下記の { a, b, ...cObject} のように、{ 取り除くプロパティ, ...オブジェクト名} = 元のオブジェクト名 とすることで特定のプロパティを除いた新しいオブジェクトを生成できるようです const abcObject = { a: "a"…
Carthageのビルド済みバイナリを今までプロジェクトのソース管理に含めてきましたが、Xcodeを移行しづらかったり、プロジェクトのレポジトリが肥大化してクローンにかなり時間がかかったりなど、そろそろ限界を感じてきたので、ついに.gitignoreに追加して C…
凡ミスエラーですが、誰かのためになることを祈ってメモしときます♂️ エラー内容はこんな感じ(一部抜粋)。 Error: ERROR IN CONFIG FILE: [#/jobs/checkout_code] 0 subschemas matched instead of one 1. [#/jobs/checkout_code] only 1 subschema matches…
結論 makeKeyAndVisible は、windowを key window として設定することで、同一レベル(もしくは同一レベル以下)の windowの最前面に表示するためのメソッドです。 ちなみにレベルには下記のようなものがあり、LevelはrawValueとしてCGFloat値を持ちます。 ext…
Firestore のセキュリティールールで使用するテストオブジェクトの GeoPoint を下記のように設定するとエラーが発生していました const { GeoPoint } = require("@google-cloud/firestore"); function fieldMapData(fieldId) { return { id: fieldId, name: …
先日、下記の記事を見て 「optional プレフィックスってそうゆう役割だったのか!」ということを知ったので、メモしておきます✍️ qiita.com ということで、まずは Swift のドキュメントを見てみます。 You can define optional requirements for protocols. …
本日は秒速で終わるSwiftの小ネタです♀️ 結論 「5」を10桁で表示したい場合に、他の桁を「0」で埋めるサンプルが下記になります。 extension Int { func filled(digit: Int) -> String { return String(format: "%0\(digit)d", self) } } print(5.filled(di…
今回もJS初心者なのでメモしました✍️ 結論 delete 演算子で下記のように削除ができるようです。 const hoge = { width: 100, height: 200, }; delete hoge.width; console.log(hoge) // Object { height: 200 } developer.mozilla.org てな感じで本日も以上…
JS初心者なのでメモしました✍️ 結論 // hoge.js exports.hogehoge = function () { console.log("Hello world"); } // test.js const hoge = require("./hoge.js"); hoge.hogehoge(); // Hello world ちなみに、require() は CommonJSの仕様で、モジュールを…
最近巷で聞く XCFramework がなんなのかをよく理解していなかったので、超簡単に概要を調べました✍️ XCFramework とは? Xcode11からバイナリフレークワークの配信のために新たにサポートされた方法で、下記のようにAppleプラットフォームの様々なターゲット…
「セキュアなデータをローカルに保存したい!」時によく使うiOSのキーチェーンについて、初学者向けに超ざっくりな概要を書きました。 キーチェーンとは? キーチェーンは機密性の高いユーザ情報などを iCloud 領域にセキュアに保存する仕組みのことです。ま…
今回はSwiftにあるassert 系メソッドのあれこれを調べていきたいと思います♀️ そもそもassertionとは? プログラムの実行時に満たされるべき条件をチェックして、条件を満たしていない場合はプログラムを停止したり、エラーを吐いたりする仕組みのことを言…
今回もSwift コンパイラ周りの小ネタです♀️ Compilation Mode とは? Compilation Mode は、プロジェクト内のファイルを全てコンパイルするか、変更されたファイルのみをコンパイルするかをコンパイラに指示します。 Xcode では、下記のように Build Settin…
今回はSwiftコンパイラのOptimization Level (最適化レベル)について調べる機会があったので、それらを簡単にまとめてみます 結論 結論、Swiftコンパイラには下記のような最適化レベルがあります。 Level 内容 -Onone 開発時のデフォルトレベルで、最小限の…
今回は Swift の UIView.animate で連続したアニメーションを実行する際のコールバック地獄を解消する方法を紹介したいと思います 結論 今回の悩みを解消できる素晴らしい記事があったので、車輪の再発明はしません✨ qiita.com Swift の Variadic Parameters…
本日は iOS のクリップボードにテキストを設定する方法をメモ程度に残しておこうかと思います 結論 とりあえずテキストを代入したい時はこんな感じで設定ができます。 UIPasteboard.general.string = "hoge" UIImage を設定したい場合はこんな感じ。 UIPaste…
今回は、iOSアプリでポップアップを表示する際に UIWindow を使ってグローバルに表示できるような実装を行ったので、そのメモを残しておきます♀️ やっていく とりあえず、ポップアップを表示するための Class は下記のようになります。AppDelegate なんかで…
本日は Swift の reduce() に関する小ネタです developer.apple.com 「配列の合計値を取得したい〜」って時、いつもこんな感じで reduce() を書いていました。 let list = [1, 2, 3, 4, 5] let sum = list.reduce(0, { $0 + $1 }) print(sum) // 15 実はこ…
最近 Clean Architecture の実装をしている時などに、新しいファイルを作るたびに Protocol と Class の設定をするのが面倒になってきたので、Xcode のテンプレート機能を使ってファイルの作成をちょっと楽にしてみたいと思います♂️ それではやっていく と…
今回はタイトルの通りマイクロサービスについて調べていきたいと思います。以前からなんとなくは知ってはいましたが、実際にマイクロサービス化しているサービスでの開発経験がなかったので、これを気にちょっとに調べてみようや!というやつです マイクロ…
本日はちょっと記事を書く時間が取れなかったので、初学者向けの内容で Swift のアクセスコントロールについて紹介します♂️ 一覧 結論 Swift には下記のようなアクセス修飾子があります。ちなみにアクセス修飾子を付けない場合はデフォルトで internal にな…