WWDC前にSwift Playgrounsで遊んでいた時に、複数行を入力したくなって、TextEditorをTextFieldっぽく使う方法を紹介しました。 kouki.hatenadiary.com 今週はWWDCがあり、そこでTextFieldの拡張が発表されました!なんと、TextFieldでTextEditorのような複…
---WWDCアップデート--- WWDC22でのアップデートで、iOS 16以降は標準のTextFieldでこれを実現できるようになりました!こちらも合わせてご確認ください!こちらの記事はiOS 15以下向けのものとして、参考にしてください。 kouki.hatenadiary.com SwiftUIで…
最近GitHub Actionsを便利に使うためのCustom Actionを作っていました。 kouki.hatenadiary.com このActionに設定をリポジトリ内のファイルから取得する機能を追加したくなったんですが、この機能のためだけにcheckoutするのもなぁ、と悩んでいました。 具体…
この記事は はてなエンジニア Advent Calendar 2021 の16日目の記事です。昨日は id:masayosu の はてなにおけるCloudNative推進会の活動について でした。 サブ会という仕組みで専門領域における情報共有や深い議論ができるようになっていて、僕もスマート…
Flexboxを使うときによく使う justify-content ですが、justifyの意味は正当化するという意味だと習ってきました。確かにわからなくもないけど、ちょっと意味が取りにくいな、と思っていて、ふと思い立ち辞書で調べてみました。 なるほど、行の長さをそろえ…
iOS 14から使えるStateObject、とても便利ですよね developer.apple.com ObservableObjectなどを初期化するときに便利です。 class Object: ObservableObject { @Published var value = "value" } struct Content: View { @StateObject var object = Object(…
Next.jsはpages以下に置いたファイルに応じてURLが決定します。一方、あるコレクションページのコンテンツをモーダルで表示するが、そのモーダルにURLを与えたいケースがあります。 例えば昔のTwitterのWebはそのようになっていて*1、タイムライン上のツイー…
最近iOSアプリ開発を振り返るタイミングがありました。どういうことかというと、いきなり宣伝になるのですが、先日発売したWEB+DB PRESSでiOSアプリ開発の最前線についての特集を同僚のid:cockscomb、id:yutailang0119と一緒に執筆しました。 gihyo.jp Macを…
ソースコードをパッと見せられてアルゴリズムの名前を答える早押しクイズやりたい— こーき@だん (@kouki_dan) 2021年2月5日 最近アルゴリズムの話題をよくTwitterで見かけるので、こういうクイズあったら面白いかも?と思ったので作ってみました こちらから…
こんばんは! id:kouki_dan です!株式会社はてなのネイティブアプリエンジニアです! この記事は、はてなエンジニア Advent Calendar 2020の8日目の記事です。 昨日は id:shallow1729 さんのAtcoder初心者が成績アップに繋がったと感じた考え方の工夫でした…
Webコンポーネントをブラウザでサッと確認するのにStorybookが便利ですね。Storybookは自分で作ったコンポーネントをブラウザ上で一覧できるツールです。以下のようなコンポーネントを表示できるWebページを簡単に作ることができます。 始め方は簡単で、Reac…
モバイルアプリのCI/CDプロダクトとして有名なBitriseでは、ワークフロー上で行う処理をステップの組み合わせで実現しています。このステップは十分なものが公式やサードパーティが用意しているのですが、自分でカスタムステップを作ることもできます。最近…
SwiftUIでカメラを扱いたくなって色々調べた&試したので記事にします。 SwiftUIでカメラを扱いたい! SwiftUIでカメラを直接扱うことは現在のところできず、UIKitで作ったカメラのビューを表示する必要があります。 カメラを使う一番簡単な方法は、UIImagePi…
最近Next.jsとFirebaseばかりやっています。って書きましたが、本当はこの一ヶ月どうぶつの森しかやってませんでした。どうぶつの森のプレイ時間は200時間を超えました。 そろそろエンジニアとしても生活したくなってきたのでエンジニアっぽい話をします。Ne…
最近Next.jsを使って開発することが多いです。ちょっとした物を作る時はFirebaseと組み合わせることが多いのですが、ガッツリAPIを作り込みたい時はGraphQLで書くこともあります。 GraphQLを使う時はGraphQL SDLでスキーマを定義することになると思います。…
ちょっと前にGitHub Actionsをデプロイに使いたいけどデプロイタイミングは自分で選びたかったのでこんなものを作りました kouki.hatenadiary.com ここで使ったrepository_dispatchイベントはとりあえずActionを走らせるためには便利なのですが、イベントで…
iOS 11でApp Storeからトップセールスのタブが消えたことを覚えていますでしょうか。 App Storeでは確認できなくなりましたが、この情報を見る方法が存在しています。 AppleはiTunesやApp Storeの情報を取得できるRSSを提供しています。 rss.itunes.apple.co…
こんばんは! id:kouki_dan です! この記事は、はてなエンジニア Advent Calendar 2019の8日目の記事です。 昨日は id:hokkai7go さんのはてなSREチームにおけるスクラムの実践というタイトルでJuly Tech Festa2019に登壇しますでした。July Tech Festa2019…
最近は趣味でGolangとTypeScriptを書いています。Golangのドキュメントを見ていると気になる記述を見つけたのでブログに書き残します。 ここに書いてあることです。 github.com あるモジュールをテストしたい時に、モックのためにインターフェースで公開する…
FirebaseとGitHub Actionsがマイブームの id:kouki_dan です。 つい先日Firebase App Distributionがリリースされましたね! firebase.google.com FirebaseはFabricの機能を順次Firebaseで扱えるようにしていますが、App Distributionは今までFabric Betaで…
GitHub Actionsがマイブームです。とても便利なGitHub Actionsですが、「ボタンを押してデプロイ」のようなことができないのが不便でした。 GitHub Actionsをトリガーするボタンを作るサービスを作りたいって思ってるけどこれあと5分待てば公式から出るでし…
Google Apps Scriptにハマっています。 id:kouki_dan です。 Google Apps ScriptはGoogleスプレッドシート上でJavaScriptを実行できるもの、という認識が強いかもしれませんが、G Suite Developer Hubにより、もっと手軽に、様々な自作スクリプトを実行する…
.appというgTLDをご存知でしょうか。gTLDはgeneric top-level domainの略後で、ICANNが管理しているトップレベルドメインのことです。 有名どころでは.comや.net等があります。このブログのURLは https://kouki.hatenadiary.com ですが、この.comの部分がト…
Undoを実装したいと思ったのでSwiftのUndoManagerを軽く調べてみました。 developer.apple.com このクラスにはregisterUndoはあるのですが、registerRedoが存在しません。これによってundoが実現できるのことはわかるのですが、どのようにredoが実装されてい…
以前こんな記事を書きました。 kouki.hatenadiary.com このあとOculus Riftが届き、いろいろ試したのですが、少なくとも僕の構成だとVRをやるのは厳しいという結論に至りました。 厳しいと思った理由はいろいろありますが、一番大きいのは CPUが100%に張り付…
VRブーム、来てますね。SAOのような世界に行ってみたいものです。 そんなVR環境の現状ですが、カジュアルVRから本格的VRまで様々なものがあります。 カジュアルなVRはハコスコのように、スマートフォンを箱に入れて使うようなものから もうちょっと進歩して…
この記事はFirebase Advent Calendar 2017 8日目の記事です。 昨日は @yamacraft さんの Firebaseプロジェクトのデプロイについて でした。アプリ開発のノウハウはたくさんあふれていますが、デプロイについては後回しにされてしまうことが多いですよね。 デ…
Gitのremote checkoutのおはなし Gitのリモートブランチをローカルにチェックアウトしたい時、ありますよね。 しかもそのローカルブランチにはトラッキングブランチを指定したいですよね。 僕は今まで git checkout -b branch_name origin/branch_name とい…
Arukasというサービスをご存知でしょうか。 ちょっと前にSRE Tech Talk に行った時にさくらインターネットの方が発表していて知ったのですが、とても良いサービスだったので紹介します。 ちなみにこの勉強会のプレゼンはとても良かったのでおすすめです。ス…
この記事は、苫小牧高専 Advent Calendar 2016 - Adventar 8日目の記事です。 なぜ書くことになったのか なぜ書くことになったのでしょう。僕は苫小牧高専生ではありません。苫小牧に生まれ育ちましたが、苫小牧高専に知り合いが多かっただけのただの高校生…