2022-01-01から1年間の記事一覧
追記 Next.js 13以降での設定方法をまとめました。blog.kimizuka.org Next.js 12から導入されたミドルウェアを使って、Basic認証を設定するサンプルを見つけたので試してみました。nextjs.orggithub.com _middleware.ts import { NextRequest, NextResponse …
ことの発端 expo startで起動したExpoアプリは、ターミナルでiを押下することでiOSシミュレーターでプレビューすることができます。 MacにXcodeとCommand Line Toolsがインストールされていることが条件となるのですが、両方インストールしても、 ✔ Xcode ne…
前回つくった、Expoアプリにプッシュ通知を送るローカルサーバ。blog.kimizuka.orgすんなりうまくいったので、これをそのままHerokuやら、Lambdaやら、Cloud Functionsやらにデプロイすれば、問題なくプッシュ通知を遅れると思い込んでいましたが、冷静に考…
まだ片手にしか対応できてませんが、コントローラーでオブジェクトを掴むことができるWebVRをつくりました。 cannon.jsで物理演算しているので、掴んだオブジェクトを放り投げることもできます。 DEMO kimizuka.org 実装方針 マウスで3Dオブジェクトを掴んで…
結論 ことの発端 Expoの調査 Expoの導入 ❶ アカウントの作成 ❷ アプリの準備 ❸ expo-cliの導入 ❹ expo-cliにログイン プッシュ通知を受信するアプリの作成 ❶ プロジェクトの作成 ❷ expo-notificationsの導入 ❸ app.jsonを編集 ❹ コードを書く App.tsx プッシ…
Cannon.js + Three.js + React.jsで、 マウス座標に応じて床を傾ける 四方を見えない壁で囲う という空間を作って、そのな簡易3Dの球を配置してみました。 DEMO kimizuka.org ソースコード(抜粋) function handleMouseMove(evt) { const deg = 12; const x…
Three.js(r127)で開発していたサイトで、Three.jsのバージョンをr136まで上げてみたところ、glTFファイルの色味が若干薄暗くなりました。 r127 r136 直感的に、 renderer.outputEncoding = THREE.GammaEncoding; の部分が効いていないのだと思い、調査して…
前回は、worldにaddBodyしたCannon.BodyとaddBodyしていないCannon.Bodyに対してPointToPointConstraintを使いました。blog.kimizuka.org今回はPointToPointConstraintの引数に、worldにaddBodyしたCannon.Bodyを2つ渡してみます。 結論としては同じ座標(中…
前回、Cannon.jsを使ってオブジェクトをマウスで掴んで放り投げるモック をつくりました。blog.kimizuka.orgつくりました。が。いきなり盛り盛りすぎたので、要素を分解して検証していきたいと思います。今回は、ものすごくシンプルに、マウスダウン 自分の…
Cannon.js + Three.jsを使って、マウスでオブジェクトを掴めるようにしてみました。 物理演算をしているので放り投げることもできます。ざっくりとした流れとしては、❶ Cannon.jsで計算用のworldをつくる ❷ 毎フレーム、Cannon.jsでオブジェクトの位置を計算…
Cannon.js + Three.jsでオブジェクトの位置を物理演算で算出してみました。ざっくりとした流れとしては、❶ Cannon.jsで計算用のworldをつくる ❷ 毎フレーム、Cannon.jsでオブジェクトの位置を計算する ❸ 毎フレーム、Three.jsのオブジェクトの位置と姿勢をCa…
AR.js + Three.js + Next.js(React.js) でWebARコンテンツを作る際、AR.jsの読み込みをどうするのがスマートなのか、ずーっと悩んでいたのですが、とりあえずカスタムフックを作ってみました。 ソースコード useMakerAr.js import { useEffect, useState }…
特殊文字をアンエスケープしたいと思って、もろもろ調べました。Mozillaのサイトによると、 < < > > " " ' ' & &こちらの5文字が特殊文字として挙げられています。developer.mozilla.org最小の構成であれば、この5文字をreplaceす…
blog.kimizuka.orgかつて、 controllerModel.motionController.data にアクセスすることで強引に取得していた、トリガー、A、B、X、Yボタンの状態ですが、VRボタンを、Three.jsのVRButton.jsからImmersive Webのwebxr-button.jsへ切り替えたところ、スマート…
immersive-web.github.io ことの発端 普段はThree.jsでWebVRコンテンツをつくっているので、Three.jsのVRButton.jsを使っています。github.comしかし、以前、gamepadにアクセスしようとした際、sessionが隠蔽されており、外部からスマートにアクセスする方法…
github.comそもそも、GraphiQL側の問題のようなのですが、Shopify GraphiQL Appにエラーとなるようなクエリを書き込んでしまうと、エラーで画面が表示されなくなります。それだけならまだしも、「前回のクエリをlocalStorageに保持して初期値に使う」という…
iOS15.3.1に収録された全絵文字をJavaScriptの配列に収納しようしたのですが、一部スプレッド構文での分割がうまくいかない絵文字がありました。例えば、️という絵文字。 [...'️']; // => ['', '', '', '️']と言う感じで、 と に分かれてしまいます。そ…
linear-gradientとbackground-sizeをうまく使うと、背景に繰り返しで線を引くことができます。 DEMO CSS div { position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: linear-gradient(0deg, red 1px, transparent 1px); background-size:…
過去にも商品一覧やブログ記事一覧を取得したことがあったのですが、GraphQLの書き方を調べながらいろんなものを取得してみたので書き方をメモしておきます。blog.kimizuka.org blog.kimizuka.org 商品一覧取得の書き方例 { products(first: 10) { edges { n…
Drag and Drop APIを検証しました。developer.mozilla.org 実装手順 最小構成だと、 ドラッグ可能にしたい要素のdraggableをtrueに設定する ドロップ可能にしたい要素にdragoverイベント、dropイベントを設定する dragoverイベント、dropイベントに設定した…
最近、CSSのmix-blend-modeを使って、HTMLの色を動的に変更しようと試みることがありまして、デモページを作って、改めて使用できる値を確認しました。developer.mozilla.org 基本的な使い方 mix-blend-modeを指定すると、重なっていている要素の色を合成し…
最近、CSSのfilterを使って、HTMLの色を動的に変更しようと試みることがありまして、デモページを作って、改めて使用できる関数を確認しました。※ SVGフィルターは試してません ※ 上限はある程度適当に決めていますdeveloper.mozilla.org DEMO 記述順 今回は…
screen.getAllDisplaysを使えば、利用可能なディスプレイを配列で取得することができます。www.electronjs.org const displays = screen.getAllDisplays(); // ディスプレイの配列を取得 この際、配列の順序がよくわからない(認識された順?)ので、僕は座…
文章での表現がすごく難しいのですが、 const [list, setList] = useState([{ color: 'red', text: 'Ya-Ha-!' },{ color: 'blue', text: 'Yo-Ho-!' },{ color: 'yellow', text: 'Ya-Ha-!' },{ color: 'green', text: 'Yo-Ho-!' }]); と、いう感じでuseState…
テキストエリアに行数制限を作りたくてもろもろ検討しました。 日本語だけの対応でOKであれば、当幅フォントを使って行も列も制限を掛けるのが良いと思いました。 DEMO フォントサイズを10pxに設定 リサイズを不可に設定 大きさを20文字×10行に合わせる 最大…
先日、自前でAPIを用意してShopifyのブログ記事一覧を取得しましたが、前回、商品一覧を取得する際にGraphQLの使いかたを学んだので、GraphQLで書き換えてみます。blog.kimizuka.org blog.kimizuka.org 手順 プライベートアプリを用意して、ストアフロントAP…
前回は、js-buy-sdk(shopify-buy)を使って商品一覧を取得しましたが、今回はGraphQLで取得します。 方法はいろいろあるのですが、GraphQLを扱いやすくするためにApollo Clientを使って実装しました。blog.kimizuka.org個人的には結果が同じであれば使い慣…
手順 プライベートアプリを用意して、ストアフロントAPIのアクセストークンを取得する help.shopify.comこちらの手順に従って、 プライベートアプリを用意する ストアフロントAPIを有効にする 商品、バリエーション、コレクションを読み込むの権限を付与する…
なにか根本的なところを間違えている気がしてならないのですが、強引な手法でShopifyのブログ記事一覧を取得できたのでメモを残しておきます。 結論 src/pages/api/getArticles.js import axios from 'axios'; export default async function getArticleList…
かつては自前でmicroCMSとNext.jsを組み合わせていましたが、SDKができたとのことだったので、つかってみました。Nuxt.js用のSDK、GatsbyJS用のSDKとフレームワーク専用で用意されているものもありますが、Next.jsは専用のものが無いので、Javascript(Node.…