しおメモ

雑多な技術系ブログです。ニッチな内容が多いです。

2020-01-01から1年間の記事一覧

SwiftにおけるBastard Injectionとは

結構ありがちな書き方なので、書いてみました。 Bastard Injectionとは なぜBastard Injectionが問題となるのか なぜ書いてしまうのか 置き換える方法 見るべき動画 Bastard Injectionとは Bastard Injection(Poor Man's Dependency Injection)は、他の言語…

RxSwiftのmaterialize/dematerialize

他言語含めても、なかなか使われているサンプルも少ないmaterializeですが、 そんなに悪さをするオペレーターでもないので書いてみました。 こんなオペレーターもあるよ的な感じです。 materialize/dematerializeの機能 materialize dematerialize ありえそ…

SourceryでBuilderを自動生成するテンプレート

若干需要があったので、テンプレートファイルを作成して、Sourceryを使ってBuilderを自動生成してみました。 実装は、Lombokの@BuilderのようなシンプルなBuilderのイメージです。 projectlombok.org テンプレートと使い方 作成したテンプレートは、ここに置…

SwiftのOptionalの注意点とmap/flatMap

最初は、OptionalのmapとflatMapの話だけ書いていたのですが、だんだんOptionalそのものの話まで膨らんできたので、一緒に書くことにしました。 今回の話はコードレビューで見つけたら割と指摘したい部分ではあるものの、毎回この内容を書くのも無理があるの…

読んだ: インターフェースデザインのお約束

プログラミング関係の本は食傷気味なので、気分を変えて読んでみました。 勝手に付与されたPayPayなんとかポイントで買いました。 インタフェースデザインのお約束 ―優れたUXを実現するための101のルール作者:Will Grant発売日: 2019/11/09メディア: 単行本…

iOSのキーボードの高さと連動したビューを作る

絶対忘れる自信があるので書いておきます。 なんとなく、この辺りのインターフェースもまた変わりそうな予感がするので、暫定Swift 5、iOS 13版です。 NotificationCenter(raw) NotificationCenterはライフサイクルに合わせてobserverを破棄してくれるので、…

gemパッケージのCI/CDをGitHub Actionsに移行した

GitHub Actionsを使ってみたかったので、gemパッケージのrake specとrubygems.orgへのpushを自動化してみました。 GitHub Actionsの準備 PRに対してRSpecテストを実行する masterへのpushでgemをアップロードする GitHubのレポジトリの設定 GitHub Actionsの…

XcodeのSnippetsなどのカスタマイズ情報をgitで管理する

Xcodeのキーバインドや、コードスニペットなどのカスタマイズした情報(UserData)をgit管理する方法を記載します。 個人サーバーやGitHub等を使ってリモートで管理しておくと、Xcodeのバージョンアップの際や複数の環境で設定を揃える際に非常に楽になります…

iOSアプリの圧縮済みAssets内の画像のサイズを調べて小さくする

せっかくインストールしたアプリを削除されたくないので、インストール後のバイナリサイズを削ってみました。 今年は細かい作業やりたくないので、忘れないうちに記録に残しておくことにしました。 まず見るWWDCのセッション アプリのサイズ Assetsの中でか…