Xamarin.iOS sample apps
Перейти к файлу
Craig Dunn 0290a26dd6 remove icons, use assets, add launchscreen 2018-09-14 16:12:18 -07:00
AQTapDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AUSoundTriggeredPlayingSoundMemoryBased Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AVCaptureFrames Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AVCompositionDebugVieweriOS Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AVCustomEdit Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AVTouchSample Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AirLocate Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AppPrefs Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ApplicationFundamentals Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AsyncDownloadImage Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AudioConverterFileConverter Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AudioGenerator Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AudioQueueOfflineRenderDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AudioTapProcessor Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
BackgroundExecution Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
BindingSample Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
BouncingGameCompleteiOS Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
BouncingGameEmptyiOS Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ButtonEventDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ButtonTapper3000 Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Calendars Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Chat Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CircleLayout Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CollectionViewTransition Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Controls Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CoreAnimation Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CoreImage Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CoreLocation Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CoreMidiSample Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CoreTelephonyDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CreatingTabbedApplications Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CustomCollectionViewLayoutAttributes Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CustomInputStream Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CustomPropertyAnimation Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
CustomTransitions Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Data Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
DesignerWalkthrough Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
DispatchSourceExamples Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Drawing Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
DynamicsCatalog Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
FileSystemSampleCode Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
FontList Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
FrogScroller Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
GLCameraRipple Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
GLPaint-GameView Switched to 64-bit only builds. 2018-08-07 14:13:47 +01: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 Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
GrowRowTable Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
HelloWorld_iPhone Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Hello_ComplexUniversal Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Hello_MultiScreen_iPhone Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Hello_Universal Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Hello_iOS Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Hello_iPad Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
HomeKit/HomeKitIntro Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
HttpClient Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ImageProtocol Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
InfColorPicker Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
IntroToAppearance Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
IntroToiOS7 Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
IntroductionToiCloud Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
KeyValueObserving Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Keychain Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
LazyTableImages Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
LazyTableImagesAsync Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
LifecycleDemo fixed release config (#251) 2018-07-20 09:31:39 -07:00
LineLayout Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
LocalNotifications Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Location Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
LowLevelGLPaint Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MTDJsonDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MTDReflectionWalkthrough Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MTDWalkthrough Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MTGKTapper Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ManualCameraControls Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ManualStoryboard Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MapCallouts Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MapDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MapKitSearch Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MapsWalkthrough Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MediaNotes Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MidiTest Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MonoCatalog-MonoDevelop Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MonoCatalogSample Pull from upstream 2015-01-19 20:39:40 +05:30
MonoDevelopTouchCells Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MotionGraphs Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MoviePlayback Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
MultichannelMixer Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
NSZombieApocalypse Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Newsstand Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Notifications Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
OpenGL Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
OpenGLESSample Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
OpenGLESSample_GameView Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
OpenGLScroller Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
PaintCode Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
PassKit Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
PickerControl Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
PinchIt Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
PokerNightVoting Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Popovers Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
PrintBanner Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
PrintSample Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
PrivacyPrompts Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Profiling/MemoryDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Protocols_Delegates_Events remove icons, use assets, add launchscreen 2018-09-14 16:12:18 -07:00
QRchestra Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
QuartzSample Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Quotes Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ReachabilitySample Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
RecipesAndPrinting Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
RegionDefiner Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
RosyWriter Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Rotation Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ScratchTicket Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SearchDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SharedResources Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SimpleBackgroundFetch Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SimpleBackgroundTransfer Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SimpleCollectionView Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SimpleDrillDown Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SimpleLogin Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SimpleTextInput Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SoZoomy Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SocialFrameworkDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Sound Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SplitView Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SpriteKit Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SpriteKitPhysicsCollisions Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SpriteTour Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Stars Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
StateRestoration Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
StoreKit Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
StoryboardIntro Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
StoryboardTable Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
StoryboardTable_LocalAuthentication Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
StreamingAudio Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
SysSound Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Tabbed_Images Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
TableEditing Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
TableParts Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
TableSwipeActions Set MtouchHttpClientHandler to NSUrlSessionHandler for all samples 2018-05-02 12:28:55 -06:00
TextKitDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ThreadedCoreData Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
TicTacToe Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Touch Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
TouchesClassic Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Touches_GestureRecognizers Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
TransitionsDemo Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
UIImageEffects Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ViewTransitions Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
WalkingGameCompleteiOS Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
WalkingGameEmptyiOS Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
WatchKit Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
WayUpSample Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
WeatherMap Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
WebView Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
WorkingWithImages Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
WorkingWithTables Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Working_with_images Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
WorldCities Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ZoomingPdfViewer Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
iOS7-ui-updates Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
intro-to-extensions Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ios7fonts Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ios8 Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ios9 Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ios10 Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
ios11 fix ArgumentNullException when passing null to CopyProperties 2018-08-15 14:10:52 -06:00
ios12 Fixed 'XamarinNL' sample (#275) 2018-09-14 04:33:04 -04:00
tvos Set MtouchHttpClientHandler to NSUrlSessionHandler for all samples 2018-05-02 12:28:55 -06:00
watchOS Switched to 64-bit only builds. 2018-08-07 14:13:47 +01: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!