Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Facebook’s Parse Open-sources its SDK for Android and iOS

Facebook’s Parse Open-sources its SDK for Android and iOS

This item in japanese

Parse, Facebook-owned provider of a successful Mobile Backend as a service, has open-sourced its SDK for the iOS/OS X and Android platforms.

As Parse’s engineer Nikita Lutsenko wrote in the official announcement, open-sourcing Parse SDK is driven by the belief that this can accelerate innovation, enable learning from the community, and foster better collaboration. The Parse SDK conveys with it all that Parse engineers learned by building the service and overcoming challenges that may be common to other developers, says Lutsenko. Accordingly, Parse’s engineer Grantland Chew, announced a series of blog posts to dive into Parse SDK most challenging aspects and into its workings under-the-hood, and started exploring a few key concepts:

  • Asynchronous API: the Parse SDK provides a highly asynchronous API which is based on Bolts, another framework that Parse open sourced one year ago and that provides the abstraction of a future/promise. This is used to simplify the serialized execution of parallel asynchronous operations such as persisting a dependency chain of objects.
  • Decoupled architecture: Parse SDK public API is structured as a façade to an always changing implementation behind it. This makes it possible to continue growing the system and adding new features without breaking anything. Parse SDK’s façade is based on a few abstractions such as:
    • object instances, the basic abstraction that keeps the API stable by providing means to get and set ParseObject properties.
    • state, which represents the internal state of the object, e.g., for a ParseObject, the combination of its server-side representation, the collection of local changes, and its current local representation.
    • Controllers, which define the operations that can be executed on ParseObject, ParseQuery and ParseFile instances. They are also responsible for REST communication and encapsulating features such as the local datastore.

Besides peeking into Parse SDK implementation, developers will be able to submit pull requests for any bugs they fix.

Rate this Article