cockscomblog?

cockscomb on hatena blog

Relayに学ぶGraphQLのスキーマ設計

2018年の初めくらいから、仕事でGraphQL APIを何度も作っている。サーバーサイドもクライアントサイドも実装している。 最近クライアント側にRelayを使ってみている。 GraphQLのクライアントとしてはApolloを使う場合が多いと思うが、Facebook製のRelayもか…

Work From Living Roomで使うマイク

プロローグ 西暦2021年、COVID-19のパンデミックによって人類が活動の抑制を余儀なくされてからおよそ1年が経っていた。一部のデスクワーカーは在宅勤務、「Work From Home(WFH)」にシフトすることで、他者との物理的な接触を避けながら職務を継続した。ビ…

ちょっとスクリプトを書くくらいの気持ちで作るSwiftUIアプリ

12年前くらいからiOS向けのアプリを作ってきた。最初は学生の個人開発、途中から仕事、そして最近は(仕事ではあまりやらなくなったので)趣味的にやっている。UIKitで、はじめの頃はUITableViewが難関だった。毎年のアップデートでUIKitはどんどん拡充され…

メニューバーに目玉を表示するやつ

なんでかわからないけど、昔はデスクトップに目玉を表示する風習があったと思う。正月に突然そのことを思い出して、「macOS Eyball」とかでググったりした。最近は流行ってないらしい。 マウスカーソルを追いかける目玉を作るには、目玉の座標とマウスカーソ…

子供にアプリを作る

3歳の息子にiPad Proを与えている。2018年の11インチのiPad Proで、僕のお下がりだ。Apple Pencilも与えてあるが、こちらは1歳になったばかりの娘が狙っているため、恐れた息子はApple Pencilをなるべく片付けておく。 自由に使っていい iPad Proを与えたか…

Apple Watchで血中酸素濃度を測るの巻

「てがきはてなブログ」がリリースされていたので、早速使ってみました。iPadで絵日記がかけてすごい! 普段は手で字を書かないので、まったくうまく書けなかった。あと日付を間違っている。そういうのも含めて、よい体験だった。

SwiftUIにおけるActionパターン

SwiftUIはWWDC20で大きく更新された。アプリ全体をSwiftUIで作る方法が確立されたほか、新しい抽象がいくつも導入されている。どれも非常に興味深いが、本記事ではその中からActionパターンを見出し、紹介する。 Actionの導入 WWDC20ではSwiftUIに、以下の4…

WWDC20ファーストインプレッション

WWDC20のKeynoteをみて、ドキュメントを乱読し、Platforms State of the Unionをみて、ちょっと寝て、仕事をしている。今はめちゃくちゃ眠たい。仕事休んだらよかった。 予想の振り返り 一昨日、ちょっとふざけた感じで、各メディアの予想と筆者の考えをまと…

WWDC20で何が発表される?予想をまとめてみました!

2020年のWWDCは、新型コロナウイルスによる感染症拡大のため、ほかの様々なイベントと同様に開催形式が変わる。現地時間の22日(日本時間では23日)、KeynoteとPlatforms States of the Unionが行われ、その後に様々なセッションビデオが公開される予定だ。 …

Swift AWS Lambda Runtimeを試す

2020年5月末に、 SwiftをAWS Lambdaで動作させるプロジェクトが発表された。swift-server/swift-aws-lambda-runtimeがそれである。ということで、AWS CDKでAPI GatewayとSwiftのLambda Handlerを作ってみた。 Lambda Runtime AWS Lambdaは、AWSのFaaS。提供…

紛らわしい文字列をもっと紛らわしくする「InkBleed」をMac App Storeで販売開始

紛らわしい文字列をもっと紛らわしくするアプリの登場です。 インクがにじんだような読みにくいテキストを作れるMac向けの新しいアプリケーション 2020年5月7日、インクがにじんだような読みにくいテキストを作れる、Mac®︎向けの新しいアプリケーション、Ink…

在宅勤務にかこつけて自宅のデスク周りをアップグレード

京都も緊急事態宣言の対象になった4月中旬、職場で原則在宅勤務のお達しが出た。正直に言えば、3歳と0歳の子供がいる中での在宅勤務には乗り気になれなかった。それでも、社会が急速に変化する中で、自分もまた変化しなくてはいけないと思った。 あまり広く…

SwiftUIではSingletonの代わりにEnvironmentを使うことができる

ここで言うSingletonというのは、ある種のグローバル変数を指している。そもそもクライアントアプリケーションの開発においては、実質的なグローバル変数が出現しやすい。環境にたった一つしか存在しない、存在すべきでない、というものが見出せる。例えばタ…

紛らわしい文字列をもっと紛らわしくする

同僚にid:yashigani_w(ヤシガニ)とid:yigarashi(ワイイガラシ)がいる。いかにも似ているが、あるとき一緒に仕事をすることになって、紛らわしさが限界を超えた。 yashigani yigarashi そうとわかって見たら、なるほど「y」で始まって「i」で終わるのが似…

apple/swift-formatを試す

オフィシャル感のあるSwiftのformatter/linterであるところの、swift-formatを試した。 SwiftのGoogleフォークで生まれたものがベースになっているようだ。開発が進んでいるmasterブランチと、Swift 5.1に対応するswift-5.1-branchブランチがあり、後者を試…

