SvelteでSupabaseを使う例

superbase

今日は最近流行りのSvelteスタックで基本的な操作を理解できる例を紹介しますね。 Supabaseのセットアップ 前回のSupabaseの記事を読んでおきましょう。 次に、テーブルを準備します。 このスクリプトを選択します。 “Run”または “Execute” ボタンをクリックして選択したスクリプトを実行します。これにより、データベースに「Todo」テーブルが作成され、必要な行レベルのセキュリティルールも設定されます。 スクリプトが正常に実行されると、テーブルとルールが作成されたことを示す確認メッセージが表示されます。 “Data” タブに移動して、「Todo」テーブルが作成されていることを確認できます。 APIキーの取得 URLとキーの取得 プロジェクト設定に移動して(歯車アイコン)、APIタブを開き、API URLと匿名キー(anon key)を見つけてください。これらは次の手順で必要になります。 匿名キーは、クライアント側のAPIキーです。ユーザーがログインするまで、データベースへの「匿名アクセス」を許可します。ユーザーがログインしたら、キーはユーザー自身のログイントークンに切り替わります。これにより、データの行レベルのセキュリティが有効になります。 注意:サービスロールキーはセキュリティポリシーをバイパスし、データに完全なアクセス権を持っています。これらのキーは秘密に保つ必要があり、サーバー環境でのみ使用され、クライアントやブラウザ上で使用しないでください。 プロジェクトのクローン SupabaseのプロジェクトができたらSvelteのToDoリストのサンプルリポジトリがるのでこれをクローンしましょう。 https://github.com/supabase/supabase/tree/master/examples/todo-list/sveltejs-todo-list 下記のコマンドだとSupabaseの全部のリポがクローンされてしまうのでサイズはちょっと大きいかも ではSvelteの例があるディレクトリに移動してライブラリをインストールしましょう。同じディレクトリにNext.jsとNuxt.jsで作られたToDoリストのサンプルプロジェクトもあるようですね。 ではcode . のコマンドでVSCodeを開きましょう。 ルートディレクトリに.env.exampleのファイルがあるので名前を.envに変更します。 次に中にある環境変数に先ほどSupabaseでとってきた値を入力します。 アプリの起動 ではnpm run devのコマンドでSvelteアプリを起動します。 でサインアップをするとメールにちゃんとサインアップの確認メールが届きました。 そうするとToDoリストに誘導されてタスクを入力できるようになりましたね。 登録されたユーザーはAUthentication(認証)タブのユーザーから確認できますね。 でSvelteのアプリから追加したタスクもデータベースのテーブルに反映されていました。 Googleでのログインを追加する まずは、Gooelデベロッパーコンソールからプロジェクトを作成をします。Google Developer ConsoleからSupabaseのGoogle認証に使用するOAuthのClient IDを取得する手順は以下の通りです: ではSupabaseの認証タブでキーを登録します。 これだけで、OKです。素晴らしいですね。 ではGoogleでもログインできることを確認しましょう。 今日はコードの説明なしですが、次回詳しくSvelteのファイル構成と一緒に見ていきましょう。

Web開発の基礎①HTMLの構成

