In April 2019, Microsoft started a series of Android-related blog posts on Medium called Android@Microsoft written by Microsoft engineers. The second entry to the post, called Hello, world! has provided more details on how the Redmond-based company is embracing the Android platform.
According to Cesar Valiente, a Berlin-based senior Android software engineer for Microsoft, the company has more than 150 apps published by different divisions in the Google Play Store, and 70 of these apps are in active development and receive frequent updates. Microsoft spans these divisions across the world, including Canada (located in downtown Vancouver), China, Czech Republic, Germany, India, Israel, Norway, the United Kingdom and the United States.
Every Android division handles things differently. They can choose their methodologies, processes and technology. Valiente brought up an example where “some teams could work by following Agile methodologies” while others could “follow a more incubation-style approach.”
Programming languages are also flexible to the teams according to Valiente. Some applications written by Microsoft use only Java. However, more and more people within Microsoft began to use Kotlin, a new programming language endorsed by Google for Android development. Teams behind Sticky Notes, for example, embraced the programming language before Google’s official support in 2017.
The team uses C++ for code sharing. Microsoft’s flagship applications such as Word, Excel and PowerPoint rely on C++ for development, and the team can easily share their core logic with different applications and platforms.
Microsoft says they are continually learning new techniques from the Android community across the world.
As for software architecture and testings, Valiente points out that other than using Espresso, Appium and Cucumber for UI testing, the team also develops its own set of custom frameworks to run. Microsoft is in constant talk with Google if it discovers an issue.
For software hosting, the teams at Microsoft use both GitHub and Azure DevOps. Internal distributions rely on App Center, part of the Visual Studio. Microsoft embraces Free/Libre/Open Source Software (FLOSS) but urged all developers to respect intellectual properties. The company has a tool that scans the source code for any legal/license issues.
All of Microsoft’s applications on Android use either Microsoft account (MSA) or AAD (Azure Active Directory) for authentication. Some productivity apps such as Outlook and Office 365 apps allow multiple account authentication.
For every division within the Android team to collaborate, Microsoft will run a couple of conferences around the world where developers can gather together for talks and workshops.
Microsoft has gradually embraced the Android platform after admitting that the Windows Phone operating system died in 2017. The company developed Microsoft Launcher to replace the Google experience on an Android smartphone.
The company’s co-founder Bill Gates said in an interview in 2017 that he uses a Samsung smartphone that is loaded with Microsoft applications.