Tsun Inc.でCTOをしている小笠原です!
最近はShopifyのアプリやテーマの開発を行っています。
このブログではShopify開発に役立つ情報を共有していきます。
Shopifyエンジニアの方の参考になれば嬉しいです!
はじめに
Tsunでは10月からShopifyアプリの開発をはじめました!
11月に簡単なアプリを1つリリースし、2つ目のアプリ(目次作成の自動化アプリ)を開発しました
2022年12月に目次を自動生成できるShopifyアプリをリリースしました。
無料でブログ記事をもっと読みやすく拡張します。ぜひ一度お試しください。
ちょっとずつアプリ開発の知見がたまってきたので2022年12月時点でのアプリ開発のベストプラクティスを共有したいと思います。
今後もベストプラクティスの追加・更新があったら随時こちらの記事も更新していきます!
対象読者
Shopifyアプリの開発経験者、もしくはこれから開発してみようという人
Shopifyアプリ開発のベストプラクティス
Shopify CLI v3を使う
v2が2023年4月以降に使えなくなるため。
https://shopify.dev/changelog/cli-2-0-to-be-sunset-on-may-31-2023
一部v2でしか利用できない機能もありますが、v3を使っていきましょう。
eslintでLintをする
Shopifyアプリ開発に限らずですが、eslint使っておきましょう。
Shopify公式のUIライブラリPolarisに対応するルールもShopifyが作っています。
https://github.com/Shopify/web-configs/tree/main/packages/eslint-plugin
GraphQLのルールやその他のルールはお好みで。
https://github.com/B2o5T/graphql-eslint
UIライブラリはPolarisを使う
基本的なUIはすべて揃っているので、Polarisで十分使いやすいアプリが作れます。
Figmaのファイルも(ちょっと古いが)公開されているので、簡単なモックを作って共有するのも楽です。
https://polaris.shopify.com/getting-started
開発専用のアプリを作る
Shopify CLIではngrokで生成されたURLを自動でアプリURL、リダイレクトURLを変更してくれますが、万が一操作をミスすると本番環境のアプリの設定をローカルの設定で上書きしてしまうなどのミスが発生する可能性があります。
したがって、本番環境の設定を壊してしまう等のミスを防ぐために開発専用のアプリを用意しましょう。
複数人で開発している場合は、一人一人の開発専用のアプリを作るとよいです。
開発専用のストアを作る
アプリ開発時の問題を切り分けやすくするため、不要なアプリなどがインストールされていないストアでの開発がおすすめです。
また複数で開発している場合は、他の人が設定を変更してしまったり、テーマを変更してしまったりなどの影響を受けないように専用のストアを用意しましょう。
ステージング環境を用意する
こちらもShopifyアプリ開発に限らずですが、開発→本番環境に即反映せず、ステージング環境でテストしてから本番環境に反映しましょう。
そのためには、もちろんCI/CD環境も必要です。
Subscriptionsを表示するページを用意する
課金とキャンセルを簡単にテストできるようにするために専用のページを用意しましょう。
Tsunでは下記のようにアクティブなSubscriptionsを取得してIndex Tableに表示、キャンセルボタンでサブスクリプションのキャンセルが簡単にできるページを用意しています。
開発時のみ表示されるように、Viteのimport.meta.ENVなどで制御しておくのがおすすめです。
Webhooksを表示するページを用意する
Subscriptionsと同様。
Subscription APIのエンドポイントはプランごとに作る
プランの金額や名称をパラメータで渡す設計にすると、悪意のあるユーザーが金額を変更してサブスクリプションのエンドポイントを叩くということができてしまいます。
したがってLightプランのエンドポイントであれば、/api/subscriptions/light-plan のように専用のエンドポイントを用意します。
Extensionsの開発でもViteを使ったビルドをする
Assetsのファイルサイズを減らすため、難読化のため。
リッチなUIのTheme Extensionの開発などはSvelteを使うなども今後検討したいなと思ってます。
ExtensionsのデプロイはCIで行う
Shopify CLIで都度デプロイするアプリに切り替える作業をするとアプリを間違えたりといったミスが発生しやすいため。
https://shopify.dev/apps/tools/cli/ci-cd にあるように、CI用のトークンを発行してCIでExtensionsのデプロイが可能です。
リスティングの審査要領にデモ動画のURLを含める
審査の手戻りを減らすために、審査提出時に使い方を動画にまとめて提出するといいです。
Loomが無料かつ簡単にデモ動画を作れておすすめです。
まとめ
今回は2022年12月時点でのShopifyアプリ開発のベストプラクティスをご紹介しました。
Shopifyアプリ開発に関する情報を頭に入れるだけでも大変で、さらにアップデートも頻繁にあって追いつくのもやっとです笑
今後もベストプラクティスの追加や更新があったら都度こちらの記事をアップデートしていきますのでチェックしてください!
Tsun Inc.ではShopifyアプリの開発をしています。
もし、Shopifyアプリの開発に興味ある方は、ぜひTsun Inc.へお問い合わせください。