コードの歩み

Nuxt 3

Vue 3 公開から遅れること 1 年。2022年秋にようやく Nuxt 3 正式版が公開されました。

ただ、正式版公開から安定するまでにさらに 1 年ほど要しており、実質空白の 2 年の間に Vue から React にシフトした方も多いようです。

そんな難産をうかがえる Nuxt 3 ですが、破壊的変更の恩恵として、強力なオートインポートや、 Vite による高速なビルドのおかげでコード量も少なく大幅に手数を削減できるものに仕上がっています。

2022

Vuetify 3

同じく Vue 3 公開から遅れること 1 年。2022年秋に Nuxt と足並みを揃えようやく Vuetify 3 正式版が公開されました。

こちらも正式版公開から本格的に利用可能な状態になるまでにさらに 1 年ほど要しました。

とくに致命的だったのは全バージョンで利用できていた UI コンポーネントのうち重要なコンポーネントが未完成であったり。途中仕様変更されたりと本格導入に至るまでの道のりは相当に長かったです。

そんな難産をうかがえる Vuetify 3 ですが、Nuxt との相性もよく、 UI 部分の開発コストを大幅に削減できることは相当に魅力的で、今後も活用していきたいと考えています。

LINE Messaging API

LINE でのアプリ開発には欠かせない API です。

Nuxt 2 Composition API

Nuxt 3 時代への準備として、以降の案件を全て Nuxt 2 Composition API の導入を開始しました。

TypeScript の恩恵を享受できることに加え、 composable としてロジック部分を外部に切り出すことで、これまで Nuxt プロジェクトで扱いづらかった部分が大幅に解消しました。

ただし、インポートや返り値の指定などコード記述量が若干多くなりがちで、一手間二手間多くなってしまいました。

2021

LIFF(LINE Front-end Framework)

店舗催事用途にて LINE トークルーム内で使用するスタンプラリーや特典チケット発行機能と、その特典付与や消し込み機能など管理機能一式を受託したことがきっかけで利用しました。

これまで取り組んできた JavaScript フレームワークや、Firebase (GCP) との相性がとても良く、本件以降 LINE に関連するウェブアプリを広く手がけることとなりました。

Flutter

教育機関など研究開発費用としてあらかじめに予算が確定している業務にて、可能な限り予算の範囲内で要件を満たすスマホアプリを開発したいと考え採用しました。

ネイティブアプリの操作感には程遠い印象ですが、それでも実機上では軽快に動作しますし、開発自体も敷居は低く容易に導入できた印象です。

これまでネイティブ開発をしていた方々が Flutter を推してくるのも納得です。

2020

Nuxt Property Decorator (Class API)

Nuxt 2 プロジェクトの品質向上を目的として TypeScript を導入したいとの考えから、Nuxt Property Decorator (Class API) を採用しました。

型チェックもしっかり働き品質向上に大きく貢献してくれました。

この後、Vue 3 時代に入ることとなり、3 年ほどで役割を終えました。

Swift

アプリ開発は結局 Swift に落ち着くことになる。 Firebase ライブラリも用意されておりスムーズに組み込めた。

2018

Kotlin

Android アプリ開発は Kotlin となった。 Firebase ライブラリも用意されておりスムーズに組み込めた。

Frebase (GCP)

スマホアプリを迅速かつ低コストで進めたく導入。

Frebaseは認証(Authentication)、データベース(Cloud Firestore)、関数実行環境(Cloud Functions)、ホスティング(Hosting)、ストレージ(Cloud Storage)、通知(Cloud Messaging)と、スマホアプリ開発に必要なバックエンド要素は全てセットになっており、RalavelやRailsなどバックエンド側構築が一切不要となった。

ちょうどRealtime DatabaseからFirestoreに切り替わっていくタイミングだったのも幸いし、初学者でもスムースにプロジェクトに組み込むことができた。

React Native

スマホアプリ制作の候補版としてプロトタイプ作成に使用。

Expo を併用すると、ごく短時間でデプロイしからテスト版配布まで一気に行える。

しかしながらアプリ製品版はネイティブ開発で進めることとなったため、以降は簡易なデモにと思いましたが Adobe Xd などデザインツールの進化で出番がなくなった。

Nuxt

スマホアプリの管理画面制作のために導入。 Firebase の Node パッケージも準備されており、スムーズに導入をするkとができた。

この Nuxt 採用が、これ以降のビジネス的部分と業務的部分に大きな影響を与えることになった。

Vuetify

Vue の UI フレームワークとして採用。他にも無数のUIフレームワークがあるなか、唯一納得のゆく機能とスタイルを提供しているものだった。

以降のプロジェクトでは、ほぼ必ず Nuxt とセットで開発に利用することになる。

algolia

全文検索サービスで、 Firestore と同期させることでフリーワード検索を全て一任できる。用途とコストが合えばぜひお勧めしたい。

