snaqme Engineers Blog

おやつ体験メーカー snaq.me エンジニアによる開発プロダクトブログ

【Vimmer の Webエンジニアが TypeScript で Neovim プラグインを作った話】をイベントで発表してきました!

こんにちは。スナックミーでエンジニアをしているタク(@yamataku3831)です。

このたび6月21日に、クラスメソッド株式会社のオフィスで開催されたイベントにて、LT登壇の機会をいただきました。

connpass.com

250人のエンジニアが参加する中、今回お話しさせていただいたテーマは【Vimmer の Webエンジニアが TypeScript で Neovim プラグインを作った話】。この記事では、発表時に使用したスライドもご共有しつつ、私が TypeScript で Neovim プラグインを作るに至った背景をご紹介します。

スナックミーの世界観あふれるマイページは TypeScript で作られている

スナックミーでは「おやつの定期便」だけでなく、ECストアでも楽しいおやつ時間を体験することができます。特にサービスとユーザーの大切な接点であるマイページは、ナチュラル/ポップテイストのソーシャルゲームを彷彿とさせるような、ワクワク感にあふれたデザインになっているのが特徴的です。

マイページの画面

アニメーションやマイクロインタラクションが豊富に使われているのですが、実は TypeScript がベースになった React で開発されています。私は前職でも React や React Native を使っていたので、TypeScript は親しみ深い言語のひとつと言えます。

Web アプリケーションを Neovim で開発していた自分に訪れた転機

前職の上司の影響もあって、私はエンジニアとしてのキャリアをスタートした頃から Neovim を使っていました。Vim Script や Lua は設定ファイルを書く程度しか使ったことがなく、プラグイン開発は考えたこともありませんでした。

ところが、2021年7月に Denops という Vim/Neovim のエコシステムが vim-jp から正式リリースされ、JavaScript や TypeScript を用いてプラグインを開発できるようになりました。Denops の存在を知ったことをきっかけに Vim/Neovim プラグインを作ってみたくなった気持ちが再燃し、使い慣れた TypeScript でプラグインを開発してみることに…

これが Neovim プラグインを開発するに至った背景です。Denops とは何か?どういうメリットがあるのか?どのように作るのか?などは発表資料にまとめていますので、気になる方はぜひご覧になってください。

おわりに

楽しいおやつ時間を想起させるような、スナックミーならではのワクワクに満ちたマイページ。そういった世界観をフロントエンドエンジニアが具現化できている要因のひとつに、FastAPI に mypy を利用して型を指定したり、自動テストを実装したりして、必要なデータを安定的に提供する基盤を構築しているということが挙げられます。

弊社ならではの世界観を実装面からしっかり支えていただけるバックエンドエンジニアの方も、積極的に募集しています!この記事を読んで興味を持ってくださった方や、おやつが大好きで「おやつと世界を面白くしていきたい」とお考えの方がいらっしゃれば、ぜひ応募していただけると嬉しいです。

engineers.snaq.me

募集ポジション

ソフトウェアエンジニア Backend (lead) / 株式会社スナックミー

ソフトウェアエンジニア FrontEnd (lead) / 株式会社スナックミー

ソフトウェアエンジニア Data Engineer / 株式会社スナックミー