- 1. はじめに
- 2. 必要なもの
- 3. Openweather APIの発行
- 4. 実装
- 4.0.1. SvelteKit + Supabase Storageを使ってアイコン登録
- 4.0.2. Promiseへの理解が進むかもしれないクイズ
- 4.0.3. Google Maps JavaScript APIと天気APIでクリックした地点の天気を表示してみる
- 4.0.4. [Day13] クラス part1
- 4.0.5. JavaScriptでモックするやつ
- 4.0.6. Intersection Observer APIの実用的な使い方とたまに罠
- 4.0.7. 初歩的・基本的(+α)なWebデザイン
- 4.0.8. Lambdaを使ったPDFファイル作成とダウンロード
- 4.0.9. 【完走賞ゲット-13】p5.js Web Editor上でボールが跳ね返る時に DualShock 4 を振動させる(gamecontroller.js での実装)
- 4.0.10. three.js 曲げとねじれにボーンを分けて腕のスキニングを綺麗にする
- 4.0.11. Reactでよく使われるpropsについて知ろう
- 4.0.12. Core Web Vitalsを改善してスコアを13点から68点に上げた話(進め方・やったこと・効果)
- 4.0.13. 【Alpine.js】DOMを取得する特殊なプロパティ($el、$refs)
ESLintについて調べた内容
# ESLintとは何か
一言で言えば、EcmaScriptの財団で明示した仕様に反していないかをチェックしてくれるツールのこと。
ESLintは、コードのスタイルや規則に反するところを知らせてバグを産まないようにすることができる。
なお、コードのスタイルや規則は個人によって、または会社によって異なるケースもあるため、`.eslint`ファイルをもってカスタムすることも可能。# 設定方法
やり方としては`package.json`に直接eslintの設定をする方法あり、`.eslint`ファイルに別途設定する方法がある。
もし、`.eslint`と`package.json`が両方存在する場合、`.eslint`が適用される。(内部的には`.eslint`が`package.json`にオーバーライディングされるらしい)# `.eslint`の配置場所
監視したいファイルのルートディレクトリに保存すればOK。
“`
your-project
├── .eslint
├── lib
└── source.js
“`
上記のように`.eslint`ファイルを置くことで、`sou
svelte-stripeを利用してSvelteにStripeの決済フォームを実装する
この記事は、[Svelte Advent Calendar 2022](https://qiita.com/advent-calendar/2022/svelte) 13日目の記事です。
Svelteは、WebアプリケーションやGUIを構築するためのUIライブラリの1つです。
https://svelte.jp/
Reactなどと異なり、仮想DOMを利用せず、軽量かつシンプルに実装できることを謳っています。
Svelteでアプリケーションを開発する場合、`svelte-stripe`ライブラリを利用することで、Stripeでのオンライン決済機能の組み込みが簡単に行えます。
https://www.sveltestripe.com/
## Viteでプロジェクトをセットアップする
早速Svelteアプリを作成しましょう。
今回はViteを利用します。
“`bash
$ yarn create vite svelte-app –template svelte-ts..
Scaffolding project in /Users/sandbox/svelte-a
jquery・Laravelでの簡易的なバリデーション実装
# 背景
モーダルに検索フォームが設置されている。
モーダル内部にLaravelのformクラスを利用しようとすると、
検索ボタンを押す→モーダルを開く→バリデーション と時間がかる。
そのため、LaravelのFormクラスは利用せずjqueryで実装しようと考えた。# 結論
Laravelのフォームクラスは優秀。
いろんなことを考慮して作られているため、
自分で同じようなことをしようとするとテストも含めて工数がかなりかかる。# 実装の概略
入力時にフリーワード→セレクトボックスへ変更。
最小値・最大値が逆に入力されていないか判断するバリデーションのみを実装した。
セレクトボックスは変更後の値が不正な値である場合に、アラートを出すようにした。# 実装
入力時の値を保持→変更時の値を保持
“`Laravel:.js
$(‘#form’).on(‘focus’,function(){
focusval=this.value;
}).change(function(){
selectedval = this.value;
//focusvalとsele
×ボタンでしか閉じれないモーダルはウザいなぁ~ ← Alpine.jsなら10秒で解決ってマ?
# ×ボタンでしか閉じれないモーダルはウザい
See the Pen
Untitled by gorimatyan (@gorimatyan)
on CodePen
Reactでトースト機能を実装してみる
# はじめに
Reactを勉強したアウトプットとして簡単なWebアプリを開発しました。
その際に、ユーザへのメッセージ表示としてトーストを表示させるコンポーネントを作成してみました。
コンポーネントとして完璧とは言えませんが、なにか参考になればと思い実装方法を記載します。
(Windows10 * Chrome でのみ動作確認をしているため、他の環境では正常に動くか不明です)# トーストとは
次のサイトにおいてトーストは、「操作に関する簡単なフィードバックを小さなポップアップに表示します。トーストでは、メッセージの表示に必要なスペースのみを使用します。現在のアクティビティは表示されたままになり、引き続き操作できます。トーストはタイムアウト後に自動的に消えます。」と記載されています。[1]
https://developer.android.com/guide/topics/ui/notifiers/toasts?hl=ja
つまり、スマートフォンなどでなにか操作をしたときに、
下からひょっこり出てきてフェイドアウトしていくあれのことです。# 実装したトーストの挙動
実
『Chair Person』上着を掛けた椅子をおしゃれに with obniz
この記事は [obniz Advent Calendar](https://qiita.com/advent-calendar/2022/obniz) 13日目の記事です。
非常にありがたいことに[ヒーローズリーグ](https://heroes-league.net/)の決勝に残りobniz賞を頂けました。審査員のお四方にもアプリケーション例としての発展性をコメント頂き嬉しいです。ありがとうございます!
## Chair Personとは
上着を掛けると背もたれにネクタイが現れさりげなくおしゃれ演出をする椅子のプロトタイプを作りました。
つい椅子の背もたれに上着を掛けてしまう人間の無意識の行動に着目しています。
椅子が上着掛けになるアフォーダンスを持っていることを利用したインタラクションデザイン作品です。
SvelteKit + Supabase Storageを使ってアイコン登録
# はじめに
Baas(Backend As A Service)で何かサービスを構築してみたいと思い、
firebaseを触ってみようと思ったところ、Firebase の代替と謳われているsupabaseを発見。こちらの方が面白そうだと感じたため、構築してみることにしました。
今回はプロフィール画面を作成した際に、supabaseのstorage機能について触れたのでメモ。
## 使ったもの
* Vite + SvelteKit + Typescript
* @supabase/supabase-js
* Flowbite-svelte
* tailwind css* supabase
* auth
* db
* storage## 完成品
### マイページ(アイコンアップロード前)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985550/399b997f-44f2-923e-f451-1e65770506
Promiseへの理解が進むかもしれないクイズ
# Promise理解してますか?
みなさん、JavaScriptの`Promise`は使いこなしていますか?業務ではしばしば登場するが、ドキュメントを読んでもよく分からない。「とりあえず`.then(res => …)`と書けばいいんでしょ」ということで毎回曖昧に済ましている。
こんな方、多いんじゃないでしょうか。
今回は、そんな方に向けて
「**Promise[完全に理解した](https://jp.quora.com/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%8C%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E7%8B%AC%E7%89%B9%E3%81%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E7%94%A8%E8%AA%9E)!**」**となれるようなクイズ**
をご用意しました。ただドキュメントを読むよりも、理解度がグンと上がるはずです。ぜひ取り組んでみてくださ
Google Maps JavaScript APIと天気APIでクリックした地点の天気を表示してみる
![スクリーンショット 2022-12-06 9.00.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2321549/c9528095-261e-1862-dd1b-25a6912492f2.png)
# 概要
「急に予定が空いたからどこかに出かけようかな〜!
でも、お出かけ先の今の天気はどうかな?」なんてシチュエーション、あると思います。
そんな時に役立つ(?)アプリを一から作ってみましょう!Googleの「Maps JavaScript API」と無料天気APIを提供するOpen-Meteoの「Weather Forecast API」を組み合わせて、地図上のクリックした地点の現在の天気を取得してみる記事です。
※「Maps JavaScript API」の使用にはユーザー登録が必須で、従量課金制になります。
ただ、このAPIに関しては2022/12/6現在、毎月$200の無料利用枠があります。
この記事の内容を試してみる程度であればその枠内で収まると思いますが、ご認識の上お試
[Day13] クラス part1
本記事は一人アドベントカレンダー企画の一つです。
[30代未経験エンジニアが25日後にJavaScriptをマスターするカレンダー](https://qiita.com/advent-calendar/2022)[JAVASCRIPT.INFO](https://ja.javascript.info/)を元にJavaScriptを勉強していき、そこで学んだ知識をアウトプットしていきます。
25日でJAVASCRIPT.INFOをやりきり、未経験エンジニアがJavaScriptをマスターする過程を投稿していきます。## 9.1 クラス(Class) 基本構文
### 知らない単語
– 無し### 学んだこと
– class構文class構文の基本の書き方は以下の通りである
“`javascript
class MyClass {
// クラスメソッド
constructor() { … }
method1() { … }
method2() { … }
method3() { … }
…
}
“`
constructor
JavaScriptでモックするやつ
# はじめに
この記事は[株式会社ACCESS Advent Calendar 2022](https://qiita.com/advent-calendar/2022/access)の13日目の記事です(以前社内勉強会で発表した内容を書き直しています)。
そろそろ一周回ってグローバル変数が許されそうな風潮を感じている SekiT です。
趣味で[チューリングマシンをテーマにしたゲーム](https://github.com/SekiT/TMP)を作っていたのですが(宣伝)、そこでテストを書く時に面白いことができたので共有します。
## 前提
今回は関数のユニットテストだけをやりたいので、(ヘッドレス)ブラウザを用いたテストはしません。
Node.js (あるいは deno などの JavaScript ランタイム)向けにテスト対象コードとテストコードをビルドし、テストを実行します。
妙なミニマリズムに固執しているので、テストフレームワークは使っていません。一方で [tape](https://www.npmjs.com/package/tape) という、アサートができ
Intersection Observer APIの実用的な使い方とたまに罠
Intersection Observer APIは、After IE元年(A.I.0)の今年から安心して使える便利機能です。
ただ歴戦のJS書きに取っては知られていなかったり、知っていても調子に乗って使うと罠にハマったりすることもある機能なので、今回は便利さと、こんなところには注意しようみたいな話を書きます。# 基本的な使い方
下記のCodePenの破線エリアをスクロールしてもらうと、赤い矩形が破線エリア内にある場合に、破線エリア上部のfalseがtrueに変わるというものです。
– はじめに
– CSS編
– カーソルを合わせると、中心部から下線が引かれる
– フェードイン
– パンくずリスト
– 見出しに使えそうな文字
– おまけのプラスJavaScript編
– JavaScriptについて
– ハンバーガーメニュー
– タイピングアニメーション# はじめに
WebデザインでCSSやJavaScriptを書いているとき、ふと、今までに学んだり興味があって調べたりしたものを一か所にまとめてみたいな、と思ってこの記事を書いてみました。
そして、その中でも比較的簡単だと思うもの(と、興味があって書いてみようと思ったもの)をまとめてみました。ちょっと注意。
この記事は簡単だと思うもの(最後のは興味があって書いたものですが)をまとめています。# CSS編
### まずCSSについて
CSSとは、ウェブサイトの見た目をを設定する言語のことです。
ウェブサイトは一般的にはHTMLという言語で書かれており、それにCSSを適用させることで、私たちが普段見ているウェブサイトになります。
HTMLにCSSを直接
Lambdaを使ったPDFファイル作成とダウンロード
## 課題
Lambdaを利用したSPA(Vue)アプリケーションにおいて、ユーザーに必要な情報をPDFファイルにまとめてダウンロードさせる必要が生じました。
「Lambda」と「PDF作成」で検索すると、`chrome-aws-lambda`を利用してPDFファイル作成を行えば実現できそうなことがわかったのですが、PDFファイルを生成して直接ダウンロードさせるようなコードは見つからなかったため調査・作成することにしました。## 準備
### chrome-aws-lambda
Puppeteer を使ってPDFファイル作成を行うため、まずは chrome-aws-lambda をLambda Layerとして登録しました。
詳細な手順は以下の記事にありましたので、それを参考に進めています。https://dev.classmethod.jp/articles/run-headless-chrome-puppeteer-on-aws-lambda/
### 日本語フォント
デフォルトの環境だと日本語が文字化けしてしまうようです。
参考にしたコードではURL参照でロード
【完走賞ゲット-13】p5.js Web Editor上でボールが跳ね返る時に DualShock 4 を振動させる(gamecontroller.js での実装)
## はじめに
こちらは、[完走賞ゲットのため小ネタを毎日投稿しようとチャレンジする Advent Calendar 2022](https://qiita.com/advent-calendar/2022/youtoy) の 13日目の記事です。内容は、以下の記事でも扱った「gamecontroller.js と DualShock 4」の組み合わせの話です。今回は、コントローラーを振動させる処理を使ってみます。
– [【完走賞ゲット-10】gamecontroller.js を使って DualShock 4 を JavaScript で扱う – Qiita](https://qiita.com/youtoy/items/87c1c37b51ae9ef4ab4d)
– [【完走賞ゲット-11】gamecontroller.js を p5.js Web Editor上で使ってみる(DualShock 4 との組み合わせ) – Qiita](https://qiita.com/youtoy/items/1cf1fe244d992456140f)## できあがったもの
今回は、先
three.js 曲げとねじれにボーンを分けて腕のスキニングを綺麗にする
# この記事について
まずはデモをご覧ください。(リンク先にWebGLの動作デモがございます)
https://arihide.github.io/demos/swing_twist/
[](https://arihide.github.io/demos/swing_twist/)デモを開いてギズモを操作すると、自然に腕の曲げ・ねじれが表示されているのがわかります。
本記事ではこのモデルの構造について説明します。ソースコードはこちら
https://github.com/Arihide/demos/tree/master/swing_twist# 腕のボーン構造
モデルのボーン構造がどの様になっているのかをまずみていきましょう。現実世界において、人間の腕は肩-肘-手首の3関節とみなせます。
しかし、腕を3つのボーンで
Reactでよく使われるpropsについて知ろう
## はじめに
これは、[株式会社 RetailAI X Advent Calendar 2022](https://qiita.com/advent-calendar/2022/retail-ai-x) の 13日目の記事です。
昨日の記事は、 @satoshihiraishiさんの『[WordPressのGCEからCloudRunへ移行の検討
](https://qiita.com/satoshihiraishi/items/6a62f3e7831e59b9bd06)』でした。本日は、『Reactでよく使われるprops』について書いています。
## propsとは?
Reactでは、propsはpropertiesの略で、オブジェクトのプロパティのことです。Reactで作成される要素はすべて*JavaScript*のオブジェクトです。オブジェクトのプロパティと値を作成することでコンポーネントへデータを渡すことができます。簡単に言うと、親コンポーネントから子コンポーネントへ値を渡すための仕組みのことは「props」です。
##
Core Web Vitalsを改善してスコアを13点から68点に上げた話(進め方・やったこと・効果)
:::note info
この記事はLITALICO Advent Calendar 2022のカレンダー1の13日目の記事です。
https://qiita.com/advent-calendar/2022/litalico
:::# 自己紹介
株式会社LITALICOでWEBエンジニアをやっています。ti-aiutoと申します。
普段は「LITALICO発達ナビ」という、神経発達症(発達障害)や知的発達症(知的障害)などのある子ども・その保護者の方をサポートするWEBサービスの開発を担当しているのと、最近はデータエンジニア見習いのような仕事もしています。
今回のアドベントカレンダーでは下記の三部作も書いているのでよかったらご覧ください。
https://qiita.com/ti_aiuto/items/638595a148e7d16dd70f
# 背景
サイトの中で一番アクセスが多いのは専門家の監修による数多くのコラム記事が無料で読める機能なのですが、このページへの流入元は検索エンジンもかなり多いです。
このコラム記事からの会員登録も多いので、コラム記事への流入を
【Alpine.js】DOMを取得する特殊なプロパティ($el、$refs)
# DOM要素取得のためのプロパティ
## ①$el
これは$elを付けた要素自身を取得します。
### 使い方
“`js
“`
↑ この$elはbutton要素自身を取得している。$el.innnerHTML は「Replace me with “Hello World!”」を指していることになる。
(上記コードではボタンをクリックすることで「Replace me with “Hello World!”」を「Hello World」で上書きをする。)## ②$refs
### 使い方
これはx-refと一緒に使います。
“`
x-ref=”hogehoge” ←取得したい要素に付ける$refs.hogehoge ←これで要素を取り出せる
“`::: note
取得後の扱い方(el,refs共通)
Jav