Book Image

Xamarin Cross-platform Application Development

By : Jonathan Peppers
Book Image

Xamarin Cross-platform Application Development

By: Jonathan Peppers

Overview of this book

<p>Developing a mobile application for just one platform is becoming a thing of the past. Companies expect their apps to be supported on both iOS and Android, whilst leveraging the best native features of both. Xamarin’s tools help solve this requirement by giving developers a single toolset to target both platforms.</p> <p>"Xamarin Cross-platform Application Development" is a step-by-step guide for building professional applications for iOS and Android. The book walks you through building a chat application, complete with a backend web service and native features such as GPS location, camera, and push notifications.</p> <p>This book begins with iOS and Android application fundamentals, then moves on to sharing code, and eventually digs deeper into native functionality. By the end of the book, readers will have successfully built a cross-platform application ready for submitting to app stores. You will gain an in-depth knowledge about the concepts of building cross platform applications.</p> <p>"Xamarin Cross-platform Application Development" also covers native iOS and Android APIs, unit testing, building a real web service with Windows Azure, push notifications, interacting with the camera and GPS, leveraging Java and Objective-C libraries, and finally app store submission. Towards the end of the book you will feel confident in developing your own Xamarin applications.</p> <p>"Xamarin Cross-platform Application Development" will teach you everything you need to know to develop an end-to-end, cross-platform solution with Xamarin.</p>
Table of Contents (18 chapters)
Xamarin Cross-platform Application Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Index

A

  • ActionBarSherlock
    • about /
  • Amazon web services
    • about /
    • URL /
  • Android
    • lifecycle flowchart /
    • contacts, retrieving on /
    • GPS location, implementing on /
    • photos, accessing on /
  • Android activities
    • about /
  • Android application /
    • building /
    • running /
  • Android applications
    • signing up /
  • Android bundle
    • about /
  • Android designer /
  • Android device settings
    • about /
  • Android emulator
    • about /
    • setting up /
  • Android Honeycomb application /
  • Android Ice Cream Sandwich application /
  • Android Java bindings library /
  • Android library project /
  • Android Manifest
    • about /
    • settings /
    • permissions /
    • settings, for applications /
  • Android OpenGL application /
  • Android unit test project /
  • Android Virtual Device (AVD)
    • about /
  • AOT
    • limitations /
  • AOT compilation
    • overview /
  • API (Application Programming Interface) /
  • app
    • submitting, to iOS App Store /
    • adding, to iTunes Connect /
    • submitting, to Google Play /
  • AppDelegate.cs file
    • methods /
  • App ID
    • creating /
  • Apple
    • MVC design pattern /
    • about /
    • rules, regarding content /
    • 70/30 revenue share, rules /
  • Apple Push Notification Service
    • using /
    • provisioning, setting up /
    • provisioning profile, setting up /
    • certificate signing request, setting up /
    • client-side changes, making for push notifications /
  • App store
    • iOS binary, making for /
  • App Store /
  • App Store Review Guidelines
    • following /
  • ASP.NET
    • about /
  • assertions
    • about /
    • writing /
  • async keyword /
  • await keyword /
  • Azure Account
    • setting up /
  • Azure Mobile Services
    • about /
    • exploring /
    • features /
    • data types. updating for /
  • Azure websites
    • about /

B

  • backend
    • adding, to XamChat /
  • backend, adding to XamChat
    • data types, updating for Azure Mobile Services /
    • Xamarin component, using /
  • banking
    • setting up, for Google Merchant Account /
  • BaseAdapter
    • using /
  • Base Class Libraries (BCL) /
  • basics, iOS app /
  • blob storage
    • about /
  • bundle ID
    • creating /

C

  • C# libraries
    • porting /
  • camera
    • accessing /
  • categories, segue
    • push /
    • relationship /
    • modal /
    • custom /
  • certificate signing request
    • setting up /
  • cloned project files
    • about /
  • Cloud services
    • about /
  • common services, Windows Azure
    • virtual machines /
    • websites /
    • SQL Azure /
    • mobile services /
    • storage /
    • service bus /
    • worker roles /
    • Cloud services /
  • components, Xamarin
    • Json.NET /
    • RestSharp /
    • SQLite.NET /
    • Facebook SDK /
    • Xamarin.Mobile /
    • ActionBarSherlock /
  • contacts
    • accessing /
    • retrieving, on Android /
  • controller
    • adding, to application /
  • CoreGraphics
    • about /
  • crash
    • about /
  • cross-platform solutions
    • setting up /
  • cross-platform solutions, options
    • file linking /
    • cloned project files /
    • portable class libraries /

D

  • data binding /
  • data types
    • updating, for Azure Mobile Services /
  • dependency injection
    • about /
    • simplifying /
  • DidEnterBackground method /
  • distribution provisioning profile
    • creating /
  • dynamic schema
    • about /

E

  • editions, Xamarin
    • sarter edition /
    • Indie edition /
    • business edition /
    • enterprise edition /

