The term native application means different things to different people. For some people, it is an app that is developed using the tools specified by the creator of the platform, such as an app developed for iOS with Objective-C or Swift, an Android app developed with Java or Kotlin, or a Windows app developed with .NET. Others use the term native application to refer to apps that are compiled into machine code that is native. In this book, we will define a native application as one that has a native UI, performance, and API access. The following list explains these three concepts in greater detail:
- Native UI: Apps built with Xamarin use the standard controls for each platform. This means, for example, that an iOS app built with Xamarin will look and behave as an iOS user would expect and an Android app built with Xamarin will look and behave as an Android user would expect.
- Native performance: Apps built with Xamarin are compiled for native performance and can use platform-specific hardware acceleration.
- Native API access: Native API access means that apps built with Xamarin can use everything that the target platforms and devices offer to developers.