I'm going to work on a Shopify theme, and I want to figure out how to run/edit it locally. I'd like to be able to the following, if possible:
Pull all the Shopify theme code from the site to my local computer (ideally a single command line tool)
Make edits locally, and run them locally or in a staging environment
Push all the edits to the main Shopify site, again using a command line tool
Is this at all possible?
There are quite a few workflows you can use here.
1. Task runners
If you're using either Gulp or Grunt locally for development, there are libraries out there that will upload your files to the store through API credentials of a Private App that you have to create. Most work by uploading the files you change, using a watcher.
grunt-shopify
grunt-shopify-upload
gulp-shopify-upload (it's my favourite since I use Gulp but has a known issue that sometimes it stops uploading files and you have to restart it).
2. Official Shopify Theme Kit
Theme Kit is a cross-platform CLI tool that was built by Shopify Employees. It can run on windows/linux/OS X. You can read more about it on Shopify Blog or download it directly. The alternative previously mentioned of Desktop Theme Editor is deprecated and has been replaced by Theme Kit.
3. Third-party SaaS Applications
Instead of watching for changes, these will work with a continuos integration workflow, where your latest push on a certain branch gets uploaded to the theme you've selected.
Beanstalk. More specific information can be found on their landing page for Shopify, here.
DeployBot. Their help article on Shopify has some information on how to get started.
Both options are from the same company. Here's a comparison of both they've did on their blog.
4. Third-party libraries
There's also an alternative not officially supported by Shopify which is a TextMate Bundle in case you use that OSX editor.
There's an unofficial extended cli similar to theme kit but with further functionality called Quickshot, which I've just found out based on Matt's response and seems pretty awesome. Some of the features they highlight are:
Supports uploading to multiple Shopify stores and themes
Easy to use configuration wizard
Uploads/downloads in parallel greatly reducing transfer times
Supports autocompiling scss locally before uploading to Shopify
Supports autocompiling Babel/ES6 into modules which are easily used by - Requirejs and others
Can use with .gitignore files or a custom .quickshotignore file.
Can download/upload Shopify Blogs, Pages and Products! Easily transfer them between stores! Even the metafields! And edit them locally in your favorite editor.
Shopify recently released Slate, a new tool for theme development.
https://github.com/Shopify/slate
As of 2020, Shopify has stopped support Slate so you can now use Themekit - https://shopify.github.io/themekit/
2022 update
Currently it is not possible to run Shopify locally. There are only solutions, mentioned in other answers to edit files locally and upload it to Shopify. It makes the development hard.
I am working on a solution to emulate Shopify locally making development similar to WordPress, React or Angular. So you will see changes immediately, even without reloading the page and without the need to upload files to Shopify each time.
You can read more here: https://link.medium.com/6SGd1kcVdnb
Juan's answer is spot on.
There's one more I know of which I believe is a little more advanced than Themekit (which I use) called Quickshot: https://quickshot.readme.io/v2.1/docs
Shopify have built a tool for Mac that allows you to develop your theme locally, and sync with your store https://apps.shopify.com/desktop-theme-editor
I don't know of anything for windows/Linux etc.
If you're looking for completely offline development, it's unfortunately not possible at this time. While the Slate/ThemeKit CLIs lets you code in your favorite text editor, an internet connection is still required because it likes to keep everything in sync at all times.
Install the state package by running the following commands:
npm install -g #shopify/slate
slate theme theme-name
We are creating an android application in MF 6.3. When we are building our project and passing the application url and context path in the "Build Setting And Deploy Target". These entries is save in the shared preference of apk in WLPrefs.xml file in the flat file like this.
https://localhost:0443/worklight
If we have jail-braked device we can extract this URL.
Is there is any way to encrypt these shared preference entries in Mobile First 6.3.
Thanks in advance.
IBM offers product integration with the Trusteer SDK that can detect rooted devices in the case of Android (only iOS devices are termed "jail broken") and allow you to, for example, disallow running the app.
You can read more about Trusteer integration here: https://developer.ibm.com/mobilefirstplatform/documentation/integration/trusteer-android-integration/
You can also attempt to use Android ProGuard; not sure it'll help.
It is not officially supported in v6.3, but the instructions for 7.0 may work for 6.3 as well: http://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/com.ibm.worklight.deploy.doc/admin/c_pg_obfus_intro.html
I have created a cocoa application primarily to run on OS 10.6.8. to convert certain types of proprietary legacy files. The app looks at the legacy files creator code and processes it accordingly if it is a known type. Once the file is identified, I call an external legacy app (which I have added to the project) using [NSWorkspace openFile: withApplication: ]to open the droplet and process the file conversion.
The application works just like it is supposed to until I archive it and try to run it from the application bundle. Actually, it will continue to work but it is using the converter app from the project. If I delete the converter in the project area, then the app in the app bundle can not open the external app in that location. One work around is to delete the external app from the bundle after its archived and replace it with a copy of the one in the project area.
I would appreciate any suggestions on resolving this. I'm not sure if the problem is in some Xcode build setting I can change to include an external apps resource fork when archiving, or if this is a launch services issue with apps hidden in packages, or , something I'm not even considering.
Thanks
Mike
Try setting the "Preserves HFS Data" (COPYING_PRESERVES_HFS_DATA) build setting.
Is it possible with IDEA 12 (like with Eclipse) to automatically add Android support library either on demand or on project creation (like in Eclipse)?
So far we had to go to extras directory in Android SDK and copy the library manually. I wonder if it had changed?!
This functionality is missing right now, please submit a feature request.
Nowadays, I'm working on an iPhone project that is using social connections such as Twitter, Facebook..
When I tried to implement Twitter+OAuth solution into my project some another parts of project such as MySpace is giving error on oAuth implementation. It seems MySpace IOS SDK used old version of oAuthConsumer project.
So, I haven't find libOAuth.a source code. If I find it I will be handle my problem.
How do I find the libOAuth.a static library source ?
try downloading it from https://github.com/bengottlieb/Twitter-OAuth-iPhone/blob/master/Twitter+OAuth/Libraries%20&%20Headers/libOAuth.a?raw=true
Isn't this what you're looking for? And not only do you have to include it into the project but also make sure you copy into it. Then under Build Phases, you will have to add this to Link Binary to Libraries section.
You might find Google's new OAuth 2 library for Mac and iOS to be helpful.