WEBサイト制作の勉強

WEBサイト制作の勉強の為の解説ブログです。

フェリカテクニカルアカデミー

サイト制作のワークフロー

webサイト制作におけるワークフローの一例

ヒアリング

クライアントとのヒアリングの時点で、方向性やサイトの目的、そしてサイトに盛り込むコンテンツなどを明確にします。また、その事をクライアントとしっかりと共有する事が大事です。その為にはしっかりとクライアントのいう事に耳を向け、クライアントの要望を言語化する必要があります。

サイト設計

ヒアリングであがったコンテンツの洗いだしを行い、これらをグルーピングしフローチャートサイトマップディレクションマップ)と呼ばれるページの遷移の画面に視覚化し、まとめます。

ペルソナの設定

「ペルソナ(persona)」とは、サービス・商品の典型的なユーザー像のことで、マーケティングにおいて活用される概念です。
実際にその人物が実在しているかのように、年齢、性別、居住地、職業、役職、年収、趣味、特技、価値観、家族構成、生い立ち、休日の過ごし方、ライフスタイル……などリアリティのある詳細な情報を設定していきます。


ferret-plus.com


ラフデザイン・ワイヤーフレームの作成

各ページの画面に盛り込む内容を検討し、まずは手書きのラフで良いので、全体のレイアウトなどを考え、次にIllustrator等のソフトを使って「ワイヤーフレーム」と呼ばれる線画に起こします。

ラフデザイン

カンプ制作

カンプとは「comprehensive layout」が省略されたもので、「comprehensive」には「包括的な」「総合的な」といった意味があります。カンプの段階でカラースキム(配色計画)・寸法をしっかりと考えながら図面に起こし、デザインやレイアウトも含めた全体像を作ることで完成品のイメージを把握出来るものを作成します。いわばwebサイトの設計図です。


https://blogs.adobe.com/japan/web-design-photoshop-cc-basics-artboard/blogs.adobe.com


スライス(アセット 書き出し)・コーディング

webサイトの設計図であるカンプを元に細かくパーツ別に分けて、コーディングをしてサイトを組み立てます。


動的プログラムの導入

プログラムを導入する意図を明確にし、ユーザビリティーの高いサイトを作るよう心がけましょう。

検証

仮サーバーにアップして、リンクやユーザービリティなどを検証します。



baigie.me


developer.apple.com

GoogleのGeminiを使ってサイトの要件定義を作成する

GeminiはGoogleが開発した大規模言語生成 AIです。大規模言語モデル(Large Language Models、LLM)とは、非常に巨大なデータセットディープラーニング技術を用いて構築された言語モデルです。

どういった事が出来るか本人に聞いてみました。

Google AIの最新大規模言語モデルジェミニ」です。
2023年12月に発表された、Google AIの次世代大規模言語モデルジェミニ」は、Bardの後継モデルとして、より高度な自然言語処理能力と創造性を備えています。

主な特徴

膨大なテキストとコードのデータセットで学習: 書籍、論文、コード、Webページなど、膨大な量のテキストとコードのデータセットで学習し、高度な言語理解と生成能力を獲得しています。
日本語を含む多言語対応: 英語をはじめ、日本語、中国語、韓国語など、複数の言語に対応し、それぞれの言語で自然な文章を生成することができます。
様々なタスクを実行: 質問への回答、文章生成、翻訳、要約、コード作成など、様々なタスクを実行することができます。
最新技術による高精度化: Transformerアーキテクチャ教師あり学習強化学習などの最新技術を組み合わせることで、従来のモデルよりも高い精度を実現しています。
具体的な活用例

チャットボット: 高度な会話能力を活かして、顧客対応や情報提供を行うチャットボットの開発に役立ちます。
コンテンツ作成: 記事、小説、詩、脚本などのコンテンツを自動生成することができます。
翻訳: 高度な言語理解能力に基づいて、より自然で正確な翻訳を提供することができます。
教育: 個々の生徒に合わせた学習教材の作成や、質問への自動回答など、教育現場での活用が期待されています。
研究: 新しい薬の開発や、材料の設計など、様々な研究分野で活用される可能性があります。
ジェミニは、まだ開発段階ですが、今後様々な分野で革新を起こすことが期待されています。

要件定義を作成

要件定義などを作成する上でLLMを効率よく使う事は今後必ず必要になってきます。

xtech.nikkei.com


