【Shopify】アプリ開発でおすすめの開発言語
この記事の所要時間:6分
Shopifyテーマ及びアプリの開発を目指して学習を始める場合、どのプログラミング言語で開発を行うのがベストなのか、また自身で今までに扱ったことのあるプログラミング言語は使えるのかという疑問を持つ方も多いと思います。
今回は、Shopifyアプリ開発周りでどのようなプログラミング言語が使われるか、またオススメのプログラミング言語などをご紹介します。
Shopify自体の開発言語
Shopifyのメイン開発者のTobi Lutke氏がRuby on Railsの開発者の1人だった背景もあり、Shopify自体はRuby on Railsで開発されました。
それに加えてフロントエンド/テーマ開発にはテンプレート言語であるLiquidなど、管理者パネルにはJavaScript(のちにRuby on Railsで再記述)、メインのデータベースではMySQLなどが使用されています。
また余談ですが、Tobi Lutke氏は2017年のデベロッパーカンファレンスでJavaScriptが好きだと明言しているそうです。
これらの知識も参考として、Shopifyアプリの開発を目指して学習を始めるにはどの言語がベストなのかを考えて行きます。
Shopifyテーマ開発
Shopifyテーマとは
ShopifyテーマはShopifyのサービスの1つで、ストアのサイトデザインを決定させるテンプレートのことです。
ある程度のカスタマイズはノーコードで行うことができますが、より細かい変更を加えるにはコーディングが必要となります。
Shopifyテーマ開発について
テーマの開発は、ゼロから開発するかもしくは、Dawnをたたき台として使用して行います。
HTML/CSS
Webページのデザインを作成する際に必ずと言って良いほど使われるのが、HTMLとCSSです。 テーマの開発でもこれらを使用します。
HTMLはページに表示させる要素を記述するマークアップ言語で、CSSはページの各要素により細かな効果を与えることができるスタイルシートです。
JavaScript
Webページ制作はもちろん、テーマ開発ではプログラミング言語JavaScriptを使って、マウスの操作に応じてページの表示内容が切り替わるようなインタラクティブな機能を持たせることができます。
HTML文書の中で特定のタグに挟んで埋め込むことで実行されるため、コンパイルの必要もなく、簡単に実装されます。
Liquid
Liquidはテーマ開発に使用されるRubyベースの言語で、テンプレート言語と位置付けられています。
HTML文書の中にLiquid特有の構文を埋め込むことで実行され、Shopifyストアからのデータを動的にページに取り込むことができます。ぜひ以下の記事も参考にしてください。
テーマ開発学習のまとめ
Shopifyテーマ開発には、基本的にはWebページ制作と同じ技術スタックがあれば事足ります。
しかし、テーマ特有の機能デザインを充実させるためにはテンプレート言語Liquidの理解が必要となるので、ある程度のLiquidの学習をおすすめします。
Shopifyアプリ開発
Shopifyアプリとは
Shopifyには、Shopifyストアに様々な独自機能を組み込むことのできるShopifyアプリが多数開発されています。
開発したアプリを自身のストアにカスタマイズすることや、Shopifyの認可を得てアプリストアに公開することもできます。
Shopifyアプリ開発
開発するアプリの種類や開発の流れについては、こちらで詳しい説明がありますので、ぜひ参考にしてもらえればと思います。
Shopify API
Shopifyが公開しているShopify APIを組み合わせてShopifyアプリを作成することで、Shopify固有のデータストアへのアクセスが可能となります。
Shopify APIには以下の3種類があります。
■REST Admin API
RESTで提供されるShopifyストアマーチャント向けの管理機能を制御できるAPIです。
REST APIはHTTP経由でJSON、HTML、XLT、Python、PHPのいずれかの形式で送信されます。
多数のWeb開発言語で使用可能ですが、現在はShopifyでGraphQLの使用が推奨されているため、大抵は次のGraphQL Admin APIを使用します。
■GraphQL Admin API
GraphQLで提供されるストアマーチャント向けの管理機能を制御できるAPIです。
Graph APIは使用できるプログラミング言語に指定はないものの、PHP(graphql-php)、Scala(Sangria)、Python(Graphene Python)、Ruby(graphql-ruby)、JavaScript(graphql.js)などが主に使用されます。
■Storefront API
GraphQLで提供されるストアフロント(購入者が利用するサイト側)向けの機能を制御できるAPIです。
これらAPIの使い方について、詳しくはこちらを参考にしてみてください。 また、RESTとGraphQLの比較はこちらを参考にしてみてください。
Shopifyアプリ開発に使用されるプログラミング言語
Shopifyアプリ開発で主に使われるプログラミング言語やフレームワークなどを簡単に紹介します。
■Ruby
前述の通り、ShopifyもRubyで書かれたWebサービス開発フレームワーク「Ruby on rails」で作成されています。
Shopifyが提供するコマンドラインインターフェース「Shopify CLI」では、Ruby on Railsを使用することでShopifyアプリを素早く作成することができます。
ShopifyにはRuby用のライブラリが公開されています。
また、RubyでWebアプリ開発を簡単に行うことのできるDSL「Sinatra」を使ったShopifyアプリも学習の参考になります。
■JavaScript系
・React.js
React.jsはユーザーインターフェース構築のためのJavaScriptライブラリです。
React.jsとNode.jsを使ったアプリ開発のチュートリアルも公式から出ています。また、Shopifyのユーザーインターフェースコンポーネント「Polaris」ではReactモジュールが使用されます。
・Vue.js
Vue.jsはユーザーインターフェース構築のためのJavaScriptフレームワークです。
Vue.js製のフレームワーク「Vue storefront」でShopifyのストアフロントをデザイン出来ますが、まだベータ版だそうです。
・Node.js
Node.jsはコマンドラインで動かされるJavaScriptの処理系です。ShopifyではNode.js用のライブラリが公開されています。
また、Node.jsとShopify CLIを使ったアプリ開発のチュートリアル も公式から出ています。
■Python
大規模なWebサービス開発を効率よく行うことのできる高水準で汎用性の高いプログラミング言語です。
ShopifyではPython用のライブラリが公開されています。
■Java
Javaは汎用性の高いオブジェクト指向言語です。Shopifyには、公式のJava SDKがあります。
Javaを使ったアプリ開発のチュートリアルも参考にすると学びは多いかと思います。
■PHP
PHPはWebページを動的に作成するサーバーサイドで動くスクリプト言語です。
Shopifyアプリ開発のためにPHP APIや、PHP SDKも公開されています。
また、PHPのフレームワーク「Laravel」でShopifyアプリを開発する方法も学習の参考になります。
■その他
その他GoやElixirなど、Web開発言語の多くはShopifyアプリ開発に使用できます。
Shopifyアプリ開発におすすめの言語
Shopifyアプリ開発では様々なWeb言語が使われますが、Shopify APIの特性や開発のサポート面等を考慮すると、RubyとJavaScriptがおすすめです。
Ruby on RailsでのShopifyアプリ開発は事例が多いため情報が集まりやすく、開発の初学にはもってこいです。
また、Shopify公式にRubyとNode.jsを使ったアプリ開発のチュートリアルがあること、ユーザーインターフェース設計に便利なPolarisなどにReact.jsが使用されることなどもおすすめの理由です。
【最後に】
Shopifyのテーマ開発とアプリ開発に使用されるプログラミング言語を大まかに紹介しました。
Shopifyアプリ開発は特定の言語に縛られることなく行うことが出来ますが、自身の技術スタックに沿ったものが最も良い方法であると思います。
アプリ開発の初学者であれば、前述のようにRubyやJavaScriptを使って開発を目指すことをおすすめします。