F

  • Facebook SDK
    • about /
  • fake service
    • implementing /
  • file-linking strategy /
  • file linking
    • about /
    • performing /
  • FindViewById method /
  • FinishedLaunching method /
  • Finish method /
  • freemium model /
  • friends list
    • implementing /
  • friends list screen
    • adding, to application /
  • FriendViewModel class
    • implementing /

G

  • garbage collector (GC) /
  • GetCell method /
  • Git
    • about /
  • Google Cloud Messaging (GCM)
    • implementing /
    • URL /
  • Google Merchant Account
    • about /
    • setting up /
    • banking, setting up for /
  • Google Play
    • app, submitting to /
  • Google Play developer
    • about /
    • registering as /
  • Google Play Developer Program Policies
    • about /
  • GPS location
    • looking up /
    • implementing, on Android /
  • GUID (Globally Unique Identifier) /

H

  • HandleOpenUrl method /

I

  • in-app purchases (IAPs) /
  • Info.plist file
    • about /
  • Infrastructure as a Service (IaaS)
    • about /
  • installation, x86 Android Emulator /
  • installation, Xamarin /
  • installation, Xamarin.Mobile /
  • installation, Xcode /
  • IoC
    • about /
    • implementing /
  • iOS app
    • basics /
    • options /
  • iOS application
    • building /
  • iOS App Store
    • app, submitting to /
  • iOS binary
    • making, for App store /
  • iOS binding project /
  • iOS Dev Center
    • about /
  • iOS Developer Program
    • signing up for /
  • iOS library project /
  • iOS provisioning
    • about /
  • iOS unit test project /
  • iPhone or iPad storyboard project /
  • iTunes Connect
    • about /
    • labeling rules /
    • app, adding to /

J

  • Java bindings
    • about /
    • creating /
    • overview /
  • Json.NET
    • about /
  • JUnit /
  • just in time (JIT) compiler
    • about /

K

  • Keychain app
    • about /

L

  • layouts
    • functionalities, adding to /
  • layouts types
    • ViewGroup /
    • LinearLayout /
    • RelativeLayout /
    • FrameLayout /
    • ListView /
    • GridView /
  • lifecycle callback methods, activities
    • OnCreate /
    • OnResume /
    • OnPause /
    • OnStart /
    • OnStop /
    • OnRestart /
    • OnActivityResult /
    • OnDestroy /
  • linker
    • about /
    • overview /
  • linker settings, Xamarin applications
    • Don't Link /
    • Link SDK Assemblies Only /
    • Link All Assemblies /
  • linking feature /
  • list of messages
    • adding, to application /
  • ListView
    • using /
  • LLVM
    • about /
  • login screen
    • implementing /
    • adding /
  • LoginViewModel class
    • implementing /

M

  • manifest file /
  • MediaPicker class /
  • memory leaks
    • about /
  • memory pitfalls
    • avoiding /
  • messages
    • composing /
  • MessagesController class
    • about /
  • MessageViewModel class
    • implementing /
  • methods, activities
    • StartActivity(Type type) /
    • StartActivity(Intent intent) /
    • StartActivityForResult /
    • Finish /
    • SetContentView /
    • FindViewById /
  • methods, AppDelegate.cs file
    • FinishedLaunching /
    • DidEnterBackground /
    • WillEnterForeground /
    • OnResignActivation /
    • OnActivated /
    • ReceiveMemoryWarning /
    • HandleOpenUrl /
  • methods, UINavigationController
    • SetViewControllers /
    • ViewControllers /
    • PushViewController /
    • PopViewControllerAnimated /
    • PopToViewController /
    • PopToRootViewController /
    • TopViewController /
  • methods, UITableViewSource
    • RowsInSection /
    • NumberOfSections /
    • GetCell /
    • TitleForHeader /
    • RowSelected /
  • methods, ViewController.cs file
    • ViewDidLoad /
    • ViewWillAppear /
    • ViewDidAppear /
    • ViewWillDisappear /
    • ViewDidDisappear /
  • Microsoft intermediate language (MSIL)
    • about /
  • mobile app
    • tips /
  • mock web service
    • writing /
  • model layer
    • developing /
  • Model layer, MVVM design pattern
    • about /
  • Mono
    • about /
  • MonoDevelop
    • about /
  • MonoGame /
  • MVC pattern, Apple
    • about /
    • model /
    • view /
    • controller /
  • MVVMCross
    • about /
  • MvvmCross
    • URL /
  • MVVM design pattern
    • about /
    • Model layer /
    • View layer /
    • ViewModel layer /

N

  • namespaces, Xamarin.Mobile
    • Xamarin.Contacts /
    • Xamarin.Geolocation /
    • Xamarin.Media /
  • navigation controller
    • setting up, in application /
  • Ninject
    • URL /
    • about /
  • Node.js
    • about /
  • NoSQL solution
    • about /
  • notifications
    • about /
  • NuGet
    • about /
  • NumberOfSections method /
  • NUnit /

