Introducing the Super Debugger: A Wireless, Real-Time Debugger for iOS Apps

feature

LLDB is the current state of the art for iOS debugging, but it’s clunky and cumbersome and doesn’t work well with objects. It really doesn't feel very different from gdb. It's a solid tool but it requires breakpoints, and although you can integrate with Objective C apps, it's not really built for it. Dealing with objects is cumbersome, and it's hard to see your changes.

This is where Super Debugger comes in. It's a new tool for rapidly exploring your objects in an iOS app whether they're running on an iPhone, iPad, or the iOS Simulator, and it's available today on Github. Check over the included readme to see what it can do in detail.

Today we're going to run through a demonstration of an included app called Debug Me.

  1. Clone the superdb repository locally to your Mac and change into the directory.

    git clone https://github.com/Shopify/superdb.git
        cd superdb
    
        
  2. Open the included workspace file, SuperDebug.xcworkspace, select the Debug Me target and Build and Run it for your iOS device or the Simulator. Make sure the device is on the same wifi network as your Mac.


  3. Go back to Xcode and change to the Super Debug target. This is the Mac app that you'll use to talk to your iOS app. Build and Run this app.

  4. In Super Debug, you'll see a window with a list of running, debuggable apps. Find Debug Me in the list (hint: it's probably the only one!) and double click it. This will open up the shell view where you can send messages to the objects in your app, all without setting a single break point.


  5. Now let's follow the instructions shown to us by the Debug Me app.

  6. In the Mac app, issue the command .self (note the leading dot). This updates the self pointer, which will execute a Block in the App delegate that returns whatever we want to be pointed to by the variable self. In this case (and in most cases), we want self to point to the current view controller. For Debug Me, that means it points to our instance of DBMEViewController after we issue this command.


  7. Now that our pointer is set up, we can send a message to that pointer. Type self redView layer setMasksToBounds:YES. This sends a chain of messages in F-Script syntax. In Objective C, it would look like [[[self redView] layer] setMasksToBounds:YES]. Here we omit the braces because of our syntax.

    We do use parentheis sometimes, when passing the result of a message send would be ambiguous, for example something like this in Objective C: [view setBackgroundColor:[UIColor purpleColor]] would be view setBackgroundColor:(UIColor purpleColor) in our syntax.


  8. The previous step has no visible result, so lets make a change. Type self redView layer setCornerRadius:15 and see the red view get nice rounded corners!

  9. Now for the impressive part. Move your mouse over the number 15 and see it highlight. Now click and drag left or right, and see the view's corner radius update in real time. Awesome, huh?



That should be enough to give you a taste of this brand new debugger. Interact with your objects in real-time. Iterate instantly. No more build, compile, wait. It's now Run, Test, Change. Fork the project on Github and get started today.

Continue reading article ›

New Feature - Multiple Tracking Number Support in Fulfillments

Sometimes when you place an order through a fulfillment service, such as Amazon your order may be fulfilled from several fulfillment centers.  Unfortunately this information would not be provided to the customer which could lead to some confusion.

We've now added support for multiple tracking numbers in a single fulfillment, which you can use immediately in your Shipment confirmation templates.

You can start using these in your templates right away

The tracking details for these items are as follows:
{% for tracking_number in fulfillment.tracking_numbers %}
  {{ tracking_number }}
{% endfor %}

For shipping status on these items:
{% for tracking_url in fulfillment.tracking_urls %}
  {{ tracking_url }}
{% endfor %}

Continue reading article ›

New Feature - Orders Export Includes Payment Reference

The Export Orders feature in your Shop's Administration page will now include the Payment Reference used to cross-reference transactions to the gateway.

The Payment Method has been added to the end of each line of the Order export file:


This change will be put into production on December 19, 2012 at 12:00 EST. If you have any custom processing of the Orders CSV file that Shopify generates, please ensure that you have updated it to handle this new field.

Continue reading article ›

Tis' the Season to get a Better Job

feature

Do you want to be a Shopify Guru? Our support services will soon be going 24/7, so we’re hiring more Gurus to help out our merchants around the clock.

While we’re not huge fans of traditional interviews here at Shopify, we are huge fans of parties. So instead of inviting you in for a ho-hum one-on-one, we’re hosting a big bash for potential Shopify Gurus on December 13th from 7-10pm. Specific location is TBA, but it will be in Ottawa, Canada.

You’ll get to hang out with fun people who are interested in working at Shopify, chat about the potential job, have a few laughs – and a few drinks! You can meet the people who might become your colleagues, and get a great feel for the job, the space, and Shopify’s culture.

But wait! Before you jump on the party bus, you should probably know exactly what a Shopify Guru is:

Shopify Guru
[shaw-puh-fahy goo-roo]
1. A rare, interesting character who gets a kick out of helping Shopify’s customers get their stores up and running.  A guru is comfortable on the phone and can type like a maniac. In the wild, gurus are often spotted laughing at or telling a great joke, as they have a naturally keen sense of humour.

Space is limited, so this party is invite-only. If you’re interested in attending, please enter your info in the provided fields at the bottom of one of our 3 Guru job postings: daytime, weekend and evenings and overnight

Mention in your application that you want to attend our Guru party on December 13th, and we’ll be in touch!

Continue reading article ›

API update - status code change

Hello developers!

We are changing the status code returned when an API client has hit its call limit. Presently, we use 503 Service Unavailable to indicate that a client has reached the call limit. 

As of November 30th, we will begin using status code 429 Too Many Requests (RFC 6585). 

Please ensure that your app can handle this change to guarantee expected functionality.

If you encounter any API issues or have any questions, you can visit the tech forums. Additionally, please be sure to monitor your email inboxes for further communications regarding this issue. You can also watch the Technology blog and @shopifyapi for updates.

Continue reading article ›

Meetups and Hackathons - come see us in real life!

feature

Shopify meetups (Ottawa) - November 20, 2012

Come to Shopify on November 20th to meet with Shopify merchants, partners, and our own developers, designers, and gurus. This will be a great chance for developers to network with merchants for app ideation synergy, and designers for great app branding justice. Be sure to register soon, spaces are filling up fast!

Windows 8: Pure Imagination (Toronto) - November 24, 2012

We're hitting the road! Come join the Shopify Developer Advocates as we adventure to Toronto to hack on Windows 8 apps. Windows 8: Pure Imagination is an all-night hackathon being held at Ryerson by our friends at Microsoft, and promises to be lots of fun. Again, spots are filling up fast, so register now to ensure your spot!

Hope to see you all this month!

Continue reading article ›

API updates

Hello developers! We have a number of API changes happening this month. Please take a few moments to familiarize yourself with the updates to ensure that you know whether you're affected.

The updates

Customer API updates - http://api.shopify.com/customer.html
We've made some exciting additions to the Customer API - you can now create customer user accounts for a shop via the API! Check out the API docs for details.

Cart API bulk endpoint removal
We have removed the endpoint for bulk cart retrieval, and are moving towards complete removal of the Cart API in the near future. Please ensure that you are using webhooks over these endpoints. 

Checkout API - http://api.shopify.com/checkout.html
We are moving closer to the permanent implementation date of the Checkout API, happening November 20th. This impacts apps using the Cart or Order APIs, such as abandoned order apps. Get the details on this update here

Need help?

If you encounter any issues or have any questions, you can visit the tech forums or post to Stack Overflow using the 'shopify' tag. Also be sure to continue watching this space, as well as @shopifyapi on Twitter for updates.

Continue reading article ›

Shopify Desktop Theme Editor 1.0 Release


The new Shopify Desktop Theme Editor allows any Mac user, regardless of choice in text editor, to easily keep a local copy of all of their theme files in sync with their shop. These files can then be edited natively using any text editor, and those changes automatically and seamlessly sent back to your store. The app is a super simple install; just grab the download [here] and drag it to your Applications folder. You're then ready to open up the app, add and authenticate your shop, and get started editting your theme files locally!

One of the main benefits of the new Desktop Theme Editor is the ability to use any editor to make changes to local, synchronized copies of theme files. Whether you use Textmate, Sublime Text, vim, or even emacs, you'll be right at home. Your changes will be automatically and magically synced to your store. You can even use a service like Dropbox to make your theme files available on any computer connected to your Dropbox account.

The Desktop Theme Editor lets you know when your theme files have been synced so you know everything's working right. Never worry again about changes not being synced or your connection failing. If you're working offline, you can manually sync the files when you come back online and get a notification when that's done.

If you're a developer or a merchant working on multiple stores, The Desktop Theme Editor can handle that too. There's no limit to how many shop's you can connect. It's great for contract work as a Shopify Partner or Expert, as well as developers in the App Store and Theme Store to see their changes across multiple test shops with different themes. If you only run an individual shop but use multiple themes (desktop and mobile, for example), you can edit multiple themes per shop too.

A massive thank you to Mitch Amihod who did the development of this app – he's done an amazing job.

You can download The Desktop Theme Editor from the Shopify App Store here.

Continue reading article ›

Friday Roundup - October 26, 2012

feature

Happy Friday, developers! It's time for our second edition of the Friday Roundup.

Upcoming API changes - The date has been set! - http://www.shopify.com/technology/6735056-upcoming-api-changes
You may have noticed that we've been not-so-quietly rolling out a new Checkout API. This API and subsequent reordering of some Webhooks will allow for better management of certain activities such as managing abandoned orders. We have set a deprecation date of November 21st for the status quo - after that, these changes will be permanently in place. If you're an app developer making use of the affected webhooks, you should have received an email notifying you of this date. If your app uses the 'orders/updated' Webhook and you did not receive an email, please review your contact information for your partner account.

Continue reading article ›

Upcoming API Changes

Hello developers! We have some very important news for you. There are changes to the API coming very soon that you should know about! The API team is excited to announce the addition of the Checkout API

Impact

Before reading any further, please be aware that while these changes are not yet mandatory, they will be in the near future. Further details about the exact date will be to come, but expect it to be in the next month. 

Am I affected?

If you are using the Cart or Order APIs, these changes will affect you. In particular, if your app manages abandoned orders, you should take a look at the new API as soon as possible.

What is being changed?

Presently, orders are created after the customer has entered their address during checkout. Initially, all orders are considered 'abandoned' until a financial status like 'paid' is set.

This is being changed. With the Checkout API, there will be a new state between collection of the shipping address (i.e. the first screen in checkout) and order completion. When a payment attempt is made on a checkout (the checkout is either paid, authorized or pending), the order is created. This means that there will no longer be abandoned orders; only abandoned checkouts.

Relevant webhooks (checkouts/create, checkouts/update, and checkouts/delete) have been added to the API and can be viewed here. Once the customer makes a payment attempt, the Checkout object is deleted, and an Order object is created.

How to get help

If you have any questions or encounter any issues, please visit the tech forums, or contact apps@shopify.com

Continue reading article ›

Start your free 14 day trial!Create your store now

Create an online store in minutesTry Shopify Free