お-12
IT-開発-Web
プログラミングやセキュリティ、データ分析などについての商業誌を30冊ほど書いてきました。 今回は『Raycast Extensionを作って学ぶReact』『ブックマークレット32本ノック』『htmxで学ぶWeb技術』『Composerの教科書 第2版』を頒布します。
新刊
同人誌・80ページ・紙/電子・1,000円macOSには「Spotlight検索」という機能が標準で搭載されており、ファイルの検索やアプリの起動をキーボードから操作できます。
これは便利なのですが、より高度な処理を実現するアプリとして、RaycastやAlfredがあります。
いずれもSpotlight検索より高度な処理ができ、一般的にはランチャーアプリに分類されます。
本書では、このRaycastについて解説します。
Raycastの大きな特徴として、豊富なExtension(拡張機能)があります。
公式のExtensionとして標準で導入されているものだけでなく、世界中の開発者が自由に開発し、無償で公開しています。
これらを導入することで、Raycastでできることを大きく増やせます。
そして、TypeScript(JavaScript)についての知識が少しあれば、個人でも開発できます。
開発したものを公開する必要はなく、手元の環境で実行するためだけに開発するのも自由です。
ただ、単にTypeScriptの知識があるだけでは、開発しようとしてドキュメントを読むと手が止まります。
その理由として、Raycast Extensionの開発にはReactが使われていることが挙げられます。
つまり、Reactについての知識がないと、どのように開発すればいいか、どのようにデータを保持すればいいのかわからないのです。
なお、Reactについて学ぶとき、Webアプリを作る方法もあります。
しかし、RaycastのExtensionを作りたいだけなのに、Webアプリを作るのは違和感があります。
Raycastはキーボードから操作することが前提であり、ある程度決められた環境で実行されるため、Webアプリと比べて考えることは少ないものです。
そこで本書では、Raycastの特徴を紹介するとともに、そのExtensionを開発することを通して、Reactを学ぶことを目的にしています。
すでにReactについて知識がある方は、RaycastのExtensionを開発するアイデアの参考として読んでいただければ幸いです。
新刊
同人誌・88ページ・紙/電子・1,000円独自のプログラムをWebブラウザ上で実行するとき、Webブラウザの拡張機能がよく使われます。
さまざまな開発者によって無料で提供されているものもあり、便利に使っている人も多いでしょう。
しかし、このような拡張機能を新たに開発するのは少し面倒ですし、使うときにはインストールが必要です。
個人で使うのであれば問題なくても、会社ではセキュリティポリシーなどでインストールが制限されていることもあります。
このような制限がなく手軽に使えるのが、Webブラウザが備えるブックマーク(お気に入り)機能です。
よく使うWebサイトのURLを登録する使い方が一般的ですが、URLだけでなくJavaScriptというプログラミング言語で書いたプログラムを登録できます。
このように、ブックマークとしてプログラムを登録し、Webブラウザ上で実行することで、Webサイトが用意していない独自の内容を処理できるようにしたものをブックマークレットといいます。
プログラムを変更するときは、登録したブックマークのURL欄の内容を編集するだけなので、ちょっとしたプログラムであればWebブラウザだけで作成・変更・削除ができます。
開発に使うプログラミング言語はJavaScriptだけなので、JavaScriptを少し学べば自由にカスタマイズできます。
JavaScriptに慣れている方であれば、思いついた処理を記述するだけでブックマークレットを作成できるでしょう。
昔はWebブラウザによって挙動が異なりましたが、現在はWebブラウザ間の互換性の問題もほとんどなくなりました。
本書に掲載しているようなちょっとしたプログラムであれば、どのWebブラウザでも問題なく動作します。
このように便利なブックマークレットですが、実際に使ってみないとその便利さはなかなか伝わらないものです。
多くの人にとってはブックマークレットでどんなことができるのか、どのように使えば便利なのかわからないものです。
そこで本書ではよく使われているブックマークレットを作ることを通して、その仕組みを解説することで、自由にカスタマイズできるようになることを目指します。
「32本ノック」というタイトルの通り、練習問題を解くことで考えながら学ぶことを目的にしていますので、まずはご自身で考え、入力してみてください。
その後、作ったプログラムに機能を追加していくことで、JavaScriptやHTML、CSSの知識を深めることにつながるはずです。
HTMLのDOMを操作するためのCSSセレクタや正規表現、便利なサービスの活用など、知識の幅が広がることを期待しています。
初心者が Ajax のような動作を実現したいと思ったとき、学ぶべきことはたくさんあります。HTMLを使ってWebサイトを作成するのはもちろんのこと、それを動的に書き換えるためにはJavaScriptの知識が必要です。そして、JavaScriptでHTMLを操作するにはDOMについて学ばなければなりません。デザインを変えるにはCSSが必要ですし、非同期の通信をするためにはHTTPについても学ばなければなりません。
これらの中でも大変なのがJavaScriptを使ったDOMの操作でしょう。HTMLやCSSは初心者でも比較的学びやすい一方で、JavaScriptはプログラミングについての考え方が必要です。そして、DOMには独特の考え方も必要で、学ぶときのハードルは高いものです。
そこで、ちょっとしたWebサイトを作りたいときには手軽にAjaxのような動作を実現できるライブラリとして「htmx」があります。htmxのライブラリをHTMLファイルの中で読み込むだけで、JavaScriptのソースコードを一切書かずに、Ajaxのような動的な機能を提供できます。これまでプログラミングが苦手だから動的な処理を諦めていた人も、HTMLを書くだけなのでハードルが低くなります。
ただし、そのときにもHTMLやCSSだけでなく、HTTPやDOMについての最低限の知識は必要です。そこで本書では、HTMLやCSSの基本を触れたあと、HTTPとDOMについて解説しています。
このhtmxを使うにあたって最低限知っておきたい知識だけをコンパクトにまとめました。
世の中にはPHPについての解説書が数多く存在しますが、パッケージ依存関係管理ツール「Composer」について詳しく書かれた書籍はまったく見当たりません。
もちろん、PHPについての書籍の一部にComposerについての解説はありますし、インターネット上でもいくつかのサイトで解説されています。
しかし、日本語のサイトではいずれも断片的な情報が多く、提供されているパッケージを利用するときの使い方の解説がほとんどです。自分でパッケージを作成するための情報を集めるには、さまざまなサイトを探す必要があります。
英語で作成されたComposerの公式サイトを読む方法や、その日本語訳を読むこともできますが、あくまでもツールのマニュアルという感じで、体系的に整理されているとはいえません。
そこで、2019年に開催された第1回技術書同人誌博覧会(技書博)や技術書典7では、本書の第1版を頒布しました。当時はComposerが1.8.6、PHPが7.3.6という環境でした。
それから4年が経ち、その間にComposerが1から2にバージョンアップし、PHP 8が登場しました。
第1版ではComposerを使うサンプルプログラムとして、「Twitter(現X)に投稿するAPI」を使用していましたが、現在はこのAPIもバージョンが変わっています。
このため、第2版として2023年11月現在の最新バージョンに更新して、サンプルプログラムも変更しています。