帝王切開の自己負担を抑えるためにやったこと

先日2人目の子どもが産まれたのですが、1人目が帝王切開だったので2人目も予定帝王切開での出産でした。 帝王切開は自然分娩よりも高額と言われますが、国の制度や加入していた保険などをフル活用した結果、思っていたよりも自己負担額を抑えることができま…

Notionで実践!糖質オフダイエット

完全リモートワークになって丸2年が経過したころ。 気づけば体重がみるみる増えていました。 このままではまずいと思い、年明けからダイエットすることを決意。 以前試して実績のあった糖質オフダイエットに再びチャレンジすることにしたのですが、食べるこ…

新幹線絶景スポット!武蔵浦和駅を通過する新幹線の時刻表を作りました

武蔵浦和駅は新幹線の絶景スポットってご存知ですか!? 武蔵浦和駅は新幹線の停車駅ではないですが、埼京線の駅のホームと新幹線の線路が並行していて、新幹線が通過する様子が間近で見れるんです。 うちの子どもは新幹線が大好きで、たまに新幹線を見に武…

ビットコイン投資はじめました

先月初めてビットコインを買いました。 前から興味はあったので、ビットコインについて何か大きなニュースがあれば度々チェックはしていましたが、なんとなく手は出してきませんでした。 ところが、最近なんかの記事を読んだからだと思うんですけど、急にビ…

ネスカフェアプリからドルチェグストに接続できないときの対処方法

ネスカフェアプリを使っていると、割と頻繁に(感覚的には1ヶ月に1回くらい)以下のようなエラーが出て接続できなくなることがあります。 上図の案内通りに操作を行ってもエラーが解消されないという方は、以下の手順を試してみてください。 まず、設定アプ…

はてなブログの記事タイトルの先頭に [ ](角括弧)をつける方法

記事タイトルの先頭に[]を使うケース、結構あると思います。 ところが、はてなブログでこれをやろうとした場合、普通にやるとうまくいきません。 例えばこんな感じで先頭に[裏技]をつけてプレビューしてみます。 すると、タイトルに[裏技]は表示されず、カテ…

[SwiftUI] Listでifを使うと初回ロードが重くなる...?

Listを使って縦スクロール型のビューを組んでいて、初回表示が重くなる問題にぶち当たっています。 実際のコードはもっと複雑ですが、やりたいことはこんな感じです。 List内の各行はItem.typeごとに別々のビューを表示させるようにしています。 struct Cont…

GeometryReader自体の高さを子ビューのフレームサイズと同じにする

記事タイトルをどうすべきか結構悩んだんですがw、要はやりたいのはこういうことです。 Rectangleの高さを、与えられたフレーム幅を基に動的に変化させたいとします。 ここではフレーム幅の半分のサイズの高さを指定することとします。 struct ContentView:…

[SwiftUI] インラインでTextにImageを埋め込むデザインを実装しようとして苦労した話

テキストの先頭にアイコンがあり、2行目のテキストの先頭をアイコンの下に潜り込ませるデザインを、あなたはどのように実装しますか? SwiftUIのTextを使うと、テキストに画像をインラインで埋め込むことができるので、以下のように簡単に実装できます。 Tex…

[SwiftUI] カスタムビューに独自のModifierを実装する方法

