Xamarin.iOS sample apps
Перейти к файлу
conceptdev 748e927fad remove hashtags ios9 ios10 watchos 2019-07-24 17:48:58 -07:00
.vscode Create settings.json 2019-07-19 19:12:39 -07:00
AQTapDemo remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AUSoundTriggeredPlayingSoundMemoryBased Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AVCompositionDebugVieweriOS remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AVCustomEdit remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AVTouchSample remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AdaptiveElements remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AirLocate remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AppPrefs remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
Appearance remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
ApplicationFundamentals remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AsyncDownloadImage remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AudioConverterFileConverter remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AudioGenerator remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AudioQueueOfflineRenderDemo remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
AudioTapProcessor remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
BackgroundExecution remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
BindingSample remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
BouncingGameCompleteiOS remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
BouncingGameEmptyiOS remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
ButtonEventDemo remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
ButtonTapper3000 remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
Calendars remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
Chat remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CircleLayout remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CollectionViewTransition remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
Contacts remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
Controls remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CoreAnimation remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CoreImage remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CoreLocation remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CoreMidiSample remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CoreTelephonyDemo remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CreatingTabbedApplications remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CustomCollectionViewLayoutAttributes Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CustomInputStream remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CustomPropertyAnimation remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
CustomTransitions remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
Data remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
DesignerWalkthrough remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
DispatchSourceExamples remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
Drawing remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
DynamicsCatalog remove invalid yaml metadata 2019-07-19 19:15:52 -07:00
FileSystemSampleCode update readme, fix links (watchos) 2019-07-24 10:13:17 -07:00
FontList update readme, fix links (watchos) 2019-07-24 10:13:17 -07:00
FrogScroller #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
GLCameraRipple update readmes, fix links 2019-07-23 12:04:22 -07:00
GLPaint-GameView update readmes, fix links 2019-07-23 12:04:22 -07:00
GameCenterSample #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
GoogleAdMobAds/binding Pull from upstream 2015-01-19 20:39:40 +05:30
GraphicsAndAnimation update readmes, fix links 2019-07-23 12:04:22 -07:00
GrowRowTable update readmes, fix links 2019-07-23 12:04:22 -07:00
HelloWorld_iPhone update readmes, fix links 2019-07-23 12:04:22 -07:00
Hello_ComplexUniversal update readmes, fix links 2019-07-23 12:04:22 -07:00
Hello_MultiScreen_iPhone update readmes, fix links 2019-07-23 12:04:22 -07:00
Hello_Universal update readmes, fix links 2019-07-23 12:04:22 -07:00
Hello_iOS update readmes, fix links 2019-07-23 12:04:22 -07:00
Hello_iPad update readmes, fix links 2019-07-23 12:04:22 -07:00
HomeKit/HomeKitIntro update readmes, fix links 2019-07-23 12:04:22 -07:00
HttpClient #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
ImageProtocol #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
InfColorPicker #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
IntroToiOS7 #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
IntroductionToiCloud #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
KeyValueObserving Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Keychain update readmes, fix links 2019-07-23 12:04:22 -07:00
LazyTableImages update readmes, fix links 2019-07-23 12:04:22 -07:00
LazyTableImagesAsync update readmes, fix links 2019-07-23 12:04:22 -07:00
LifecycleDemo update readmes, fix links 2019-07-23 12:04:22 -07:00
LineLayout update readmes, fix links 2019-07-23 12:04:22 -07:00
LocalNotifications update readmes, fix links 2019-07-23 12:04:22 -07:00
Location update readmes, fix links 2019-07-23 12:04:22 -07:00
LowLevelGLPaint update readmes, fix links 2019-07-23 12:04:22 -07:00
MTDJsonDemo update readme, fix links 2019-07-23 13:26:12 -07:00
MTDReflectionWalkthrough update readme, fix links 2019-07-23 13:26:12 -07:00
MTDWalkthrough update readme, fix links 2019-07-23 13:26:12 -07:00
MTGKTapper update readme, fix links 2019-07-23 13:26:12 -07:00
ManualCameraControls update readmes, fix links 2019-07-23 12:04:22 -07:00
ManualStoryboard update readmes, fix links 2019-07-23 12:04:22 -07:00
MapCallouts update readmes, fix links 2019-07-23 12:04:22 -07:00
MapDemo update readmes, fix links 2019-07-23 12:04:22 -07:00
MapKitSearch update readmes, fix links 2019-07-23 12:04:22 -07:00
MapsWalkthrough update readmes, fix links 2019-07-23 12:04:22 -07:00
MediaNotes Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MidiTest update readme, fix links 2019-07-23 13:26:12 -07:00
MonoCatalog-MonoDevelop update readme, fix links 2019-07-23 13:26:12 -07:00
MonoDevelopTouchCells update readme, fix links 2019-07-23 13:26:12 -07:00
MotionGraphs update readme, fix links 2019-07-23 13:26:12 -07:00
MoviePlayback update readme, fix links 2019-07-23 13:26:12 -07:00
MultichannelMixer update readme, fix links 2019-07-23 13:26:12 -07:00
NSZombieApocalypse update readme, fix links 2019-07-23 13:26:12 -07:00
NavigationBar update readme, fix links 2019-07-23 13:26:12 -07:00
Newsstand update readme, fix links 2019-07-23 13:26:12 -07:00
Notifications update readme, fix links 2019-07-23 13:26:12 -07:00
OpenGL update readme, fix links 2019-07-23 13:26:12 -07:00
OpenGLESSample update readme, fix links 2019-07-23 13:26:12 -07:00
OpenGLESSample_GameView update readme, fix links 2019-07-23 13:26:12 -07:00
OpenGLScroller update readme, fix links 2019-07-23 13:26:12 -07:00
PaintCode update readme, fix links 2019-07-23 13:26:12 -07:00
PassKit update readme, fix links 2019-07-23 13:26:12 -07:00
PeekPopNavigation update readme, fix links 2019-07-23 13:26:12 -07:00
PickerControl update readme, fix links 2019-07-23 13:26:12 -07:00
PinchIt update readme, fix links 2019-07-23 13:26:12 -07:00
PokerNightVoting update readme, fix links 2019-07-23 13:26:12 -07:00
Popovers update readme, fix links 2019-07-23 13:26:12 -07:00
PrintBanner update readme, fix links 2019-07-23 13:26:12 -07:00
PrintSample remove invalid yaml markup 2019-07-19 22:36:19 -07:00
PrivacyPrompts remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Profiling/MemoryDemo remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Protocols_Delegates_Events remove invalid yaml markup 2019-07-19 22:36:19 -07:00
QRchestra remove invalid yaml markup 2019-07-19 22:36:19 -07:00
QuartzSample remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Quotes remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Reachability remove invalid yaml markup 2019-07-19 22:36:19 -07:00
RecipesAndPrinting remove invalid yaml markup 2019-07-19 22:36:19 -07:00
RegionDefiner remove invalid yaml markup 2019-07-19 22:36:19 -07:00
RosyWriter remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Rotation remove invalid yaml markup 2019-07-19 22:36:19 -07:00
ScratchTicket remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SearchDemo remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SharedResources remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SimpleBackgroundFetch remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SimpleBackgroundTransfer remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SimpleCollectionView remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SimpleDrillDown remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SimpleLogin remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SimpleTextInput remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SoZoomy remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SocialFrameworkDemo remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Sound remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SplitView remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SpriteKit remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SpriteKitPhysicsCollisions remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SpriteTour remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Stars remove invalid yaml markup 2019-07-19 22:36:19 -07:00
StateRestoration remove invalid yaml markup 2019-07-19 22:36:19 -07:00
StoreKit remove invalid yaml markup 2019-07-19 22:36:19 -07:00
StoryboardIntro Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
StoryboardTable remove invalid yaml markup 2019-07-19 22:36:19 -07:00
StoryboardTable_LocalAuthentication remove invalid yaml markup 2019-07-19 22:36:19 -07:00
StreamingAudio remove invalid yaml markup 2019-07-19 22:36:19 -07:00
SystemSound remove invalid yaml markup 2019-07-19 22:36:19 -07:00
TabbedImages remove invalid yaml markup 2019-07-19 22:36:19 -07:00
TableEditing remove invalid yaml markup 2019-07-19 22:36:19 -07:00
TableParts remove invalid yaml markup 2019-07-19 22:36:19 -07:00
TableSwipeActions remove invalid yaml markup 2019-07-19 22:36:19 -07:00
TextKitDemo remove invalid yaml markup 2019-07-19 22:36:19 -07:00
ThreadedCoreData remove invalid yaml markup 2019-07-19 22:36:19 -07:00
TicTacToe remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Touch remove invalid yaml markup 2019-07-19 22:36:19 -07:00
TouchesClassic remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Touches_GestureRecognizers remove invalid yaml markup 2019-07-19 22:36:19 -07:00
TransitionsDemo remove invalid yaml markup 2019-07-19 22:36:19 -07:00
UICatalog remove invalid yaml markup 2019-07-19 22:36:19 -07:00
UIImageEffects remove invalid yaml markup 2019-07-19 22:36:19 -07:00
ViewTransitions remove invalid yaml markup 2019-07-19 22:36:19 -07:00
WalkingGameCompleteiOS remove invalid yaml markup 2019-07-19 22:36:19 -07:00
WalkingGameEmptyiOS remove invalid yaml markup 2019-07-19 22:36:19 -07:00
WatchKit remove unused YAML key 2019-07-22 09:54:03 -07:00
WayUpSample remove invalid yaml markup 2019-07-19 22:36:19 -07:00
WeatherMap remove invalid yaml markup 2019-07-19 22:36:19 -07:00
WebView remove invalid yaml markup 2019-07-19 22:36:19 -07:00
WorkingWithImages remove invalid yaml markup 2019-07-19 22:36:19 -07:00
WorkingWithTables remove invalid yaml markup 2019-07-19 22:36:19 -07:00
Working_with_images remove invalid yaml markup 2019-07-19 22:36:19 -07:00
WorldCities remove invalid yaml markup 2019-07-19 22:36:19 -07:00
ZoomingPdfViewer update readme, fix links (watchos) 2019-07-24 10:13:17 -07:00
iOS7-ui-updates #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
intro-to-extensions update readmes, fix links 2019-07-23 12:04:22 -07:00
ios7fonts #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
ios8 update readme, fix links (watchos) 2019-07-24 10:13:17 -07:00
ios9 remove hashtags ios9 ios10 watchos 2019-07-24 17:48:58 -07:00
ios10 remove hashtags ios9 ios10 watchos 2019-07-24 17:48:58 -07:00
ios11 Update README.md 2019-07-22 15:55:40 -07:00
ios12 Update README.md 2019-07-22 15:42:30 -07:00
tvos Update README.md 2019-07-22 15:05:54 -07:00
watchOS remove hashtags ios9 ios10 watchos 2019-07-24 17:48:58 -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 ignore vscode settings 2019-07-22 10:41:25 -07: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!