Xamarin.iOS sample apps
Перейти к файлу
Brad Umbaugh 809bb522ed
Updated <Brief> wording in Metadata.xml
2018-04-04 22:44:56 -06:00
AQTapDemo Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
AUSoundTriggeredPlayingSoundMemoryBased update xibs and storyboards 2017-07-20 14:57:30 -07:00
AVCaptureFrames update xibs and storyboards 2017-07-20 14:57:30 -07:00
AVCompositionDebugVieweriOS Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
AVCustomEdit Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
AVTouchSample [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
AirLocate Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
AppPrefs Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
ApplicationFundamentals Use WeakReferences in a few places 2017-08-02 14:13:11 -04:00
AsyncDownloadImage update xibs and storyboards 2017-07-20 14:57:30 -07:00
AudioConverterFileConverter Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
AudioGenerator Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
AudioQueueOfflineRenderDemo Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
AudioTapProcessor Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
BackgroundExecution Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
BindingSample Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
BouncingGameCompleteiOS Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
BouncingGameEmptyiOS Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
BubbleCell [BubbleCell] deprecate sample 2015-05-06 22:10:05 +03:00
ButtonEventDemo Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
ButtonTapper3000 Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Calendars Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Chat [Chat] update for iPhone X 2017-12-19 09:38:13 -08:00
CircleLayout Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
CollectionViewTransition Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
ContentControls removed duplicate samples, add moveto.md 2013-02-12 10:17:22 -08:00
Controls Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
CoreAnimation update xibs and storyboards 2017-07-20 14:57:30 -07:00
CoreImage Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
CoreLocation update xibs and storyboards 2017-07-20 14:57:30 -07:00
CoreMidiSample Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
CoreTelephonyDemo fix CoreTelephonyDemo 2017-08-09 14:21:12 -07:00
CreatingTabbedApplications [ios] move resources from docs 2017-12-14 18:14:52 -08:00
CustomCollectionViewLayoutAttributes Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
CustomInputStream Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
CustomPropertyAnimation Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
CustomTransitions Xisamplearchfix (#190) 2017-10-02 09:57:23 -07:00
Data Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
DesignerWalkthrough Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
DispatchSourceExamples Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Drawing Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
DynamicsCatalog Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
EvolveGraphicsAndAnimation Adding readme for moved file. 2015-11-06 16:35:23 -05:00
FileSystemSampleCode Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
FontList update xibs and storyboards 2017-07-20 14:57:30 -07:00
FrogScroller Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
GLCameraRipple fix GLCameraRipple 2017-08-09 14:10:51 -07:00
GLPaint-GameView [XISamples]Update xibs 2017-07-21 15:01:28 -04:00
GameCenterSample Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
GoogleAdMobAds/binding Pull from upstream 2015-01-19 20:39:40 +05:30
GraphicsAndAnimation Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
GrowRowTable Adding RowHeight Property to make sample work in iOS 11 2017-09-15 14:10:06 -04:00
HelloComponents Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
HelloWorld_iPhone Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Hello_ComplexUniversal [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
Hello_MultiScreen_iPhone Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
Hello_Universal Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Hello_iOS Hello, iOS: Fixes #203, compile warnings related to icons/images. 2018-01-17 17:58:31 -07:00
Hello_iPad Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
HomeKit/HomeKitIntro Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
HttpClient [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
ImageProtocol Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
InfColorPicker added addtional attribute to pass tests and modify gitignore 2018-03-19 16:53:19 +02:00
IntroToAppearance Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
IntroToiOS7 Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
IntroductionToiCloud Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
KeyValueObserving Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Keychain [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
LazyTableImages Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
LazyTableImagesAsync Bundle identifiers fixes 2017-10-30 10:59:02 -03:00
LifecycleDemo Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
LineLayout Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
LocalNotifications - changed `CFBundleDisplayName` 2018-01-31 10:24:10 +02:00
Location - removed UITest project 2018-03-13 14:41:00 +02:00
LowLevelGLPaint [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
MTDJsonDemo Bundle identifiers fixes 2017-10-30 10:59:02 -03:00
MTDReflectionWalkthrough Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
MTDWalkthrough Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
MTGKTapper Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
ManualCameraControls Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
ManualStoryboard Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
MapCallouts [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
MapDemo Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
MapKitSearch Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
MediaNotes Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
MidiTest Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
MonoCatalog-MonoDevelop [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
MonoCatalogSample Pull from upstream 2015-01-19 20:39:40 +05:30
MonoDevelopTouchCells [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
MotionGraphs Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
MoviePlayback Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
MultichannelMixer Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
NSZombieApocalypse Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Newsstand Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Notifications Bundle identifiers fixes 2017-10-30 10:59:02 -03:00
OpenGL Delete unnecessary sln files 2017-11-22 11:38:13 -03:00
OpenGLESSample Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
OpenGLESSample_GameView remove .vs folder 2018-03-12 16:19:57 +02:00
OpenGLScroller Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
PaintCode Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
PassKit Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
PickerControl Adding Picker Control Sample 2017-08-21 16:10:59 -04:00
PinchIt Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
PokerNightVoting Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Popovers Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
PrintBanner Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
PrintSample [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
PrivacyPrompts Updating sample for iOS 11 (#182) 2017-08-23 16:08:07 -07:00
Profiling/MemoryDemo Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Protocols_Delegates_Events Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
QRchestra Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
QuartzSample [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
Quotes Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
ReachabilitySample Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
RecipesAndPrinting [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
RegionDefiner Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
RosyWriter Minor text updates 2018-03-22 10:19:23 -06:00
Rotation [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
ScratchTicket [designer] move resources from docs 2017-12-07 23:51:56 -08:00
SearchDemo Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
SharedResources Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
SimpleBackgroundFetch Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SimpleBackgroundTransfer Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SimpleCollectionView Bundle identifiers fixes 2017-10-30 10:59:02 -03:00
SimpleDrillDown Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SimpleLogin Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SimpleTextInput Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SoZoomy Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SocialFrameworkDemo Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Sound Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SplitView [XISamples]Update xibs 2017-07-21 15:01:28 -04:00
SpriteKit Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SpriteKitPhysicsCollisions Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SpriteTour Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
StandardControls removed duplicate samples, add moveto.md 2013-02-12 10:17:22 -08:00
Stars Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
StateRestoration Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
StoreKit Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
StoryboardIntro Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
StoryboardTable Adding Picker Control Sample 2017-08-21 16:10:59 -04:00
StoryboardTable_LocalAuthentication link to newer sample for iOS 11 2017-11-09 13:54:11 -08:00
StreamingAudio Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
SysSound Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Tabbed_Images Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
TableAndCellStyles removed duplicate samples, add moveto.md 2013-02-12 10:17:22 -08:00
TableEditing [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
TableParts Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
TableSwipeActions Adding Table swipe Actions sample for iOS11 swipe actions 2017-09-25 17:08:09 -04:00
TextKitDemo Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
ThreadedCoreData Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
TicTacToe Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Touch Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
TouchesClassic removed codesign key 2018-03-29 10:59:46 +03:00
Touches_GestureRecognizers Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Transitioning_To_Xcode_4 Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
TransitionsDemo Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
UIImageEffects Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
ViewTransitions Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
WalkingGameCompleteiOS Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
WalkingGameEmptyiOS Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
WatchKit Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
WayUpSample [XISamples]Update xibs 2017-07-21 12:35:56 -04:00
WeatherMap Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
WebView Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
WorkingWithImages Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
WorkingWithTables Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
Working_with_images [XI] Added `CFBundleIdentifier` property (#206) 2018-01-22 09:35:48 -08:00
WorldCities Bundle Identifier Fix 2017-10-30 11:28:42 -03:00
ZoomingPdfViewer Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
iOS7-ui-updates Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
intro-to-extensions Set deployment target to 9.0 to workaround bug 58156 2017-07-24 13:01:31 -04:00
ios7fonts Updated architecture setting to 32&64 bit, and specified iOS 9 as minimum SDK version. 2017-07-19 13:27:52 +01:00
ios8 - fix content.json files 2018-02-01 18:09:43 +02:00
ios9 remove unused assets and clear used config files 2018-03-26 11:51:42 +03:00
ios10 Merge remote-tracking branch 'upstream/master' into xi-sample-photo-app 2018-03-09 10:22:52 +02:00
ios11 Updated <Brief> wording in Metadata.xml 2018-04-04 22:44:56 -06:00
tvos 51413: fixed layout issue (#146) 2017-02-02 00:08:12 -03:00
watchOS minor corrections in readme 2018-02-28 21:28:48 -08:00
.gitattributes Add sln file (and make sure it stays as CRLF because VS needs it) for CoreTelephonyDemo. 2011-09-09 19:45:29 +02:00
.gitignore added addtional attribute to pass tests and modify gitignore 2018-03-19 16:53:19 +02:00
LICENSE clarify license for #184 2017-09-28 10:41:57 -07:00
Make.common Fix MonoCatalogSample build and include basic instructions to use the Makefile 2012-04-10 15:54:00 -04:00
Makefile Add a convenient Makefile to build the samples 2016-01-15 22:53:14 -05:00
README.md minor corrections in readme 2018-02-28 21:15:51 -08:00
Xamarin.Edu.SampleGallery.Core.dll Update sample validator. 2012-07-05 19:30:05 +02:00
install-hook.sh Set executable bit on install-hook.sh and pre-commit.posix. 2011-09-27 19:14:23 +02:00
mdtool-build Fix mdtool build invocation. 2011-10-04 11:53:52 +02:00
pre-commit.posix Fix pre-commit script's use of ==. 2012-02-20 18:45:41 +01:00
validate.posix Fix usage of `find` in some scripts. 2012-02-17 21:39:36 +01:00
xcsv.exe Update sample validator. 2012-07-05 19:30:05 +02:00

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!