息子にカメラを与える

まだ2歳半で早すぎると思うけど、普段から僕のカメラを羨ましがっているので、少しくらい乱雑に扱われても大丈夫そうなカメラを買った。 いろいろ調べて、NikonのCOOLPIX W150というのにした。耐衝撃性能を宣伝しているくらいなので、きっと頑丈なつくりにな…

CoreImage.CIFilterBuiltins

iOSやmacOSで画像を加工しようとした場合、Core Image frameworkを使うのが簡単だ。画像をハードウェアの支援で高速に処理でき、内蔵された様々なフィルターを使うこともできる。Mac OS X 10.4で初めて搭載されて以来、しっかりとアップデートされ続けている…

二人目の子供が生まれました

およそ一週間前の21日午前1時頃、僕と妻の二人目の子供が生まれました。予定日を10日も過ぎて生まれた息子とは違い、予定日翌日のことでした。3,200グラムの女の子です。日が変わる頃に病院へ行って、そこからあっという間に産まれました。 息子のときより小…

Chromeが影響を受けたmacOS Catalinaの「Hiragino Kaku Gothic ProN」フォントファミリーに関する変更

macOS Catalinaにアップグレードすると、Google Chromeのフォントの表示が変わる、ということがあった。CSSでフォントファミリーとして「Hiragino Kaku Gothic ProN」を指定していても、この指定が効かずにフォールバックされてしまうというものである。macO…

Marzipanを予想した答え合わせ #WWDC19

昨年のWWDCよりさらに前に、Marzipanを予想すると称して、与太話を書いた。その時は「UIKitの移植」と「まったく新しいUIフレームワーク」とそれらの「グラデーション」の3パターンを予想していたが、結果としてはこれらがすべて出た。 Project Catalyst 初…

AWS CDK は React

AWS Cloud Development Kit(以下、CDK)というものがあるが、これの提供する抽象化について考えを巡らしていたところ、唐突にこれは React だと気付いた。 CDK と React の類似性 CDK の CloudFormation Resource は、React の DOM Element に対応する。 CD…

Flutterを試した

flutter.io 先日なんとなく物見遊山的にFlutterを試してみた。特に事前の知識もなく数時間で試した程度で、全体に不案内ではあるから、それなりの感想であることを先に断っておく。 (当方はiOS/Androidのネイティブアプリの開発や、Reactを使ったWebフロン…

Marzipanを予想する

予想というか、根拠のない与太話です。 Marzipanと呼ばれるAppleのプロジェクトは、どのようなものになるのだろう。噂では、iOSとmacOSのアプリが一度に作れるようになるらしい。このふたつのOSのアプリを開発する上での主要な差異は、iOSのUIKitとmacOSのAp…

Docker for Macでコンテナの中からホストに繋ぐたった一つの冴えたやり方

Networking features in Docker for Mac | Docker Documentation コンテナ中で docker.for.mac.localhost というDNS名を使うと、ホストのmacOSに繋がります。 メリークリスマス。 追記(2018/01/06 21:00) Docker 17.12.0から新たに同じ用途の docker.for.m…

三点リーダーの位置をOpenTypeフォントでいい感じにする……

僕は三点リーダー「…」が好きで、ついつい使ってしまいます……。この三点リーダーですが、日本語では(仮想ボディの)中央に並び、欧文ではベースライン上に並べるのが一般的です。一方で昨今のWeb媒体などでは、日本語の文章であっても三点リーダーがベース…

「iOS 11 Programming」を書きました

iOS 11 Programming著者:堤 修一,吉田 悠一,池田 翔,坂田 晃一,加藤 尋樹,川邉 雄介,岸川克己,所 友太,永野 哲久,加藤 寛人,発行日:2017年11月16日対応フォーマット:製本版,PDFPEAKSで購入する 今日から普通にお買い求めいただけます。 担当した章につい…

技術書クラウドファンディングプロジェクト「iOS 11 Programming」

iOS 11 Programming著者:堤 修一,吉田 悠一,池田 翔,坂田 晃一,加藤 尋樹,川邉 雄介,岸川克己,所 友太,永野 哲久,加藤 寛人,発行日:2017年11月16日対応フォーマット:製本版,PDFPEAKSで購入する 以前に妻のいとこに会ったとき、当時大学生だったそのいとこ…

子供が生まれました

本日午前11時に、僕と妻の子供が生まれました。予定日を10日ほど過ぎた、3,700グラムの男の子です。日付が変わった頃から陣痛がきて、それからあれよあれよという間に産まれていました。今はただ妻と息子の無事をありがたく思います。 結婚してからおよそ1年…

年末年始に飲み過ぎないために

諸君は酒が好きだろうか。筆者の場合は少しくらい、好きである。酒を飲んでもいいことなどない。僅かに楽しいような気分になるばかりで、だんだんと頭がボーッとしてきて身体もダルくなり、ひどいときには周囲の人間にまで迷惑をかける。しかし、よく冷えた…

Swift 3 の private と fileprivate

おはようございます。バットマンです。PlayStation VR でバットマン:アーカム VRを遊んだところ、現実とゲームの区別がつかなくなりました。ヘッドセットを外した後も、手がオブジェクトにめり込むんじゃないかと錯覚するようになった。 ところで Swift ピ…