今日はウェブ開発の基礎としてHTMLを説明します。 HTML知っている方も、新しい発見があるかもしれません。楽しく読んでみて下さい。 HTMLとは HTMLは、インターネット上のウェブページを作るための言語のようなものです。ウェブページは、コンピュータやスマートフォンのウェブブラウザ(例: Google ChromeやSafari)で見ることができるものです。HTMLは、ウェブページがどのように見え、どのように動作するかを指示する言語です。 考えてみてください。ウェブページは、本のページのようなものです。本には章やタイトルがあり、文章や写真があります。同様に、HTMLを使ってウェブページを作ると、タイトルや見出し、文章、画像などの要素を配置することができます。 例えば、次のように考えることができます: ウェブページを見ると、これらのHTMLの指示に従って、タイトル、見出し、文章、画像が配置されていることがわかります。HTMLはウェブページをデザインし、情報を整理するためのツールの一種です。 簡単に言えば、HTMLはウェブページを作るためのレイアウト(配置)の言語で、コンピュータやスマートフォンのウェブブラウザがウェブページを理解し、表示できるようにするものです。 HTMLは誰が管理しているの? HTML(Hypertext Markup Language)の標準は、World Wide Web Consortium(W3C)によって管理されています。W3Cは、Web関連技術の標準を策定し、進化させるための国際的な機関です。W3Cの使命は、Webの発展を支え、インターネット上の情報やサービスの利用性、アクセシビリティ、セキュリティを向上させることです。 HTMLの標準は、W3Cによるプロセスに従って策定され、仕様が公開されます。W3Cのメンバー、コミュニティ、専門家などが協力して、HTMLの新しいバージョンや仕様の改訂を開発し、合意を形成します。HTML5は、W3Cによる大規模な作業の成果であり、多くの新しい機能やセマンティクスを導入しました。 HTMLの標準の進化は、Webの進化に合わせて行われ、新しい機能やセキュリティの向上などが取り入れられています。したがって、Web開発者はHTMLの最新の仕様に従うことが重要であり、W3Cの公式ドキュメントやリソースを参照することが推奨されます。 HTML5の登場 HTML5は、正式には2014年10月28日にWorld Wide Web Consortium(W3C)によって勧告(Recommendation)として採択されました。これはHTMLの新しいバージョンで、以前のHTML4と比べて多くの新機能や改善が導入されました。HTML5は、ウェブ開発者により対話的なウェブアプリケーションを開発しやすくし、マルチメディアコンテンツの統合など、多くの新しい機能を提供しました。 HTML5は、より豊かなマルチメディアコンテンツをサポートし、動画や音声を直接埋め込むための要素(例: <video>および<audio>)を導入しました。また、セマンティックな要素(例: <header>, <footer>, <article>, <section>など)を提供し、ウェブコンテンツの意味付けを向上させました。 HTML5は、新しいフォーム要素、キャンバス(Canvas)要素を含むグラフィックス描画機能、Webストレージ、地理的位置情報へのアクセス、Web Workersなど、多くの新しい機能をもたらしました。これらの機能はウェブアプリケーションの開発やユーザーエクスペリエンスの向上に寄与しています。 HTML5の導入により、ウェブ開発者はより対話的で豊かなウェブアプリケーションを作成できるようになり、多くのブラウザで互換性が向上しました。そのため、HTML5はウェブ開発の重要な進歩として認識されています。 HTMLを書く時の注意 HTMLを書く際には、標準に従うことが重要です。以下はHTMLを書く際の基準に関するいくつかのポイントです: 主なHTMLタグ HTML(HyperText Markup Language)は、ウェブページの構造を定義するための要素(またはタグ)から成り立っています。以下は主要なHTML要素の説明です: これは一般的なHTML要素のいくつかです。HTMLには他にも多くの要素があり、それぞれ特定の役割を果たします。ウェブページの構造を定義し、コンテンツを表示するためにこれらの要素を適切に使用することが重要です。 CSSのインポートすることのメリット CSSを外部からインポートすることにはいくつかの利点があります: 外部からCSSをインポートすることは、ウェブデザインのベストプラクティスの一つであり、効率的なウェブ開発とメンテナンスに寄与します。ただし、ページごとに異なるスタイルが必要な場合や非常に小さなプロジェクトの場合、インラインスタイルや埋め込みスタイルも適切な場合があります。適切な方法はプロジェクトの要件と目標に応じて決定されます。 CSSのインポート CSSファイルをインポートする方法は、HTML内で<link>要素を使用することです。以下はCSSファイルをインポートする手順です: CSSファイルが正しくインポートされると、HTML文書に指定したスタイルが適用され、ページの外観が変更されます。この方法により、スタイルの一貫性を保ちながら、外部のスタイルシートをウェブページに統合できます。 type=”text/css”を指定しないとどうなる type属性を指定しない場合、ブラウザは既定でCSSとして解釈します。つまり、CSSファイルの<link>要素を読み込むとき、text/cssと仮定します。これはHTML5仕様でのデフォルト動作です。 したがって、type=”text/css”を指定しないと、通常は問題ありません。ただし、type属性を指定することは、文書の明示性を高め、将来のHTMLバージョンやXML文書のコンテンツタイプが変わった場合にも正確に解釈されるのに役立ちます。また、一部の古いブラウザやXML文書では、type属性の指定が必要な場合があります。 例えば、XHTML文書ではtype属性を指定することが一般的で、次のようになります: htmlCopy code <link rel=”stylesheet” href=”styles.css” … Read more

Bun: モダンなJavaScriptランタイムの登場

Bunの使い方

