Building a Social Networking Application – Publishing


At this point everyone should have their applications built out and ready to publish on their respective container. I’m sure everyone now knows where the “publish app” or “publish to gallery” button are (or at least I would hope you would know by now :) ) so I’m not going to get into that on each platform. This final post is just to provide some fair estimates from a developer’s point of view on what you may encounter when publishing your application. For this post, we’ll cover two of the major containers, MySpace and Facebook.

 

Below is an overview of what we saw when we published applications on these two containers:

 
MySpace
Facebook
Approval Timeframe
About 1 week
About 2-4 days
Approval Policy
Strict
Lax
Approval Process
Automated QA script
Human Tester
Human Tester
Revision Policy
External includes changeable
Spec file required re-submission
Fully changeable
Communication
No communication unless approved or bugs found
No communication unless approved or bugs found
 

So, let’s go into some of these points in more detail:

 

Application Approval (timeframe / policy / process)
Let’s start with MySpace in the hot seat. During our publication phase, our application took about 5 business days to publish after the last of our reports bugs were repaired…all in all the process was about 1.5 weeks total from the first time we clicked the publish button. It should be noted that when bugs were reported back by MySpace, they were fixed and the application was re-published within about 8 hours.

 

So, what took so long to get this application to the gallery?

 

This has everything to do with the strict approval process that MySpace maintains when approving applications to the gallery. MySpace seems to have taken on the role of a full QA testing facility when you want to get your application out to the world. They will run your application through its paces, both through an automated testing environment and a human engineer looking over your app. Our first bug report from MySpace was from the automated testing script. You can expect to encounter reports such as “Excessive whitespace” if you set your canvas height too high (use gadgets.window.adjustHeight() to dynamically resize your application height) or “No external css/js references” in the canvas / home views (inline all of your javascript and css) during the automated testing round. For the first time through, this script took several hours to report these errors back to you, so check back after about 3-4 hours to see if anything has been reported. The next phase was the engineer testing. We received test case errors from these engineers saying things like “if a user doesn’t have the app installed, goes to a friend’s page with the app installed, they receive this javascript error” or other ones like “when you do this in the app, you get this error”. They thoroughly test your application to make sure it’s working well before allowing it in the gallery.

 

On the flip side we have Facebook with a more lax approval system. When we pushed out our application to Facebook we did not receive any bug reports back from them prior to pushing to the gallery. While our app got out quicker, most of the errors we missed in the program were found by users (sometimes phrased ever so nicely in a terms of service violation message ;) ). There’s not much to say here besides the fact that Facebook seems to go to an engineer to look over but we did not see any evidence of an automated script process at the time we pushed this out.

 

Revision Policy
Now, what happens when your application makes it to the gallery and you want to change something? Again we have some platform differences. On MySpace, if you want to change anything that is controlled by the spec (generally the control flow or any inline code) you’ll need to re-publish your app. Don’t worry though, each time we did this the process only took about 20 minutes to do a quick automated test and then the changes were pushed. Facebook seems to allow you to change every aspect of an application after publishing without having to send it through the checks and balances from the container.

 

Communication
Here’s one area that both of the containers were the same in, that of the communication between the developers and the container & engineers. In both instances, with the exception of reported bugs, we did not see one notice of where our application was in the testing queue, when it might be approved, nothing… it was as if our application dropped into a black hole and was gone until it was pushed to the gallery. What we would have loved to see is some sort of queue counter where we could see how many apps needed to be tested before ours…and maybe when it was being tested, what it had passed and where it was in the testing.

 

Many application developers build their applications to reach the most people they can. While I would love to say that one platform is better than the other, I can only make note here that both have a large user following and if you can port your app to both of these platforms it’ll be better for it. This guide was developed more to present some of our experiences during the process so that no one is surprised along the way.

 

– Jonathan LeBlanc

  • Share/Bookmark


Building a Social Networking Application – Application Construction


Before working on the construction of your first social networking applicaiton, you should have already set up all of the accounts you will need to work with the container of your choice.  If you have not yet done so, please refer to the previous post detailing account setup requirements.

 