Geminiを使って決める事

  • お店の名前
  • お店のコンセプト
  • タグライン
  • リード文(100〜200文字程度)
  • よくある質問とその答え(3つ)
  • お知らせ(5日分)

JavaScriptとは

プログラムとは?

いよいよJavaScriptの授業が始まります。人によっては今回のJavaScriptがプログラムに触れる初めての機会になる場合もあります。
プログラムという物を触った事が無い人はまず、「プログラム」という物がどういう物なのか、という事を理解しましょう。

プログラム

コンピュータプログラム(英:computer programs)とは、コンピュータに対する命令(処理)を記述したものである。コンピュータが機能を実現するためには、CPUで実行するプログラムの命令が必要である。プログラミング言語と呼ばれるコンピューターのための言語。

要はコンピューターに命令し、動かす為に使う物(言語)です。


機械語


本来、コンピューターは機械語と呼ばれる、0と1のみで構成されている言葉で動くように設定されています。しかし、人間が機械語を使ってコンピューターに命令するのは人間側に負担が多いので、人にとって比較的使い易い「プログラム言語」を使ってコンピューターに命令していきます。


プログラム学習

2020年以降、プログラミング教育が小学校で必修化されます。現在IT業界が抱えている問題として、今後さらにIT化していく社会に対しWebエンジニアをはじめとするIT人材の不足があります。
しかし、小学校のプログラミング教育は「プログラマーの育成」が目的ではありません。小学校段階におけるプログラミング教育の目的は、プログラミング言語の使い方を覚えることで無く、文部科学省は、プログラミング教育を通じて育成すべき資質・能力を「プログラミング的思考」という言葉で表現しています。

この事は初学者にとってのこのクラスでのプログラム授業と同じで、まずは「プログラミング的思考」を理解する事を目標にしましょう。

ChatGPT

今巷で流行っている「ChatGPT」のような大規模言語モデルのAIも、指示の仕方次第で生成されるコンテンツにとても差が出てしまいます。AIに適切な指示を出せるかは、当の人間がどれだけ「プログラミング的思考」を理解しているかによります。




Javascriptとは

JavaScriptとは、米Netscape Communicationsによって開発されたスクリプト言語です。JavaScriptは主にWebブラウザ上で動作します。クリックすると画像が変わったり、要素が消えたり、現れたりというHTMLやCSSでは出来ない、いわゆるサイトの動的な部分を担当しているスクリプト言語です。
Webサイト・Webアプリ・バックエンド・デスクトップアプリ・モバイルアプリなど、ブラウザからサーバー、デスクトップからスマートフォンまで使用場面は多岐にわたっています。

それどころか、今やJavaScriptは宇宙船のUIにも使用されています。
note.com


JavaScriptと似た名前のプログラミング言語に「Java」というものがありますが、まったくの別物です。なので混同しないようにしましょう。


スクリプト言語

JavaScriptスクリプト言語です。ではスクリプト言語とはどういうものか?
簡単に言うとスクリプト言語とは簡易版のプログラミング言語で、特に実行環境を整える必要も無く、ソースコードをその場で順を追って解釈する「インタープリタ方式」の言語です。

プログラム初学者にとっては特に難しい設定をしなくて済み、手軽に使えるのがこのJavaScriptです。


なぜJavaScript?


freelance-start.com



www.rstone-jp.com


image.itmedia.co.jp



主なJavaScriptフレームワークやライブラリー

AngularJS

React

Vue.js

jQuery

また、サーバーサイドでJavascriptを動かす事が出来る「node.js」やSNSとの通信で使用する「JSON」などjavascriptはとにかく汎用性が高く、便利な言語です。

JavaScriptで出来る事

演算処理

プログラミングの基本である演算処理。単純な四則演算のほか、三角関数や円周率等を使用したり、年齢を算出したり、日数を割り出したりなど、さまざまな用途で使用します

ドキュメント操作

Webページに文字を表示したり、非表示にする。文字や背景の色を指定する。 Webページを切り替える、など、html内のドキュメントを操作する事が出来ます。

マウス等のイベント処理

クリックやマウスオーバー、Webページそのものロード時など、その他様々なタイミングで処理を行わせることができます。
サムネイル画像をクリックすると大きい画像が表示されるようなものから、メニュー項目をクリックすると下の階層のメニューが開くようなナビゲーションまで、このようなイベント処理を行っています。

DOMを使用した処理

DOM(Document Object Model)を使用することで、HTML文をツリー構造のように扱うことができます。
これを上記のイベント処理等と組み合わせて使用することで、サイト内に新しいコンテンツを挿入したり、書き換えたり、削除することが出来ます。