近年、JavaScriptエコシステムは急速に進化し、新しいツールやランタイムが登場しています。その中でも、Bunという新しいJavaScriptランタイムが注目を集めています。Bunは、モダンなJavaScriptエコシステムに対応するためにゼロから構築された新しいランタイムで、その設計には3つの主要な目標があります。 また、BunはNode.jsの代替として設計されており、Node.jsやWeb APIなど、数百ものNode.jsとWeb APIをネイティブに実装しています。これにより、既存のNode.jsプロジェクトをBunに移行することが容易に行えます。 Bunの目標は、世界中のほとんどのサーバーサイドJavaScriptを実行し、パフォーマンス向上、複雑さの削減、開発者の生産性の向上をサポートするツールを提供することです。JavaScriptエコシステムの未来を明るくするために、Bunは新しい選択肢として期待されています。 新しい時代のJavaScriptランタイムとして、Bunはどのようなプロジェクトに適しているのか、その素晴らしい機能やパフォーマンスを活用して、開発者コミュニティに貢献することで、私たちのJavaScriptエコシステムをさらに進化させています。将来のプロジェクトにBunを取り入れることで、高速で効率的なJavaScriptアプリケーションの開発が可能になるでしょう。 JavaScriptおよびTypeScriptアプリケーションのためのオールインワンツールキット 続いて、Bunの魅力的な特徴について詳しく見ていきましょう。BunはJavaScriptおよびTypeScriptアプリケーション向けのオールインワンツールキットで、単一の実行可能ファイルで提供される「bun」というコマンドラインツールを含みます。 Bunランタイム: Bunの中核には、Node.jsの代替として設計された高速なJavaScriptランタイムであるBunランタイムがあります。これはZigで書かれ、内部ではJavaScriptCoreを活用しており、起動時間とメモリ使用量を劇的に削減します。この特徴により、Bunは高速な実行を実現し、リソース制約のある環境で効果的にプロダクションコードを実行できます。 コマンドラインツール: “bun”コマンドラインツールは、テストランナー、スクリプトランナー、およびNode.js互換のパッケージマネージャーも実装しており、既存のNode.jsプロジェクトで使用する際にも、ほとんどまたは全く変更を加える必要がありません。これにより、以下のような多くのタスクを迅速に実行できます。 Bunはまだ開発中ですが、開発ワークフローを加速したり、サーバーレス関数などのリソース制約のある環境でシンプルなプロダクションコードを実行するのに利用できます。また、Node.jsとの互換性や既存のフレームワークとの統合を向上させる作業も進行中です。Bunの今後のリリース情報を追跡するために、Discordに参加し、GitHubリポジトリをウォッチしてください。 ランタイムとは?: JavaScript(または正式にはECMAScript)は、プログラミング言語の仕様です。誰でも、有効なJavaScriptプログラムを取り込み、実行するJavaScriptエンジンを作成できます。現在最も人気のあるエンジンは、Googleが開発したV8と、Appleが開発したJavaScriptCoreです。どちらもオープンソースです。 ランタイムの役割: しかし、ほとんどのJavaScriptプログラムは単独で実行されるわけではありません。これらは、有用なタスクを実行するために外部の世界にアクセスする方法が必要です。ここでランタイムが登場します。ランタイムは、実行するJavaScriptプログラムに提供される追加のAPIを実装します。ブラウザには、Web固有のAPIを実装したJavaScriptランタイムが組み込まれており、これらのAPIはグローバルなwindowオブジェクトを介して利用できます。 Node.js: 同様に、Node.jsはサーバーなどの非ブラウザ環境で使用できるJavaScriptランタイムです。Node.jsで実行されるJavaScriptプログラムは、OSレベルのタスクを実行するための組み込みモジュール(node:fsなど)およびNode.js固有のグローバル(Buffer、process、__dirnameなど)にアクセスできます。Node.jsはCommonJSベースのモジュールシステムと解決アルゴリズムも実装しており、JavaScriptのネイティブモジュールシステムよりも前から存在しています。 Bun:Node.jsの代替としての設計: Bunは、Node.jsの代替として設計され、以下のデザイン目標を持っています。 最終的な目標は、BunをJavaScript/TypeScriptでアプリケーションを構築するための統一されたインフラストラクチャツールキットとして提供し、パッケージマネージャー、トランスパイラ、バンドラ、スクリプトランナー、テストランナーなどを含めることです。Bunは、新しいランタイムとしてだけでなく、開発者の生産性を向上させるための包括的なツールセットとして、JavaScriptエコシステムを進化させることを目指しています。 Bunのインストール Bunは、いくつかの異なる方法でインストールできる単一の実行可能ファイルとして提供されています。 macOSおよびLinux Linuxユーザー:Bunをインストールするにはunzipパッケージが必要です。Kernelバージョン5.6以上が強く推奨されますが、最小要件は5.1です。 以下は、macOS、Linux、およびWSL(Windows Subsystem for Linux)で使用できるインストールコマンドの例です(curlを使用): Windows Bunは、Windows向けに限定的で実験的なネイティブビルドを提供しています。現時点では、Bunランタイムのみがサポートされています。 テストランナーやパッケージマネージャー、バンドラはまだ開発中であり、以下のコマンドは無効化されています。 アップグレード 一度インストールされたら、バイナリ自体をアップグレードできます。 Homebrewユーザーの場合は、Homebrewとの競合を避けるために次のようにしてbunをアップグレードしてください。 protoユーザーの場合は、次のようにして最新のcanaryビルドにアップグレードできます。 TypeScript プロジェクト内でBunの組み込みAPIのTypeScript定義をインストールするには、bun-typesをインストールします。 次に、tsconfig.json内のcompilerOptions.typesに”bun-types”を含めます。 TypeScriptサポートに関する詳細なガイドは、「エコシステム > TypeScript」を参照してください。 コンプリーション Bunのインストール時には、シェル自動補完が自動的に設定されるはずです。 設定されていない場合は、以下のコマンドを実行します。これにより、使用しているシェルを特定し、適切な場所に補完ファイルを書き込みます。bunのアップグレードごとに自動的に再実行されます。 カスタムの場所に補完ファイルを書き込むには、次のようにします。 これで、Bunのインストールと設定が完了しました。このユニークなツールを活用して、効率的な開発を行いましょう。 クイックスタート 簡単なHTTPサーバーを組み立ててみましょう。Bunに組み込まれているBun.serve APIを使用します。まず、新しいディレクトリを作成します。 新しいプロジェクトをスキャフォールドするには、bun initを実行します。これは対話型のツールで、このチュートリアルでは各プロンプトのデフォルト回答を受け入れるために単にEnterキーを押します。 「bun init」は、最小のプロジェクトで始めるのを助け、適切なデフォルトを推測しようとします。いつでも^Cを押して終了できます。 … Read more

