Skip to content
This repository has been archived by the owner on Apr 23, 2023. It is now read-only.

#rTsd - This ia a work in progress Xamarin.Forms Android project which is intended to feature most of the new features that makes the upcoming Microsoft Surface Duo phone unique.

License

Notifications You must be signed in to change notification settings

tscholze/xamarin-road-to-surface-duo

Repository files navigation

#rTsd Logo

Road to Surface Duo Xamarin App (#rTsd)

This is a forever work in progress Xamarin.Forms Android project which is intended to feature most of the new features that makes the upcoming Microsoft Surface Duo phone unique. It will use the awesome German Dr. Windows as data source for its articles.

tl;dr

This is neither an offical Dr. Windows app nor anything other than a highly motivated playground to dive deep into the Xamarin.Forms ecosystem with a dedicated usecase in mind.

It will target only Android devices and it's meant to include all other aspecs of Xamarin development such as a configurared continuous integration and analytics powerd by the Azure App Center.

This project is written and owned by a beginner and meant for beginners. It would be perfect if experts could mentor the project - but this is just a mind in the clouds.

If you are looking for the siblings app that's based on the UWP ecosystem to work with the Surface Neo, please see the GitHub repository tscholze/uwp-road-to-surface-neo. This project is currently on hold due to some emulator requirements that I cannot fulfill at the ment.

Build status

Service Status
AppCenter Build status
Azure DevOps Build Status
Sonar Cloud Quality Gate Status

Releases

Service Link
AppCenter Click to download

Structure

rTsd

Xamarin.Forms container that includes all shared functionality and features.

rTsd.Android

Android wrapper and platform-specifc implementations like custom rendereres, effects or assets.

Phases

  • Finding a usecase
  • Write down a motivation (e.g. Readme)
  • Write an email to dualscreendev@microsoft.com to get soon(tm) more information
  • Concept roughly an user interface
  • Get the project (template) up and running
  • Getting into important Xamarin / C# pattern
  • Write first MVP code
  • Implement first Surface Duo related features or layouts
  • Improve feature and code quality
  • Run it on a Surface Duo emulator
  • Add user opt-in for non Dr. Windows server requests
  • Add localization (resx)
  • Write tests
  • Leverage CI with tests and deployments
  • Run it on an actual Surface Duo device
  • Add analytics

Publications

Prerequirements

Assumption

  • The Surface Duo will usw two navigation pages, master on the left screen and detail on the right, as the main indicator how to display an app on two screens -> Nope it works a little bit diffrent

Other programms I used

  • Microsoft OneNote as information storage around the idea of the app
  • Microsoft Teams to clarify open question with the Dr. Windows team
  • Visual Studio Code for all, except source code editing, writings like mark down files
  • Git Bash for Git operations outside of Visual Studio
  • Adobe XD to protoyp the UI

Features

  • Good looking, hopefully (in my opinion)
  • Utilizes Surface Duo features
  • Utilizes App Center features
  • Ticker with latest tweets of @drwindows_de
  • Lists articles of Dr. Windows
  • Lists videos of Dr. Windows Youtube Channel
  • Detail article view
  • Share functionality

UI concepts

I'm not a skilled user interface designer nor I have an eye for beauty, but the app should look mostly like the following concepts.

App screenshots

Running on a Microsoft Surface Duo

I used the free, but required an Adobe ID, application Adobe XD to create the protoyp views.

Decisions made

  • Using the Page.Navigation(...) feature instead of the new url-based Shell.GoToAsync(...)
  • Using the native asset management instead of the embedded images one. The not successful feature implementation can be found via: deadend/embedded-images
  • No more gradients - updated UI of the app to use solid colors instead of blue-ish gradients

Keep in mind

This app is purely build for having fun! All features have room for improvements or could be done more elegant. This app was and will be never meant to run in production-like environments.

Contributing

Feel free to improve the quality of the code. It would be great to learn more from experienced C#, Xamarin and Azure developers. Please use the "default" workflow of contributing to this project.

  1. Open an issue and describing your idea or bug finding
  2. Fork repository
  3. Fix bug / add enhancement in well named feature branch with issue number (e.g. user.name/2-added-app-icon)
  4. Add the issue number to your commit message (e.g. #2 Added new app icon)
  5. Create pull request (PR) from your feature branch to this master branch
  6. Please keep in touch with your PR to answer upcoming questions
  7. If your PR got merged, check if you are listed in the "Authors" section of the readme

Special thanks to

  • Martin Geuss (Dr. Windows) for letting me publish an article series on one of the largest German speaking Microsoft communities and portals Dr. Windows
  • Sven-Michael Stübe (Zuehlke) for helping me with is awesome knowledge of Xamarin
  • Tim Messerschmidt (Google), for motivating me to give Android and the Google ecosystem another chance

Authors

Just me, Tobi.

Links

License

This project is licensed under the MIT License - see the LICENSE file for details. Dependencies or assets maybe licensed differently.

About

#rTsd - This ia a work in progress Xamarin.Forms Android project which is intended to feature most of the new features that makes the upcoming Microsoft Surface Duo phone unique.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published