jQueryとは?

jQuery(ジェイクエリー)とは、2006年1月にリリースされた、ウェブブラウザー用のJavaScriptコードをより容易に記述できるようにするために設計された軽量なJavaScriptライブラリである。様々な場面で活用されており、JavaScriptライブラリのスタンダードと呼ぶ者もいる。

jQueryの特徴

jQueryの現状

qiita.com


ダイアログボックス


ダイアローグ

二人以上の人の取りかわす問答。対話。会話。
対義語:モノローグ

Dateオブジェクトで時間の取得

「 new Date()」を使う事で、現在の時間を取得することが出来ます。


<script>
let date = new Date();
document.write(date);
</script>

実際に表示してみると「 new Date()」には日時についての様々なデータが収納されているのが解ります。
このままでは使いづらいので「 new Date()」の中から必要な情報だけを引っ張って来ます。


var myYear = date.getFullYear(); // 年
var myMonth = date.getMonth()+1; // 月
var myDate = date.getDate(); // 日
var myDay = date.getDay(); // 曜日
var myHours = date.getHours(); // 時
var myMinutes = date.getMinutes(); // 分
var mySeconds = date.getSeconds(); // 秒


プログラミングでは0(ゼロ)を数える

「10mの道路に1m置きに植木を植えて行きます。植木は何本必要ですか?」
始点のゼロを数えるというひとつの例です。



月の取得の際に注意が必要で、月は 1月から 12月ですが、getMonth() の値は 0月から 11月になっています。なので+1を追加し、1月~12月に直します。
また曜日の取得は0から6の数値が セットされていて 配列を使って、「×曜日」に置き換えます。




配列の使い方

<script>
let date = new Date();
let myDay = date.getDay();
let days = new Array('日','月','火','水','木','金','土');
document.write(days[myDay]);
</script>

1秒毎に処理をする

まずは簡単なmeta refreshを使ってみましょう

<meta http-equiv="refresh" content="秒数">

関数を使って処理をする

次に関数を使った処理に変えてみましょう。

function clock() {

ここにプログラムを記述

}
setInterval('clock()',1000);
関数とは?

関数とは変数などを使った計算式などをまるごと保存しておけるものです。
https://kitsune.blog/functionkitsune.blog

レスポンシブ演習

作例


使用テキスト

Net Smart
よりスマートなインターネットライフを

HOME
CONCEPT
SERVICE
ACCESS

必要なものは、ビジネスの価値を届ける>デザインの力。
Net Smartは、ビジネスとユーザーを理解し、関係性を構築するためのストーリーの設計とUXデザインをご提供し、よりスマートなインターネットライフを送るお手伝いを致します。


CONCEPT
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore

SERVICE
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore

ACCESS
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore


Map


© 2001-2023 Net Smart all rights reserved.


logostock.jp

レスポンシブデザイン基礎

linecorp.com






qiita.com



レスポンシブデザインとは?

レスポンシブWebデザイン(Responsive Web Design)とは、PC、タブレットスマートフォンなど、あらゆるデバイスに最適化したWebサイトを、単一のHTMLで実現する制作手法です。ブラウザーのスクリーンサイズを基準にCSSでレイアウトを調整することで、デバイスごとに専用サイトを用意することなく、マルチデバイスに対応したWebサイトを制作できます。

マルチデバイス対応にする必要性

この数年でスマートフォンからのネット利用者数、接続時間ともにものすごい勢いで増加しています。それに比べPCからの利用者は減少しています。国内の主要サイトもスマホからの利用者数の方がPCからの利用者より多くなっています。これは大手のサイトに限った事ではありません。このような状況を考えると、スマホファーストスクリーンという事が現実的に起こってきます。特にB to C向けのサイトに関してはマルチデバイス対応が必須です。

Googleが推奨するマルチデバイス対応の詳しい内容

developers.google.com



developers.google.com


レスポンシブWebデザイン(RWD)の制作

レスポンシブWebデザインでは、あらゆるデバイスに対して単一のWebページ(HTML)を使い、スクリーンサイズ(画面幅)を基準にCSSだけを切り替えてレイアウトを調整します。小さいスクリーンに対しては小さいスクリーンで見やすく操作しやすいレイアウトを、大きいスクリーンに対しては大きいスクリーンに適したレイアウトを提供します。