アプリの複数の画面で汎用的に使えるカスタムビューを作ったが、画面によって一部分だけ色を変えたいという要件が出てきたら、どう実装すれば良いでしょうか? 例えば、ユーザ情報を表示する汎用的なビューを以下のように実装したとします(テキスト思いっき…

住信SBIネット銀行の定額自動入金・定額自動振込が便利すぎるので紹介したい

給料が振り込まれた翌日、ATMからお金を下ろして、ローンの口座、貯金の口座、子どもの口座などなどたくさんの口座に預け入れしないといけない。。 手数料もばかにならないし、何よりめんどくさい。。 こういう悩みを抱えている方、結構いるのではないでしょ…

肥大化したUITextViewをテスタブルで再利用可能な構造にリファクタする

複雑なテキスト処理ロジックを持つテキストエディタを実装しようとすると、UITextViewのカスタムクラスが肥大化することはありませんか? 例えば、ユーザがテキストを入力すると、その内容を検証したり、ハイライトしたり、その他様々な処理を行うという要件…

XcodeGenを導入するにあたりお世話になった記事3選

XcodeGenを導入するぞ!といっても、最初は何から手を付けていいのかわからない人が多いのではないでしょうか? 私も最初はそんな状態でしたが、先人の皆さまが素晴らしい記事を残してくれていたので、年季の入った大規模なプロジェクトにもかかわらずXcodeG…

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証券から変更申し込み…

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

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

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

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

The Composable Architecture(TCA)で再利用可能なコンポーネントを作る方法

TCAのサンプルの中に Reusable Favoriting Componentというものがあります。 「何かをFavoritingする」という機能を提供する、汎用的なコンポーネントの実装例です。 Getting Startedのサンプルと比べて若干ReducerやStateの書き方が違うので混乱するんです…

ジュニアNISAで運用銘柄を入れ替えることはできる?

2021/09/05 追記 本記事で「非課税で運用している銘柄を売却して、その資金で別の銘柄を非課税枠で購入することはできない」と書いたんですが、実際に試したところ、売却して得た資金をすべて非課税NISA口座での買付に利用できてしまいました。。 簡単に状況…

ふるさと納税で住民税が安くなったかどうか確認する

昨年初めてふるさと納税をやりました。 さんざんテレビとかで取り上げられてたので制度自体は知っていて、でもなんとなく面倒で手を出していなかったんですが、内容を知ったらどう考えてもやらない理由がない制度ですよね。 返礼品は非常に楽しませてもらっ…

Swiftのプロトコルやジェネリクスを駆使して汎用性の高いAPIクライアントを実装する

正直いまだにジェネリクス周りがそんなに得意じゃないのですが、色々苦戦しながらも割と汎用的で使いやすいAPIクライアントをジェネリクスを使って実装することができた気がするので、それについてご紹介したいと思います。 「プロトコルやジェネリクスを駆…

UIViewRepresentableなビューにTCAを組み込むべきか?

まだSwiftUIにはUITextView相当のものが用意されていないので、UIViewRepresentableを使ってUITextViewをSwiftUIビューで使用できるようにしています。 さらに、自分が関わっているプロジェクトではThe Composable Architecture(TCA)を採用しているのです…

slatherでiOSアプリのカバレッジを可視化する

Xcodeだけでもカバレッジの数値を見ることはできますが、特定のディレクトリやファイルをカバレッジ対象から除外するなどといった細かいことはできません。 最近業務でiOSアプリのリアーキテクチャを進めているのですが、旧アーキテクチャではテストを全く書…

燃え尽き症候群の治し方

新しいプロジェクトが始まり、どういうアーキテクチャにしようか、どういうライブラリを使おうかと考えることにワクワクする日々。 より良いものを作ろうと、寝る間も惜しんでコードを書いては直し書いては直しを繰り返す。 タスクが山積みの状態、それでも…

MintでインストールしたパッケージをBitriseにキャッシュさせる方法

iOSのプロジェクトにSwiftLintを導入していて、SwiftLint自体はMintでインストールしています。 Bitrise上でSwiftLintを実行するためにはビルド前にSwiftLintをインストールしておく必要があるため、Xcode Test for iOSステップの前にScriptステップを配置し…

Bitriseで前のステップが失敗した場合にだけステップを実行する方法

Bitriseで前のステップが失敗した場合にだけステップを実行する方法についてご紹介します。 例えばこんなワークフローを作成します。 Scriptステップ ここではexit 1を実行し、ステップを失敗させます Comment on GitHub Pull Requestステップ① 前のステップ…

EvernoteからNotionへのデータインポートをやってみたので手順をご紹介します

かれこれ10年くらいEvernoteを使ってきたのですが、昨年の日本でのNotionの盛り上がりをうけて私もNotionを使い始め、そこまで使いこなせてる感はないものの、Markdownで書けることやページの構造化がやりやすいといった点が好きですっかりNotionユーザにな…

iDeCo加入中に会社が企業型確定拠出年金制度を開始。移行すべき?

現在iDeCoに加入しているのですが、所属している会社が企業型確定拠出年金制度を開始するとのことで、何がどう違うのか、移行すべきかどうかわからなかったので軽く調べてみました。 細かいところまで見ると色々違いはあるようですが、iDeCoと比較した場合の…

isMovingToParentとisMovingFromParent

UIViewControllerのisMovingToParentとisMovingFromParentがどのようなときにtrue or falseになるかがわからなかったので調べてみました。 それぞれの定義 検証してみた まとめ 検証コード それぞれの定義 isMovingToParent A Boolean value indicating whet…