GraphQLのNodeのうまみをコードを書いて理解する

モチベーション GraphQLにNodeという概念があるがよく分かっていないので理解したい。NodeはGraphQLの文脈で見かけ、また、一般に公開されているGitHub APIでも登場する概念*1だが、Nodeを知らなくてもGraphQL APIを構築できることを経験しているので謎が深…

CircleCIで対象ファイルに差分があった時のみワークフローを実行させる

モチベーション GraphQLサーバーのリポジトリからクライアントのリポジトリへのスキーマファイル同期をCircleCIで行っている。 CircleCIのワークフローの実行のタイミングはスキーマファイル(schema.graphqls)に変更があった時だけで良いのでそのタイミン…

HKWorkoutをGraphQLで扱うためにスキーマ設計をやった

モチベーション github.com 趣味開発のHealthKitを使ったiOSアプリから外部にワークアウトのデータを保存したい 将来的にiOS以外のクライアントでデータを取得したい 構築するAPIをGraphQL APIとして進める際にスキーマ定義が必要なので設計の手順をログとし…

HealthKitスターターキット

iOS

運動中の鉄分補給を怠らない。 開発環境 > xcodebuild -version Xcode 14.0 Build version 14A5228q Xcodeはbetaだが本記事の内容は現時点でbetaになっている内容に言及はない。 モチベーション HealthKitを利用する際にやることをメモ。一つ一つ見ると大し…

CircleCIで終了ステータスが0以外の時に失敗せずに終了させる

モチベーション CircleCIのステップで git commit をした際に差分が無い場合は終了ステータスが1になりワークフローが失敗扱いとなる。これを成功扱いにして終了させたい。 version: 2.1 jobs: update-text: docker: - image: ubuntu:xenial-20210804 steps:…

2022年7月を振り返る

生活 XXぶりにモンハンをやっている。サンブレイク。 X, XXの狩技が快適すぎてそれが廃止になった今モンハンをやる気持ちは無かったのだが、翔蟲のアクションに惹かれてやり始めた。今MR60ぐらい。マルチも楽しいけどソロプレイでNPCを連れてクエストが出来…

GraphQLサーバーからクライアントへのスキーマ同期にCircleCIを使ってみた

モチベーション GraphQLサーバーとクライアント間ではスキーマを共有する必要がある。自動化したい。 つくったもの CircleCIのワークフロー実行時にlocalhostでGraphQLサーバーを立てて、Apollo CLI経由でサーバーからスキーマを取得する。取得したスキーマ…

自作アプリでGraphQLを使うための準備をした

ややポエム寄り。 開発環境 > go version go version go1.18.4 darwin/amd64 > xcodebuild -version Xcode 14.0 Build version 14A5228 モチベーション iOSのHealthKitで取得できるサイクリングやランニングのワークアウト情報をGraphQLで管理できるようにし…

delegateパターンの実装で迷わないための考え方

iOS

今まで雰囲気で書いていたことの本質的な理解をやっていく! 開発環境 > xcodebuild -version Xcode 14.0 Build version 14A5228q Xcodeはbetaだが本記事の内容はiOS16未満のAPIを使用。 モチベーション delegateパターンを実装する際に迷いが生じたのでもう…

ローカルのブランチの最新commitがリモートのブランチの最新commitと一致しているかを安全に確認する

Git

少し汚い話だが、髭を指で引っこ抜いていたら中指に激痛が走ってしまって12時間ぐらい痛みが引かなかった。爪が指に刺さりすぎたのだろうか。髭はひげ剃りで剃ろう。 開発環境 > git --version git version 2.32.1 (Apple Git-133) モチベーション ローカル…

自作アプリのDate→String変換をformatted()に置き換える

開発環境 > xcodebuild -version Xcode 14.0 Build version 14A5228q Xcodeはbetaだが本記事の内容はiOS16未満のAPIを使用。 本記事からXcode 14 beta 3。 モチベーション tokizuoh.hatenablog.com 先日Sequenceのformatted()を試した時にDateもformatted()…

Sequenceのformatted()を試す

開発環境 > xcodebuild -version Xcode 14.0 Build version 14A5229c Xcodeはbetaだが本記事の内容はiOS16未満のAPIを使用。 モチベーション Sequenceを読んでいたら知らないメソッドがあったので使ってみる。 ドキュメント formatted() | Apple Developer D…

背景色からpreferredStatusBarStyleを動的に設定する

※ 記事最下部に追記あり(2022/07/06 19:25) 開発環境 > xcodebuild -version Xcode 14.0 Build version 14A5229c Xcodeはbetaだが本記事の内容はiOS16未満のAPIを使用。 モチベーション 背景色からpreferredStatusBarStyleを動的に生成したい。 view contr…

Status barの設定を変更する childForStatusBarStyle・preferredStatusBarStyle編

目指せStatus barマスター その2。 開発環境 > xcodebuild -version Xcode 14.0 Build version 14A5229c Xcodeはbetaだが本記事の内容はiOS16未満のAPIを使用。 モチベーション Status barマスターになりたい。Status barの設定をシュッと変えられるようにす…

Status barの設定を変更する childForStatusBarHidden・prefersStatusBarHidden編

目指せStatus barマスター その1。 開発環境 > xcodebuild -version Xcode 14.0 Build version 14A5229c Xcodeはbetaだが本記事の内容はiOS16未満のAPIを使用。 モチベーション Status barマスターになりたい。Status barの設定をシュッと変えられるようにす…

