Posted:


Editor’s note: Be forewarned that the following post has much more technical mumbo-jumbo than our normal fare, taking you behind-the-scenes of the development of Inbox. So if you’re a practicing engineer, an aspiring hacker, or just plain interested in knowing how the sausage is made (mmmm sausage), read on!

Gmail was born over 10 years ago, entering a world dominated by flip phones, trucker hats, and based on today’s standards, sluggish web applications. Every click on a webpage meant a multi-second wait and a full page refresh. So when we developed Gmail, we took a different approach—building a new genre of web app that ran in the web browser and relied on rich javascript logic and a local data model. This allowed many of those clicks to be handled right within the browser without waiting for the server at all. Fast forward 10 years and this architecture is the norm, having been adopted by most websites and supported by a plethora of frameworks and tools (e.g. AngularJS, Meteor, Backbone, Ember, NodeJs).

But in those same 10 years, a lot has changed. The capabilities and diversity of devices has exploded. Users expect to be able to move from a laptop to a phone and have their apps work flawlessly. As a result, developers are facing a new challenge: how to build a high-quality app across platforms, such as Android, the web, and iOS, without sacrificing quality or execution velocity. As a developer, maybe you’ve asked yourself, do you rewrite your app three times to optimize it for each platform, wringing out every last bit of performance and polish? Or do you aim to get the app to market sooner by building a web-based “hybrid” app that leverages the same technologies across platforms (but potentially sacrifices integration and user experience)?

Facing the challenge
Those were the questions that weighed heavily on us when we first started building Inbox. We’d been working on Gmail for years and knew our users would expect whatever we built to be as fast and polished as Gmail is today right out of the gate. And that led us to the decision to build three separate native apps to fit seamlessly into each of our respective target platforms: Android (via Java+Android SDK), web (via JavaScript+DOM/CSS), and iOS (via Objective-C+UIKit).

Of course, there are a number of elements of Inbox that are shared across the three platforms: code for managing network communication, caching objects, local persistent storage, managing user edits both locally and remotely, and supporting it all while offline. This logic must be faithfully and correctly implemented and kept up to date on all three clients. Rewriting it three times in three different languages would soak up substantial engineering resources and slow down how quickly we make improvements to Inbox.

Cutting the Gordian Knot
In order to address this challenge we took a novel approach in which data model and application logic (conceptually the “Model” in “Model-View-Controller”) is written once in Java. This data model abstracts concepts unique to Inbox like Conversations, Reminders, Contacts, and Labels, and provides a fully observable data model for convenient binding to the user interface (UI) layer. We built the Inbox app for Android directly on top of this Java data model.

The plot thickens
On the web, the story gets more interesting. We use the open sourced GWT cross compiler to translate the Java data model into JavaScript, which we build on for Inbox for the web. In recent years, GWT has made great strides in being able to output translated code which is conveniently and performantly accessed from native Javascript. For example the Reminder.snooze() method provided by the Java data model is exposed in exactly the same way in JavaScript.

For iOS we developed the now open source J2ObjC cross compiler to translate our Java data model to Objective-C, and again we get a natural API on which to build our native iOS Inbox app (complete with -[Reminder snooze]). The astute reader may wonder how we deal with the impedance mismatch when translating from a garbage collected language (Java) to a reference counted one (Objective-C). Generally, J2ObjC relies on Objective-C autorelease pools, so objects normally garbage-collected are instead freed when a pool drains. One problem with this approach is reference cycles; in places that cycles exist in our Java data model, we use a Java annotation to identify the @WeakReference. When transpiled, the corresponding property in Objective-C will have the __weak modifier, thus breaking the retain cycle. In practice we’ve found this to be a relatively minor problem and we have automation tests that flag the rare cases of new cycles creeping into the object model.

Conclusion
If you’re building an application that (a) has significant UI independent client logic, (b) is targeting multiple platforms, (c) must not compromise on user experience and polish, you now have a new option to consider: a shared, cross compiled data model powering fully native application UIs. This has worked well for Inbox, where we are sharing roughly two-thirds of our client code, and have delivered a product with the same functionality and ship date, without having to rewrite the entire thing three times. Want to learn more about the technologies that power Inbox? Check out http://gwtproject.org and http://j2objc.org.

