Pages

Showing posts with label building. Show all posts
Showing posts with label building. Show all posts

Wednesday, March 11, 2015

Building Integrated Apps for the Mobile Workforce

The Google Apps Marketplace is a storefront for Google Apps customers to discover, purchase, deploy and manage web applications which are integrated with Google Apps. These applications are typically used from desktops and laptops, but many vendors on the Apps Marketplace have also optimized the experience for their users who are on-the-go. There are several different strategies for enabling a mobile workforce, and each requires a different approach to authentication and authorization.

Lightweight: Synchronize Contacts, Calendars and Docs with Google Apps

Google has written applications and synchronization clients to help ensure that the core Google Apps data is available to users on their mobile devices, whether they’re on their mobile phones or tablets. By storing contacts, dates and documents from your application in Google Apps using the application APIs, you can leverage these features to provide a mobile view for your users.

Since you’re only accessing the application APIs on your web application’s server, and the user has already linked up their mobile device to their Google account, there are no special techniques for authentication and authorization when using this lightweight approach.

Standards-based: Build a mobile-optimized web application

With the latest advances in HTML5 web technologies such as offline and local storage, it’s possible to build mobile interfaces for business apps which are full-featured and accessible to users on many devices. The primary goal in building the mobile web application is to optimize the user experience for different input devices, form factors and limitations in network availability and bandwidth.

Because the application is in a web browser, most of the changes to implement are in the frontend-- HTML, JavaScript and CSS. User authentication and data authorization continue to use the same OpenID and OAuth technologies as are used for the desktop/laptop version of the application.

Device-custom: Build native companion apps for mobile devices

Does your application need access to hardware-specific APIs which are not available in a web browser, or do you feel a great user experience can only be achieved using native code? Several Apps Marketplace vendors have built native applications for popular mobile platforms like Android and iOS. Although it takes considerably more effort to build multiple native applications to cover the major platforms, these vendors can also take advantage of the additional distribution channels offered by mobile stores.

Authentication and authorization are often challenging for developers building native mobile applications because they cannot simply ask users for a password if their app supports single-sign on to Google with OpenID. We recently published an article describing a technique using an embedded webview for accomplishing OpenID authentication in mobile apps. This article includes references to sample code for Android and iOS.




Many Project Management applications, like Manymoon, store important dates on Google Calendar. These dates are then available on mobile devices.

GQueues has a HTML5 mobile app. Their founder has written about why they used this technique.

Native applications, such as the OpenID Sample Store displayed, can use an embedded webview to authenticate users.




Ryan Boyd   profile | twitter | events

Ryan is a Developer Advocate on the Google Apps Marketplace team, helping businesses build applications integrated into Google Apps. Wearing both engineering and business development hats, youll find Ryan writing code and helping businesses get to market with integrated features.


Want to weigh in on this topic? Discuss on Buzz
Read more »

Monday, March 9, 2015

Building SaaSy Voice a test application for the Apps Marketplace

As we build out a new platform and APIs for developers, we find it helpful to create our own applications to try it out. It helps us validate and influence the design based on direct experience using the APIs. In the case of the Google Apps Marketplace, we needed a real application to integrate with Google Apps. We decided to build SaaSy Voice -- a web-application for handling the phone system for small and medium businesses. For the call features we used Twilio, a cloud based voice communications provider.

Why did we decide to build SaaSy Voice? Voice applications are fun and allowed us to experiment not only with our APIs, but with Twilio’s voice APIs. Learning new APIs and creatively mashing them up with Google technologies is one of the many reasons we love our jobs in Developer Relations.

The first step in launching our application on the Google Apps Marketplace was to build the core business logic. This was simple. We wanted to allow companies to buy a new phone number for their business, assign extensions to their employees, and allow for voicemail or call forwarding to existing numbers. We wanted simple management functionality for administrators to manage extensions and view call activity for their company. In just a few days we built the core application in PHP with a MySQL database and spiced up the design a bit by using free CSS templates.

The next, and very important step, for our application was to integrate with Google Apps. We started with single sign-on integration using OpenID. Allowing users to quickly access their voicemail using their existing Google Apps account is a great user experience and a common feature of apps in the Google Apps Marketplace. We used Janrain’s PHP OpenID library with the Google Apps discovery extensions to integrate OpenID very quickly.

Our integration with Google Apps wasn’t complete with just single sign-on though, as we were aware that many other integrations with Google Apps could improve application provisioning for administrators and day-to-day effectiveness for end-users.

Here was our initial list of most helpful integrations:

Make the signup process easier. Instead of manually entering employee information by hand or implementing a cumbersome bulk import process, the application simply connects to Google Apps and automatically retrieves the list of users in the domain. Administrators can easily choose which of their users to assign extensions to. (Provisioning API)

Integrate with a user’s existing contact data to allow employees to see who called them. Showing rich contact information inline with voice mails makes it easier to reply to messages by phone or e-mail. (Contacts API)

Export voicemail logs and analyze them in a form business users are comfortable with: the spreadsheet. The application automatically creates spreadsheets in Google Docs where logs can be easily filtered, sorted and visualized. (Documents List API)


Integrate voicemail activity into Gmail. Business users often spend much of their day in their e-mail inbox. Instead of requiring users to open a new window to review voicemails, the gadget integrates a simple list view of recent voicemails and allows them to play messages without leaving their e-mail. (Gmail Sidebar Gadgets)


Integrating with a business’ contacts, docs, e-mail and company directory makes the application much easier for both administrators and employees, saving valuable time. Of course, there are plenty of other ways to improve the efficiency of SaaSy Voice users that we have yet to develop.

To name a few:
  • E-mail voicemail messages to users as they arrive. Using Gmail Contextual Gadgets, we can embed a voicemail player right below the e-mail to allow a user to listen to their message right away.
  • Create a Gmail Contextual Gadget that gives a one-click option for calling the user who e-mailed you. When you click the ‘call’ button, the sender is called on their phone number stored in the user contacts and you’re connected immediately using your company phone number.
Since SaaSy Voice provisions a new phone number for each company using the service, it costs money. We don’t want to go poor when lots of anxious developers try it out and also don’t want to start a new business right now, so it’s not currently published in the Apps Marketplace. However, there’s an application similar to SaaSy Voice which recently launched in the Apps Marketplace. It’s called Ginza Phone and their developers have thought of a few other great Google Apps integrations like using the Google Calendar API to look up a user’s free/busy schedule to determine how to best route calls.

These are just a few of examples of how integration can improve the productivity of users, and the possibilities are endless. We’ve heard from customers and vendors alike that Google Apps users love integrated applications. We look forward to hearing about the great integrations you build -- let us know what you’re doing via Tweeting/Buzzing with #AppsIntegrations.

You can learn more about how we built SaaSy Voice, you may wish to watch our Google I/O session on Integrating your app with the Google Apps Marketplace.

Read more »