SendGrid

Firebase の制約でメール送信に制限があることから、独自ドメインなどメールアドレスから送信したい場合に使用。用途とコストが合えばぜひお勧めしたい。

Vue

SPA フレームワークとしては Angular が勢いをもっていた時期、最も学習コストが低そうでかつ実用的と考え導入したのが Vue で、テンプレートの扱いやすさが決め手だった。

Laravel にも標準でパッケージに含まれていたため、いいとこ取りのはずが、業務用アプリケーションにおいてはサーバ上で HTML を生成する必要性は薄いと考え、画面描画部分においては手数の少なくて済む Vue で進めるようになった。

2017

Laravel

業務用途のウェブアプリ制作が増えてきたことと、WordPress など CMS をどうにかしてそれっぽく構築することに限界を感じ、 PHP フレームワークとして Laravel を導入。

他にもさまざまな PHP フレームワークがありますが、公式ドキュメントが充実していて理解しやすいものであったのが理由。あと語感が良かった。

プロジェクトのディレクトリ構成も綺麗でわかりやすく好感を持てるが、よく使うディレクトリはもう少し浅い階層にしてほしいなと思った。

テンプレートのBladeも使いやすい。

gulp

JavaScript タスクランナーとして利用。 Grunt からの乗り換え。おもに Sass や Pug (Jade) からのファイル生成や、画像の最適化に使用。

2016

Pug(Jade)

HTML を書き出すのに使用。

OptiPNG、imagemin

画像の最適化。

WordPress

ウェブサイト制作の受託制作を始めたのがこの頃で、その後 2 〜 3 年ほどはこの WordPress サイト制作の受託がメインとなりました。

ただ、本来やりたいウェブアプリケーション開発とは経路が異なるという点と、技術的に未熟なスタッフのためにわざわざ WordPress の業務を受注してくることが続いたことに加え、ほぼ収益にならないことから縮小し、2000 年には新規の受注は受けない運びとなりました。

2015

Sass

CSSを書き出すのに使用。

Grunt

Node のタスクランナー。

git

福岡で開催された勉強会で知り、移行常用するようになりました。

2013

AWS

これまではレンタルサーバを借りてそこにウェブアプリケーションを構築していましたが、 AWS を知ることで大きく考え方が変わりました。

当時はまだ UI が完備されていなかったり、画面もドキュメントも英語表記だったりと、若干敷居が高かったように思いましたが、現在はほぼほぼ UI で設定も完結できますし、ドキュメントも翻訳されとても扱いやすくなっています。

2012

PHP 5.3

これまで過不足なく Perl での開発をしていましたが、新しいことを始めようと決めたタイミングで PHP の学習をはじめました。

ただ福岡の IT 界隈では Ruby on Rails が盛り上がっており、これまでの自分の開発履歴からすると Ruby だなとは思っていたものの、 Rails を使いたいか・必要かというとそうでもなく、結果として選択しませんでした。

Perl 5.8

これまで Shift JIS や euc など文字コードの問題を解消すべく内部的に Unicode に変換し運用していましたが、この変換コストが高くパフォーマンスについての悩みの深い時期でした。

ちょうどそんな折に Unicode に正式対応したバージョンが発表され、文字コードに関する問題が解消、また一段大きく前進しました。

2003

Cent OS

時代と共に OS の選択も変わってくるもので、 Perl のリプレイスと合わせて Cent OS に乗り換えていきました。

Mac OS X Public Beta / Mac OS X Server

雑誌で見ていた Next Step のような UI と、Unix OS。これを Macinthsh ライクにアレンジしたような外観という印象で、またこれまで利用していたアプリケーションとの互換もなく最初はあまり魅力的に感じませんでした。

OSX は Unix OS ということで、ローカルで Apache を起動(パーソナル Web 共有)することができることを知った時は最高の喜びでした。

これ以降ローカルでの開発効率が格段に上がることになりました。

2000

Internet Explorer 5.5

ウェブサイトの CSS 対応が始まったのもこの頃から。Netscape がシェアを落とし始めていたこともあり、一気に CSS の時代に入ったように記憶しています。

Perl 5.5

卒業後に就職したカシオ計算機の九州販社(現在はカシオ計算機 福岡支店)では独自の PDA カシオペアを市場に出したり、グループ企業では 2000 年問題対応で何かと賑やかな年でした。

最初に制作したのは、いわゆるホームページというものではなく、ランキングサイトという Perl を用いたアクセス集計サイトで、まだデータベースの知識がありませんでしたので、 Apache のアクセスログと CSV ベースで情報管理でリアルタイムのアクセス集計や順位づけをしていました。

その後、Perl で EC サイトを構築し、リニューアルを重ね、およそ 15 年ほど運用しました。

