Xamarin.iOS sample apps
Перейти к файлу
TJ Lambert 5a208fd538 Removing multiple this 2022-01-25 08:53:02 -06:00
.vscode Create settings.json 2019-07-19 19:12:39 -07:00
AQTapDemo Update README.md 2019-10-23 10:33:02 -07:00
AUSoundTriggeredPlayingSoundMemoryBased Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
AVCompositionDebugVieweriOS onboard missing samples 2019-08-01 19:56:58 -07:00
AVCustomEdit onboard missing samples 2019-08-01 19:56:58 -07:00
AVTouchSample onboard missing samples 2019-08-01 19:56:58 -07:00
AdaptiveElements onboard missing samples 2019-08-01 19:56:58 -07:00
AirLocate onboard missing samples 2019-08-01 19:56:58 -07:00
AppPrefs onboard missing samples 2019-08-01 19:56:58 -07:00
Appearance onboard missing samples 2019-08-01 19:56:58 -07:00
ApplicationFundamentals onboard missing samples 2019-08-02 10:53:41 -07:00
AsyncDownloadImage onboard missing samples 2019-08-01 19:56:58 -07:00
AudioConverterFileConverter Update README.md 2019-10-23 09:59:32 -07:00
AudioGenerator onboard missing samples 2019-08-01 19:56:58 -07:00
AudioQueueOfflineRenderDemo onboard missing samples 2019-08-01 19:56:58 -07:00
AudioTapProcessor onboard missing samples 2019-08-01 19:56:58 -07:00
BackgroundExecution onboard missing samples 2019-08-02 10:53:41 -07:00
BindingSample update header yaml 2019-07-29 17:25:06 -07:00
BouncingGameCompleteiOS onboard missing samples 2019-08-01 19:56:58 -07:00
BouncingGameEmptyiOS onboard missing samples 2019-08-01 19:56:58 -07:00
ButtonEventDemo onboard missing samples 2019-08-01 19:56:58 -07:00
ButtonTapper3000 onboard missing samples 2019-08-01 19:56:58 -07:00
Calendars onboard missing samples 2019-08-01 19:45:18 -07:00
Chat onboard missing samples 2019-08-01 19:45:18 -07:00
CircleLayout onboard missing samples 2019-08-01 19:45:18 -07:00
CollectionViewTransition onboard missing samples 2019-08-01 19:45:18 -07:00
Contacts update yaml headers 2019-07-29 16:44:16 -07:00
Controls onboard missing samples 2019-08-01 19:45:18 -07:00
CoreAnimation onboard missing samples 2019-08-01 19:45:18 -07:00
CoreImage onboard missing samples 2019-08-01 19:45:18 -07:00
CoreLocation onboard missing samples 2019-08-01 19:45:18 -07:00
CoreMidiSample onboard missing samples 2019-08-01 19:45:18 -07:00
CoreTelephonyDemo onboard missing samples 2019-08-01 19:45:18 -07:00
CreatingTabbedApplications onboard missing samples 2019-08-01 19:45:18 -07:00
CustomCollectionViewLayoutAttributes de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
CustomInputStream onboard missing samples 2019-08-01 19:45:18 -07:00
CustomPropertyAnimation onboard missing samples 2019-08-01 19:45:18 -07:00
CustomTransitions onboard missing samples 2019-08-01 19:45:18 -07:00
Data onboard missing samples 2019-08-01 19:45:18 -07:00
DesignerWalkthrough onboard missing samples 2019-08-01 20:25:15 -07:00
DispatchSourceExamples onboard missing samples 2019-08-01 20:25:15 -07:00
Drawing onboard missing samples 2019-08-01 20:25:15 -07:00
DynamicsCatalog onboard missing samples 2019-08-01 20:25:15 -07:00
FileSystemSampleCode Remove invalid project from FileSystemSampleCode (#404) 2020-08-12 17:24:44 -04: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 remove hashtag ios8 ios7 ios6 2019-07-24 18:49:13 -07:00
HelloWorld_iPhone onboard missing samples 2019-08-01 20:25:15 -07:00
Hello_ComplexUniversal onboard missing samples 2019-08-01 20:25:15 -07:00
Hello_MultiScreen_iPhone onboard missing samples 2019-08-01 20:25:15 -07:00
Hello_Universal onboard missing samples 2019-08-01 20:25:15 -07:00
Hello_iOS de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
Hello_iPad onboard missing samples 2019-08-01 20:25:15 -07:00
HomeKit/HomeKitIntro onboard missing samples 2019-08-01 20:25:15 -07:00
HttpClient update header yaml 2019-07-29 17:25:06 -07:00
ImageProtocol #ios7 & #ios8 tags, and fix links 2019-07-22 12:02:27 -07:00
InfColorPicker remove samples from Browse portal rendering 2019-10-15 15:45:38 -07:00
IntroToiOS7 de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
IntroductionToiCloud de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
KeyValueObserving Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
Keychain update yaml headers 2019-07-29 16:44:16 -07:00
LazyTableImages de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
LazyTableImagesAsync de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
LifecycleDemo onboard missing samples 2019-08-01 22:09:15 -07:00
LineLayout onboard missing samples 2019-08-01 22:09:15 -07:00
LocalNotifications onboard missing samples 2019-08-01 22:09:15 -07:00
Location onboard missing samples 2019-08-01 22:09:15 -07:00
LowLevelGLPaint onboard missing samples 2019-08-01 22:09:15 -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 onboard missing samples 2019-08-01 22:09:15 -07:00
ManualStoryboard Update README.md 2019-07-30 18:37:07 -07:00
MapCallouts onboard missing samples 2019-08-01 22:09:15 -07:00
MapDemo onboard missing samples 2019-08-01 22:09:15 -07:00
MapKitSearch onboard missing samples 2019-08-01 22:09:15 -07:00
MapsWalkthrough onboard missing samples 2019-08-01 22:09:15 -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 yaml headers 2019-07-29 16:44:16 -07:00
NSZombieApocalypse onboard missing samples 2019-08-01 22:09:15 -07:00
NavigationBar update readme, fix links 2019-07-23 13:26:12 -07:00
Newsstand de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
Notifications update readme, fix links 2019-07-23 13:26:12 -07:00
OpenGL onboard missing samples 2019-08-01 22:09:15 -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.md 2019-09-23 19:12:50 -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 onboard missing samples 2019-08-01 22:24:39 -07:00
PrivacyPrompts onboard missing samples 2019-08-01 22:24:39 -07:00
Profiling/MemoryDemo [MemoryDemo] Make sure the same output path isn't used with multiple configurations. (#395) 2019-12-02 22:38:49 +01:00
Protocols_Delegates_Events onboard missing samples 2019-08-03 11:47:38 -07:00
QRchestra onboard missing samples 2019-08-01 22:24:39 -07:00
QuartzSample onboard missing samples 2019-08-01 22:24:39 -07:00
Quotes onboard missing samples 2019-08-01 22:24:39 -07:00
Reachability onboard missing samples 2019-08-01 22:24:39 -07:00
RecipesAndPrinting onboard missing samples 2019-08-01 22:24:39 -07:00
RegionDefiner onboard missing samples 2019-08-01 22:24:39 -07:00
RosyWriter onboard missing samples 2019-08-01 22:24:39 -07:00
Rotation onboard missing samples 2019-08-01 22:24:39 -07:00
ScratchTicket onboard missing samples 2019-08-01 22:24:39 -07:00
SearchDemo onboard missing samples 2019-08-01 22:24:39 -07:00
SharedResources onboard missing samples 2019-08-02 09:31:19 -07:00
SimpleBackgroundFetch onboard missing samples 2019-08-02 09:31:19 -07:00
SimpleBackgroundTransfer Correct SimpleBackgroundTransfer sample to export optional protocol selectors (#410) 2020-11-03 09:42:43 -06:00
SimpleCollectionView onboard missing samples 2019-08-02 09:31:19 -07:00
SimpleDrillDown onboard missing samples 2019-08-02 09:31:19 -07:00
SimpleLogin onboard missing samples 2019-08-02 09:31:19 -07:00
SimpleTextInput onboard missing samples 2019-08-02 09:31:19 -07:00
SoZoomy onboard missing samples 2019-08-02 09:31:19 -07:00
SocialFrameworkDemo onboard missing samples 2019-08-02 09:31:19 -07:00
Sound onboard missing samples 2019-08-02 09:31:19 -07:00
SplitView onboard missing samples 2019-08-02 09:31:19 -07:00
SpriteKit onboard missing samples 2019-08-03 11:47:38 -07:00
SpriteKitPhysicsCollisions onboard missing samples 2019-08-02 09:31:19 -07:00
SpriteTour onboard missing samples 2019-08-02 09:31:19 -07:00
Stars onboard missing samples 2019-08-02 09:31:19 -07:00
StateRestoration update header yaml 2019-07-29 19:48:37 -07:00
StoreKit de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
StoryboardIntro Switched to 64-bit only builds. 2018-08-07 14:13:47 +01:00
StoryboardTable update header yaml 2019-07-29 19:48:37 -07:00
StoryboardTable_LocalAuthentication de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
StreamingAudio update header yaml 2019-07-29 19:48:37 -07:00
SystemSound update header yaml 2019-07-29 19:48:37 -07:00
TabbedImages update header yaml 2019-07-29 19:48:37 -07:00
TableEditing update header yaml 2019-07-29 19:48:37 -07:00
TableParts update header yaml 2019-07-29 19:48:37 -07:00
TableSwipeActions Update README.md 2019-07-30 18:54:54 -07:00
TextKitDemo update header yaml 2019-07-29 19:48:37 -07:00
ThreadedCoreData update header yaml 2019-07-29 19:48:37 -07:00
TicTacToe onboard mssing samples 2019-08-01 22:35:19 -07:00
Touch onboard mssing samples 2019-08-01 22:35:19 -07:00
TouchesClassic onboard mssing samples 2019-08-01 22:35:19 -07:00
Touches_GestureRecognizers de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
TransitionsDemo onboard missing samples 2019-08-02 09:09:43 -07:00
UICatalog [UICatalog] Fix ambiguous call in sample (#408) 2020-10-30 16:27:39 -04:00
UIImageEffects onboard missing samples 2019-08-02 09:09:43 -07:00
ViewTransitions onboard missing samples 2019-08-02 09:09:43 -07:00
WalkingGameCompleteiOS onboard missing samples 2019-08-02 09:09:43 -07:00
WalkingGameEmptyiOS onboard missing samples 2019-08-02 09:09:43 -07:00
WatchKit de-duplicate csproj GUIDs (#379) 2019-08-16 14:23:29 -07:00
WayUpSample onboard missing samples 2019-08-02 09:09:43 -07:00
WeatherMap onboard missing samples 2019-08-02 09:09:43 -07:00
WebView onboard missing samples 2019-08-02 09:09:43 -07:00
WorkingWithImages onboard missing samples 2019-08-02 09:09:43 -07:00
WorkingWithTables de-duplicate csproj GUIDs (#380) 2019-08-16 15:57:33 -07:00
Working_with_images onboard missing samples 2019-08-02 09:09:43 -07:00
WorldCities onboard missing samples 2019-08-02 09:09:43 -07:00
ZoomingPdfViewer update readme, fix links (watchos) 2019-07-24 10:13:17 -07:00
dotnet/ios/ios12/MarsHabitatPricePredictor Removing multiple this 2022-01-25 08:53:02 -06:00
iOS7-ui-updates remove hashtag ios8 ios7 ios6 2019-07-24 18:49:13 -07:00
intro-to-extensions Fix intro-to-extensions info.plist (#417) 2021-09-07 13:47:27 -05:00
ios7fonts remove hashtag ios8 ios7 ios6 2019-07-24 18:49:13 -07:00
ios8 remove samples from Browse portal rendering 2019-10-15 15:45:38 -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 Fix threading issue when NFC scan times out (#387) 2019-09-25 17:02:44 -05:00
ios12 [SoupChef] Fix build with Xcode 12.2 (#409) 2020-10-30 16:51:17 -04:00
ios13 Fix ColorFeed sample by adding required Info.plist keys (#393) 2020-04-06 19:20:17 -05:00
tvos update header yaml (tvOS) 2019-07-29 19:56:25 -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 [yaml] update repo readme for new code browser (#378) 2019-08-12 13:52:18 -07: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 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 ios11, ios12, ios13...

watchOS

watchOS samples are in the watchOS directory, including:

NOTE: The WatchKit samples are deprecated, please refer to these samples in the watchOS directory.

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 on each platform (preferably a screen shot for every page or every major piece of functionality). For an example of this, see ios11/MapKitSample.

  • Readme - a README.md file that explains the sample, and contains metadata to help customers find it. For an example of this, see ios11/MapKitSample. The README file should begin with a YAML header (delimited by ---) with the following keys/values:

    • name - must begin with Xamarin.iOS -

      • description - brief description of the sample (< 150 chars) that appears in the sample code browser search

      • page_type - must be the string sample.

      • languages - coding language/s used in the sample, such as: csharp, fsharp, vb, objc

      • products: should be xamarin for every sample in this repo

      • urlFragment: although this can be auto-generated, please supply an all-lowercase value that represents the sample's path in this repo, except directory separators are replaced with dashes (-) and no other punctuation.

      Here is a working example from ios11/MapKitSample README raw view.

      ---
      name: Xamarin.iOS - MapKit Sample
      description: "Demo of new iOS 11 features in MapKit, grouping and splitting markers based on zoom-level. Tandm is a fictional bike sharing... (iOS11)"
      page_type: sample
      languages:
      - csharp
      products:
      - xamarin
      urlFragment: ios11-mapkitsample
      ---
      # Heading 1
      
      rest of README goes here, including screenshot images and requirements/instructions to get it running
      

      NOTE: This must be valid YAML, so some characters in the name or description will require the entire string to be surrounded by " or ' quotes.

  • Buildable solution and .csproj file - the project must build and have the appropriate project scaffolding (solution + .csproj files).

This approach ensures that all samples integrate with the Microsoft sample code browser.

A good example of this stuff is here in the iOS 11 maps sample: https://github.com/xamarin/ios-samples/tree/master/ios11/MapKitSample

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 macOS/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 macOS/Linux, respectively). These must be run from a Bash shell (i.e. a terminal on macOS/Linux or the Git Bash terminal on Windows).

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