Xamarin.iOS sample apps
Перейти к файлу
Justin Johnson 5bcf0993b7 Jusjohns gallery updates (#376)
* batch run on readme files

* Some manual fixes that couldn't parse

* Some more batch fixes

* Fixed final two edge cases

* Manual fix of a parse error

* Missed bad md whitespace

* Another manual fix of parser error

* Some minor parse fixes
2019-07-18 16:35:50 -07:00
AQTapDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AUSoundTriggeredPlayingSoundMemoryBased Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AVCompositionDebugVieweriOS Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AVCustomEdit Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AVTouchSample Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AdaptiveElements Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AirLocate Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AppPrefs Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Appearance Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ApplicationFundamentals Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AsyncDownloadImage Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AudioConverterFileConverter Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AudioGenerator Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AudioQueueOfflineRenderDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
AudioTapProcessor Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
BackgroundExecution Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
BindingSample Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
BouncingGameCompleteiOS Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
BouncingGameEmptyiOS Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ButtonEventDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ButtonTapper3000 Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Calendars Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Chat Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CircleLayout Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CollectionViewTransition Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Contacts Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Controls Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CoreAnimation Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CoreImage Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CoreLocation Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CoreMidiSample Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CoreTelephonyDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CreatingTabbedApplications Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CustomCollectionViewLayoutAttributes Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CustomInputStream Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CustomPropertyAnimation Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
CustomTransitions Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Data Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
DesignerWalkthrough Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
DispatchSourceExamples Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Drawing Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
DynamicsCatalog Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
FileSystemSampleCode Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
FontList Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
FrogScroller Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
GLCameraRipple Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
GLPaint-GameView Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
GameCenterSample Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
GoogleAdMobAds/binding Pull from upstream 2015-01-19 20:39:40 +05:30
GraphicsAndAnimation Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
GrowRowTable Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
HelloWorld_iPhone Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Hello_ComplexUniversal Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Hello_MultiScreen_iPhone Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Hello_Universal Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Hello_iOS Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Hello_iPad Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
HomeKit/HomeKitIntro Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
HttpClient Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ImageProtocol Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
InfColorPicker Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
IntroToiOS7 Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
IntroductionToiCloud Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
KeyValueObserving Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Keychain Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
LazyTableImages Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
LazyTableImagesAsync Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
LifecycleDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
LineLayout Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
LocalNotifications Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Location Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
LowLevelGLPaint Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MTDJsonDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MTDReflectionWalkthrough Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MTDWalkthrough Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MTGKTapper Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ManualCameraControls Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ManualStoryboard Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MapCallouts Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MapDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MapKitSearch Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MapsWalkthrough Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MediaNotes Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MidiTest Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MonoCatalog-MonoDevelop Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MonoDevelopTouchCells Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MotionGraphs Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MoviePlayback Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
MultichannelMixer Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
NSZombieApocalypse Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
NavigationBar Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Newsstand Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Notifications Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
OpenGL Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
OpenGLESSample Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
OpenGLESSample_GameView Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
OpenGLScroller Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
PaintCode Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
PassKit Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
PeekPopNavigation Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
PickerControl Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
PinchIt Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
PokerNightVoting Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Popovers Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
PrintBanner Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
PrintSample Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
PrivacyPrompts Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Profiling/MemoryDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Protocols_Delegates_Events Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
QRchestra Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
QuartzSample Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Quotes Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Reachability Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
RecipesAndPrinting Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
RegionDefiner Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
RosyWriter Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Rotation Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ScratchTicket Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SearchDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SharedResources Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SimpleBackgroundFetch Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SimpleBackgroundTransfer Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SimpleCollectionView Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SimpleDrillDown Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SimpleLogin Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SimpleTextInput Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SoZoomy Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SocialFrameworkDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Sound Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SplitView Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SpriteKit Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SpriteKitPhysicsCollisions Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SpriteTour Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Stars Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
StateRestoration Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
StoreKit Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
StoryboardIntro Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
StoryboardTable Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
StoryboardTable_LocalAuthentication Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
StreamingAudio Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
SystemSound Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
TabbedImages Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
TableEditing Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
TableParts Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
TableSwipeActions Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
TextKitDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ThreadedCoreData Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
TicTacToe Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Touch Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
TouchesClassic Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Touches_GestureRecognizers Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
TransitionsDemo Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
UICatalog Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
UIImageEffects Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ViewTransitions Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
WalkingGameCompleteiOS Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
WalkingGameEmptyiOS Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
WatchKit Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
WayUpSample Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
WeatherMap Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
WebView Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
WorkingWithImages Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
WorkingWithTables Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
Working_with_images Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
WorldCities Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ZoomingPdfViewer Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
iOS7-ui-updates Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
intro-to-extensions Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ios7fonts Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ios8 Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ios9 Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ios10 Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ios11 Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
ios12 Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
tvos Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07:00
watchOS Jusjohns gallery updates (#376) 2019-07-18 16:35:50 -07: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
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!