レスポンシブWebデザインは、主に「フルードグリッド(Fluid Grid)」「フルードイメージ(Fluid Image)」「メディアクエリー(Media Query)」の3つの技術的な要素で構成されます。

●フルードグリッド

 フルードグリッドは、Webページの要素を罫線や升目に沿って配置する「グリッドデザイン(Grid Design)」と、ブラウザーの横幅が変わってもレイアウトを維持したまま要素のサイズを調整する「フルードデザイン(Fluid Design)」を合わせたものです。レスポンシブWebデザインでは、最初にグリッドデザインによって部品や表示領域をpx単位で配置していき、レイアウトが整った後に、値を%に変換してフルードデザインに変更します。

●フルードイメージ

 フルードイメージは、レイアウトの大きさに追随して画像のサイズを拡大・縮小する手法で、CSSのみで実装できます。イギリスのコンサルティングファームClearleftのリチャード・ルター(Richard Rutter)氏によって提唱されました。

●メディアクエリー

 メディアクエリーは、画像解像度、ウィンドウの幅、デバイスの向きなどの指定条件にあわせて別々のCSSを適用する技術です。レスポンシブWebデザインではメディアクエリーを使ってスクリーンサイズに応じたCSSに切り替えます。

●ブレイクポイント

 ブレイクポイントとはデバイスサイズによってCSSを個別に適用させるために指定した画面サイズの値のことです。メディアクエリで指定します。ブレークポイントのデバイスサイズの値は特に決まっている訳ではなく、また、何分割にするのかも自由です。

メディアクエリーを使ったCSSの切り替えでは、CSSを切り替える条件である「ブレイクポイント(Break Point)」を決め、それぞれの条件に沿ったスタイルシートを記述していきます。

ブレイクポイントは決まった数や値がある訳ではありません。
例えばBootstrap3ではブレイクポインが4つあり、
1200px以上がPC(大画面)用
1199px~992pxがPC用
991px~768pxがタブレット
767px以下がスマホ
に分かれていましたが、

バージョンアップしたBootstrap4ではブレイクポイントが5つあり、
1200px以上がPC(大画面)用
1199px~992pxがPC用
991px~768pxがタブレット
767px~544pxがスマホ
543px以下がスマホ(小さいサイズ)用
に分かれました。これによって例えばiPhone 5, 6のポートレートランドスケープ時に、表示を切り替えることができるようになり、より柔軟にモバイル最適化が行えるようになりました。


ブレイクポイントは絶対的に決まった数値ではなく、その時々の要件や主要のデバイスサイズによって変わっていくので、数字を暗記するのではなく、意味を理解する必要があります。

CSSメディアクエリーの書き方

今回は1つのCSSファイル内にブレイクポイント毎にメディアクエリーを設定する方法で記述します。

@media (max-width:959px){

}

media属性の指定

media属性とはデバイスごとの表示のコントロールです。
例えばmedia属性にscreenと指定すると、screen(一般的なコンピュータスクリーン。通常、パソコン、スマートフォンで動作するブラウザソフトはすべて対象になります)時の表示をcssでコントロール出来ます。allにすると全てのデバイス時の表示をコントロール出来ます。またallを対象にする場合はmediaタイプの指定が省略可です

reference.hyper-text.org



screenを対象にする場合

@media screen and (max-width:959px){

}

@media screen and (max-width:767px){ 


}



baigie.me

高解像度ディスプレイへの対応

Retinaディスプレイ

Retinaディスプレイの特徴は画面解像度の高さにある。iPhone 4の画面サイズは前モデルのiPhone 3GSと同じ3.5インチのままであるが、Retinaディスプレイの搭載によって解像度は320×480ピクセルから640×960ピクセルに、つまり倍になっている。

640×960ピクセルという解像度は「デバイスピクセル(dpx)」と呼ばれ、3.5インチの画面上で表現されるサイズがCSSピクセル(csspx)」と呼ばれています。

ディスプレイの高解像度化により、「デバイスピクセル」と「CSSピクセル」という二つの概念を分けて考える必要がでてきました。

サイトを制作する場合には、ビットマップで画像を作る際は「デバイスピクセル」を、CSSで幅・高さを指定する際は「CSSピクセル」を基準に作って行きます。





また、「デバイスピクセル」を「CSSピクセル」で割った数値を「devicePixelRatio」と言います。
例 iPhone5は「デバイスピクセル(画面解像度)」が640px✕1136pxで、「CSSピクセル」が320px✕568pxなので「DevicePixelRatio」が2になります。


qiita.com