BambooHero

#Programming #iOS #Investment #LifeHacks

BitriseでGemをキャッシュする方法

BitriseのCache:Pushステップを利用して、Gemをキャッシュさせます。 なお、Bitriseのキャッシュの仕組みについてはこちらの記事で紹介しているので参考にしてください。 bamboo-hero.com Gemをキャッシュさせる方法 こんな構成のワークフローを作成します。…

Knuffを使ってプッシュ通知のテストをする

これまでPusherというツールを使ってプッシュ通知受信のテストをしてたのですが、最近久しぶりに使ってみたらエラーが出てしまいプッシュ通知が送信できなくなっていました。 github.com ↓プッシュ通知を送信している様子。 Unable to read: Read connection…

[SBI証券]つみたてNISAからNISAに変更してみた

SBI証券でつみたてNISA口座からNISA口座に変更したときの記録です。 変更手順 ログイン直後の画面の右端にある「変更」ボタンをクリックします。 約款を読んだらチェックをつけて、「書類請求を申し込む」ボタンをクリックします。 SBI証券から変更申し込み…

[Swift] structのMemberwise Initializerを残しつつカスタムのInitializerも実装する方法

Swiftの構造体(struct)はInitializerを一つも実装しない場合にMemberwise Initializerと呼ばれるInitializerが自動で生成されます。 Structure types automatically receive a memberwise initializer if they don’t define any of their own custom initi…

ScrollView内のビューが画面上に表示されたことを検知する仕組みを実装する

ScrollView内のビューが画面上に表示されたらなにか処理をするという仕組みを実装したので、実装方法をご紹介します。 実装したもの コードの解説 ビューが画面に表示されたかどうかを判定するための情報を整理する 各情報を取得する ビューが画面に表示され…

[SwiftUI] .alert()の記述箇所を気をつけないと子ビューのアラートが表示されなくなる

親ビューと子ビューそれぞれでアラートを表示する実装がある場合、.alert() Modifierの記述箇所を気をつけないと、子ビューのアラートが表示されなくなります。 正しく表示されるケースの実装はこちらです。 struct ParentView: View { @State var showAlert…

Swiftで[String: Any]型の等価性チェックをする

Swiftで以下のコードはコンパイルエラーになります。 Any型がEquatableに準拠していないというのが理由です。 let dict1: [String: Any] = ["foo": "bar"] let dict2: [String: Any] = ["foo": "bar"] print(dict1 == dict2) // Protocol 'Any' as a type ca…