技術情報

Gmailアドレスが変更可能に?20年変わらなかった仕様がついに動く

Googleのメールサービス「Gmail」で、これまで不可能だったメールアドレスの変更機能がついに提供され始めています。長年使ってきたアドレスをそのまま使い続けるしかなかった状況に、大きな変化が起きようとしています。

今回の特徴は、単にアドレスを変えられるだけではなく、メールや写真、各種サービスのデータをそのまま維持できる点です。これにより、これまで必要だった「新しいアカウント作成+データ移行」といった手間が不要になります。

続きを読む

Vue.jsの基本 #3

前回に引き続きJavaScriptフレームワークのVue.jsの基本について説明します。
Vue.jsは、HTMLに動きをつけたり、ユーザー操作に応じてリアルタイムに画面を更新したりするためのフレームワークです。
この記事では、Vue.jsの中でも特によく使われる テンプレート構文(HTML側) と ロジック(JavaScript側)を紹介します。

JavaScript側の基本構造

Vue 3 では Composition API(setup関数) と Options API(data, methods, computedなど) の2通りがあります。
今回は Options API(data, methods, computedなど)について簡単に紹介します。

data():Options APIでデータを定義する

export default {
  data() {
    return {
      message: 'こんにちは!',
      count: 0
    };
  }
};

data() は画面で使うデータを定義します。
戻り値のオブジェクトがVueインスタンスの状態になります。

computed:計算済みプロパティ(リアクティブな値の加工)

export default {
  data() {
    return { price: 100, taxRate: 0.1 };
  },
  computed: {
    totalPrice() {
      return this.price * (1 + this.taxRate);
    }
  }
};

computed は、他のデータから自動的に計算される値を定義します。
キャッシュされるため、無駄な再計算を防ぎます。

methods:関数(イベント処理など)

export default {
  data() {
    return { count: 0 };
  },
  methods: {
    increment() {
      this.count++;
    }
  }
};

イベント時の動作などを関数としてまとめておく場所です。
テンプレートからは @click=”increment” のように呼び出せます。

mounted:コンポーネントが画面に表示されたあとに実行

export default {
  mounted() {
    console.log('コンポーネントがマウントされました!');
  }
};

mounted() はVueコンポーネントが実際にDOMに描画された直後に呼ばれます。
APIデータ取得や初期設定などに使います。

木曜日担当:nishida



Vue.jsの基本 #2

前回に引き続きJavaScriptフレームワークのVue.jsの基本について説明します。
Vue.jsは、HTMLに動きをつけたり、ユーザー操作に応じてリアルタイムに画面を更新したりするためのフレームワークです。
この記事では、Vue.jsの中でも特によく使われる テンプレート構文(HTML側) と ロジック(JavaScript側)を紹介します。

JavaScript側の基本構造

Vue 3 では Composition API(setup関数) と Options API(data, methods, computedなど) の2通りがあります。
ここでは両方を簡単に紹介します。

setup():Composition APIのエントリーポイント

import { reactive  } from 'vue';

export default {
  setup() {
    // reactiveを使ってオブジェクト全体をリアクティブにする
    const state = reactive({
      count: 0,
      message: 'こんにちは!'
    });

    const increment = () => {
      state.count++;
    };

    return { state, increment };
  }
};


テンプレート側の使い方

<template>
  <div>
    <p>{{ state.message }}</p>
    <p>クリック回数:{{ state.count }}</p>
    <button @click="increment">カウントアップ</button>
  </div>
</template>


reactive() は オブジェクト全体をリアクティブ(反応的)に変換 します。
⇒ state.count のように直接プロパティを参照できます(ref のように .value は不要)。

ref() は単一の値をリアクティブにするのに便利ですが、
複数の状態をまとめて管理するなら reactive() のほうがスッキリします。

return { state, increment } により、HTML(テンプレート)側で state と increment を使えるようになります。

次回はOptions APIのdataとcomputedについて説明します。

木曜日担当:nishida



Vue.jsの基本 #1

今回はJavaScriptフレームワークのVue.jsの基本について説明します。
Vue.jsは、HTMLに動きをつけたり、ユーザー操作に応じてリアルタイムに画面を更新したりするためのフレームワークです。
この記事では、Vue.jsの中でも特によく使われる テンプレート構文(HTML側) と ロジック(JavaScript側)を紹介します。

HTML側の基本構文

Vueでは、HTML内に「ディレクティブ」と呼ばれる特別な属性を使って、動的な動作を実現します。

v-if:条件によって要素を表示・非表示にする

<p v-if="isShow">このメッセージは表示フラグがtrueのときだけ見えます。</p>

v-if は 条件式 が true のときだけ、その要素をDOMに描画します。
v-else や v-else-if も組み合わせて使えます。

v-for:リストを繰り返し表示する

<ul>
  <li v-for="(item, index) in items" :key="index">
    {{ index + 1 }}: {{ item }}
  </li>
</ul>

v-for は配列やオブジェクトをループ表示します。

v-model:双方向データバインディング

<input v-model="message" placeholder="メッセージを入力">
<p>入力中の内容:{{ message }}</p>

v-model は 入力フォームの値とデータをリアルタイムで同期 します。
テキストボックス、チェックボックス、セレクトボックスなどに使えます。

@input:入力イベントを検知する

<input @input="onInputChange" placeholder="文字を入力">

@input はフォーム入力のたびにイベントを実行します。

@click:クリックイベントを実行する

<button @click="count++">クリック回数:{{ count }}</button>

@click はクリック時の処理を定義します。
上の例では、ボタンを押すたびに count の値が1ずつ増えます。

次回はJavaScriptの基本構造について説明します。

木曜日担当:nishida



VRグラスの薄型・軽量化研究

VRゴーグルが広く普及する上で大きな課題となっているのは、その「重さ」や「サイズ」、そして「装着感」です。現状のデバイスはどうしても重く、熱がこもりやすく、長時間の使用で蒸れてしまうという問題があります。もしメガネのように快適に装着できるようになれば、VRはさらに身近な存在になるでしょう。

そんな中、Metaとスタンフォード大学が共同で、厚さわずか3mm未満という超薄型の「VRグラス」を実現するためのホログラフィックディスプレイ技術の研究を進めているとのニュースがありました。

詳細はこちらの記事で紹介されています:
■Metaとスタンフォード大、3mm未満のVRグラス研究
https://www.moguravr.com/meta-stanford-thin-vr-glasses-holographic-display-research/

この記事を読んで、VRの未来が一気に現実味を帯びてきたように感じました。
現在のVRゴーグルはどうしても「装着するガジェット感」が強いですが、メガネのように自然に身につけられる薄さになれば、日常生活の中にVRが溶け込む日もそう遠くないかもしれません。
まだ研究段階とのことですが、この技術が実用化されれば、VR体験のハードルが大きく下がり、利用シーンも一気に広がっていくのではないでしょうか。

木曜日担当:nishida




アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム