Codementor Events

Snapchat Snap Kit Android SDK Failures

Published Oct 03, 2018
Snapchat Snap Kit Android SDK Failures

Now, for the Android Saga

I have been writing about Snapchat's Snap Kit SDK for iOS. It's delivery to market has been anything but a shining example of solid business process. Here, I will take a look at the Android documentation, technical support, SDK and more to see if the same is true.

Bug style

I'll be writing critique in "bug style" with steps to reproduce. I'm doing this with the hope that Snap files each of these as bugs.

Note, I am calling these bugs. You might not. I argue that a failure is a failure and a failure is a bug.

Documentation issues are bugs. Support delivery failures are bugs. A bug, in my view, is something that has gone wrong and must be tracked and fixed/mitigated.

note pad with text nothing to see here
Designed by Freepik

To badly go where documentation has gone before

The iOS documentation is less than stellar, and falls particularly flat for Login Kit. Android's is no better.

Scopes array format is not clear

Steps to reproduce

  1. Go to https://docs.snapchat.com/docs/login-kit/#android
  2. Note the text and code below

Finally, add your application’s client ID, redirect URL, and scopes to the appropriate meta-data tags in your application’s AndroidManifest.xml. The SDK automatically fetches these values to enable deeplinking from your app to Snapchat. For a list of available scopes, please see the Understanding Scopes section of this document

<uses-permission android:name="android.permission.INTERNET" />

<application ...>
   <meta-data android:name="com.snapchat.kit.sdk.clientId" android:value="your app’s client id" />
   <meta-data android:name="com.snapchat.kit.sdk.redirectUrl" android:value="the url that will handle login completion" />
   <meta-data android:name="com.snapchat.kit.sdk.scopes" android:resource="@array/snap_connect_scopes" /> <!-- This should be a string array of scopes !-->

Result

It is not at all clear what the syntax / formatting should be for the string array of scopes.

The documentation does give some information

Login Kit offers the following scopes:

https://auth.snapchat.com/oauth2/api/user.display_name: Grants access to the user's Snapchat display name
https://auth.snapchat.com/oauth2/api/user.bitmoji.avatar: Grants access to the user's Bitmoji avatar; toggleable by user

However, this does not help. It does not make clear the exact text one would use to define the array.

Should the array look like this?

<meta-data android:name="com.snapchat.kit.sdk.scopes" android:resource="@array/https://auth.snapchat.com/oauth2/api/user.display_name,https://auth.snapchat.com/oauth2/api/user.bitmoji.avatar " />

Should it look like this?

<meta-data android:name="com.snapchat.kit.sdk.scopes" android:resource="@array/user.bitmoji.avatar, user.display_name"

Suggested mitigation

Use the examples in the results section above as a guide and re-write the documentation so that it is crystal clear the exact format / syntax to use.

Business lesson

Documentation must be treated as part of the product. It is as much code as any computer code. It must be tested by professionals. Release of documentation should follow the same iteration path as software, because documentation is software.

Put the documentation through a number of review cycles. Get a diversity of eyes on it. Have people use the documentation just like the end customer would.

Customers use documentation because they have an end goal. Pick your use cases as end goals and then use the documentation to try to meet those end goals. This approach will improve clarity, reduce typos, catch technical errors, and improve documentation flow and readability.

spilled milk

SDK support spills all the milk

Steps to reproduce

  1. Send an email to snapkit-support@snap.com
  2. In the body of the email, ask any question

Result

I have documented a large number of support problems for Snap Kit SDK. And my Android based queries have faired no better. In fact, the one question I posed to snapkit-support@snap.com has gone dark for 6 days. An auto-response has arrived, but there has been zero human response.

Suggested mitigation

Staff appropriately. Respond to tickets early. Establish expectations on responsiveness. Give the customer a method to check on the status of a ticket via a public ticket tracking system. Be open, honest, fair. And god d@!mit!!!! Respond!!!!

black hole

Story Kit beta - aka big black hole

Steps to reproduce

  1. Fill out the form for beta participation

Result

Story Kit is in beta and if you wish to participate you fill out a short request form. I did this maybe 2 weeks ago and have not even seen an automated response. Nada, nothing, zip, zero, nil.

Suggested mitigation

The beta page needs to make expectations clear. It must answer questions such as

  • What is the approval process?
  • Once I submit my request, how long should it take to get a decision?
  • Can I appeal the decision
  • If there is a queue or wait list, can I know where my request is on the wait list?

Be transparent. And at the very very least - send an auto-response after a request is submitted

If you liked this you may also like

Contact Me

Discover and read more posts from bbookman
get started
post comments1Reply
Fredrick Williams
6 years ago

And for a while there I was thinking that maybe Snapchat was heading towards accountability and cleaning up the nastieness of the secret apps built to promote adult content. What was I thinking?

https://www.writemyessay24h.net