当時試行錯誤した画期的な点で言うと、商品サイズ・重量・体積から最適な梱包サイズを求め、それに最適な送料または納期に基づき少しでも安く短納期で配送できるようロジックを搭載したり、受注ごとに原価・送料まで加味していくら利益が出ているのかを可視化したり、いわゆる定番化した商品についてはほぼ自動でメーカー向け発注書を作成したりと、そこそこ良いものが出来ていたかと思います。

1999

Apache

ウェブサーバの負荷分散を意識し始めたのはこの頃で、 Apache へのリクエストをいかに効率よく捌くか自宅に何台も中古パソコンを設置して最適解を探していました。

この頃にはまだ CDN という言葉も知りませんでしたが、負荷分散のために画像など静的ファイルを実行するサーバとは別に配置しするなど工夫して凌いでいました。

また当時はまともなアクセス解析がなかったため、 Apache の美しくないログを Perl で整形・表示し、傾向と対策の検討や分析をしていました。

Free BSD

本格的にウェブサービスを作ろうと、はじめてレンタルサーバを契約しました。

この頃にはインターネット検索で Unix コマンドも容易に調べられるようにはなっていましたが、手の届く範囲には常にコマンドの冊子を置いていたように記憶しています。

HTML (HyperText Markup Language)

当時から無料でホームページ公開できるサービスは多く存在していて、一番初めに公開したのは趣味サイトです。

内容は特になくて、愛車のこととアクセスカウンターがあるくらいのものでした。

コンテンツを作ると言うよりは動くものを作りたく、このあと Perl にはまっていきます。

1998

Netscape Navigator

記憶が定かではありませんし、どうしてそうなったのか覚えていませんが、 Netscape Navigator をパッケージ版ソフトとして 5,000 円くらいで購入しました。

1996

Windows 95

学生生活の最後は、ほぼフルタイムのアルバイトとして家電売り場の OA コーナーで過ごしました。

カシオとダイエーの両方の契約で売り場に入っており、カシオ製品(ワープロ、電卓、電子辞書など)を販売しつつ、パソコンやプリンターほか OA 機器の販売をしていました。

当時の私の役目としてはカシオのワープロを販売しなくてはならなかったのですが、タイミング的に Windows 95 という Macintosh のような UI を持つ OS が出たことと、モデムを追加することで容易にインターネットに接続できるようになるという、ちょうど時代の転換期であったためか飛ぶように売れました。

スティーブ・ジョブズの伝記にもある通り、この頃の Apple Computer は迷走期で、603e プロセッサの Performer というモデルが量販店に並んでおり、10万円台前半で購入できる Macintosh として認知されていつつも、あまり売れていませんでした。

1995

ピクトログラフィー

私はビジュアルデザインを専攻していましたが、とくに写真撮影の楽しさにハマり、そのうちデザイン学科の授業には出席しなくなりました。

週末はレンズメーカーのアルバイトに勤しみ、営業所に置いてあった特殊なレンズを借りてはは撮影を繰り返していました。アルバイト代はフィルムと現像代ですぐに消えていきました。

写真学科の方に教えてもらった大学内の施設にはピクトログラフィーが設置されており、この出力結果にはとても満足していました。

高価な機材を時間の許す限りたっぷり使えるというのは最高です。

授業があまりにも退屈でつまらなかったので、いつも施設に入り浸りほぼ授業には出席しなくなりましたが、いろいろ協力もありましてとりあえず卒業だけはできました。

1992

Illustrator, Photoshop

大学には学部ごとに異なる情報処理室があり、芸術学部には Macintosh が設置されていました。

高校生の頃は烏口を使いポスターカラーで一文字ずつレタリングしていましたが、画面に描画した文字が即フルカラー出力されることには感動したのを覚えています。

この頃、 Illustrater でデザイン製作中に先生に指摘された「数値入力しなさい」という言葉は、今もしっかりと心に刻まれ私の中で大切にしているものの一つでもあり、在学中に一番響いた言葉です。

この後の人生で本職のデザイナーになるという選択はしなかったのですが、その後も継続的にウェブデザインをする必要はあり、利用頻度は低くはなっていますが現在もありがたく使わせていただいてます。

1991

BASIC

母が職場の先生が PC を買い換えるということで、処分される予定だった PC-8001 を譲り受けてきてくれたことがきっかけ。
中学生の頃、 MSX が欲しくて学校帰りの電気屋さんに入り浸っていたのを知っていたのでしょう。
当時マイコンBASICマガジンの写経ばかりしていましたが、記録媒体が音楽用に購入していたカセットテープでしたのでデータが壊れることもしばしばありました。
時を同じくして学校にも情報処理室が設置されましたが、講師もおらず授業にもあまり活用されていなかったため、お昼休みにはこっそり入り浸っていました。
これがコードとの出会いでした。

1989

Web Application Develop Company