During the next ten days, you will be learning to use Xamarin for iOS and Android native app development. By the end of this couple of weeks, you will be able to build your apps with C# and XAML and deploy them to both Android and iOS. But before we get to that, you should complete a few steps that will get your computer ready for Xamarin development.
By now you should have your environment setup and ready to start creating your first Xamarin application. If you don't yet, make sure you check out Day 0 first.
You now have a better understanding of how Xamarin works. By now you should start to feel comfortable defining elements inside a XAML file, accessing them from the C# code behind, and even creating event handlers.
Yesterday we created this interface that allows our users to write their experiences, similar to what they may do on a diary. So far, however, this is quite useless, since the experiences are not saved anywhere. Our users can write, click on the save button and see the text disappear, but the experience won't be anywhere. Today we fix that.
Yesterday you prepared the interface that allows users to write new experiences and "save" them or cancel the operation. What's more, you already imported the NuGet package that helps us code the function that creates an SQLite database and performs queries to it. Heck, you now even have the path to that database over in your .NET Standard library, it is coming from either the Android or the iOS projects.
Yesterday we learned how to connect to an SQLite database, create a table and insert into it. So far, however, we are only able to know if we successfully inserted by getting the return value of the Insert method, we don't yet know how to read the table and check if the items are there. Because of this, we are also not yet listing the items for the user to see.
Our application is already successfully saving and listing experiences that we stored on a local SQLite database. So far, however, the experiences only include a title and a content that users may have added. While this functionality is useful, I want to make this app a bit more interesting, which is why we are now going to be working on adding information about the venue where the user has the experience.
We made significant progress yesterday, getting the current location and responding to updates so that every time the location changes by a certain margin, we get the new coordinates. This means that we are ready to ask Foursquare for venues that are nearby.
In the past few days, you have created an experiences application that lets users insert experiences in a local database, and even lets them add a real venue to those experiences, so they know where the experience happened. This has led you to learn how to use not only XAML and C# but SQLite and REST services.
Our implementation of the MVVM architectural pattern has led us to implement the ICommand and INotifyPropertyChanged interfaces in certain classes. When using the INotifyPropertyChanged, we used its event to notify of property changes so the view can be updated accordingly. So far, however, we are not yet creating the list properties that would bind to the item source of our list views, that is what we do today.