{"id":1152,"date":"2020-12-29T12:02:06","date_gmt":"2020-12-29T20:02:06","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/surface-duo\/?p=1152"},"modified":"2020-12-29T12:02:06","modified_gmt":"2020-12-29T20:02:06","slug":"2020-developer-year-in-review","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/surface-duo\/2020-developer-year-in-review\/","title":{"rendered":"Microsoft Surface Duo developer year in review"},"content":{"rendered":"<p>\n  Hello dual-screen developers,\n<\/p>\n<p>\n  It was over a year ago \u2013 2nd October 2019 \u2013 that Panos introduced the Surface Duo to the world. In the months since, we have shared a number of milestones with you leading up to the product launch (and beyond):\n<\/p>\n<table>\n<tr>\n<td>\n<p>\n  January 31<sup>st<\/sup>, 2020\n<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/the-surface-duo-sdk-preview-for-developers-is-available\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">First preview of the Surface Duo SDK<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  February 13<sup>th<\/sup>, 2020\n<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/dev-day-recap-sdk-update\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Microsoft 365 Developer Day<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  March 26<sup>th<\/sup>, 2020\n<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/introducing-dual-screen-layouts-android\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">New dual-screen controls added to the SDK<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  May 2020\n<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/news.microsoft.com\/build2020\/\">Microsoft Build<\/a> \n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  August 12<sup>th<\/sup>, 2020\n<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/microsoft-surface-duo-is-here\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Surface Duo officially announced and pre-orders began<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  September 10<sup>th<\/sup>, 2020\n<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/microsoft-surface-duo-is-released\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Surface Duo ships!<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  September 22<sup>nd<\/sup>, 2020\n<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/droidcon-webinar-recap\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Information session and workshops at droidcon 2020<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p>\n  We\u2019re incredibly excited to see the Surface Duo released, and thankful for the support we\u2019ve seen from app developers. \n<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/12\/hero-devices.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/12\/hero-devices.png\" alt=\"Surface Duo\" width=\"1200\" height=\"549\" class=\"alignnone size-full wp-image-1156\" srcset=\"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/12\/hero-devices.png 1200w, https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/12\/hero-devices-300x137.png 300w, https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/12\/hero-devices-1024x468.png 1024w, https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/12\/hero-devices-768x351.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<h2>2020 blog post breakdown<\/h2>\n<p>\n  Throughout the year, we\u2019ve shared information to help enhance your apps for dual-screen support, no matter what developer tools and languages you prefer. Here are some of the highlights:\n<\/p>\n<table>\n<tr>\n<td>\n<p>\n  Kotlin and Java\n<\/p>\n<\/td>\n<td>\n<p>\n  April 2<sup>nd &#8211;<\/sup> <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/orientation-spanning-and-insets\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Orientation, Spanning, and Insets<\/a>\n<\/p>\n<p>\n  April 20<sup>th<\/sup> &#8211; <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/pen-events-on-the-surface-duo\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Handling pen events<\/a> \n<\/p>\n<p>\n  July 2<sup>nd<\/sup> \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/hinge-angle-on-surface-duo\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Working with the hinge angle<\/a> \n<\/p>\n<p>\n  July 30<sup>th<\/sup> \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/new-dual-screen-controls-preview\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Dual-screen controls update<\/a>\n<\/p>\n<p>\n  August 27<sup>th<\/sup> \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/noteworthy-new-app-sample-twonote\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">TwoNote sample app<\/a>\n<\/p>\n<p>\n  September 1<sup>st<\/sup> \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/jetpack-compose-dual-screen-sample\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Jetpack Compose<\/a>\n<\/p>\n<p>\n  October 29<sup>th<\/sup> \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/dual-screen-camera-sample\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Camera sample<\/a>\n<\/p>\n<p>\n  November 19<sup>th<\/sup> \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/fluent-ui-android-dual-screen\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Fluent UI controls enhanced for Surface Duo<\/a>\n<\/p>\n<p>December 10<sup>th<\/sup> \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/dual-screen-jetpack-window-manager-update\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Dual-screen control library beta release<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  Web\n<\/p>\n<\/td>\n<td>\n<p>\n  11<sup>th<\/sup> June \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/dual-screen-web-experiences-preview\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Polyfills to experiment with dual-screen web experiences<\/a>\n<\/p>\n<p>\n  3<sup>rd<\/sup> September \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/build-and-test-dual-screen-web-apps\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Dual-screen CSS and JavaScript<\/a>\n<\/p>\n<p>\n  24<sup>th<\/sup> September \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/dual-screen-website-edge-origin-trials\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Origin trials<\/a> \n<\/p>\n<p>\n  15<sup>th<\/sup> October \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/dual-screen-web-game-foldship\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Dual-screen FoldShip web game<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  Xamarin\n<\/p>\n<\/td>\n<td>\n<p>\n  19<sup>th<\/sup> March \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/bring-your-xamarin-apps-to-surface-duo\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Build dual-screen apps with Xamarin<\/a>\n<\/p>\n<p>\n  20<sup>th<\/sup> May \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/surface-duo-at-microsoft-build\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Bring apps to Surface Duo with Xamarin<\/a>\n<\/p>\n<p>\n  20<sup>th<\/sup> August \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/xamarin-developer-training-on-microsoft-learn\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Microsoft Learn Xamarin module<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  Flutter\n<\/p>\n<\/td>\n<td>\n<p>\n  14<sup>th<\/sup> May \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/get-started-with-flutter-on-surface-duo\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Get started with Flutter and Surface Duo<\/a>\n<\/p>\n<p>\n  18<sup>th<\/sup> June \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/lighting-up-a-flutter-application-on-microsoft-surface-duo\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Enhancing Flutter for dual-screens<\/a>\n<\/p>\n<p>\n  1<sup>st<\/sup> October \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/adding-microsoft-surface-duo-support-to-the-flokk-application\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Flutter Flokk port to Surface Duo<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  React Native\n<\/p>\n<\/td>\n<td>\n<p>\n  30<sup>th<\/sup> April \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/build-react-native-apps-for-microsoft-surface-duo\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">React Native<\/a>\n<\/p>\n<p>\n  8<sup>th<\/sup> September \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/new-react-native-dual-screen-navigation-module\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Dual-screen navigation with React Native<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  Unity\n<\/p>\n<\/td>\n<td>\n<p>\n  16<sup>th<\/sup> April \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/dual-screen-games-with-unity-for-android\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Dual-screen games with Unity<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  Uno Platform\n<\/p>\n<\/td>\n<td>\n<p>\n  29<sup>th<\/sup> September \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/get-started-uno-platform\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Build a pixel-perfect Uno app<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>\n  Hybrid\n<\/p>\n<\/td>\n<td>\n<p>\n  17<sup>th<\/sup> December \u2013 <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/dual-screen-cordova-plugin\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Cordova plugin demo<\/a>\n<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p>\n  The Surface Duo Android emulator was updated throughout the year, including the addition of <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/updated-emulator-posture-support\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">3D posture simulation<\/a> in the October release.\n<\/p>\n<p>\n  We also shared case studies from <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/enhance-onedrive-dual-screen\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">OneDrive<\/a> and <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/enhance-microsoft-news-dual-screen\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">Microsoft News<\/a>, as well as the <a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/sketch-360\/?WT.mc_id=blog-surfaceduoblog-HakonStrande\">launch of Sketch 360<\/a>.\n<a href=\"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/11\/sketch-360-on-a-surface-duo.jpeg\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/11\/sketch-360-on-a-surface-duo-1024x618.jpeg\" alt=\"Sketch 360 on a Surface Duo\" width=\"640\" height=\"386\" class=\"alignnone size-large wp-image-1041\" srcset=\"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/11\/sketch-360-on-a-surface-duo-1024x618.jpeg 1024w, https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/11\/sketch-360-on-a-surface-duo-300x181.jpeg 300w, https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/11\/sketch-360-on-a-surface-duo-768x463.jpeg 768w, https:\/\/devblogs.microsoft.com\/surface-duo\/wp-content\/uploads\/sites\/53\/2020\/11\/sketch-360-on-a-surface-duo.jpeg 1431w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<h2>Feedback<\/h2>\n<p>\n  We\u2019d love to hear what opportunities you see for dual-screen apps in the year ahead. Please reach to out to the team using our\u00a0<a href=\"http:\/\/aka.ms\/SurfaceDuoSDK-Feedback\" target=\"_blank\" rel=\"noopener noreferrer\">feedback forum<\/a>\u00a0or message us on Twitter <a href=\"https:\/\/twitter.com\/surfaceduodev\">@surfaceduodev<\/a>.\n<\/p>\n<p>\n  We look forward to working with you to enhance your apps for dual-screen devices in 2021. Have a happy and safe new year \ud83c\udf89<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello dual-screen developers, It was over a year ago \u2013 2nd October 2019 \u2013 that Panos introduced the Surface Duo to the world. In the months since, we have shared a number of milestones with you leading up to the product launch (and beyond): January 31st, 2020 First preview of the Surface Duo SDK February [&hellip;]<\/p>\n","protected":false},"author":18491,"featured_media":1156,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[365,46],"class_list":["post-1152","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-surface-duo-sdk","tag-android-developer","tag-surface-duo"],"acf":[],"blog_post_summary":"<p>Hello dual-screen developers, It was over a year ago \u2013 2nd October 2019 \u2013 that Panos introduced the Surface Duo to the world. In the months since, we have shared a number of milestones with you leading up to the product launch (and beyond): January 31st, 2020 First preview of the Surface Duo SDK February [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/posts\/1152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/users\/18491"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/comments?post=1152"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/posts\/1152\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/media\/1156"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/media?parent=1152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/categories?post=1152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/surface-duo\/wp-json\/wp\/v2\/tags?post=1152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}