topic: sample languages:
PhotoSharingApp is a Universal Windows Platform (UWP) app sample that demonstrates real-world social media experiences around photo sharing.
With this app, users can earn virtual gold by uploading and sharing photos with people from all around the world. They can upload photos of their cats, shoes, houses, or last vacations, and see how they compete against other users. Are their photos a great gold source? Are they among the most generous contributors? They can find out on the app's leaderboard.
The goal of this app is to provide a complete, end-to-end example of a real-world app that uses a variety of UWP features, and exhibits design and development best practices. This makes it a great source of code you can copy into your own apps. It also provides an example of what a real-world app architecture might look like. The decoupled architecture makes it easy to reuse code or to make changes and build your own photo sharing app, which you can then publish in the Windows Store.
See our post on the Windows Apps Team blog: SnapGold
Application Screenshots:
The app allows users to:
PhotoSharingApp demonstrates the following features:
Adaptive UI using the SplitView control (see video on Channel 9) and adaptive triggers:
In-app purchase (see the Windows.ApplicationModel.Store namespace):
Separation between user interface, business logic and data models (MVVM):
PhotoSharingApp.Universal.Models, PhotoSharingApp.Universal.Views, PhotoSharingApp.Universal.ViewModels
Extensibility and flexibility using the Unity dependency container:
PhotoSharingApp.Universal.Unity, PhotoSharingApp.Universal.Registries
How to connect your app to an Azure App Service
Real-world service implementation for storing uploaded photos using Azure DocumentDB
Sign-in with Azure Mobile Apps:
PhotoSharingApp.AppService.Shared.Repositories.DocumentDbRepository
Usage analysis with Visual Studio Application Insights
Push Notifications (see Integration with App Service Mobile Apps in Azure Notification Hubs:
PhotoSharingApp.Universal.Services.NotificationRegistrationClient
For instructions on setting up the sample, see Getting Started.
For an overview of the projects structure and namespaces, see Project overview.
For an explanation of how the sample integrates multiple technologies, see Technical deep dive.