Posted:


One of the first things you'll notice using Inbox is that it feels less cluttered and overwhelming with messages grouped into Bundles.
Bundles, illustrated by Manu Cornet, Software Engineer on Inbox
Bundles expand on Gmail's categories so you can stay organized with less effort and read the most important messages—like those from friends and family—first. You'll also experience less interruptions since bundled messages don't create a notification on your phone by default.
With Bundles, promotions are neatly organized, purchases are in one place, and all your trip information is together all so you can deal with related messages all at once. For example, you can open up a bundle, quickly pin the messages you want to keep in your inbox and sweep away the rest.
Of course that's not the only way you're in control. You can also teach Bundles to adapt to the way you work by choosing which messages you’d like to see grouped together and when they appear in your inbox: as they arrive, once a day, once a week or even skip the inbox entirely.
Try setting your Promos and Social bundles to once a day and see if that helps you focus on other messages first.

Bundles work together with Highlights to give you just the information you need at a glance so stay tuned for a closer look at Highlights next week. If you aren't using Inbox by Gmail yet, look for an invite from a friend or email us at inbox@google.com to get an invitation as soon as more become available.

Posted:


Today, the Gmail app for Android is getting updated with a more modern style, sleeker transitions, and a few other handy improvements.

As part of the new design, there’s now a convenient reply button at the bottom of every message, making it quick and easy to continue a conversation when you’re on the go. And if you access the app on your Android tablet, you’ll notice it’s easier to switch between accounts and the different inbox categories.
Lastly, we know some of you have email addresses that aren’t Gmail (it’s okay to admit it). The updated Gmail app now supports all email providers, which means you can now set up a separate inbox for, say, your Yahoo Mail or Outlook.com addresses using POP/IMAP.
The updated Gmail app will support all Android 4.0+ devices, so look for it in Google Play over the next few days and let us know what you think!

Posted:


Today we’re introducing a brand new Google Calendar app. It’s designed to be a helpful assistant, so you can spend less time managing your day, and more time enjoying it.

It takes a lot of work to stay on top of your schedule, after all. You have to manually enter that hotel or dinner reservation, then update it if your plans change. You have to hunt around for addresses and phone numbers, then add them to your events. And if you’re on a mobile device, you might just give up on these kinds of tasks entirely.

Calendars (like email) should do better—especially on phones and tablets—so we set out to build one that’s always at your service. Here are just some of the ways the new Calendar app can help.


Events from Gmail: now emails can turn into Calendar events automatically
Every time you book a flight, buy concert tickets, or make a hotel reservation, odds are you get an email with dates, times and other important details. But who has the time (or patience) to copy and paste all this into their calendar? In the new Calendar app these kinds of emails become events automatically, complete with things like flight numbers and check-in times. They’ll even stay updated in real time if your flight's delayed, or you receive another email update.
Assists: suggestions that save you time
Of course, not all event info arrives in your inbox. You often have to piece together phone numbers, addresses and attendees from lots of different sources, then add them to your calendar manually. With Assists, Calendar can suggest titles, people and places as you type, as well as adapt to your preferences over time. For example, if you often go running with Peter in Central Park, Calendar can quickly suggest that entire event when you type ‘r-u-n.’
Schedule View: easy to scan and lovely to look at
Your calendar is more than just a list of dates and times—it’s your life! So Calendar’s new Schedule view includes photos and maps of the places you’re going, cityscapes of travel destinations, and illustrations of everyday events like dinner, drinks and yoga. These images will bring a little extra beauty to your day, and make it easy to see what’s going on at a glance—perfect for when you’re checking in from your phone or tablet.
The new Google Calendar will work on all Android 4.1+ devices. It’s available today on all devices running Android 5.0 Lollipop, and you’ll be able to download the update from Google Play in the coming weeks. (And yes, we’re also working on a version for iPhone!) Learn more on our website.