Vue3でQuasarのUIライブラリを使おう

始める前に 今日はVueのUIフレームワークを紹介します。先にVueの基本、Viteの使い方、Node.jsの基本を知っていると理解しやすいです。 Quasarフレームワークとは Quasarの特徴を紹介します。 Quasarとは? Quasarで作成できるもの: Quasarのモットーは、コードを一度書き、それをウェブサイト、モバイルアプリ、および/またはElectronアプリとして同時に展開できるフレームワークです。1つのコードベースで最新のCLIを使用してアプリを効率的に開発し、ベストプラクティスに基づく高速なQuasarウェブコンポーネントを提供します。 Quasarを使用する際、Hammer.js、Moment.js、またはBootstrapなどの追加の重いライブラリは必要ありません。軽量化されたこれらのライブラリもQuasarで使用できます。 ここまで読めばQuasarを始めない理由はありません。早速セットアップの仕方を見てみましょう。 条件 使用するコンピュータに、Node.jsのバージョン14以上(または新しいLTS Node.jsバージョン)と、NPMのバージョン6.14.12以上、またはYarnのバージョン1.21.1以上がインストールされていることを確認してください。 このコマンドを実行すると、現在のNode.jsのバージョンがターミナルに表示されます。 このコマンドを実行すると、現在のNPMのバージョンがターミナルに表示されます。 プロジェクトの作成 以下のコマンドを実行してください: createまたはinitコマンドを実行すると、いくつかのオプションがプロンプトで表示されます。あなたのニーズに応じて、CLIのタイプ(ViteまたはWebpack)を選択したり、TypeScriptサポートを追加したり、異なるCSSプリプロセッサを選択したりできます。オプションについて不明点がある場合、デフォルトを選択(Enterキーを押す)して進んでも問題ありません。後で必要に応じて、CLIのタイプ以外のオプションを変更することもできます。 下記にセットアップのオプションの例を記載します。 オプショナル – グローバルCLIのインストール Quasarをより多く活用するために、グローバルCLIもインストールすることをお勧めします。これにより、ターミナルで直接Quasarコマンドを実行したり、テスト用のローカルHTTPサーバーを実行したり、プロジェクトをアップグレードしたりすることができます。 以下のコマンドを使用してグローバルCLIをインストールできます: これにより、Quasarのコマンドをプロジェクトの外からも使用できるようになります。 依存ライブラリをインストール 新しく作成したプロジェクトフォルダに移動し依存ライブラリをインストーします。 次に、以下のコマンドで開発用サーバーを起動します。グローバルCLIをインストールしている場合は: グローバルCLIをインストールしていない場合は、以下のコマンドで実行できます: このコマンドを実行すると、開発用サーバーが新しいアプリケーションをコンパイルし、完了すると新しいアプリがブラウザで開きます。これで開発を開始できます!お気に入りのIDEやコードエディターを使用してアプリを開発できます。 これでデフォルトのQuasarアプリが起動しました! ファイル構成 Quasar Frameworkのデフォルトのフォルダ構成は、クエーサーアプリケーションの基本的な構造を定義します。以下は一般的なQuasarプロジェクトのデフォルトのフォルダ構造の概要です: これらのデフォルトのフォルダ構造は、Quasarアプリケーションの基本的な構造を提供し、効率的な開発をサポートします。ただし、プロジェクトの要件に応じてカスタマイズできます。 コンポーネントを使ってみる では参考までにボタンのコンポーネントを使ってみます。 メインページになっているsrc/pages/Index.vueを下記のように変えましょう。 これでボタンのコンポーネントが表示されましたね。 これらのコンポーネントはグローバルにインポートされているので各.vueファイルでインポートする必要がありません。 ちなみにこのscriptの書き方がちょっと古いので必要に応じてscript setupに書き変えることをお勧めします。 次にテーブルのコンポーネントを使ってみましょう。 このように簡単で軽量なウェブアプリができてしまいます! 慣れてきたらモバイルアプリにも挑戦してみたいですね。

【JavaScript】Web Speech APIでテキストを音声にする