So, you’ve created your accounts and want to begin building an application…how do you do that? First off, for all of the social containers you’re going to have to have some web hosting solution where you can host your application online. How this process will basically work is that you will host the application on your web server, point your social container application to your hosted files, and voila!

 

Here is a basic guide for each of the containers on what you’re need to do to construct you application:

  • MySpace
    1. Go to your MySpace Application View and click the “Create New App” button.
    2. Fill out the application setup information. Note here that the e-mail address entered must be unique to MySpace. The method MySpace uses for creating an application is to build a profile for the application, hence the need for a unique e-mail address.
    3. There are a few methods for building out your application. You can reference the MySpace getting started pages for more details.
  • Orkut
    1. Go to http://sandbox.orkut.com/Main#MyApps.aspx to view your application page.
    2. This page will allow you to access / edit your applications in a similar way as MySpace.
  • Facebook
    1. Click on the developer application from your Facebook profile.
    2. Click on the “Set up New Application” button at the top right of the page.
    3. Add in your application information

Below is a container comparison on what’s available to you on each of the platforms:

 
MySpace
Orkut
Facebook
Application Setup
1. Create spec. file

2. Create new application

3. Designate spec. file

1. Create spec. file

2. Create new application w/ spec. file

1. Create application

2. Specify app. Location.

Sample App. Generator
Yes – in dev tools
No
Yes
Supporting Docs. / Dev. Forum
API Docs
API Docs
Code Samples
Minimal API docs
Wiki w/ code samples
Test Harness / Developer Tools
Yes
No
Yes
 

Application Setup

There are some differences between some of the major containers and how they implement their setup process. MySpace and Orkut both required a specification XML file (basically just an interface for setting up how your application will run and be configured). The main difference between MySpace and Orkut in their process is that MySpace allows you to change what spec file you would like your application to use at any point (again – no using the same spec file for multiple applications – this is restricted by MySpace) but Orkut requires you to create a new application if you would like to use a new spec file. Facebook takes a more intuitive approach in that they just have a configuration panel which will allow you to set up your application details.

 

Sample Application Generator

The sample application generator is a great tool if you’re just starting with a platform. This will allow you to automatically create a “hello world” application without having any experience on the platform.
MySpace and Facebook both offer this utility and, if you’re just starting out, I would definitely take a look at this tool.

 

Supporting Docs / Development Forums

All of the major containers have documentation (be it official or unofficial) which support the platform. This ranges from API documentation, code samples, to fully user supported specification standards…so your choice in container might range around what level of documentation you prefer.

 

Test Harness / Developer Tools

The test harness (developer tools) is a utility available to developers to allow them to test out container compliant code or widgets and get back a visual representation of what that script or widget will render as on the platform. Why do you need this tool when you have your own development environment? Well, this tool is great for testing out new container widgets when you don’t want to have to deal with uploading to your server, invalidating cache, etc. I have not found much use out of these tools once my application became very integrated with a database or server side structure set.

 

The final post in this basic setup series will follow pushing your application to the container gallery and the approval process.

 

– Jonathan LeBlanc

  • Share/Bookmark


Building a Social Networking Application – Account Setup


In the first of a series of discussions on the topic of “building a social networking application”, I’m going to take you through a day in the life of a developer.  This post will cover setting up accounts on some of the major platforms and how to get started with your application building.  These are by no means absolute answers, but are some of the experiences we have gone through.

 

So, you’re building your first application and want to know what you’re going to need to do, what you’ll need to set up and how long it’s going to take. Here’s a comparison of some of the major social networking platforms and their offerings:

 

MySpace
Orkut
Facebook
What You’ll Need
Who Can Be A Developer?
Anyone
Anyone
Anyone
Time to Approve a Developer Account?
Approximately 2-5 days
Approximately 2 days
Immediate (add developer application)

 

So what’s next for starting up? Documentation of course! Below are some great resources for getting started and learning about what’s available on the platforms.

 

Getting Started Guides

 

Code Documentation Sources and Samples

 

Stay tuned for the next post in this series which will cover the application development process.

 

– Jonathan LeBlanc

  • Share/Bookmark