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

開発環境 > git --version git version 2.32.1 (Apple Git-133) モチベーション ローカルのブランチのcommitとリモートのブランチのcommitが一致しているかどうか安全に確認したい。 以下のように乱暴に確認できるのだが、もしローカルにリモートには無いcom…

自作アプリの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.…

iOS15で追加されたHealthKitのrequestAuthorizationを試す

開発環境 > xcodebuild -version Xcode 13.3 Build version 13E113 モチベーション Swift Concurrencyに入門したい とりあえず個人開発中のサイクリングログViewerアプリ(tokizuoh/contrail)で実験 iOS15で追加されたHealthKitのrequestAuthorization iOS1…

Xcodeエラー対応: ld: symbol(s) not found for architecture x86_64

開発環境 > xcodebuild -version Xcode 13.3 Build version 13E113 エラー Undefined symbols for architecture x86_64: "SampleModule.SampleModule.init() -> SampleModule.SampleModule", referenced from: Test20220519.ViewController.viewDidLoad() ->…

HealthKitでcyclingの時速は直接取得できないぞ!

結論 HealthKit経由で取得したワークアウト(HKWorkout) から時速を取得するには、 totalDistance(HKQuantity) と duration(TimeInterval) を使って算出する必要がある。 let distance = workout.totalDistance!.kilometers() let averageSpeed = distance …

instantiateViewController(identifier:creator:)を試す

使ったことがないAPIはミニマムですぐ書く! 開発環境 > xcodebuild -version Xcode 13.3 Build version 13E113 モチベーション instantiateViewController(identifier:creator:) を使ったことがないので使ってみたい instantiateViewController(identifier:…

Info.plistの数値のvalueをインクリメントするワンライナー

ありえんほど疲れた。egrep何も分からん。結局分からんくて使わずに書いた。 モチベーション Info.plistの数値のvalueをインクリメントするワンライナーを書きたい。 題材として、個人開発しているSwiftUIアプリのInfo.plistを改造して試してみる。 <plist version="1.0"> …</plist>

Combineのdebounceを試す

開発環境 > xcodebuild -version Xcode 13.3 Build version 13E113 モチベーション debounceを使ったことがないので使ってみたい debounce Publishes elements only after a specified time interval elapses between events. https://developer.apple.com/d…