※2021年のアップデートに伴いこの記事の内容は最新ではなくなりました。
アプリの開発方法については以下をご参照ください。
この記事の中のShopify App CLIは最新の実装方法はサポートしておりませんので、今後は以下のツールをお使いください。
2019年11月に、Shopify App CLIツールのベータ版がリリースされました。このShopify App CLIツールは、コードのスキャフォールディングと開発プロセスの自動化によって、アプリ開発を手助けするためのコマンドラインツールです。開発速度をアップして、Shopifyプラットフォームにおける開発者の生産性を向上します。
このベータ版リリース以降、わたしたちは安定性の向上とインストールの多様性(Windows10のネイティブなサポートを含む)を確保するために努力してきました。今回の記事では、バージョン1.1(執筆時点での最新版)の機能について解説します。みなさんのアプリ開発プロセスでぜひご活用ください。
ShopifyプロダクトディレクターのVanessa Leeによる、App CLIツールのアナウンスがおこなわれたShopify Unite 2019の動画は以下で見られます。
Shopify App CLIツールで何ができるのか
Shopify App CLIツールは、新規アプリの作成時に問題となり得る多くの障壁を取り除くことでアプリ開発のプロセスを効率化します。ターミナルにshopify createと打ち込むと、作成するアプリのタイプを入力するよう求められます。Node.jsとReact、またはRubyを選択します。
Shopify App CLIツールがあなたの開発プロセスを高速化する方法はおもに4つあります。
1. プロジェクトの作成
アプリを作成する際、所属、開発ストア、作成するアプリのタイプを訊かれます。すると、パートナーダッシュボードに新しいアプリが作成されます。
![](https://cdn.shopify.com/s/files/1/1958/6155/files/CLI-tool-creating-a-project_1024x1024.gif?v=1603970450)
Shopify App CLIツールはshopity serveによってトンネリングを実行し、Shopifyの認証要件であるhttpsでのアクセスを可能にします。これによりアプリは、ローカル開発のためにサーバーを走らせると同時にngrokも経由します。
![](https://cdn.shopify.com/s/files/1/1958/6155/files/CLI-tool-creating-project-shopify-serve_1024x1024.gif?v=1603970525)
こちらも参考にしてください:初めてのShopifyアプリ開発:気を付けるべき4つの間違い
2. テスト情報の追加
またShopify App CLIツールは、テストのために商品、顧客、下書き注文を追加するプロセスを効率化します。データを反映するには、shopify populateを実行します。
3. アプリの課金
アプリの課金は、Blling APIによっておこなわれます。CLIツールはこのAPIのセットアップを助けます。そのためにはshopify generateを実行してください。
![](https://cdn.shopify.com/s/files/1/1958/6155/files/CLI-tool-charging_1024x1024.gif?v=1603970764)
注意:shopify generate billingはNodeベースのアプリでのみ利用可能です。
4. アプリのデプロイ
Herokuなどの外部プラットフォームにアプリをデプロイすることもShopify App CLIツールで可能です。shopify deployはこの点で便利です。
こちらのリンクに、CLIをマシンにインストールする手順と機能の説明があります。現在はインストールのオプションが増え、Windowsをネイティブにサポートしています。
柔軟性の高いツール
わたしたちはShopify App CLIを構築する過程で、できるだけ多くの開発者にとって汎用性の高いツールになるよう心がけました。そして開発者向けツールの現状を考慮し、いくつかの決め事を設定しました。
1 憶測を避ける:内部的には、ユーザーの開発環境に関する多くの仮説を用いています。Shopifyでは全員Macを使用しています。しかしShopify以外の場所では、ほかのOSや開発言語のインストール方法が好まれる場合もあります。Shopify App CLIツールには推奨するインストール方法がありますが、1つの方法のみを強制することはありません。
2 上位権限を要求しない:一般的に、オープンソースのツールは上位権限を要求しません。もし要求すると、ユーザーは(たとえばsudo make installなどの)特定のアクションの実行を委ねられることになります。 App CLIにグローバル権限を与えることは、開発システムにセキュリティ上の問題をもたらす可能性があります。
3 何も削除しない:このツールが実行する処理は、非破壊的であるべきです。ツールによって作成されたプロジェクトやファイルの削除は、ユーザー次第です。
CLIツールのwikiにおいて、ツールに適用した原則の一覧を確認することができます。これらのルールは、ユーザーが好きなやり方でShopify App CLIを使用できるように、柔軟性の高いツールを提供するためのものです。
Shopify App CLIを構築した背景
今までにコマンドラインツールをNode、Go、Rubyで作成してきました。Shopify App CLIでは、コントリビューションやインストールが簡単で高速な言語を使用したいと考え、次のような意思決定プロセスを経ています。
・Nodeにはコマンドラインツール作成のための素晴らしいライブラリ(yargsやinkなど)があります。しかしNodeベースのツールのインストールやパスの管理が困難になる場合もあり、こうした依存関係には頼りたくないと考えました。
・Goはクロスプラットフォームのコマンドラインツールにはぴったりの選択肢といえます。メジャーなOSのバイナリにコンパイルするのが容易だからです。しかし、アプローチのしやすさとコントリビュートのしやすさという点では懸念がありました。
・RubyはGoよりもアプローチしやすい言語です。Nodeより広範な標準ライブラリもあり、依存関係に頼ることなく多くのことができ、ツールは軽快で高速です。RubyはMacやLinuxで簡単にインストールできるか、またはプリインストールされていて、Shopifyのわたしたちも精通しています。そこで内部的にRubyを使用してコマンドラインツールを書き、その知識をコマンドラインツールのフレームワークであるcli-kitとUIパターンコレクションのcli-uiに投入しました。そのため、Rubyを選択しています。
cli-uiキットは、再利用可能なコンポーネントによって安定したユーザーエクスペリエンスを実現します。ターミナルのエスケープシークエンスやターミナルの幅、その他コマンドラインツール作成にともなう些事で悩まずに済みます。
ユーザーはオプションを選択します:分化して実行されるプロセス:
カラーフォーマットのオプションもあります:
これらのオープンソースのツールを、わたしたちはコマンドラインツールのために活用してきましたが、みなさんの効率的なアプリ構築にも役立つと思います。
Shopify App CLIの未来
Shopify App CLIは、アプリ開発の高速化を目的として設計され、利用可能なパッケージやライブラリを明示して、快適なユーザーエクスペリエンスを提供します。アプリ開発をより素早く、楽に、直感的にすることで、開発プロセスはスムーズになり、あなたはユーザーのための素晴らしいアプリ作成に集中できます。
CLIツールはオープンソースなので、コードベースに直接コントリビュート可能です。もっとたくさんのアプリ、パートナー開発機能、フィードバックをわたしたちは求めています。Shopifyとみなさん、開発者コミュニティとのリアルなコラボレーションによって、App CLIが今後もニーズに対応すべく成長していくことを願っています!
続きを読む
Shopifyパートナープログラムでビジネスを成長させる
マーケティング、カスタマイズ、またはWebデザインや開発など提供するサービスに関係なく、Shopifyパートナープログラムはあなたを成功へと導きます。プログラムの参加は無料で、収益分配の機会が得られ、ビジネスを成長させる豊富なツールにアクセスできます。情熱的なコマースコミュニティに今すぐ参加しましょう!