前回の記事の続きです。 では前回のコードに下記の様に音声をテキストに変換したあとに読み上げる機能を追加します。 追加された部分は次のとおりです: この部分では、style.css ファイルをインポートし、#app セレクターに対してHTMLコンテンツを設定しています。具体的には、ボタン、見出し、結果表示用の <div> 要素を含むHTMLを動的に生成しています。 この関数は、音声認識を停止するために recognition オブジェクトの stop() メソッドを呼び出します。 以上の追加された部分は、スタイルの読み込みと表示要素の生成、音声認識の言語設定、音声認識の停止処理に関連しています。これにより、適切なスタイルが適用されたHTMLが表示され、日本語の音声認識が行われ、必要に応じて音声認識が停止されます。 これで、音声入力されたテキストを読み上げてくれるようになりました。 しかし!日本語で喋った内容をテキストにするのは理解できますがそれを再度スピーチさせる意図があまり考えられませんね。 ですのでGoogleの翻訳API(Google Cloud Translation API)などを使って英語でスピーチさせるなどを考慮していくと楽しいことになりそうです。

【JavaScript】Web Speech APIを使ってみよう

Web Speech APIとは Web Speech APIは、Webブラウザで音声認識や音声合成を実現するためのAPIです。このAPIを使用することで、ユーザーの音声を認識してテキストに変換したり、テキストを音声に変換して再生したりすることができます。 Web Speech APIには2つの主要な機能があります。 Web Speech APIは、JavaScriptを使用してブラウザ上でこれらの機能を制御します。ただし、APIが完全にサポートされているわけではなく、ブラウザやデバイスによって実装の範囲やサポート度合いが異なる場合があります。したがって、使用する前にブラウザの互換性を確認する必要があります。 Web Speech APIを使ったサービスの例 Web Speech APIを使用したサービスの例を以下に挙げます。 Text-to-Speech APIの比較 Web Speech APIと同様の音声認識や音声合成の機能を提供するAPIは、いくつか存在します。以下にいくつかの代表的なAPIを紹介します。 これらのAPIは、クラウドベースの音声処理サービスとして広く利用されており、Web Speech APIと同様の機能を提供しています。ただし、利用にはAPIキーの取得や料金体系への対応などが必要です。 音声をテキストに変換してみよう では下記の記事を参考にViteでJavaScriptのプロジェクトを作成して実際にText-to-Speech APIを使ってみましょう。 ベースとなるコードはこのようになります。 ではViteの場合はJavaScriptのファイルにHTMLを追加するようにしているので、下記の様に変換します。また日本語の音声に対応するコードを追加しましょう。 main.js ではこれでマイクが接続されていることを確認し、ボタンを押してマイクの使用を許可して何かしゃべってみてください。下記の様に音声がテキストに変換されブラウザに表示されるようになりましたね。 このAPIはブラウザで提供されており無料で使えるので色々試してみましょう。(今回はグーグルクロームで行いました。)

【acorn.jsとVanilla JS】JavaScriptでキーワード(予約語)だけを出力する方法

