[React Native] react-native-draggable-gridviewのセルサイズ変更
# 0. 背景
react-native-draggable-gridviewを使うことで、ドラッグ可能なリスト形式のビューを表示できる(FlatListにドラッグ機能を追加したようなもの)
しかし、デフォルトではpropsでwidthしか指定できず、セルサイズを正方形でしか表示できない(widthは縦、横両サイズに反映される)
# 1. 目的
react-native-draggable-gridviewのセルサイズを長方形で表示
→propsでheightを指定できるようにする
# 2. 環境
– React : 16.8.6
– React Native : 0.63.4
# 3. 準備
react-native-draggable-gridviewのインストール
`npm install react-native-draggable-gridview`
react-native-responsive-screenのインストール(端末画面の比率でセルサイズを指定できる)
`npm install react-native-responsive-screen`
# 4
## はじめに
`vivus.js`という素晴らしい、プラグイン?を使用したのでメモとして残します。
まだ理解し切ってないので、本当にメモ書き程度のまとめです。
## 完成イメージ
![0e9aa538d9f132f8a47f44da50c03897.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/420031/4ab2f86f-b392-4720-9f98-3a3da07fbac0.gif)
## 手順
illustratorで新規作成
・「base」「mask」のレイヤー作成
![スクリーンショット 2021-01-23 23.16.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/420031/d72587ed-3f1a-028b-82dc-7c7594b6989b.png)
・「base」レイヤーに文字を書く
・文字のオブジェクトの上で「右クリック」→「アウトラインを作成」
・そのまま(選択した状態で
## はじめに
「Vueはちょくちょく使ってるけど、React触ったことないんだよなぁ」
「Contentful…なんだか今後使う事ありそうだし、使ってみたいなぁ」
そんなフロントエンジニアが、**React + Contentful で “おみくじアプリ”** を作った際の備忘録です。
## やる事
– React導入
– Contentful導入
– つなぎ込み
– 実装
## React導入
公式のドキュメント通り
“`
npx create-react-app react-omikuji
“`
で環境が出来ます。(爆速!最高!)
“`
cd react-omikuji
“`
で環境に移動して
“`
npm start
“`
でローカル環境が起動します。
[新しい React アプリを作る – React公式ドキュメント](https://ja.reactjs.org/docs/create-a-new-react-app.html)
## Contentful導入
### サインアップ
[公式ページ](https://www.contentful.c
2021 年。JavaScript (ECMAScript) は常に進化し続けているが、初学者含めて日本の JavaScript 使用者は何割ぐらいの人が ES2015+ を意識してコーディングしているのか気になったので調べてみる。
# 動機
変数は `var` ではなく `const` や `let` を使った方がスコープを安心して使用できるし、関数は `function App () {}` ではなく `const App = () => {}` で良い。
分割代入やテンプレート文字列、スプレッド構文、`map` なんかも便利だと思う。
どんどん使っていけばいいし、新しく学ぶ人は当然 ES2015+ で学んだほうが良いと思う。
でも、それを知らずに学び始める人、知らずに居続ける人もいるのかもしれない、とふと気になった。
# 調査方法
Qiita に投稿された記事から ES2015+ を意識してコーディングしている/意識せずにコーディングしている記事数(※)を Qiita の検索機能から抽出し、母数に対する割合を求める。
ES2015+ を意識しているか否かは、記事内のコード
# まえがき
皆さんは[超A&G+](https://www.agqr.jp/timetable/streaming.html)というラジオ放送局をご存知でしょうか?
主に声優さんがパーソナリティを担当する番組を配信しているインターネットラジオです。
# 作ろうと思ったきっかけ
在宅作業がデフォルトになったことにより、声優さんのラジオ番組を誰にも気兼ねなく聴ける環境になったので、これを機に推しの声優さんがパーソナリティを務めるラジオを聴くようになりました。
ただ、まだ声優ラジオを聴くのが習慣化されていないせいで、自分の好きな声優さんが超A&Gでラジオ番組をもっているかどうか、また持っていても、やっている時間を忘れてしまって聴く機会を逃していました。
「じゃあ録音すれば?」との声が聞こえてきそうで、実際、[技術書典で本を買った](https://techbookfest.org/product/5652340726038528?productVariantID=5754925483032576)りして、録音プログラムを組んだりはしたのですが、録音したものを片っ端から聞いているのか
## 概要
[こちら](https://qiita.com/kai_data/items/6c119c43ad3626226dfc)の「分析SQLスタイルガイド」を拝見し、**SQLのフォーマッタには需要がある**と感じて早速作り始めてみた。とりあえず動くようになったので、これまでの一部始終を記事にする。具体的には、以下の内容を扱う。
1. [Prettier](https://prettier.io/)という既存のフォーマッタをコマンドやエディタから利用する方法
2. Prettierのプラグインとして任意の言語のフォーマッタを実装する方法(分析SQLを題材にする)
普段から分析SQLを書くがフォーマッタは使ったことがないという人は、まずこの後のPrettierの紹介を読んでほしい。きっと使いたくなるはず。
▼ちょっと画質悪いけど、1月23日現在の開発進捗。とりあえず動く。
![before_after.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540947/0e524785-e7ab-82
#プログラミング勉強日記
2021年1月23日
Javaでコードを書いているときに、よく出てくるNullPointerExcptionの意味と、NullPointerExcptionにならないようにする方法をまとめる。
“`:java.lang.NullPointerException
Request processing failed; nested exception is java.lang.NullPointerException
“`
#NullPointerExceptionとは
参照型の変数の値にnullが格納されているとき、それを参照しようとしたときには発生する例外である。
> NullPointerException(ナル・ポインタ・エクセプション、ヌル-)は、プログラミング言語Javaにおける例外の一つである。
null値(定義されていない値)の参照型変数を参照しようとした時に発生する。NullPointerExceptionは実行時例外と呼ばれるjava.lang.RuntimeException クラスのサブクラスであるため、try-catch節に
– 外部リソースをAxiosでロードし`File`オブジェクトに変換する
– Data URI schemeを`File`オブジェクトに変換する
“`javascript:uriToFile関数
import axios from ‘axios’
function uriToFile(uri, fileName) {
if (!uri) return Promise.resolve(null)
return uri.startsWith(‘data:’)
? convertDataUriToFile(uri, fileName)
: loadUriToFile(uri, fileName)
}
function convertDataUriToFile(dataUri, fileName) {
const byteString = atob(dataUri.split(‘,’)[1])
const mimeType = dataUri.match(/(:)([a-z/]+)(;)/)[2]
const length = byteString
どんな言語にも共通することですが、コメントは基本的に書かなくていいんです。
プログラミングの入門書にはよく「わかりやすくコメントを書きましょう」と書いてありますよね。
それを鵜呑みにした初心者プログラマーはこんなコードを書いてしまうことがあります。(jsを例にします)
“`javascript
// 配列を初期化する
let language = [‘JavaScript’, ‘Python’, ‘Ruby’, ‘PHP’, ‘Java’, ‘Swift’];
// C言語を追加
language.push(‘C’);
// 配列でループ
for (value of language) {
// コンソールに出力
console.log(value);
}
“`
**全行にコメントをつけるなど絶対にやめましょう。**
このコードの場合はコメントはまったくなしで良いです。
## コメントを書いたときの弊害
* 「配列を初期化する」など、ほとんどの人がコメントがなくても理解できるコードにコメントをつけるのは、わかる人からすると冗長に感じてイライラさせてしまうかもしれ
先日、携わらせていただいている[Spotlight](https://spotlight.soy)というサービスのデザインリニューアルをしました。
その際にダークモードに対応したので、それの知見共有です。
## ダークモードの対応方法
CSSでの対応です。
こんな感じで対応したい部分をメディアクエリの中に書き込みます。
“`css
@media (prefers-color-scheme: dark) {
body {
background-color: #000;
}
}
“`
それだけ!
## ダークモード、ライトモードの切り替え方法
これが苦労しました。
Spotlightでは以下仕様でダークモードに対応しています。
未ログインのユーザー → 端末のデフォルト設定
ログイン済かつサービス内でテーマ設定していないユーザー → 端末のデフォルト設定
ログイン済かつサービス内でテーマ設定しているユーザー → 設定に合わせる
コードにするとこんな感じ。
“`javascript
document.documentElement.setAttribut
#はじめに
Vue.jsの基礎について複数回に渡ってまとめていきます。今回は「環境構築」と「ディレクティブ」についてです。動作確認済みのコードも記述しています。※内容は初学者向けです。
#準備
今回はCDNを用いて導入。Vueの公式ホームページより最新のCDNを取得。bodyタグの直前に記述。別のファイルにJSを記述する場合は、CDNの後に挿入する。
https://jp.vuejs.org/v2/guide/installation.html#CDN
“`cdn.html
//本記事ではここにVueで操作したい内容を記述