bundle installで参照するGemfileの場所はどのように決まる?

結論 bundle install 実行時は、 まずコマンド実行時の階層のGemfile, gems.rbの存在を確認 存在しなかったら上の階層を探しに行く、を探せるまで繰り返す 開発環境 > bundle -v Bundler version 2.3.17 モチベーション bundle install 実行時に、直下にGemf…

2022年6月を振り返る

2022年が半分終わった。体感スピード早い。 気温と湿度が高く暑かった。明らかに人生でトップに暑い6月だった。 あとFF10をやった。個人的には4がトップだけど10もトップ。トップとは。 前回のTry ✅ 本読んでいきたい、ジャンル問わず アスリートのためのス…

orthogonalScrollingBehaviorを試す

趣味プログラミングは勢いで書け! 開発環境 > xcodebuild -version Xcode 14.0 Build version 14A5229c Xcodeはbetaだが本記事の内容はiOS16未満のAPIを使用。 モチベーション orthogonalScrollingBehavior を使ったことがなかったので書いてみる。 できた…

SwiftUIでTextのマスク処理

開発環境 > xcodebuild -version Xcode 14.0 Build version 14A5228q Xcodeはbetaだが本記事の内容はiOS16未満のAPIを使用。 モチベーション マスク処理やってみたいけどパッと実装が思いつかなかったので書いてみる。 お題 https://youtu.be/j3INdAPAO0o?t=…

Figma Tokensを使って色をGitHubで管理する

モチベーション 色の管理の一元化を考えてたら Figma Tokens にたどり着いたので使ってみる。 Figma Tokensをインストール www.figmatokens.com Figma Tokensで色を設定 Figma上で右クリックするとプラグインのメニューが表示される Figma Tokensに色を設定 …

Swiftで配列のインデックスの存在確認はindices.contains()よりendIndexを使う方がより良い?

2022/06/24追記: 参照しているcontainsが違った。本記事の最終段落に追記。 ドキュメント読んでたら気になったのでメモ。 開発環境 > swift --version swift-driver version: 1.55.1 Apple Swift version 5.7 (swiftlang-5.7.0.113.202 clang-1400.0.16.2) …

potatotips #78で発表してきた

緊張しすぎて自分が何喋ってるかわからんかったが、参加してよかった。 イベントURL potatotips.connpass.com 発表資料 speakerdeck.com 累積和と自分 累積和(Prefix Sum)はシンプルな仕組みでリターンが大きいアルゴリズムの一つ。自分は累積和が土台となっ…

mikefarah/yqを使って複数のYAMLを統合する

開発環境 > yq --version yq (https://github.com/mikefarah/yq/) version 4.25.2 モチベーション CircleCIで複数YAMLを扱う場合はDynamic Configurationを利用し、その際に複数YAMLを1つのYAMLに統合する必要がある。今回はyqを使って2つのYAMLを統合してみ…

HKSampleQueryをHKSampleQueryDescriptorに置き換える

開発環境 > xcodebuild -version Xcode 13.3 Build version 13E113 モチベーション HealthKitが提供するAPIにSwift Concurrency対応のものが増えていたので使ってみる。 HKSampleQueryDescriptor iOS15.3以前では、HealthKitを使ってワークアウトを取得する…

Swift Concurrency: URLのlinesを試す

少しでもSwift Concurrencyに慣れていきたい。 開発環境 > xcodebuild -version Xcode 13.3 Build version 13E113 モチベーション Swift Concurrencyを身体に覚えさせたい lines (URL) As a convenience, you can use Swift’s async-await syntax to asynchr…

Controlling extension points in protocols を読んだ

本記事は下記記事を読めば理解できるので原文を読もう。 www.hackingwithswift.com 昼間、夜に読んで具体的な利用ケースが思い浮かばなかった。忘れそうなので記事に残す。 開発環境 > swift --version swift-driver version: 1.45.2 Apple Swift version 5.…

zsh: no such file or directory: /usr/local/bin/zsh (絶望)

まとめ この記事から得られることは無いので、今日得た教訓を書く。 よく分からないインターネットのコードは手元で実行するな! 経緯 dotfilesでHomebrewの依存も管理しようかなと思い、まず手元のHomebrewをアンインストールしたところ、ターミナルが操作…

2022年5月を振り返る

前回のTry ✅ 働く環境が変わるので体力的に無理をしない ✅ 自転車に3回乗る 4回乗れた。天気良くて気持ち良い 総走行距離: 112km 40kmぐらいは休憩なしでいけるようになってきた Good 継続してブログにアウトプットできた 11記事 本読んだ 小説: 金木犀と彼…

dotfiles盆栽を始めた

dotfilesとは 具体的な定義は無いっぽいが、.zshrc などのドット(.)から始まるファイルをまとめて管理するリポジトリやディレクトリの通称らしい。 PCの乗り換え時や複数PCを利用する時などにシェルの設定ファイルを使い回せるので便利。 モチベーション …

RenovateでMint管理のライブラリ更新を自動化する

iOS

モチベーション Renovate*1の管理対象にMint*2で管理しているライブラリを追加したい RenovateはCocoaPodsなどには対応しているがMintは直接対応していない*3 直接対応していないツールも正規表現書けば対応可能 正規表現書こう! コード realm/SwiftLint@0.…