Creating Third Party Extensions for Developer Tools

by Arnaud on November 2, 2012 Comments Off on Creating Third Party Extensions for Developer Tools

by Monte Goulding 

Monte Goulding lives on a small farm in Tasmania, Australia where he built a straw bale house. When not working at M E R Goulding – Software development he enjoys spending time with the family, pretending to be a farmer, mountain bike riding, diving for and eating abalone.

_____________________________________________________________________________________________

Developing third-party extensions for a developer tool is a challenging business to run.  The market is an unknown size and only a small percentage are involved in mailing lists and user groups so it’s very difficult to make people aware of what you provide.

However, I’ve long believed that a proliferation of third party extensions can make a platform like LiveCode shine.  It can also be very fulfilling because you are creating tools used by people in a community you are involved in.  Your code is used in a wide array of apps all over the world and it’s really great when you find out what someone has achieved with it.

The flip side of that is developers rightly expect responsive support and well maintained extensions.  It’s difficult to strike the right balance between sharing with your community and the business aspects of doing so and I know of many great potential extensions that aren’t shared as a result.  

The business model for mergExt has evolved over the past year in an effort to find the right balance.  Product development is usually 50-70% funded by the community that need an external or feature developed so they can implement their app.  The rest of the funding (including for support and long term maintenance) comes from product sales. The whole concept is to create a win-win-win situation for the community and platform, the client that needs the feature implemented and my business.

Other times product development happens because I identify a great feature that I think users will love and I get a strong urge to spend a rainy weekend implementing it and sharing it with my fellow LiveCoders.

With roughly a billion users worldwide Facebook has become one of the most important marketing tools ever.  When iOS 6 by Apple was announced, I asked the community which features they would most like to see developed into an external.  Facebook lead the poll by a long way.  When I got my hands on a beta version I could see why.  Both the Social framework and the UIActivityViewController made sharing content on social networks a breeze.  

The next rainy weekend I targeted the UIActivityViewController which has great bang for buck in terms of what you get for the amount of code you need to write.  As with everything else in LiveCode it had to be done in a way that made it super easy to use.  I added it to my mergPop external with the mergPopActivity command.  With a single command LiveCode iOS apps could now share data to Facebook, Twitter, Messages, Mail and more. A simple script like this:

on touchEnd
mergPopActivity “This is the best app ever”,,appStoreURL
end touchEnd

Presents this to the user:

Creating-Third-Party-Extensions-for-Developer-Tools-1

From there the user can choose whichever service they want to use to share your message. The addition to mergPop (one of my most popular releases) was very well received, however, it wasn’t long before Jaime Stuart from EuroTalk asked to be able to post to Facebook without going via mergPopActivity. He wanted to have a facebook button rather than a share button.  I had already looked at the Social framework but at the time I was in the midst of resolving some lingering issues resulting from the changes to iOS externals required by LiveCode 5.5.2.  

Once resolved I set to work implementing mergSocial as a natural successor to the existing mergTweet external that was based on the iOS 5 Twitter framework.  Once again it had to be super easy to use so even someone using LiveCode for the first time could see it’s easy to share on social networks. I ended up implementing one function to check if a service is available and another to present the dialog for the user to send a post.  It’s so simple to post to Facebook Objective-C coders will get jealous:

on touchEnd
mergSocial “facebook”,“Hello mergExt!”,picOfMyLittleGirl,”http://mergext.com”
end touchEnd

Presents this to the user:

 Creating-Third-Party-Extensions-for-Developer-Tools-2

From there the user can cancel, edit the message and post.  

For more information, visit http://goulding.ws/ or http://www.facebook.com/mergoulding

ArnaudCreating Third Party Extensions for Developer Tools