自分でコードをパース(読み取り)してJavaScriptのメソッドや予約語が使われているか知りたいときに下記のコードを使う事ができるので紹介します。 ライブラリを使わずに予約語を出力する JavaScriptのコードをパースしてキーワードを配列に出力する際に外部のライブラリを使用せずに行いたい場合は、以下のようなアプローチを取ることができます。 下記はファンクションベースで書いた場合です。 上記のコードでは、予約語(キーワード)のリストを用意し、与えられたコードをスペースと特定の記号((、)、{、}、;、,)で分割します。分割されたトークンをループして、予約語のリストに含まれるかどうかをチェックし、キーワードとして抽出します。 同じことをクラスベースで書いた場合はこのようになります。 上記のコードでは、KeywordExtractorというクラスを作成し、コンストラクタで与えられたコードとキーワードのリストをプロパティとして保持します。また、extractKeywordsメソッドを定義してキーワードの抽出処理を実装します。 KeywordExtractorクラスのインスタンスを作成し、extractKeywordsメソッドを呼び出すことでキーワードを抽出できます。 ただし、この方法は単純な文字列マッチングを行っており、コードの文脈によって誤検出する可能性があります。言語の構文やコメントなども考慮する場合には、パーサーライブラリの使用が推奨されます。 Acorn.jsとは Acorn.jsはJavaScriptのパーサーライブラリであり、JavaScriptのコードを解析して抽象構文木(Abstract Syntax Tree, AST)を生成する機能を提供します。これにより、JavaScriptコードの解析や静的解析、ソースコードの変換や検証などのさまざまな用途に利用することができます。 以下にAcorn.jsの主な使い道をいくつか挙げます: これらはAcorn.jsの一般的な使い道ですが、実際にはさまざまな応用が可能です。また、Acorn.jsは軽量で高速なパーサーライブラリであるため、ブラウザやNode.jsなどの環境で広く利用されています。 Acorn.jsの開発者 Acorn.jsは、Marijn Haverbekeによって開発されました。Marijn Haverbekeは、プログラミング言語JavaScriptの教育用書籍『Eloquent JavaScript』の著者でもあります。Acorn.jsは、JavaScriptのパーサーとして広く使用されており、ECMAScript(JavaScriptの標準仕様)に準拠しています。 Acron.jsを使ってJavaScriptの予約語を出力する Acron.jsはオープンソースでGitHubからソースコードを見てみましょう。 では下記のコマンドでacron.jsをインストールしましょう。 では下記の様に、import文でモジュールとして使用する方法を紹介します。 修正したコードでは、import文を使用してacornモジュールをインポートし、その後のコードでacornを直接使用しています。また、acornパッケージのデフォルトエクスポートをacornとしてインポートしています。 この修正版のコードは、ESモジュールとしてブラウザ環境や対応する環境で使用することができます。ただし、ブラウザ環境で使用する場合は、acornのブラウザ向けのバージョンを読み込む必要があります。ブラウザ環境での具体的な設定方法については、acornのドキュメンテーションを参照してください。 Acorn.jsの強み Acorn.jsを使用する場合、JavaScriptの予約語(キーワード)をパースする際に、自作のライブラリと比べて以下のようなメリットがあります: 自作のライブラリと比べて、Acorn.jsは信頼性、安定性、拡張性、パフォーマンス、エコシステムなどの面で利点があります。また、JavaScriptのパースにおいては、正確で標準に準拠した処理が重要となるため、Acorn.jsの使用は推奨されます。 ASTとは AST(Abstract Syntax Tree)は、プログラミング言語のソースコードの構文構造を表現する木構造のデータ構造です。ASTは、ソースコードの解析や処理を容易にするために使用されます。 ASTは、ソースコードを構成するトークンや式、文、関数などの要素をノードとして表現します。ノードは親子関係で結びつき、構文的な意味や階層構造を反映します。 ASTのノードは通常、プログラミング言語の構文要素に対応しています。たとえば、変数宣言や関数呼び出し、演算子の使用など、ソースコード内のさまざまな構造がノードとして表現されます。 ASTは通常、パーサーと呼ばれるツールやライブラリを使用して生成されます。パーサーは、ソースコードを入力として受け取り、その構文を解析してASTを生成します。ASTは、コンパイラや静的解析ツール、コード変換ツールなどで使用され、ソースコードの解析や処理を行います。 ASTを使用することで、ソースコードの構造や意味を効率的に理解し、コードの解析、変換、検証、リファクタリングなどのさまざまな処理を行うことができます。また、ASTは言語に依存せずに構文解析を行うため、さまざまなプログラミング言語に適用できる汎用的な手法です。

【React・Vue】Ionicでモバイルアプリを作ろう

Ionic 基本

Ionicの特徴について説明しているので先に前回の記事を読んでおいてください。 また、今回の記事はVueフレームワークの基本が理解できている前提で説明します。 今日の目的 Ionicを使用してデモプロジェクトの作成しiOSとAndroidのネイティブアプリにコンパイルしてみます。 今日はVueを使って紹介しますがReactやAngularも同じ要領でできます。 Ionic Vue概要 @ionic/vueは、Vue開発者向けに調整されたツールとAPIを組み合わせた、コアIonic Frameworkのエクスペリエンスを提供します。 Vueバージョンのサポート Ionic VueはVue 3.0.0をベースにしています。もし以前のバージョンのIonic Vueでアプリを作成している場合は、最新リリースにアップグレードし、Vueの依存関係もアップグレードする必要があります。 Vueツール Ionic Vueプロジェクトは通常のVue CLIプロジェクトと同じツールを使用します。つまり、Vue CLIとその機能を使用してビルドします。さらに、スタータープロジェクトにはデフォルトでいくつかの機能が有効になっています。例えば、ルーティングやTypeScriptのサポートなどです。 ネイティブツール Capacitorは公式のクロスプラットフォームのアプリランタイムであり、Ionic VueのウェブアプリをiOS、Android、Webでネイティブに実行します。 Cordovaプラグインを使用する際のIonic Vueの技術的な制約は特に知られていませんが、公式にはCapacitorが推奨されています。現時点では、Ionic CLIのツールではIonic VueのCordova統合をサポートする予定はありません。 Ionicをインストール では下記のコマンドでionicのプロジェクトをセットアップしましょう。myAppはプロジェクト名になりますので自身で好きなものに変えてください。 tabsはテンプレートのフラグになり、vue-routerで設定されたページごとのURLが付いてきます。 ではionic serveのコマンドでローカルホストにデモのアプリが起動されたことを確認しましょう。 ファイル構成 Ionic Vueの一般的なファイル構成は以下のような形式です: このようなファイル構成によって、Ionic Vueアプリケーションはコンポーネントベースのアーキテクチャを活用し、使いやすく保守しやすい構造を実現しています。 capacitorとは Ionicをインストールするとcapacitor(キャパシター)というライブラリが一緒についてきます。 Capacitorは、ウェブ技術(HTML、CSS、JavaScript)を使用して作成したアプリケーションをネイティブアプリケーションとして実行するためのオープンソースのクロスプラットフォームツールです。 Capacitorは、Ionicフレームワークの開発チームによって開発され、Ionicアプリケーションをネイティブに実行するための代替手段として提供されています。Ionicアプリケーションは、一度作成することでiOS、Android、Webなど複数のプラットフォームで動作させることができます。 Capacitorの特徴としては、以下の点が挙げられます: Capacitorは、ハイブリッドアプリケーションやクロスプラットフォーム開発に興味がある開発者にとって、強力なツールとなっています。Ionic Vueなどのフレームワークと組み合わせることで、使いやすいUIとネイティブ機能を組み合わせたアプリケーションを開発することができます。 IonicとCapacitor 上記までをまとめます。Ionicはモバイル用のコンポーネントで、capacitorが実際にWebアプリケーションをモバイルアプリにコンパイルしてくれるツールになります。ちなみにどちらのライブラリも同じ組織によって管理されており、両方を使ってモバイルアプリを作ることが一般的です。しかしcapacitorだけでモバイルアプリを作成することも可能であることは理解しておきましょう。 アプリのビルド 下記のコマンドで実際にデモのアプリをモバイルアプリとして出力してみましょう。 ionic build このコマンドは、Ionicアプリケーションのビルドプロセスを実行します。アプリケーションのソースコードやリソースをコンパイルし、必要なファイルを生成します。ビルドが完了すると、distディレクトリにアプリケーションのビルド結果が出力されます。このディレクトリには、最適化されたHTML、CSS、JavaScriptファイルなどが含まれます。 ionic cap add ios このコマンドは、iOSプラットフォーム向けのCapacitorプロジェクトを追加します。Capacitorを使用してIonicアプリケーションをiOSネイティブアプリケーションにビルドするために必要なファイルと設定を生成します。実行すると、iosディレクトリが作成されます。 … Read more

