Xamarin.iOS sample apps
Clone or download
Permalink
Failed to load latest commit information.
AQTapDemo Switched to 64-bit only builds. Aug 7, 2018
AUSoundTriggeredPlayingSoundMemoryBased Switched to 64-bit only builds. Aug 7, 2018
AVCaptureFrames Switched to 64-bit only builds. Aug 7, 2018
AVCompositionDebugVieweriOS Switched to 64-bit only builds. Aug 7, 2018
AVCustomEdit Switched to 64-bit only builds. Aug 7, 2018
AVTouchSample Switched to 64-bit only builds. Aug 7, 2018
AirLocate Switched to 64-bit only builds. Aug 7, 2018
AppPrefs Switched to 64-bit only builds. Aug 7, 2018
ApplicationFundamentals Switched to 64-bit only builds. Aug 7, 2018
AsyncDownloadImage Switched to 64-bit only builds. Aug 7, 2018
AudioConverterFileConverter Switched to 64-bit only builds. Aug 7, 2018
AudioGenerator Switched to 64-bit only builds. Aug 7, 2018
AudioQueueOfflineRenderDemo Switched to 64-bit only builds. Aug 7, 2018
AudioTapProcessor Switched to 64-bit only builds. Aug 7, 2018
BackgroundExecution Switched to 64-bit only builds. Aug 7, 2018
BindingSample Switched to 64-bit only builds. Aug 7, 2018
BouncingGameCompleteiOS Switched to 64-bit only builds. Aug 7, 2018
BouncingGameEmptyiOS Switched to 64-bit only builds. Aug 7, 2018
ButtonEventDemo Switched to 64-bit only builds. Aug 7, 2018
ButtonTapper3000 Switched to 64-bit only builds. Aug 7, 2018
Calendars Switched to 64-bit only builds. Aug 7, 2018
Chat Switched to 64-bit only builds. Aug 7, 2018
CircleLayout Switched to 64-bit only builds. Aug 7, 2018
CollectionViewTransition Switched to 64-bit only builds. Aug 7, 2018
Controls Switched to 64-bit only builds. Aug 7, 2018
CoreAnimation Switched to 64-bit only builds. Aug 7, 2018
CoreImage Switched to 64-bit only builds. Aug 7, 2018
CoreLocation Switched to 64-bit only builds. Aug 7, 2018
CoreMidiSample Switched to 64-bit only builds. Aug 7, 2018
CoreTelephonyDemo Switched to 64-bit only builds. Aug 7, 2018
CreatingTabbedApplications Switched to 64-bit only builds. Aug 7, 2018
CustomCollectionViewLayoutAttributes Switched to 64-bit only builds. Aug 7, 2018
CustomInputStream Switched to 64-bit only builds. Aug 7, 2018
CustomPropertyAnimation Switched to 64-bit only builds. Aug 7, 2018
CustomTransitions Switched to 64-bit only builds. Aug 7, 2018
Data Switched to 64-bit only builds. Aug 7, 2018
DesignerWalkthrough Switched to 64-bit only builds. Aug 7, 2018
DispatchSourceExamples Switched to 64-bit only builds. Aug 7, 2018
Drawing Switched to 64-bit only builds. Aug 7, 2018
DynamicsCatalog Switched to 64-bit only builds. Aug 7, 2018
FileSystemSampleCode Switched to 64-bit only builds. Aug 7, 2018
FontList Switched to 64-bit only builds. Aug 7, 2018
FrogScroller Switched to 64-bit only builds. Aug 7, 2018
GLCameraRipple Switched to 64-bit only builds. Aug 7, 2018
GLPaint-GameView Switched to 64-bit only builds. Aug 7, 2018
GameCenterSample Switched to 64-bit only builds. Aug 7, 2018
GoogleAdMobAds/binding Pull from upstream Jan 19, 2015
GraphicsAndAnimation Switched to 64-bit only builds. Aug 7, 2018
GrowRowTable Switched to 64-bit only builds. Aug 7, 2018
HelloWorld_iPhone Switched to 64-bit only builds. Aug 7, 2018
Hello_ComplexUniversal Switched to 64-bit only builds. Aug 7, 2018
Hello_MultiScreen_iPhone Switched to 64-bit only builds. Aug 7, 2018
Hello_Universal Switched to 64-bit only builds. Aug 7, 2018
Hello_iOS [hello] update screenshots for iPhone X Oct 6, 2018
Hello_iPad Switched to 64-bit only builds. Aug 7, 2018
HomeKit/HomeKitIntro Switched to 64-bit only builds. Aug 7, 2018
HttpClient Switched to 64-bit only builds. Aug 7, 2018
ImageProtocol Switched to 64-bit only builds. Aug 7, 2018
InfColorPicker Switched to 64-bit only builds. Aug 7, 2018
IntroToAppearance Switched to 64-bit only builds. Aug 7, 2018
IntroToiOS7 Switched to 64-bit only builds. Aug 7, 2018
IntroductionToiCloud Switched to 64-bit only builds. Aug 7, 2018
KeyValueObserving Switched to 64-bit only builds. Aug 7, 2018
Keychain Switched to 64-bit only builds. Aug 7, 2018
LazyTableImages Switched to 64-bit only builds. Aug 7, 2018
LazyTableImagesAsync Switched to 64-bit only builds. Aug 7, 2018
LifecycleDemo fixed release config (#251) Jul 20, 2018
LineLayout Switched to 64-bit only builds. Aug 7, 2018
LocalNotifications Switched to 64-bit only builds. Aug 7, 2018
Location Switched to 64-bit only builds. Aug 7, 2018
LowLevelGLPaint Switched to 64-bit only builds. Aug 7, 2018
MTDJsonDemo Switched to 64-bit only builds. Aug 7, 2018
MTDReflectionWalkthrough Switched to 64-bit only builds. Aug 7, 2018
MTDWalkthrough Switched to 64-bit only builds. Aug 7, 2018
MTGKTapper Switched to 64-bit only builds. Aug 7, 2018
ManualCameraControls Switched to 64-bit only builds. Aug 7, 2018
ManualStoryboard Switched to 64-bit only builds. Aug 7, 2018
MapCallouts Switched to 64-bit only builds. Aug 7, 2018
MapDemo Switched to 64-bit only builds. Aug 7, 2018
MapKitSearch Switched to 64-bit only builds. Aug 7, 2018
MapsWalkthrough Switched to 64-bit only builds. Aug 7, 2018
MediaNotes Switched to 64-bit only builds. Aug 7, 2018
MidiTest Switched to 64-bit only builds. Aug 7, 2018
MonoCatalog-MonoDevelop Switched to 64-bit only builds. Aug 7, 2018
MonoCatalogSample Pull from upstream Jan 19, 2015
MonoDevelopTouchCells Switched to 64-bit only builds. Aug 7, 2018
MotionGraphs Switched to 64-bit only builds. Aug 7, 2018
MoviePlayback Switched to 64-bit only builds. Aug 7, 2018
MultichannelMixer Switched to 64-bit only builds. Aug 7, 2018
NSZombieApocalypse Switched to 64-bit only builds. Aug 7, 2018
Newsstand Switched to 64-bit only builds. Aug 7, 2018
Notifications Switched to 64-bit only builds. Aug 7, 2018
OpenGL Switched to 64-bit only builds. Aug 7, 2018
OpenGLESSample Switched to 64-bit only builds. Aug 7, 2018
OpenGLESSample_GameView Switched to 64-bit only builds. Aug 7, 2018
OpenGLScroller Switched to 64-bit only builds. Aug 7, 2018
PaintCode Switched to 64-bit only builds. Aug 7, 2018
PassKit Switched to 64-bit only builds. Aug 7, 2018
PickerControl Switched to 64-bit only builds. Aug 7, 2018
PinchIt Switched to 64-bit only builds. Aug 7, 2018
PokerNightVoting Switched to 64-bit only builds. Aug 7, 2018
Popovers Switched to 64-bit only builds. Aug 7, 2018
PrintBanner Switched to 64-bit only builds. Aug 7, 2018
PrintSample Switched to 64-bit only builds. Aug 7, 2018
PrivacyPrompts Switched to 64-bit only builds. Aug 7, 2018
Profiling/MemoryDemo Switched to 64-bit only builds. Aug 7, 2018
Protocols_Delegates_Events modernize protocol-delegate-event sample (#276) Sep 17, 2018
QRchestra Switched to 64-bit only builds. Aug 7, 2018
QuartzSample Switched to 64-bit only builds. Aug 7, 2018
Quotes Switched to 64-bit only builds. Aug 7, 2018
ReachabilitySample Switched to 64-bit only builds. Aug 7, 2018
RecipesAndPrinting Switched to 64-bit only builds. Aug 7, 2018
RegionDefiner Switched to 64-bit only builds. Aug 7, 2018
RosyWriter Switched to 64-bit only builds. Aug 7, 2018
Rotation Switched to 64-bit only builds. Aug 7, 2018
ScratchTicket Switched to 64-bit only builds. Aug 7, 2018
SearchDemo Switched to 64-bit only builds. Aug 7, 2018
SharedResources Switched to 64-bit only builds. Aug 7, 2018
SimpleBackgroundFetch Switched to 64-bit only builds. Aug 7, 2018
SimpleBackgroundTransfer Switched to 64-bit only builds. Aug 7, 2018
SimpleCollectionView Switched to 64-bit only builds. Aug 7, 2018
SimpleDrillDown Switched to 64-bit only builds. Aug 7, 2018
SimpleLogin Switched to 64-bit only builds. Aug 7, 2018
SimpleTextInput Switched to 64-bit only builds. Aug 7, 2018
SoZoomy Switched to 64-bit only builds. Aug 7, 2018
SocialFrameworkDemo Switched to 64-bit only builds. Aug 7, 2018
Sound Switched to 64-bit only builds. Aug 7, 2018
SplitView Switched to 64-bit only builds. Aug 7, 2018
SpriteKit Switched to 64-bit only builds. Aug 7, 2018
SpriteKitPhysicsCollisions Switched to 64-bit only builds. Aug 7, 2018
SpriteTour Switched to 64-bit only builds. Aug 7, 2018
Stars Switched to 64-bit only builds. Aug 7, 2018
StateRestoration Switched to 64-bit only builds. Aug 7, 2018
StoreKit Switched to 64-bit only builds. Aug 7, 2018
StoryboardIntro Switched to 64-bit only builds. Aug 7, 2018
StoryboardTable Switched to 64-bit only builds. Aug 7, 2018
StoryboardTable_LocalAuthentication Switched to 64-bit only builds. Aug 7, 2018
StreamingAudio Switched to 64-bit only builds. Aug 7, 2018
SysSound Switched to 64-bit only builds. Aug 7, 2018
Tabbed_Images Switched to 64-bit only builds. Aug 7, 2018
TableEditing Switched to 64-bit only builds. Aug 7, 2018
TableParts Switched to 64-bit only builds. Aug 7, 2018
TableSwipeActions Set MtouchHttpClientHandler to NSUrlSessionHandler for all samples May 2, 2018
TextKitDemo Switched to 64-bit only builds. Aug 7, 2018
ThreadedCoreData Switched to 64-bit only builds. Aug 7, 2018
TicTacToe Switched to 64-bit only builds. Aug 7, 2018
Touch Switched to 64-bit only builds. Aug 7, 2018
TouchesClassic Switched to 64-bit only builds. Aug 7, 2018
Touches_GestureRecognizers Switched to 64-bit only builds. Aug 7, 2018
TransitionsDemo Switched to 64-bit only builds. Aug 7, 2018
UIImageEffects Switched to 64-bit only builds. Aug 7, 2018
ViewTransitions Switched to 64-bit only builds. Aug 7, 2018
WalkingGameCompleteiOS Switched to 64-bit only builds. Aug 7, 2018
WalkingGameEmptyiOS Switched to 64-bit only builds. Aug 7, 2018
WatchKit Switched to 64-bit only builds. Aug 7, 2018
WayUpSample Switched to 64-bit only builds. Aug 7, 2018
WeatherMap Switched to 64-bit only builds. Aug 7, 2018
WebView Switched to 64-bit only builds. Aug 7, 2018
WorkingWithImages Switched to 64-bit only builds. Aug 7, 2018
WorkingWithTables Switched to 64-bit only builds. Aug 7, 2018
Working_with_images Switched to 64-bit only builds. Aug 7, 2018
WorldCities Switched to 64-bit only builds. Aug 7, 2018
ZoomingPdfViewer Switched to 64-bit only builds. Aug 7, 2018
iOS7-ui-updates Switched to 64-bit only builds. Aug 7, 2018
intro-to-extensions Switched to 64-bit only builds. Aug 7, 2018
ios10 Switched to 64-bit only builds. Aug 7, 2018
ios11 fix ArgumentNullException when passing null to CopyProperties Aug 15, 2018
ios12 [SoupChef] Allow unsafe code usage for all platforms/configs Oct 11, 2018
ios7fonts Switched to 64-bit only builds. Aug 7, 2018
ios8 Switched to 64-bit only builds. Aug 7, 2018
ios9 Switched to 64-bit only builds. Aug 7, 2018
tvos Set MtouchHttpClientHandler to NSUrlSessionHandler for all samples May 2, 2018
watchOS [WatchKitCatalog] Add a 1024x1024 icon. (#283) Sep 25, 2018
.gitattributes Add sln file (and make sure it stays as CRLF because VS needs it) for… Sep 9, 2011
.gitignore added addtional attribute to pass tests and modify gitignore Mar 19, 2018
LICENSE clarify license for #184 Sep 28, 2017
Make.common Fix MonoCatalogSample build and include basic instructions to use the… Apr 10, 2012
Makefile Add a convenient Makefile to build the samples Jan 16, 2016
README.md minor corrections in readme Mar 1, 2018
Xamarin.Edu.SampleGallery.Core.dll Update sample validator. Jul 5, 2012
install-hook.sh Added CoreAnimation Sample + Chmod +x on git hook install Sep 30, 2011
mdtool-build Fix mdtool build invocation. Oct 4, 2011
pre-commit.posix Fix pre-commit script's use of ==. Feb 20, 2012
validate.posix Fix usage of `find` in some scripts. Feb 17, 2012
xcsv.exe Update sample validator. Jul 5, 2012

README.md

iOS/tvOS/watchOS Samples

The samples in this directory use the Xamarin.iOS toolchain and Xamarin Studio project files to illustrate the basics of how to work with iOS and the SDK. Visit the iOS Sample Gallery to download individual samples.

License

See the repo's license file and any additional license information attached to each sample.

Samples Layout

Version Specific Samples

Starting with iOS 8, we started adding samples that showcase specific features introduced in a release into a directory for the release. So all the new iOS 8 feature samples live in the ios8 directory, the iOS 9 features live in the ios9 directory and the iOS 10 feature lives in the ios10 directory, and so on for iOS 11.

watchOS

watchOS samples are in the watchOS directory, there are a couple of them:

tvOS

tvOS samples are in the tvos directory, including the tvOS UI Catalog.

Contributing

Before adding a sample to the repository, please run either install-hook.bat or install-hook.sh depending on whether you're on Windows or a Posix system. This will install a Git hook that runs the Xamarin code sample validator before a commit, to ensure that all samples are good to go.

Samples Submission Guidelines

Galleries

We love samples! Application samples show off our platform and provide a great way for people to learn our stuff. And we even promote them as a first-class feature of the docs site. You can find the sample galleries here:

Sample GitHub Repositories

These sample galleries are populated by samples in these GitHub repos:

The mobile-samples repository is for samples that are cross-platform. The mac-ios-samples repository is for samples that are Mac/iOS only.

Sample Requirements

We welcome sample submissions, please start by creating an issue with your proposal.

Because the sample galleries are powered by the github sample repos, each sample needs to have the following things:

  • Screenshots - a folder called Screenshots that has at least one screen shot of the sample (preferably a screen shot for every page or every major functionality piece, people really key off these things). for the xplat samples, the folder should be split into platform folders, e.g. iOS, Android, Windows. see https://github.com/xamarin/mobile-samples/tree/master/Tasky/Screenshots for an example of this.

  • Readme - a README.md file that has the name of the sample, a description, and author attribution. sample here: https://github.com/xamarin/mobile-samples/blob/master/Tasky/README.md

  • Metadata - Finally, it needs a Metadata.xml file (https://github.com/xamarin/mobile-samples/blob/master/Tasky/Metadata.xml) that has some information:

    • ID - A GUID for the sample. You can generate this in MD under Tools menu : Insert GUID. we need this to key between articles and their associated samples

    • IsFullApplication - Boolean flag (true or false): whether or not this is a full application such as the MWC App, Tasky, etc., or it's just a feature sample, such as, how to use 'x' feature. the basic test here is, if you would submit this to the app store because it's useful, then it's a full app, otherwise it's just a feature sample.

    • Brief - Short description or what your sample does. This allows us to display a nice and clean vignette on the sample page.

    • Level - Beginner, Intermediate, or Advanced: this is the intended audience level for the sample. only the getting started samples are Beginner, as they are intended for people who are just starting with the platform. most samples are Intermediate, and a few, that dive deep into difficult APIs, should be Advanced.

    • Minimum License Requirement - Starter, Indie, Business, or Enterprise: denotes the license that a user has to have in order to build/run the sample.

    • Tags: a list of relevant tags for the app. These are:

      • Data
      • User Interface
      • Games
      • Graphics (CoreDrawing, Animation, OpenGL...)
      • Media (Video, Sound, recording, photos)
      • Platform Features (Photo Library, Contacts, Calendars, etc.)
      • Device Features (NFC, Accelerometer, Compass, Magnemometer, Bluetooth, RFID)
      • Cloud (Web Services, Networking, etc.)
      • Backgrounding
      • Maps + Location
      • Binding + Interop (Projections)
      • Notifications
      • Touch
      • Getting Started
      • Async
      • Extension
      • iOS8
      • iOS9
      • iOS10
      • Watch
      • Keyboard
      • SceneKit
      • FSharp
    • SupportedPlatforms: this is only for cross plat samples. It's a comma-separated list, and the valid values are iOS, Android, and Windows.

    • Gallery: This tag must contain a value of true if you want the sample to show up in the samples gallery on the developer portal.

  • Buildable Sln and CSProj file - the project must build and have the appropriate project scaffolding (solution + proj).

A good example of this stuff is here in the drawing sample: https://github.com/xamarin/monotouch-samples/tree/master/Drawing

For a cross-platform sample, please see: https://github.com/xamarin/mobile-samples/tree/master/Tasky

GitHub Integration

We integrate tightly with Git to make sure we always provide working samples to our customers. This is achieved through a pre-commit hook that runs before your commit goes through, as well as a post-receive hook on GitHub's end that notifies our samples gallery server when changes go through.

To you, as a sample committer, this means that before you push to the repos, you should run the "install-hook.bat" or "install-hook.sh" (depending on whether you're on Windows or OS X/Linux, respectively). These will install the Git pre-commit hook. Now, whenever you try to make a Git commit, all samples in the repo will be validated. If any sample fails to validate, the commit is aborted; otherwise, your commit goes through and you can go ahead and push.

This strict approach is put in place to ensure that the samples we present to our customers are always in a good state, and to ensure that all samples integrate correctly with the sample gallery (README.md, Metadata.xml, etc). Note that the master branch of each sample repo is what we present to our customers for our stable releases, so they must always Just Work.

Should you wish to invoke validation of samples manually, simply run "validate.windows" or "validate.posix" (again, Windows vs OS X/Linux, respectively). These must be run from a Bash shell (i.e. a terminal on OS X/Linux or the Git Bash terminal on Windows).

If you have any questions, don't hesitate to ask on Xamarin Forums!