mottox2 blog

年末年始自由研究レポ

dev

年末年始なので普段気になってるけど、触る機会のなかった技術やライブラリに触ってみました。フロントエンド周りのトピックとして、Framer Motion, GraphQL, Flutter, FaunaDBの4テーマに触れてみました。

Framer Motion

Reactのアニメーションライブラリです。react-springが競合にあたると思いますが、自分は逆張りでframer-motionを掘ることにしました。
framer-motionはFramerというデザインツールを提供しているチームが出しているライブラリで、以前紹介したreact-poseの後継にあたります。

個人的には小さなインタラクションやジェスチャーに対応していくことでネイティブアプリライクな操作感に近づくと思っています。React以前のウェブではjQueryライブラリが繁栄し、リッチな見せ方、インタラクションなどで独自の進化を遂げていました。ただ、Reactになってからは(特に日本では)こういった議論はされなくなったように感じています。使いやすいPWAに至る道には必要と思うので取り組みました。

framer-motionに関しては、次のようなメリットがあります。

  • 宣言的にアニメーションを記述できるためわかりやすく再利用もしやすい
  • React Routerと組み合わせても、リッチなトランジションが簡単に実現できる
  • ドラッグやタップなどのイベントと組み合わせるのも楽

このあたりの実装に関してリポジトリを作って、使いたい時に使えるようにストックを始めています。
UIフレームワークの実装と違い、「薄めの実装にして、プロジェクトに取り込みやすく」を意識して進めています。

http://react-motion-training.netlify.com/
https://github.com/mottox2/react-motion-training

海外のReact系カンファレンスではアニメーション的なセッションがあるので、日本でも増えればいいなと思っています。

Flutter

Googleが提供しているマルチプラットフォームアプリが書けるツールです。一応、情報としては追っていましたが、自分の言葉で説明できるようにしたかったので触りました。

Flutterそのものよりも、開発環境の整備状況に驚きました。セットアップも特につまずくことがなく進み、Android Studioにプラグインが提供されていて使ってみたらめちゃ楽でした。
生のRN(ReactNative)より書きやすく、RN + expoを使っている気持ちになりました。

monoさんのFlutterの効率良い学び方を参考に次の内容をこなしました。

これに加えてFirestoreとつなげてみたり、QRコード読み込みを試してみたりしました。

ふとしたタイミングで「Webでいいのでは?」という気持ちになりました。経験が学習を阻害するので「アンラーニングが大事」という言葉の重さを知りました。
去年、仕事でiOS(Swift)をやっていたので、エラーが出てもなんとかできる力がついたような気がします。

GraphQL

クライアント側からGraphQLを利用するのはGatsbyでやっていたので、今回はサーバーサイド(RoR)でGraphQL APIを実装しました。
主に「GraphQL」徹底入門 ─ RESTとの比較、API・フロント双方の実装から学ぶに従い、気になる点はドキュメント等を参考にしながら追加で実装しました。(リポジトリ

以前からチューニングがしんどい等の話は聞いていましたが、自分で実装してみてそのしんどさを感じることができました。クライアント側からはほしいフィールドを指定するだけで楽な一方、サーバー側へ実装の負担が寄る実感を得ました。
DBとつなぐことでGraphQL APIを生やせるPrismaやHasura、データストアとともに提供している後述のFaunaDBあたりを掘っていくとよさそうです。

FaunaDB

NetlifyやZIET Nowで公式のIntegrationとして用意されているデータストア。データへはFQL(SQLライクなクエリ言語)、GraphQLの二通りの問い合わせ方法がある。
正直Firestoreがしんどいので、サーバーレスに向いているデータストアを探ってみたいというのが発端。

とりあえず触って主要なドキュメントも読んだけど、Flutterのチュートリアルと比べて英語が読みにくかった。
認証方法としてパスワード認証が用意されているが、3rd Party Loginに関しては言及されていなかったのでアプリ導入に関しては様子見。(中間サーバーとか立てれば行ける?でも、それならFirebase使う…)
自分用ツールのデータストアに使えるかも?もう少し時間をかけてみてもよさそう。


以上のような年末年始の自由研究をやっていました。皆様、今年もよろしくおねがいします。

dev

ウェブ技術で縦書きを含む画像を生成したい

ここ最近、Web技術を利用した画像生成に興味があります。本記事では、日本語における表現の一種である縦書きに焦点を当て、Web技術を使った縦書きを含む画像生成方法についての調査をまとめました。 > 現

blog

Netlify Formsで問い合わせフォームを作ったら簡単だった

追記(2022/12/29): 問い合わせに対応する窓口をTwitterに統一したいので、フォームページは削除しました。 当ブログは静的サイトホスティングサービスのNetlifyでホスティングされ

netlify
dev

翻訳でHacktoberfestに参加しました

毎年10月に開催されるHacktoberfestに参加しました。このイベントはOSSへの貢献を行い、期間中に規定数(4つ)の貢献を行った人に特典がプレゼントされるものになっています。 自分はドキュメ

Copyright © 2023 @mottox2 All Rights Reserved.