Learn the skills you need to build robust, profitable Shopify applications.
About the Author
I'm Gavin Ballard, a developer with over twelve years of professional experience building sites and applications for the web. Since I started working with Shopify over five years ago, I've built both themes and applications for clients and am a registered Shopify Expert.
I'm the author of Mastering Shopify Themes, the first ever course on building Shopify themes that convert, as well as the popular Bootstrap for Shopify theme framework. I'm also a contributor to a number of Shopify-related open source projects, including the official Shopify API clients.
Through the Mastering Shopify Apps mailing list and course, I'm hoping to help others build awesome stuff on top of Shopify by sharing what I've learnt.
Course Overview
The Mastering Shopify Apps course will be released in 2018. It will cover — in detail — every aspect of designing, building, and launching Shopify applications. It'll consist of a coursebook, code examples, and screencasts.
The current plan is to divide the course into three major modules:
- Plan;
- Develop;
- Launch.
The first module, Plan, will cover the background of Shopify apps — what, they are and what's possible with them. It will also provide a blueprint for the process of designing and launching an app and help you identify and validate good ideas for Shopify apps.
The second module, Develop, will provide practical app development tutorials, along with code examples and screencasts. There'll be a tutorial project that gets built up with each chapter of this module, so you'll be able to see in very practical terms how an application is built.
The final module, Launch, will cover what a lot of Shopify app development tutorials leave out — all of the things you need to do outside of the code to make your application successful. It'll cover things like pricing, marketing, customer support, and handling feature requests.
A more detailed breakdown of the course follows.
1. Plan
Why Build a Shopify App?
To kick things off on a philosophical note, we'll start by examining why we might want to build a Shopify app in the first place, and canvas the possibilities.
Shopify Apps vs Shopify Themes
Sometimes, it might not be clear whether a particular piece of functionality would be better implemented as an app or with a bit of front end customisation. We'll dig in to this and see when it makes sense to reach for our Shopify App toolbelt.
The Shopify App Blueprint
An overview of all the different stages a Shopify App goes through during its conception, design, development and launch.
Conceiving a Shopify App
We'll cover techniques for identifying ideas for Shopify Apps that will be useful for you and your customers, and ways to validate that idea before building your app.
2. Develop
Languages and Frameworks
We'll step through the programming languages most commonly used to develop Shopify applications, and work out which one is best for you.
The Shopify API
Everything you need to know about the Shopify API - how it works, what it can do, and how to start using it to read and write data.
Your first Shopify script
We'll work through a practical, real-world example of what can be achieved with the Shopify API in a few lines of codes.
Authentication
Calls to the Shopify API can be authenticated as "Private Apps" or through an OAuth flow. We'll dive into what that means and the easiest way to implement a reliable authentication pattern.
Webhooks and Application Proxies
We'll see how to implement webhook and app proxy functionality easily and securely in our Shopify application, and see what's possible with them.
Background Jobs
Using some sort of background processing queue is essential for almost all non-trivial Shopify apps. We'll take a look at why that is, why it's important to write idempotent background tasks, and some strategies for implementing background jobs.
Testing and Debugging
It's often overlooked, but having a rigourous test regime for you app actually makes forward development on your apps much easier. In this chapter, we'll look at possible approaches to testing your applications - and how to debug your code when things go wrong.
User Interfaces
We'll take a look at the pros and cons of two different approaches to building interfaces for our customers to interact with our apps.
Advanced APIs
In this chapter, we'll cover some of the APIs that are less commonly used, such as the CarrierService API, as well as look at the APIs that are only available to stores running on Shopify Plus.
Performance
When you're first building your app, you want to focus on getting code done and shipped. However, as your app starts to scale, you might start running into performance problems. In this chapter, we'll look at how to identify and mitigate potential performance issues with your application.
Architectural Design
Learn about higher-level design patterns that make building Shopify apps easier and more reliable, and how you can save yourself time and effort by thinking through your app's design before writing the first line of code.
3. Launch
Launching Your App
What you'll need to do to get your App into the hands of customers, including setting up application hosting, running a beta, and submitting to the Shopify App Store.
Pricing Your App
Learn which pricing strategies to use to maximise your app's revenue, attract your ideal customer, and sustain development.
Supporting Your App
See why excellent customer support is vital to the success of an app, and get practical tips on how to deliver it.
Marketing Your App
Build it, and they won't necessarily come. Learn about the different marketing channels available to Shopify app developers, and the best ways to leverage them to drive customers to your app.
Beyond Shopify
As much as we might like to think it, Shopify isn't the only platform out there. In this chapter, we'll canvas what it takes to expand a Shopify app to other channels.
Feedback Welcome
What do you think of the course overview? Is there something missing that you'd really like to learn about? Well, it's your lucky day because I'm still tweaking the course outline and I'd love to hear from you!
Just shoot an email to gavin@gavinballard.com with your thoughts.