Microsoft SwiftKey

Building an API that linked Microsoft SwiftKey with individual social media and email accounts.

Screen showing Microsoft SwiftKey website

At a glance

  • Tech Stack

  • JRuby (Ruby on Rails)
  • Facebook API
  • Google Gmail API
  • Twitter API
  • Core Services

  • AI & Machine Learning integration
  • Mobile App Development
  • API Integration
  • Additional Services

  • Platform Engineering
  • Performance Optimization & Scaling
  • Seamless Cultural & Operational Integration

Bit Zesty did a great job on a project for us at SwiftKey, and other people I know who've worked with them rate them very highly.

Paul Butcher, Chief Software Architect of SwiftKey


SwiftKey is a sophisticated keyboard app for mobile devices that was acquired by Microsoft for $250 million USD. It learns the style and content of each user’s writing so it can predict the next word or phrase they want to type.

The keyboard becomes more effective over time as it learns more about the user’s writing.


It was with word and phrase prediction that the SwiftKey team saw an opportunity for innovation. If they could analyse users’ existing text from other services as soon as they use the app, it could start making effective, personalised predictions immediately. This would require the collection and analysis of user data from Twitter, Facebook and Gmail’s APIs.

Although SwiftKey has a large in-house mobile development team, they felt our experience with API integration made us the right people to develop this product.


We built a backend web application using Ruby on Rails to deliver a service that enables the SwiftKey app to access users’ Facebook, Twitter and Gmail messages with their permission. This data is then collected and put through the SwiftKey personalised prediction engine and sent to the user’s phone.

JRuby: adapting technologies to suit the client

SwiftKey use Java as their main language for their mobile app development, but it is less suitable for web applications. So they were happy to engage our team of Ruby on Rails developers as it is more suitable technology for web application.

However, we still needed to use SwiftKey’s existing Java libraries for text analysis. Fortunately this is possible by using JRuby – an implementation of Ruby on the Java Virtual Machine (JVM). By using JRuby we were able to get the best of both worlds – integrating with the existing code, while also utilising the functionality and productivity the Ruby on Rails framework provides.

Using JRuby also made deploying the application into the live environment simpler for SwiftKey, as they already had existing Java services in production and the JRuby application we developed could be deployed using their existing tools and onto the same servers as if it was a Java service.

Agile and Test Driven Development (TDD) process

SwiftKey needed the new social media feature ready for their next app update. Although timescales were tight, we were able to deliver on time following our agile development process. We were able to save time by agreeing the API specification with SwiftKey’s mobile developers in advance.

By following a Test Driven Development (TDD) process, we delivered high quality code that met the specification.

Also, we had to ensure that our backend API could serve SwiftKey’s millions of users. To do this we ran multiple rigorous performance tests, which helped us identify any potential bottlenecks and improve the scalability and speed of the application before launching.


We built the new functionality in time for the public launch. The new features earned SwiftKey glowing reviews and helped the app win various awards. Not only that but the app is estimated to have saved its users two trillion keystrokes.

Download our services guide & pricing

Find out more about Bit Zesty's services, including:

  • Our approach
  • Services we provide
  • Indicative pricing

Download guide

Do you need help with your application?

Unsure if we can help and do so within your budget? Keen to discuss our experience, processes and availability?

Get in touch with our client services team via phone, email or send us a message via the form.

Send us a message

  • This field is for validation purposes and should be left unchanged.