【JavaScriptでモバイルアプリ】Ionicフレームワークとは

Ionic

Ionicとは Ionic(アイオニック)フレームワークは、モバイルアプリケーションを開発するためのオープンソースのフロントエンドフレームワークです。IonicはHTML、CSS、JavaScriptを使用してモバイルアプリケーションを構築するためのツールセットを提供します。 Ionicは、ハイブリッドアプリケーションやプログレッシブWebアプリケーション(PWA)を作成するために使用されます。ハイブリッドアプリケーションは、Web技術を使用して作成され、ネイティブアプリケーションのようにデバイス上で動作します。一方、PWAはWebアプリケーションでありながら、モバイルデバイス上でネイティブアプリケーションのような動作や体験を提供することができます。 Ionicフレームワークは、モバイルアプリケーションの外観や振る舞いを制御するためのUIコンポーネントやテーマ、アイコン、スタイルシートなどの多くの予め用意された要素を提供します。また、Angular、React、Vueなどの人気のあるJavaScriptフレームワークとも統合されており、これらのフレームワークを使用してIonicをより強力に活用することができます。 Ionicの利点は、モバイルアプリケーションの開発を迅速かつ効率的に行えることです。また、一度の開発でiOSやAndroidなどのさまざまなプラットフォームに対応することができるため、開発者は複数のプラットフォームでの開発やメンテナンスの手間を減らすことができます。 総括すると、Ionicはモバイルアプリケーションのクロスプラットフォーム開発を簡素化するためのフレームワークであり、HTML、CSS、JavaScriptを使用してモバイルアプリケーションを作成するためのツールとリソースを提供します。 アメリカでIonicを使っているアプリの例 Ionicフレームワークを使用して作成されたアプリは、さまざまな種類のアプリケーションがあります。以下にいくつかの代表的なアプリケーションを挙げます。 これらは一部の例ですが、Ionicフレームワークはさまざまな業界や分野のアプリケーション開発で広く活用されています。 日本でIonicを使っているアプリの例 日本のいくつかの会社がIonicを使用してアプリを開発しています。以下にいくつかの例を挙げます。 これらは日本の一部の企業がIonicを使用して開発したアプリの例です。Ionicの特徴であるクロスプラットフォーム開発の柔軟性や効率性が、これらの企業にとって有益な解決策となっていることがわかります。 Ionicの強み これらの特徴により、Ionicはモバイルアプリケーション開発を効率化し、開発者が高品質なクロスプラットフォームアプリを短期間で構築できるようにしています。 Ionicの弱み Ionicの弱みとしては、以下のような点が挙げられます。 これらは一般的なIonicの弱みですが、開発者の要件やプロジェクトの性質によっては問題とはならない場合もあります。Ionicは多くの利点を提供するフレームワークですが、特定のケースでは他の選択肢を検討する必要があるかもしれません。 Ionicの開発者は誰? onicの開発者は、Ionicフレームワーク自体を開発したチームであるDrifty Co.が主導しています。Drifty Co.は、Max Lynch、Ben Sperry、Adam Bradleyの3人の共同創業者によって設立されました。Ionicは、彼らが中心となって開発し、後にOpen Sourceとして公開されました。 また、Ionicの開発はオープンソースのコミュニティによっても支えられています。多くの開発者やコントリビューターがIonicに対して貢献し、バグ修正や新機能の追加、ドキュメントの改善などを行っています。IonicのGitHubリポジトリやフォーラムなどで活発な議論や情報共有が行われています。 Ionicのインストールの仕方 Ionicをインストールするためには、以下の手順に従うことができます。 上記のコマンドを実行すると、新しいIonicアプリのテンプレートが作成されます。 これでIonicのインストールが完了しました。作成したアプリはブラウザで動作するため、ionic serveコマンドを使用してプレビューすることができます。また、Ionic CLIを使用してプラットフォームごとにビルドしたり、プラグインを追加したりすることもできます。 なお、より詳細な情報や特定のプラットフォーム向けの設定については、Ionicの公式ドキュメント(https://ionicframework.com/docs)を参照してください。

Postmanを使ってみよう

Postmanとは Postman(ポストマン)は、API開発およびテストのための人気のあるツールです。Postmanは、Web APIやRESTful APIなど、さまざまな種類のAPIを作成、テスト、およびドキュメント化するための機能を提供します。 主な機能としては以下があります: Postmanは、API開発者、フロントエンド開発者、テストエンジニア、API消費者など、さまざまな役割の人々にとって非常に便利なツールです。使いやすいインターフェースと豊富な機能セットにより、APIの作成、テスト、および共有を容易に行うことができます。また、Postmanはクラウドベースの共有プラットフォームも提供しており、チームでの協力やAPIの共有が簡単に行えます。 Postmanの無料サービス Postmanには無料プランと有料プランの両方があります。 無料プランでは、基本的な機能を利用することができます。これには、APIの作成とテスト、環境の管理、コレクションの共有などが含まれます。また、一定の制限内で使用できるリクエスト数やストレージ容量があります。 一方、有料プランでは、追加の機能や制限緩和が提供されます。有料プランには個人向けプランやチーム向けプランがあり、エンタープライズ向けのカスタムプランも提供されています。有料プランには、高度な機能(モックサーバー、APIモニタリング、自動化など)や優れたサポート、拡張されたリクエスト数やストレージ容量などが含まれます。 Postmanの料金体系は定期的に更新される場合がありますので、最新の情報を確認するためにPostmanの公式ウェブサイトや料金ページを参照することをお勧めします。また、特定の要件やビジネスニーズに合わせたカスタムプランの相談も可能です。 Postmanのアカウントを作成 Postmanのアカウントを作成する手順は以下の通りです: これで、Postmanのアカウント作成が完了しました。アカウントにログインすると、APIの作成、テスト、ドキュメントの作成、チームでの共有など、さまざまな機能を利用できます。 HTTPリクエストを送るまでの手順 HTTPリクエストを送るための基本的な手順は以下の通りです: 上記の手順に従って、HTTPリクエストを送信し、サーバーからのレスポンスを受け取ることができます。実際の開発では、各プログラミング言語やツールに応じて、HTTPライブラリやフレームワークを使用してリクエストを作成し送信することが一般的です。 HTTPリクエストを使ってみる 以下は、Postmanを使用してCRUD(Create, Read, Update, Delete)操作を行うための参考URLです。これらのリソースはPostman公式のドキュメントやチュートリアルで提供されています。 これらのリソースには、Postmanの基本的な操作方法やリクエストの作成、パラメーターの設定、レスポンスの確認などに関する詳細な情報が含まれています。チュートリアルでは、具体的な例を使って手順を実践的に学ぶことができます。 これらのリソースを活用することで、Postmanを使用してCRUD操作を行うための基礎を習得できます。また、Postmanコミュニティや公式フォーラムにも参加することで、他のユーザーとの知識共有や質問の投稿もできます。 無料でアクセスできるRESTAPIのエンドポイント 無料でユーザー登録なしでアクセスできるREST APIのエンドポイントの一例をいくつか紹介します。 Getリクエストを試す 以下は、Postmanを使用してサードパーティのURIエンドポイントにGETリクエストを送信する手順です: ローカルホストのエンドポイントのテスト Postmanはウェブ上でもデスクトップアプリケーションでも利用できます。どちらのオプションも非常に似たユーザーインターフェースを持っていますが、ウェブアプリではlocalhostのAPIをテストすることはできませんので、ご注意ください。 まとめ Postmanの使用によって、以下のことを学ぶことができます: Postmanは非常に柔軟で強力なツールであり、APIの開発プロセスにおいてテスト、デバッグ、ドキュメンテーション、モックサーバーの作成など、さまざまな側面で役立ちます。