Posted:


Cross-posted on the Official Google Blog


Today, we’re introducing something new. It’s called Inbox. Years in the making, Inbox is by the same people who brought you Gmail, but it’s not Gmail: it’s a completely different type of inbox, designed to focus on what really matters.

Email started simply as a way to send digital notes around the office. But fast-forward 30 years and with just the phone in your pocket, you can use email to contact virtually anyone in the world…from your best friend to the owner of that bagel shop you discovered last week.

With this evolution comes new challenges: we get more email now than ever, important information is buried inside messages, and our most important tasks can slip through the cracks—especially when we’re working on our phones. For many of us, dealing with email has become a daily chore that distracts from what we really need to do—rather than helping us get those things done.

If this all sounds familiar, then Inbox is for you. Or more accurately, Inbox works for you. Here are some of the ways Inbox is at your service:


Bundles: stay organized automatically
Inbox expands upon the categories we introduced in Gmail last year, making it easy to deal with similar types of mail all at once. For example, all your purchase receipts or bank statements are neatly grouped together so that you can quickly review and then swipe them out of the way. You can even teach Inbox to adapt to the way you work by choosing which emails you’d like to see grouped together.

Highlights: the important info at a glance
Inbox highlights the key information from important messages, such as flight itineraries, event information, and photos and documents emailed to you by friends and family. Inbox will even display useful information from the web that wasn’t in the original email, such as the real-time status of your flights and package deliveries. Highlights and Bundles work together to give you just the information you need at a glance.
Reminders, Assists, and Snooze: your to-do’s on your own terms
Inbox makes it easy to focus on your priorities by letting you add your own Reminders, from picking up the dry cleaning to giving your parents a call. No matter what you need to remember, your inbox becomes a centralized place to keep track of the things you need to get back to.
A sampling of Assists
And speaking of to-do’s, Inbox helps you cross those off your list by providing Assists—handy pieces of information you may need to get the job done. For example, if you write a Reminder to call the hardware store, Inbox will supply the store’s phone number and tell you if it's open. Assists work for your email, too. If you make a restaurant reservation online, Inbox adds a map to your confirmation email. Book a flight online, and Inbox gives a link to check-in.

Of course, not everything needs to be done right now. Whether you’re in an inconvenient place or simply need to focus on something else first, Inbox lets you Snooze away emails and Reminders. You can set them to come back at another time or when you get to a specific location, like your home or your office.

Get started with Inbox
Starting today, we’re sending out the first round of invitations to give Inbox a try, and each new user will be able to invite their friends. If Inbox can’t arrive soon enough for you, you can email us at inbox@google.com to get an invitation as soon as more become available.

When you start using Inbox, you’ll quickly see that it doesn’t feel the same as Gmail—and that’s the point. Gmail’s still there for you, but Inbox is something new. It’s a better way to get back to what matters, and we can’t wait to share it with you.

Posted:


Cross-posted on the Official Google Blog


Whether your email address is firstname.lastname@ or something more expressive like corgicrazy@, an email address says something about who you are. But from the start, email addresses have always required you to use non-accented Latin characters when signing up. Less than half of the world’s population has a mother tongue that uses the Latin alphabet. And even fewer people use only the letters A-Z. So if your name (or that of your favorite pet) contains accented characters (like “José Ramón”) or is written in another script like Chinese or Devanagari, your email address options are limited.

But all that could change. In 2012, an organization called the Internet Engineering Task Force (IETF) created a new email standard that supports addresses with non-Latin and accented Latin characters (e.g. 武@メール.グーグル). In order for this standard to become a reality, every email provider and every website that asks you for your email address must adopt it. That’s obviously a tough hill to climb. The technology is there, but someone has to take the first step.
Today we're ready to be that someone. Starting now, Gmail (and shortly, Calendar) will recognize addresses that contain accented or non-Latin characters. This means Gmail users can send emails to, and receive emails from, people who have these characters in their email addresses. Of course, this is just a first step and there’s still a ways to go. In the future, we want to make it possible for you to use them to create Gmail accounts.

