cooliris

Cooliris Releases ToolKit for iOS as Open-Source

We all benefit from the work of the open-source community in the software world. Cooliris is no exception. Today, we would like to give back, and are glad to announce that we recently released our internal Cooliris ToolKit for iOS as open-source.

This toolkit is used in various Cooliris products for iOS, including Discover or Decks, and allows developers of iOS applications to speed up development time.

What makes it different from various open-source toolkits is that each feature is designed to have minimal dependency on other ones. Each feature is also designed to be implemented with a single .h/.m source code files pair. The combination of these two design goals makes it quite easy to re-use only what you need from this project without clustering your application with many additional obscure source files.

For a detailed description of the Cooliris ToolKit for iOS, along with an overview of its benefits, or to retrieve the source code, go to http://code.google.com/p/cooliris-toolkit/.

Cooliris ToolKit is copyright 2011 Cooliris, Inc. and available under Apache 2.0 license. See the included LICENSE file in the project for more information. Note that Cooliris ToolKit includes other open-source projects and such projects remain under their own license.

For a third-party application that makes extensive use of the Cooliris ToolKit for iOS, check out the ComicFlow comic reader for iPad, also available as its open-source code.

What makes it different from various open-source toolkits is that each feature is designed to have minimal dependency on other ones. Each feature is also designed to be implemented with a single .h/.m source code files pair. The combination of these two design goals makes it quite easy to re-use only what you need from this project without clustering your application with many additional obscure source files.
For a detailed description of the Cooliris ToolKit for iOS, along with an overview of its benefits, or to retrieve the source code, go to http://code.google.com/p/cooliris-toolkit/.
Cooliris ToolKit is copyright 2011 Cooliris, Inc. and available under Apache 2.0 license. See the included LICENSE file in the project for more information. Note that Cooliris ToolKit includes other open-source projects and such projects remain under their own license.
For a third-party application that makes extensive use of the Cooliris ToolKit for iOS, check out the ComicFlow comic reader for iPad, also available as open-source.
  • No Comments
  • Going beyond Facebook – LiveShare’s new identity service

    We think Liveshare is what modern communication should be, flexible, visual and instant.  We are quickly converging toward our next-gen UI  and interim are taking steps to substantially improve our current sign-up, sign-in, and invite flows.  As part of this effort, we are stoked to reveal our spanking new Identity Service with the upcoming release of Liveshare across our mobile and web clients.

    The new Identity Service will enable our millions of users to do two things:  one, log in to Liveshare independent of Facebook connect (a constant barrier because of the lack of trust users have with new applications and also because of the lack of user request which makes successful invitations hard to achieve), and move beyond just their social graph for inviting friends to include their phone and email graph as well.

    While an Identity Service is not a novel feature or an engineering marvel unto itself, our implementation, seamless invite flow, and fluid log in process is what we’re proud to be releasing soon.

    In designing the invite flow, we wanted to present the user with a comprehensive list of contact information from which to choose and auto-complete their friend’s email and phone information.  For Android’s implementation we took advantage of the Android Contacts Manager as it syncs with the user’s GMail account and gives access to a detailed contact list to present to the user.  To separate out the phone contacts, there is a column provided called HAS_PHONE_NUMBER.  A typical query to retrieve all contact IDs might look like the following:

    // Get list of Contact IDs.

    final String[] contactProjection = new String[] { Contacts._ID, Contacts.DISPLAY_NAME, Contacts.HAS_PHONE_NUMBER };

    final Cursor contactsCursor = cr.query(Contacts.CONTENT_URI, contactProjection, null, null, null);

    while (contactsCursor.moveToNext()) {

    // We separate out those contacts with a phone number.

    if (!contactsCursor.getString(HAS_PHONE_NUMBER_COLUMN).equals(”0″)) {

    // Do work.  #1

    }

    }

    One approach would be to query for the phone number value for each contact ID as we cycle through them in the above snippet (#1).  However, depending on the size of the contact list, this simplistic approach may result in hundreds of queries and prove inefficient in retrieving phone numbers.  We found a better approach is to form a comma separated string of contact IDs and query for phone numbers for IDs that fall into that set using the SQL IN operator.  The following snippet of code uses a String that contains a set of contact IDs for the query.

    // String ids = “(a,b,c,g,j,l,…)”, a list of all Contact IDs.

    final String[] PHONE_PROJECTION = new String[] { Phone.CONTACT_ID, Phone.NUMBER };

    Cursor phoneCursor = cr.query( Phone.CONTENT_URI,

    PHONE_PROJECTION,

    Phone.CONTACT_ID + ” IN ” + ids,

    null,

    null);

    The results are stored in phoneCursor which is a mapping of Contact IDs to phone numbers.  We also used a similar approach for retrieving email addresses.

    Unlike other platforms, Android gives us a head start in developing and deploying a feature-rich application through many examples such as the one above.  Providing our users with the right contact graph from the get-go is invaluable for increased chances of success in an invite-based viral loop.  We look forward to our users’ feedback and hope they love the simplified UI, the killer (Cooliris-developed) Gallery experience in Liveshare, and of course the powerful use-cases Liveshare enables.

    While we are proud of this release and the easy ‘getting started’ flow, our subsequent releases will do even better as we try and bridge the login gap between the user and their content further.

    Thanks!

    *The new version is not yet live, but follow us on Twitter or Facebook to get the update when it becomes available.

  • No Comments
  • Catch us at Google I/O!

    If you missed us today, don’t forget to see us at Google I/O tomorrow in the Chrome Developer Sandbox! We are demo-ing our Image Search extension for Chrome and some next-gen LiveShare demos on WebGL (which you can see a short video of below).

    Also check out our CTO and co-founder, Austin Shoemaker’s blog post on the Google Code blog about building visual search for Chrome with next-generation web APIs.

  • No Comments
  • Photo sharing, LiveShare and The Future of Communication

    As a company, we think we know a thing or two about visual communications. Cooliris introduced better ways to browse media with products like Coolpreviews, Cooliris (formerly known as Piclens) for the desktop, and more recently the Android Gallery (the media app for all Android devices – shipped over 300k daily), Discover for iPad (#1 across the app store for multiple weeks across multiple countries) and now Decks. With over 40M downloads, 25M monthly page views and more than 8M monthly active users, we think we’ve done well and will continue to push the edge on media browsing.

    So where do we go from here – what is the future of communication?

    What we are seeing is this:
    In browsing through photos, videos and other rich media, our user base wants to share that content, but they also want control over how they share it – both at a broadcast level (all friends on Facebook or all followers on Twitter) and narrowcast level (targeted people that would care specifically about the content shared with them). Enter LiveShare.

    LiveShare enables conversation around context. Users can communicate and share with content they have created (using the camera or text on their phone or laptops), or chat about existing content (using the public section in LiveShare that brings in relevant, interesting content based on location and global interests around the world).

    LiveShare does two subtle things differently from existing services (a) it does not assume context – the service doesn’t presume that you want to broadcast or narrowcast, it enables you to do either one based on what’s important to you as a user; and (b) it doesn’t draw a line between content and communication. Navigating to Parishilton.com and reading an article or seeing pictures there is akin to reading an email or seeing photos received from a friend. In either case, users want to be able to consume relevant content and communicate around that.

    The four contexts around which LiveShare is looking to enable communication and sharing are space, time, interests, and relationships (internally referred to as the STIR framework). Instead of silo-ing the users or having them switch apps and services every time (which gets expensive b/c each service requires learning different interfaces, comes with a different social graph etc.), users can communicate flexibly around what’s important to them at the moment. Some of the use cases we wanted to highlight include:

    Bachelor(ette) party – Definitely not a broadcast scenario (unless you’re Charlie Sheen). If you go out with five friends, of whom you know three, LiveShare allows you to set up a quick group based on the fact that all the users are at the same time, space, and have a temporal (elastic) relationship in context of the party. Once you add the three friends you know, they can add the other two (much like a real world scenario) and you immediately have a group that you are in full control of. You don’t have to be life-long friends or followers of any of these folks unless you want to.

    U2 concert – A thousand fans rocking to awesome music. Being able to connect with fans around you (all fans in the same space and time with a shared interest and a temporary relationship) is easy through LiveShare. Simply navigate to public, find the concert/event/topic you’re looking for and start posting photos. LiveShare automatically pools all the photos together based on the shared context. Again, you don’t have to be life-long friends or followers of any of these folks unless you want to.

    There are several more scenarios that we’ve begun to see cropping up in this nascent space and service and we will continue to push the boundaries of enabling contextual conversations easily.

    More to come – stay tuned.

  • Comments
  • Who said Cricket was boring?!? Not here at Cooliris!

    For the past month or so Cooliris has transformed into a cricket crazy office space. Although we are a couple continents and a few time zones apart, many of us here are at work are huge Indian cricket fans- to put it mildly. With the Cricket World Cup in session, we have been spreading our message of how incredible cricket is to anyone who’ll listen, even to those who may find cricket um dull. We stepped up our trash-talking, checked on stats/injury reports every 5 minutes, started impromptu games of cricket in our hallway, prepped ourselves mentally and physically for this momentous occasion!

    For the quarter-final match we played Australia, the team that has dominated world cricket for more than a decade. We attempted to watch the game on numerous different links and websites and we finally got one to work. We had to stay up till 2am for the live feed to begin and then remain awake for the duration of the match. Since cricket can be a 9 hour game, this was no easy feat. By the time the India-Australia match was nearing its nerve-wracking conclusion it was around 10am and everyone else at work had begun to file in. I am proud to report we definitely managed to convert a couple of our less enthusiastic co-workers into cricket fans. India pulled through that match with a close victory. In-fact a couple of our coworkers Leslie and Mayank who pulled the all-nighter, had to interview with Robert Scoble that afternoon; which they still did marvelously well! (Watch them here in Scoble’s piece- Cooliris: in-depth tour of innovative Silicon Valley company)

    Next up was fierce political rivals Pakistan and then in the finals we played our neighbors Sri Lanka. For the semis and finals a similar pattern repeated itself- we once again huddled together around a television at 2am and cheered and chanted and laughed and cried our way to two more too-close-for-comfort victories and finally the coveted World Championship. Not to sound over dramatic, but we may now be the happiest work place in the country!!

    Winning Moment- I promise we were more excited than we seem!!

    Winning Moment!! I promise we were more excited than we appear here!

    To review World Cup action and relive the best moments visit ESPN cricinfo’s World Cup page. Also check out exclusive behind the scenes fan footage of the World Cup in this exciting LiveShare stream!!

  • No Comments
  • Previous posts »