O

  • Objective-C bindings
    • about /
  • Objective Sharpie
    • about /
    • installing /
    • downloading /
  • Object Relational Mapping (ORM)
    • about /
  • OnActivated method /
  • OnActivityResult method /
  • OnCreate method /
  • OnDestroy method /
  • OnPause method /
  • OnResignActivation method /
  • OnRestart method /
  • OnResume method /
  • OnStart method /
  • OnStop method /
  • OpenNETCF.IoC
    • URL /
  • options, iOS app
    • iOS Build /
    • iOS Build | Advanced /
    • iOS Bundle Signing /
    • iOS Application /

P

  • Parse service
    • about /
    • URL /
  • partial class /
  • phone activity
    • about /
  • photo library
    • accessing /
  • photos
    • accessing, on Android /
  • PHP
    • about /
  • Platform as a Service (PaaS)
    • about /
  • PopToRootViewController method /
  • PopViewControllerAnimated method /
  • portable class libraries
    • about /
    • working with /
    • setting up /
  • Portable Class Library (PCL)
    • about /
  • preprocessor statements
    • using /
  • project
    • setting up, for unit tests /
  • project organization strategies
    • comparing /
  • project templates, Xamarin Studio
    • Android application /
    • Android Honeycomb application /
    • Android Ice Cream Sandwich application /
    • Android library project /
    • Android Java bindings library /
    • Android OpenGL application /
    • Android unit test project /
  • project types for iOS, Xamarin Studio
    • Standard iPhone or iPad project /
    • iPhone or iPad storyboard project /
    • Universal project /
    • iOS binding project /
    • iOS library project /
  • provisioning
    • setting up /
  • provisioning profile
    • about /
    • creating /
    • importing /
    • setting up /
  • provisioning profiles, types
    • development /
    • Ad Hoc /
    • App Store /
  • push notifications
    • sending /
  • PushSharp /
  • PushViewController method /

R

  • RDMS (Regional Database Management System)
    • about /
  • ReceiveMemoryWarning method /
  • RegisterViewModel class
    • implementing /
  • REST-based API
    • about /
  • RestSharp
    • about /
  • RowSelected method /
  • RowsInSection method /

S

  • sample application concept
    • starting /
  • scripts
    • creating /
  • segue
    • about /
    • pattern /
    • setting up /
    • using /
  • service bus
    • about /
  • service locator pattern /
  • SetContentView method /
  • SetViewControllers method /
  • SignalR
    • about /
  • Simple Injector
    • URL /
  • single responsibility principle
    • about /
  • SOLID object-oriented design principles /
    • building /
  • SQL Azure
    • about /
  • SQLite /
  • SQLite.NET
    • about /
  • Standard iPhone or iPad project /
  • StartActivity(Intent intent) method /
  • StartActivity(Type type) method /
  • StartActivityForResult method /
  • storyboards
    • using /

T

  • tables
    • creating /
  • table storage
    • about /
  • Task Parallel Libraries (TPL)
    • about /
  • Test Driven Development (TDD) /
  • TinyIoC
    • URL /
  • TitleForHeader method /
  • TopViewController property /
  • TPL (Task Parallel Library) /

U

  • UIKit
    • about /
  • UINavigationController
    • using /
  • UITableView
    • using /
  • unit tests
    • writing /
    • project, setting up for /
  • Universal project /
  • Urban airship service
    • about /
    • URL /
  • URL scheme /
  • using statement /

V

  • ViewController.cs file
    • methods /
  • ViewControllers property /
  • ViewDidAppear method /
  • ViewDidDisappear method /
  • ViewDidLoad method /
  • View layer, MVVM design pattern
    • about /
  • ViewModel layer
    • writing /
    • LoginViewModel class, implementing /
    • RegisterViewModel class, implementing /
    • FriendViewModel class, implementing /
    • MessageViewModel class, implementing /
  • ViewModel layer, MVVM design pattern
    • about /
  • ViewWillAppear method /
  • ViewWillDisappear method /
  • virtual machines
    • about /

W

  • WillEnterForeground method /
  • Windows Azure
    • about /
    • common services /
  • worker roles
    • about /
  • WPF (Windows Presentation Foundation) /
    • about /

X

  • x86 Android Emulator
    • installing /
  • Xamarin
    • prerequisites, for iOS /
    • prerequisites, for Android /
    • installing /
    • editions /
    • Android designer /
  • Xamarin.Android
    • about /
  • Xamarin.Contacts
    • about /
  • Xamarin.Geolocation
    • about /
  • Xamarin.iOS
    • about /
  • Xamarin.Media
    • about /
  • Xamarin.Mobile
    • about /
    • installing /
    • URL, for documentation /
  • Xamarin applications
    • settings, for linker /
  • Xamarin component
    • adding /
  • Xamarin Component Store
    • about /
  • Xamarin Studio
    • about /
    • project types, for iOS /
    • project templates /
  • Xamarin Tools
    • about /
  • XamChat
    • backend, adding to /
  • Xcode
    • installing /
    • using /
    • launching /
  • XPath
    • about /