Last month, we announced the addition of 13 new languages in Gmail. Language should never be a barrier when it comes to connecting with others and with this step forward, truly global email is now even closer to becoming a reality.

Posted:


Important stuff doesn't always happen when you’re conveniently sitting at your desk. Maybe you're out to dinner when your boss tells you that she needs the latest project proposal ASAP, or your daughter calls you on your commute home to ask you to proofread her college essay (that’s of course due that night!). While we can't make your life more predictable, today's update to the Gmail iOS app, along with earlier updates to the Gmail Android app, makes it easier to get stuff done on-the-go.

Just like with Gmail on the web, you can now insert files from Google Drive directly into an email on your phone or tablet.
The apps will even tell you if your file isn’t shared with the person you’re sending it to so you can change the sharing settings before you send it. And to help you store all your files in a single place, if someone sends you an email attachment, you can save it directly to Drive with one tap.
On iOS, you can now also change your profile picture right from your Settings. So the next time you take that perfect selfie, you can make it your profile picture right away, all while out with friends. Lastly, if you have multiple Gmail accounts, you can choose which signed-in accounts you want visible in the app.

You can give these features a try by downloading the updated Gmail iOS app from the App Store, and if you’re using an Android phone or tablet, you can get the latest version of the Gmail Android app from the Google Play Store.

Posted:


Email is a universal way to communicate. No matter where you are, you can reach anyone else in the world with the press of a button. We take it for granted now, but it's so much easier to keep in touch with people than it was in the old days of pens, paper, and stamps. But there’s still an important barrier we need to overcome to make email truly universal: language. Gmail is already available in 58 languages, and today we’re bringing that total to 71—covering 94 percent of the world’s Internet population and bringing us closer to our goal of making sure that, no matter what language you write in, you can use it in Gmail.

These 13 new languages are joining the Gmail family: Afrikaans, Armenian, Azerbaijani (Azeri), Chinese (Hong Kong), French (Canada), Galician, Georgian, Khmer, Lao, Mongolian, Nepali, Sinhala, and Zulu.

As any native speaker knows, each language has its own nuances, so we worked closely with linguists to make sure the tone and style are just right. For example, both Hong Kong and Taiwan use traditional Chinese characters. However, you’ll notice that Gmail’s new Chinese (Hong Kong) language uses 收件箱 for “Inbox” instead of 收件匣, which is a word more common in Taiwan.

All 13 languages are rolling out today in Gmail on the web and feature phone browsers. Try out any one of them by going to your Settings. It’s much easier than finding the right postage.

Posted:


Unless you’re a budding Ansel Adams, odds are you take most of your photos using your phone. And whether it’s photos of your hiking trip or a night out, sending photos to friends and family just got easier. Starting today, you can save time and insert your Auto Backup photos from your phone into Gmail messages on the web using the new Insert Photo button.

When you click the button, you'll instantly access all the photos that are backed up from your mobile devices, starting with the most recent.
If you upload and organize your photos into albums on Google Photos, you can also share entire albums. Plus, you can now resize images while composing messages by dragging on any corner to make your snapshot picture perfect.
These new features will be rolling out today in Gmail on the web. If you haven’t already, turn on Auto Backup so you can easily include photos from your latest adventures in emails to family and friends.

Posted:


Shelfies are so yesterday, so we’re saying goodbye to Gmail Shelfie. That said, many of you told us that you loved the concepts of themes and sharing together, so we worked through the night to update this feature into something even better. Today, we’re excited to announce that you can now share any custom theme—your favorite vacation spot, pet, family photo or even, yes, a selfie—with friends, loved ones or anyone.

If you’re using a custom theme that you want shared, simply click on “Share your theme” under Themes in Settings.
And if you opted into Gmail's top trending Shelfies theme, then you can either update to your own custom theme or follow the Gmail Google+ page where we’ll be sharing some of our favorites on “Theme Thursdays.”