Microsoft News is built with Xamarin. I wonderedโฆ can I build the same ๐ค? So I set out on this journey, I called it Nomadic.
To be able to run the app you will need to do a little setup. No worries, there's a whole blog about it ๐. But if you want a quick start, check the instructions below:
Head over to newsapi.org and register. Once you have an account, go to your account dashboard and retrieve your API key.
Add your NewsAPI Key in the Constants.cs file at the root of the shared project.
At this point you can build and deploy the Application and you'll have almost all the functionality working ๐... login will not work though.
If you're interested in login as well, follow the blog post below to create your Google Client Ids:
Google Authentication Blog Post
I have been writing some blog posts on how to create this app, which can be found below:
- Part 1: Setting Up
- Part 2: Using Shell
- Part 3: Using Custom Fonts
- Part 4: Using Themes
- Part 5: NewsAPI
- Part 6: Using MVVM
- Part 7: Using CarouselView
- Part 8: Using ListView with DataTemplateSelector
- Part 9: Using WebView
- Part 10: Using CollectionView
- Part 11: Using Geo Location
- Part 12: Creating a Firebase Project
- Part 13: Google Authentication with Firebase
- Part 14: Using Xamarin.Essentials Preferences and SecureStorage .....aand Wrappingย Up ๐
- Xamarin.Essentials by Microsoft
- NewsAPI C# Client by newsapi.org
- Xamarin.Auth
- Plugin.FirebaseAuth by f-miyu
- Plugin.CloudFirestore by f-miyu
- UserDialogs by Allan Ritchie
- PancakeView by Steven Thewissen
- CardsView by Andrei Misiukevich
- FFImageLoading by Daniel Luberda
- Rg.Plugins.Popup by Martijn van Dijk
- CurrentActivityPlugin by James Montemagno
As much as consideration was taken for iOS platform-specific code, this application has not been tested on iOS. In theory it should work, but whatever bugs that you may encounter or on the event that the application does not successfully build or for whatever reason your device bursts into flames, I might not be of help. Sorry ๐.
On a different note, please contribute and/or raise issues ๐.