{"id":22366477,"url":"https://github.com/microsoft/surface-duo-sdk","last_synced_at":"2025-07-29T23:34:43.992Z","repository":{"id":37086792,"uuid":"262129243","full_name":"microsoft/surface-duo-sdk","owner":"microsoft","description":"Set of libraries that help you to build dual screen experiences for Microsoft Surface Duo","archived":false,"fork":false,"pushed_at":"2022-09-27T14:41:10.000Z","size":1419,"stargazers_count":76,"open_issues_count":5,"forks_count":18,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-07-26T18:48:10.046Z","etag":null,"topics":["android","kotlin","sdk","surface-duo"],"latest_commit_sha":null,"homepage":"https://learn.microsoft.com/dual-screen/android/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/microsoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2020-05-07T18:31:52.000Z","updated_at":"2025-05-19T18:27:23.000Z","dependencies_parsed_at":"2022-07-21T11:32:51.820Z","dependency_job_id":null,"html_url":"https://github.com/microsoft/surface-duo-sdk","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/microsoft/surface-duo-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fsurface-duo-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fsurface-duo-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fsurface-duo-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fsurface-duo-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft","download_url":"https://codeload.github.com/microsoft/surface-duo-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fsurface-duo-sdk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267780263,"owners_count":24143202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","kotlin","sdk","surface-duo"],"created_at":"2024-12-04T18:12:25.525Z","updated_at":"2025-07-29T23:34:43.961Z","avatar_url":"https://github.com/microsoft.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Surface Duo SDK\n\nThis repo contains the source code for the Microsoft Surface Duo SDK.\n\nPlease read the [code of conduct](CODE_OF_CONDUCT.md) and [contribution guidelines](CONTRIBUTING.md).\n\n## Getting Started\n\nWhen importing the code into Android Studio, use the **surface-duo-sdk** folder as the base directory of the project. This lets you access the sdk source code and run the sdk samples from within the same project.\n\n## Add to your project\n\n1. Make sure you have **mavenCentral()** repository in your top level **build.gradle** file:\n\n    ```gradle\n    allprojects {\n        repositories {\n            google()\n            mavenCentral()\n         }\n    }\n    ```\n\n2. Add dependencies to the module-level **build.gradle** file (current version may be different from what's shown here). There are multiple libraries available - for some of them you should reference **ScreenManager** plus any additional libraries you plan to use:\n\n    **ScreenManager**\n\n    If you want to choose the version that uses Display Mask API, then you should add the following lines to your gradle file.\n\n    ```gradle\n    implementation \"com.microsoft.device.dualscreen:screenmanager-displaymask:1.0.0-beta4\"\n    ```\n\n    or if you want to choose the version that uses Window Manager API, then you should add the following lines.\n\n    ```gradle\n    implementation \"com.microsoft.device.dualscreen:screenmanager-windowmanager:1.0.0-beta4\"\n    ```\n\n    **Bottom navigation**\n\n    ```gradle\n    implementation \"com.microsoft.device.dualscreen:bottomnavigation:1.0.0-beta5\"\n    ```\n\n    **Fragments handler**\n\n    ```gradle\n    implementation \"com.microsoft.device.dualscreen:fragmentshandler:1.0.0-beta5\"\n    ```\n\n    **Layouts**\n\n    ```gradle\n    implementation \"com.microsoft.device.dualscreen:layouts:1.0.0-beta9\"\n    ```\n\n    **Tabs**\n\n    ```gradle\n    implementation \"com.microsoft.device.dualscreen:tabs:1.0.0-beta5\"\n    ```\n\n    **RecyclerView**\n\n    ```gradle\n    implementation \"com.microsoft.device.dualscreen:recyclerview:1.0.0-beta6\"\n    ```\n\n   **Ink**\n\n    ```gradle\n    implementation \"com.microsoft.device:ink:1.0.0-alpha5\"\n    ```\n   \n   **Foldable Navigation Component**\n    ```gradle\n    def nav_version = \"1.0.0-alpha3\"\n\n    // Java language implementation\n    implementation \"com.microsoft.device.dualscreen:navigation-fragment:$nav_version\"\n    implementation \"com.microsoft.device.dualscreen:navigation-ui:$nav_version\"\n\n    // Kotlin\n    implementation \"com.microsoft.device.dualscreen:navigation-fragment-ktx:$nav_version\"\n    implementation \"com.microsoft.device.dualscreen:navigation-ui-ktx:$nav_version\"\n    ```\n\n    **SnackbarContainer**\n\n    ```gradle\n    implementation \"com.microsoft.device.dualscreen:snackbar:1.0.0-alpha2\"\n    ```\n\n   **Testing**\n\n    ```gradle\n    implementation \"com.microsoft.device.dualscreen.testing:testing-kotlin:1.0.0-alpha4\"\n    ```\n\n### Useful links\n\n- Documentation for these libraries at [dual-screen library](https://docs.microsoft.com/dual-screen/android/api-reference/dualscreen-library/)\n- Surface Duo developer documentation at [docs.microsoft.com/dual-screen](https://docs.microsoft.com/dual-screen).\n- [Surface Duo developer blog](https://devblogs.microsoft.com/surface-duo)\n\n### Samples that utilize this SDK\n\n- [Kotlin samples](https://github.com/microsoft/surface-duo-sdk-samples-kotlin)\n- [Java samples](https://github.com/microsoft/surface-duo-sdk-samples)\n- [Dual Screen Experience Example](https://github.com/microsoft/surface-duo-dual-screen-experience-example)\n\n### Other Surface Duo developer samples\n\n- [Window Manager samples](https://github.com/microsoft/surface-duo-window-manager-samples)\n- [Jetpack Compose samples](https://github.com/microsoft/surface-duo-compose-samples)\n- [Android app samples](https://github.com/microsoft/surface-duo-app-samples)\n- [Xamarin samples](https://github.com/microsoft/surface-duo-sdk-xamarin-samples)\n- [Unity samples](https://github.com/microsoft/surface-duo-sdk-unity-samples)\n- [React Native samples](https://github.com/microsoft/react-native-dualscreen)\n- [Flutter samples](https://github.com/microsoft/surface-duo-sdk-samples-flutter)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoft%2Fsurface-duo-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicrosoft%2Fsurface-duo-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoft%2Fsurface-duo-sdk/lists"}