Chapter
Creating a UIViewController and UITableView
Customizing a cell's appearance
Creating an Android project
Creating an XML interface and ListView
Adding the iOS photo screen
Adding the Android photo screen
Chapter 2: Building a SpeechTalk Application
Cross-platform development with Xamarin.Forms
So how would this look in Xamarin.Forms?
Setting up platform projects
So what is happening here?
Setting up the SpeechTalk.iOS project
Setting up the SpeechTalk.Droid project
Xamarin.Forms, Windows Phone, and Visual Studio
Inversion of Control (IoC) with Xamarin.Forms
So how do we benefit from this?
iOS text-to-speech implementation
Android text-to-speech implementation
Setting up IoC with Android
WinPhone text-to-speech implementation
Platform independent styling
Chapter 3: Building a GPS Locator Application
Navigation with Xamarin.Forms
Building the navigation control
Integrating Google Maps using Xamarin.Forms.Maps
Core location with iOS and the CLLocationManager library
Handling location updates
Android and the LocationManager
Creating an API key for Android
Creating our Windows project
Core Location Services with Windows Phone
Web services and data contracts
What about data contracts?
Creating another API key for geocoding
Creating GeocodingWebServiceController
Newtonsoft.Json and Microsoft HTTP client libraries
ModernHttpClient and client message handlers
Feeding JSON data into the IObservable framework
Using GeocodingWebServiceController
Pythagoras equirectangular projection
How are we going to calculate the closest position?
Chapter 4: Building an Audio Player Application
Inversion of control with MVVMCross
View-models with Xamarin native
MVVMCross setup inside the PCL
Setting up MVVMCross with iOS
Setting up MVVMCross with Android
The SoundHandler interface
Implementing the iOS SoundHandler using the AVAudioPlayer framework
A cleaner code approach to NSLayout
Creating AudioPlayerPageViewModel
Implementing the Android SoundHandler using the MediaPlayer framework
Chapter 5: Building a Stocklist Application
Understanding the backend
Creating an ASP.Net Web API 2 project
Building an API controller
Setting up the mobile projects
Building core mobile projects
Improving app performance
Creating a global App.xaml
Theming with ControlTemplates
Updating the MainPageViewModel
Creating the Stocklist web service controller
ListViews and ObservableCollections
Adding a DataTemplate to the global resource dictionary
Further optimization with XAML
Creating StockItemDetailsPage
Adding styles for custom elements
Creating StockItemDetailsPageViewModel
Setting up the native platform projects
Hosting the Web API project locally
Chapter 6: Building a Chat Application
The Model-View-Presenter (MVP) pattern
So why bother with this approach?
How do we determine which layers our project needs?
Starting with Open Web Interface for .NET (OWIN)
Creating an authorization server using OWIN OAuth 2.0
OAuthAuthorizationServerProvider
Use OAuthBearerAuthentication
Setting up the AuthenticationRepository
Building the AccountController
Configuring OAuth Authentication with our Web API
Setting up mobile projects
Creating the SignalRClient
Building the WebApiAccess layer
Setting up the navigation service
Building the iOS navigation service
Building the Android navigation service
Building the iOS interface
Handling Hub proxy callbacks
Implementing the LoginPresenter
Creating the connection between Presenter and View
Building the LoginActivity
Implementing the ClientsListPresenter
Creating ClientListViewController
The TaskCompletionSource framework
Creating the ClientsListActivity
Overriding the OnBackPressed activity
Building the ChatPresenter
Building the iOS ChatView
Extending the UIColor framework
Building the Android ChatActivity
Running the server and clients
Chapter 7: Building a File Storage Application
Building a data access layer using SQLite
Building the ISQLiteStorage interface
Adding additional threading techniques
How do we solve this problem?
Creating the AsyncSemaphore
Implementing native setup requirements for SQLite
Implementing the IoC container and modules
Implementing cross-platform logging
Implementing the SQLiteStorage class
Introduction to C# 6.0 syntax
Handling alerts in view-models
Building the IMethods interface
Building the ExtendedContentPage
Why are we implementing two different techniques for showing alerts?
Building a CarouselView using custom layouts
Adding scroll control to the CarouselView
Building a CustomRenderer for native gestures
Building the user interface
Using a SynchronizationContext
How do we know this context is from the main UI thread?
Building the EditFilePage
Building the Windows Phone version
Chapter 8: Building a Camera Application
Building the MainPageViewModel class
Improving the INotifiedPropertyChanged implementation
Creating the custom UI objects
Xamarin.Forms compound animations
Building a control for the iOS camera
Building the iOS CameraRenderer
Integrating the Android Camera2 framework
Building the CameraViewRenderer in Android
Handling native touch events through the FocusView
Using RX to handle events
Building a VisualElementRenderer for iOS
Building the CustomImageRenderers
Building the UIImageEffects class
Building the CustomImageRenderer for Android
Adding native orientation events