Windows-Apps-Konzeptzuordnung für Android- und iOS-EntwicklerWindows apps concept mapping for Android and iOS developers

Wenn Sie Entwickler mit Android- oder iOS-Kenntnissen sind und/oder über den entsprechenden Code verfügen und zu Windows 10 und zur universellen Windows-Plattform (UWP) wechseln möchten, bietet Ihnen dieser Artikel alle Informationen, die Sie für die Zuordnung der Plattformfeatures – und Ihrer Kenntnisse – zwischen den drei Plattformen benötigen.If you're a developer with Android or iOS skills and/or code, and you want to make the move to Windows 10 and the Universal Windows Platform (UWP), then this resource has all you need to map platform features—and your knowledge—between the three platforms.

Siehe auch die Portierungsinformationen in Wechsel von iOS zu UWP.Also see the porting content in Move from iOS to UWP. Dieses Dokument kann heruntergeladen werden.This document is also available as a download.

BenutzeroberflächeUser-interface (UI)

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Entwurfs Sprache.Design language.

Eine Reihe von Konventionen für das Aussehen und Verhalten von Apps auf der Plattform.A set of conventions that prescribe how apps on the platform should look and behave.
Die Richtlinien von Material Design für Android bieten eine visuelle Sprache für Android-Designer und -Entwickler.Android Material Design guidelines provide a visual language for Android designers and developers to follow. Die Richtlinien für Eingabegeräte bieten Empfehlungen für iOS-Designer und -Entwickler.Human Interface Guidelines provide advice for iOS designers and developers. UWP-Windows-apps-Entwurf zeigt Ihnen, wie Sie eine APP erstellen, die auf allen Windows 10-Geräten fantastisch aussieht.UWP Windows Apps Design shows you how to create an app that looks fantastic on all Windows 10 devices. Dort finden Sie Grundlagen zum Benutzeroberflächenentwurf, Techniken für reaktionsfähiges Design und eine umfassende Liste ausführlicher Richtlinien.You will find user-interface (UI) design fundamentals, responsive design techniques, and a full list of detailed guidelines.
Markup Sprache der Benutzeroberfläche. User interface markup language.

Eine Markupsprache, mit der die Benutzeroberfläche und ihre Komponenten gerendert und beschrieben werden.A markup language that renders and describes a UI and its components. Jede Plattform bietet einen Editor für die visuelle Bearbeitung und Markupbearbeitung.Each platform provides an editor for both visual and markup editing.
XML-Layouts, mit Android Studio oder Eclipse bearbeitet.XML layouts, edited using Android Studio or Eclipse. XIB und Storyboards, mit Interface Builder in Xcode bearbeitet.XIB and Storyboards edited using Interface Builder inside Xcode. XAML, bearbeitet mit Microsoft Visual Studio und Blend für Visual Studio.XAML, edited using Microsoft Visual Studio and Blend for Visual Studio.

XAML-PlattformXAML platform

Erstellen einer Benutzeroberfläche mit XAMLCreate a UI with XAML

Definieren von Layouts mit XAMLDefine Layouts with XAML
Integrierte Steuerelemente der Benutzeroberfläche. Built-in user interface controls.

Von der Plattform bereitgestellte wiederverwendbare UI-Elemente, z. B. Schaltflächen, Listensteuerelemente und Textsteuerelemente.Reusable UI elements provided by the platform such as buttons, list controls, and text controls.
Vordefinierte Ansichtsklassen und Ansichtsgruppenklassen, die als Widgets, Layouts, Textfelder, Container, Datums- und Uhrzeitsteuerelemente und Expertensteuerelemente bezeichnet werden.Prebuilt view and view group classes referred to as widgets, layouts, text fields, containers, date/time controls and expert controls. Ansichten und Steuerelemente in der Xcode-Objektbibliothek und im UIKit-Benutzeroberflächenkatalog.Views and controls found in the Xcode object library and listed in the UIKit user interface catalog. Ansichten umfassen Bildansichten, Auswahlansichten und Bildlaufansichten.Views include image views, picker views and scroll views. Steuerelemente umfassen Schaltflächen, Datumsauswahl und Textfelder.Controls include buttons, date pickers and text fields. Die XAML-Plattform bietet Ihnen einen reichhaltigen Satz integrierter Steuerelemente, z. B. Schaltflächen, Listensteuerelemente, Panels, Textsteuerelemente, Befehlsleisten, Auswahl, Medien und Freihandeingabe.The XAML platform provides you with a generous set of built-in controls such as buttons, list controls, panels, text controls, command bars, pickers, media, and inking.

Hinzufügen von Steuerelementen und Verarbeiten von EreignissenAdd controls and handle events
Steuern der Ereignis Behandlung. Control event-handling.

Definieren der Logik, die ausgeführt wird, wenn in UI-Steuerelementen Ereignisse ausgelöst werden.Defining the logic that runs when events are triggered within UI controls.
Ereignishandler und Ereignislistener werden in XML oder programmgesteuert hinzugefügt.Event handlers and event listeners are added in XML or programmatically. Steuerelemente senden Action-Meldungen an Ziele.Controls send action messages to targets. Sie können Methoden zum Behandeln der Ereignisse eines XAML-Steuerelements in einer CodeBehind-Datei, die der XAML-Seite zugeordnet ist, definieren.You can define methods to handle the events of a XAML control in a code-behind file attached to the XAML page. Ereignishandler werden immer in Code geschrieben.Event handlers are always written in code. Sie können jedoch diese Handler im XAML-Markup oder im Code mit Ereignissen verbinden.But you can hook those handlers to events either in XAML markup or in code.

Hinzufügen von Steuerelementen und Verarbeiten von EreignissenAdd controls and handle events

Übersicht über Ereignisse und RoutingereignisseEvents and routed events overview
Datenbindung. Data binding.

Ein Softwaredesignmuster, das der App-UI das Rendern von Daten und optional das Synchronisieren mit diesen Daten ermöglicht.A software design pattern that allows your app UI to render data and optionally stay in sync with that data.
Es wird eine Datenbindungsbibliothek bereitgestellt, bislang jedoch nur als Betaversion.There is a Data Binding Library provided, although it is still in beta. In iOS ist kein integriertes Bindungssystem vorhanden.No built-in bindings system exists on iOS. Key-Value Observing kann als Grundlage für die Datenbindung verwendet werden, entweder mithilfe einer Drittanbieterbibliothek oder durch das Schreiben von zusätzlichem Code.Key-value observing can be built upon to perform data binding, either with the use of a third-party library, or writing additional code. Steuerelemente verwenden zum Abrufen von Daten Delegate/Rückrufe.Controls use a delegate/callback approach for obtaining data. Die Datenbindung erfolgt durch die UWP-Plattform.The UWP platform handles data binding for you. Mit der {x:Bind}-Markuperweiterung nutzen Sie eine Bindung oder {Binding} mit hoher Leistung, um mehr Funktionen zur Verfügung zu haben.You use the {x:Bind} markup extension to take advantage of high performance binding or {Binding} to take advantage of more features. Sie können die Bindung so konfigurieren, dass auf der Benutzeroberfläche mithilfe von unidirektionaler Bindung Werte aus einer Datenquelle angezeigt werden oder dass mithilfe von bidirektionaler Bindung diese Werte außerdem beobachtet werden und die Benutzeroberfläche aktualisiert wird, wenn sie sich ändern.It’s then just a case of configuring your binding to choose whether the platform uses one-way binding to display values from a data source in your UI, or whether it also observes those values and updates your UI when they change with two-way binding.

DatenbindungData Binding
Automatisierung der Benutzeroberfläche. UI Automation.

Der programmgesteuerte Zugriff auf UI-Elemente ermöglicht den Zugriff auf Apps durch Hilfstechnologieprodukte und die Interaktion von automatisierten Testskripts mit der Benutzeroberfläche.Programmatic access to UI elements, making apps accessible to assistive technology products and enabling automated test scripts to interact with your UI.
Beschriftungen, contentDescription und hint-Werte erleichtern die automatisierte Suche von UI-Elementen.Text labels, contentDescription and hint values help ensure UI elements can be found by automation. Android Studio ermöglicht Ihnen mit den Testumgebungen UI Automator und Espresso das Schreiben von UI-Tests.Android Studio allows you to write UI tests using the UI Automator and Espresso testing frameworks. Mit dem Automation-Instrument können Sie automatisierte UI-Testskripts schreiben, die mithilfe der Accessibility-Einstellungen Elemente identifizieren oder die die Position des Elements in der Elementhierarchie ermitteln.The Automation instrument allows you to write automated UI test scripts which identify elements using the accessibility settings or the element's position in the element hierarchy. Über die Benutzeroberflächenautomatisierung erhalten Sie standardmäßig programmgesteuerten Zugriff auf integrierte UI-Elemente in UWP.You get programmatic access to built-in UI elements in UWP out-of-box with UI Automation.
Benutzerdefinierte Automatisierungspeers ermöglichen es Ihnen, Automatisierungsunterstützung für Ihre eigenen benutzerdefinierten Benutzeroberflächen Klassen bereitzustellen.Custom Automation Peers allow you to provide automation support for your own custom UI classes. Das Projekt mit Tests der codierten UI in Visual Studio ermöglicht Ihnen das Testen Ihrer gesamten Anwendung über die UI oder das Testen der isolierten UI.The Coded UI Test Project in Visual Studio allows you to automatically test your whole application through the UI, or to test the UI in isolation.
Ändern der Darstellung eines Steuer Elements. Changing the appearance of a control.

Bearbeiten von Größe, Farbe und anderen Attributen.Editing size, color and other attributes.
Steuerelemente verfügen über Eigenschaften, die mithilfe des Entwicklungstools, im XML-Markup oder programmgesteuert bearbeitet werden können.Controls have properties which can be edited using the designer tool, in XML markup or programmatically. Steuerelemente verfügen über Attribute, die Sie mit dem Attributes Inspector in Interface Builder oder programmgesteuert bearbeiten können.Controls have attributes which you can edit using the Attributes Inspector in Interface Builder or programmatically. Sie können mit Visual Studio und Blend für Visual Studio die Eigenschaften von Steuerelementen im XAML-Markup oder programmgesteuert bearbeiten.You can edit the properties of controls in the XAML markup or programmatically, using Visual Studio and Blend for Visual Studio.

Hinzufügen von Steuerelementen und Verarbeiten von EreignissenAdd controls and handle events
Wieder verwendbare visuelle Stile. Reusable visual styles.

Anwenden visueller Änderungen in einem wiederverwendbaren Format auf eine Reihe von Steuerelementen.Apply visual changes to a number of controls, in a reusable format.
XML Styles sind Gruppen von Eigenschaften, die auf ein oder mehrere Steuerelemente angewendet werden.XML styles are sets of properties that are applied to one or more controls. In iOS wird die Wiederverwendung visueller Stile nicht standardmäßig unterstützt, jedoch ermöglicht das UIAppearance-Protokoll die gemeinsame Nutzung allgemeiner Attribute durch mehrere Steuerelemente.iOS does not support reusable visual styles out-of-box, but the UIAppearance protocol allows multiple controls to share common attributes. Sie können wiederverwendbare Styles erstellen, die auf mehrere Steuerelemente angewendet und für die einfache Wiederverwendung in einem ResourceDictionary gespeichert werden können.You can create reusable styles, which can be applied to multiple controls and stored in a ResourceDictionary for easy reuse.

Schnellstart: Entwerfen von SteuerelementenQuickstart: Styling Controls
Bearbeiten der visuellen Struktur von Steuerelementen. Editing the visual structure of controls.

Passen Sie die visuelle Struktur eines Steuer Elements über das Ändern von Eigenschaften oder Attributen hinaus an, indem Sie beispielsweise den CheckBox-Text unterhalb des Kontrollkästchens verschieben.Customize the visual structure of a control beyond just modifying properties or attributes, for example, moving the checkbox text underneath the checkbox.
In Android gibt es keine einfache Methode zum Bearbeiten der visuellen Struktur von Steuerelementen.No simple method of editing the visual structure of controls exists in Android. In iOS gibt es keine einfache Methode zum Bearbeiten der visuellen Struktur von Steuerelementen.No simple method of editing the visual structure of controls exists in iOS. Um die visuelle Struktur eines Steuerelements anzupassen, können Sie seine Steuerelementvorlage im XAML-Markup kopieren und bearbeiten.To customize the visual structure of a control, you can copy and edit its control template in XAML markup.

Schnellstart: SteuerelementvorlagenQuickstart: Control Templates
Integrierte Touchgesten. Built-in touch gestures.

Bereitstellen von angepasster Touchunterstützung durch die Behandlung allgemeiner Gestenereignisse, z. B. Tippen und Doppeltippen in Ansichten und Steuerelementen.Provide customized touch support by handling high level abstracted gesture events such as tap and double tap in views and controls.
Gestenerkennung erkennt allgemeine Touchgesten, einschließlich Bildlauf, langes Drücken, Tippen, Doppeltippen und schnelles Wischen.Gesture detectors detect common touch gestures including scrolling, long-press, tap, double-tap and fling. Das UIKit-Framework bietet integrierte Gestenerkennungen, die Touchgesten, einschließlich Tippen, Zusammendrücken, Schwenken, Wischen, Drehen und langes Drücken, erkennen.UIKit framework provides built-in gesture recognizers which detect touch gestures including tap, pinch, pan, swipe, rotate and long-press. UI-Elemente ermöglichen Ihnen, statische Gestenereignisse wie Tippen, Doppeltippen, Rechtstippen und Halten sowie Manipulationsgestenereignisse wie Ziehen, Wischen, Drehen, Zusammendrücken und Aufziehen zu behandeln.UI elements allow you to handle static gesture events including tap, double-tap, right-tap and holding, as well as manipulation gesture events including slide, swipe, turn, pinch and stretch. Gestenereignisse sind Routingereignisse und können von übergeordneten Objekten, die das untergeordnete UIElement enthalten, behandelt werden.Gesture events are routed events and can be handled by parent objects containing the child UIElement.

Interaktionen per ToucheingabeTouch interactions

Benutzerdefinierte Benutzerinteraktionen – Gesten, Manipulationen und InteraktionenCustom user interactions - gestures, manipulations, and interactions
Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Layouts. Layouts.

Das Layout definiert die Struktur der Benutzeroberfläche.The layout defines the structure of the user interface.
Das Layout besteht aus Ansichtsgruppen, z. B. LinearLayout und RelativeLayout, in denen andere Ansichtsgruppen oder Ansichten geschachtelt werden können.Layout is composed of view groups such as the LinearLayout and the RelativeLayout which can nest other view groups or views. Das Layout besteht aus einem UIViewController, der UIViews enthält, die geschachtelt werden können.Layout is composed of a UIViewController containing UIView's which can be nested. XAML bietet ein flexibles Layoutsystem, das aus Layoutpanel-Klassen wie Canvas, Grid, RelativePanel und StackPanel für statische und dynamische Layouts besteht.XAML which provides a flexible layout system composed of layout panel classes such as Canvas, Grid, RelativePanel and StackPanel for static and responsive layouts. Eigenschaften werden verwendet, um die Größe und Position der Elemente zu steuern.Properties are used to control the size and position of the elements.

Definieren von Layouts mit XAMLDefine layouts with XAML
Peer Navigation. Peer navigation.

Bereitstellen von Methoden für den Benutzer, um zwischen Seiten auf der gleichen Hierarchieebene zu navigieren.Presenting the user with methods of navigating between pages of equal hierarchical importance.
Tabs, Wischbewegungen und Navigation Drawers stellen laterale Navigation bereit.Tabs, swipe views and navigation drawers provide lateral navigation. Registerkartenleisten-Controller, Controller für geteilte Ansicht und Controller für Seitenansicht ermöglichen die Navigation zwischen Ansichten auf gleicher Hierarchieebene.Tab bar controllers, split view controllers and page view controllers allow navigation between views of equal hierarchy. Sie können eine dauerhafte Liste von Links/Registerkarten über dem Inhalt mit Registerkarten/Pivots anzeigen.You can display a persistent list of links/tabs above the content using tabs/pivots. Mit Navigationsbereich/geteilter Ansicht können Sie neben dem Inhalt eine Liste von Links anzeigen.The navigation pane/split view lets you display a list of links alongside the content.

NavigationNavigation

Navigieren zwischen zwei SeitenNavigate between two pages
Hierarchische Navigation. Hierarchical navigation.

Navigieren zwischen über- und untergeordneten Seiten einer Hierarchie.Navigating between parent and child pages of a hierarchy.
Listen und Rasterlisten, Schaltflächen und weitere Steuerelemente bieten eine absteigende Navigation, wenn Sie mit Intents zum Laden weiterer Aktivitäten verwendet werden.Lists, and grid lists, buttons and other controls provide descendent navigation when used with intents to load other activities. Navigation Controller ermöglichen Benutzern die Navigation zwischen den Ebenen einer Hierarchie.Navigation controllers allow users to navigate between levels of a hierarchy. Mit Hubs können Sie dem Benutzer eine Vorschau des Inhalts anzeigen, der für die Navigation zu untergeordneten Seiten ausgewählt werden kann.Hubs let you show the user a preview of content which can be selected to navigate to child pages. Mit Master/Details können Benutzer aus einer Liste von Element Zusammenfassungen auswählen, die neben dem entsprechenden Detail Abschnitt angezeigt werden.Master/details let users pick from a list of item summaries which display next to the corresponding detail section.

NavigationNavigation

Navigieren zwischen zwei SeitenNavigate between two pages
Navigations Taste zurück. Back button navigation.

Rückwärtsnavigation in einer Anwendung.Navigating back through an application.
Die Zurück- und Nach-oben-Schaltfläche auf der Aktionsleiste bieten aufsteigende und temporale Navigation mithilfe des Zurück-Stapels.The back and up buttons inside the action bar provide ancestral and temporal navigation using the back stack. Dem Navigation Controller kann eine Zurück-Schaltfläche hinzugefügt werden.The navigation controller can have a back button added to it.
Mit der BackStack-Eigenschaft, die dem Benutzer das Durchlaufen des Navigationsverlaufs ermöglicht, lässt sich das Betätigen der Zurück-Schaltfläche bzw. Zurück-Taste einfach handhaben.You can handle software or hardware back button presses easily using the back stack property which allows your users to traverse the navigation history.

Navigation per Schaltfläche „Zurück“Back button navigation
Begrüßungs Bildschirm. Splash screen.

Das Anzeigen eines Bilds beim Starten der App, hauptsächlich für Branding verwendet.Showing an image on app launch, used primarily for branding.
Begrüßungsbildschirme werden nicht standardmäßig bereitgestellt und werden durch Bearbeiten des ersten Designhintergrunds für Aktivitäten implementiert.Splash screens are not provided by default, and are implemented by editing the first activities theme background. Apps müssen über ein statisches Startbild oder eine XIB-/Storyboard-Startdatei verfügen.Apps must either have a static launch image or XIB/storyboard launch file. Sie erstellen einen Begrüßungsbildschirm mithilfe eines Bilds und eines farbigen Hintergrunds.You create a splash screen using an image and colored background. Die Anzeige eines Begrüßungsbildschirms kann verlängert werden.Splash screen time can be extended.

Hinzufügen eines BegrüßungsbildschirmsAdd a splash screen

Benutzerdefinierte EingabenCustom inputs

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Stimme an. Voice.

Spracherkennung für die Spracheingabe und zusätzliche Sprachfunktionen.Speech recognition for speech input, and additional voice capabilities.
Die Spracheingabe kann durch jede App bereitgestellt werden, die einen RecognizerIntent implementiert, z. B. die Google-Sprachsuche.Speech input can be provided by any app which implements a RecognizerIntent, such as Google Voice Search. Die SpeechRecognizer-Klasse ermöglicht Apps die Verwendung der Spracherkennungs-API von Google.The SpeechRecognizer class allows apps to use Google's speech recognition API. Apps können die SFSpeechRecognizer-Klasse verwenden, um die Eingabe- und Spracherkennung implementieren.Apps can use the SFSpeechRecognizer class to implement speech input and speech recognition. Sie können für die Interaktion mit der App im Vordergrund die Spracherkennungs-API verwenden.You can use the speech recognition API to interact with your app in the foreground. Mithilfe von sprachbasierten Cortana-Interaktionen können Sie Apps im Vordergrund oder Hintergrund starten und mit Hintergrund-Apps interagieren.You can use speech-based Cortana interactions to launch apps in the foreground or background, and to interact with background apps.

SprachinteraktionenSpeech interactions
Benutzer definierte Benutzereingaben. Custom user inputs.

Behandeln von Eingaben per Tastatur, Maus, Stift und anderen Eingaben.Handling keyboard, mouse, stylus and other inputs.
Die Unterstützung von Interaktionen umfasst Berührung, Touchpad, Eingabestift, Maus und Tastatur.Support for interactions includes touch, touchpad, stylus, mouse and keyboard. Bewegungen und Eingaben werden auf die gleiche Weise wie Berührung gemeldet, es lassen sich jedoch weitere Informationen über das Eingabegerät ermitteln.Movements and inputs are reported in the same way as touch, but it is possible to detect more information about the input device. Es wird Unterstützung für Berührung, Apple Pencil und Hardwaretastaturen bereitgestellt.Support for touch, the Apple Pencil and hardware keyboards are provided. Sie finden Unterstützung für eine Vielzahl von Interaktionen, einschließlich Berührung, Touchpad, Zeichen- bzw. Eingabestift mit Freihandschrift, Maus und Tastatur.You will find support for a wide range of interactions including touch, touchpad, pen/stylus with digital ink, mouse and keyboard. Ihre Apps können die Daten behandeln, ohne Informationen über das verwendete Eingabegerät zu benötigen, und bei Bedarf kann auf Daten von Rohdateneingabegeräten zugegriffen werden.Your apps can handle the data without needing to know which input device was used, and raw input device data can be accessed if needed.

Behandeln von ZeigereingabenHandle pointer input

Benutzerdefinierte BenutzerinteraktionenCustom user interactions

DatenData

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Lokale App-Daten. Local app data.

Lokales Speichern von Einstellungen und Dateien für die App.Storing settings and files related to your app locally.
Lokale Dateien können mit openFileOutput und openFileInput gespeichert werden.Local files can be saved using openFileOutput and openFileInput. Auf die Einstellungen in einer SharedPreferences-Datei kann mithilfe von getSharedPreferences zugegriffen werden.Settings in a shared preferences file can be accessed using getSharedPreferences. Lokale Dateien können im Verzeichnis Application Support gespeichert werden, auf das über die NSFileManager-Klasse zugegriffen wird.Local files can be stored in the application support directory, accessed via the NSFileManager class. Der Zugriff auf die Einstellungen in Preference-Dateien erfolgt über die NSUserDefaults-Klasse.Settings in preferences files can be accessed by the NSUserDefaults class. Mit den Windows.Storage-Klassen werden lokale Daten auf einheitliche Weise gespeichert.The Windows.Storage classes handle local data storage for you in a unified way. Einstellungen werden als ApplicationDataContainer-Objekt gespeichert, auf das mit der ApplicationData.LocalSettings-Eigenschaft zugegriffen kann.You store settings as an ApplicationDataContainer object, accessed via the ApplicationData.LocalSettings property. Dateien werden in einem StorageFolder-Objekt gespeichert, auf das mit der ApplicationData.LocalFolder-Eigenschaft zugegriffen werden kann.You store files in a StorageFolder object accessed via the ApplicationData.LocalFolder property.

Speichern und Abrufen von Einstellungen und anderen App-DatenStore and retrieve settings and other app data
Lokaler Daten Bank Speicher. Local database storage.

Speichern von App-Daten in einer relationalen Datenbank, ggf. mit objektrelationalem Mapping (ORM).Storing app data in a relational database, with object-relational mappers (ORM) if applicable.
Die SQLite-Datenbank wird bereitgestellt.The SQLite database is provided. ORM ist nicht integriert.No ORM is built-in. SQL-Abfragen werden mit der SQLiteDatabase-Klasse ausgeführt.SQL queries are run using the SQLiteDatabase class. Die SQLite-Datenbank wird bereitgestellt.The SQLite database is provided. CoreData, das integrierte Objektdiagrammframework, kann mit SQLite verwendet werden und mit ORM vergleichbare Funktionalität bereitstellen.CoreData is the built-in object graph framework which can be used with SQLite and provide functionality comparable with an ORM. Sie können Daten mithilfe SQLite speichern.You can store data using SQLite. Entity Framework ist ein integrierter ORM, mit dem Sie keinen großen Datenzugriffs Code schreiben müssen, und Sie können die Datenbank problemlos Abfragen, ohne SQL zu schreiben.Entity Framework is a built-in ORM which eliminates the need to write lots of data access code and enables you to easily query the database without writing SQL. Sie können SQL-Abfragen direkt mit der SQLite-Bibliothek ausführen.You can run SQL queries directly with the SQLite library.

DatenzugriffData Access
Http-Bibliotheken für den Rest-Zugriff. HTTP libraries for REST access.

Integrierte Bibliotheken, die Ihnen die Kommunikation mit Webdiensten und Webservern per HTTP(S) ermöglichen.Built-in libraries that let you communicate with web services and web servers using HTTP(S).
HTTP-Bibliotheken HttpURLConnection und Volley.HTTP libraries HttpURLConnection and Volley. NSURLSession, NSURLConnection und NSURLDownload.NSURLSession, NSURLConnection and NSURLDownload. Die integrierte HttpClient-API bietet Ihnen Zugriff auf allgemeine HTTP-Funktionen, z. B. GET, DELETE, PUT, POST, allgemeine Authentifizierungsmuster, SSL, Cookies und Statusinformationen.You can use the built-in HttpClient API to access common HTTP functionality including GET, DELETE, PUT, POST, common authentication patterns, SSL, cookies and progress info.
Cloud-Sicherungsdienste. Cloud backup services.

Von der Plattform bereitgestellte Sicherungsdienste für App-Daten.Platform-provided backup services for app data.
Mit dem Backup Manager von Android werden Anwendungsdaten im Android Sicherungsdienst von Google gesichert.Android's backup manager handles the backing up of application data in Google's Android Backup Service. Das iCloud-Backup kann vom Benutzer zum Durchführen der Sicherungen, einschließlich der App-Daten, konfiguriert werden.iCloud Backup can be configured by a user to handle their backups, including app data. Apps, die mit iCloud kompatible Core Data, den iCloud-Schlüssel-Wert-Speicher und die Dokumentenspeicherung in iCloud verwenden.Apps which use iCloud compatible Core Data, the iCloud key-value store and iCloud document storage. Alle App-Daten, die Sie mithilfe der APIs für das Roaming von ApplicationData (einschließlich RoamingFolder und RoamingSettings) speichern, werden automatisch mit der Cloud und anschließend auch mit den anderen Geräten des Benutzers synchronisiert.Any app data that you store using the roaming ApplicationData APIs (including RoamingFolder and RoamingSettings) will be automatically synced to the cloud and to the user’s other devices, too. Die Synchronisierung erfolgt über das Microsoft-Konto des Benutzers.The syncing is done by way of the user’s Microsoft account.

Richtlinien für das Roaming von App-DatenGuidelines for roaming app data
Herunterladen von http-Dateien. HTTP file downloads.

Herunterladen von kleinen und großen Dateien per HTTP.Downloading large and small files over HTTP.
URLConnection und HTTPURLConnection werden für den Download per HTTP und FTP verwendet. Für den Download im Hintergrund kann auch der Download-Manager des Systems verwendet werden.URLConnection and HTTPURLConnection are used to download over HTTP and FTP, it is also possible to make use of the system download manager to download in the background. Für den Download von Dateien per HTTP und FTP können NSURLSession und NSURLConnection verwendet werden.NSURLSession and NSURLConnection can be used to download files over HTTP and FTP. Mit der API für Hintergrundübertragungen können Sie Dateien zuverlässig per HTTP(S) und FTP übertragen und dabei das Anhalten der App sowie Verbindungsunterbrechungen berücksichtigen und Anpassungen entsprechend Konnektivität und Akkulaufzeit vornehmen.The background transfer API lets you reliably transfer files over HTTP(S) and FTP, taking into account app suspension, connectivity loss and adjusting based on connectivity and battery life. Sie können auch die HttpClient-Klasse verwenden, die sich besonders für kleinere Dateien eignet.You can also use HttpClient which is ideal for smaller files.

Welche Netzwerktechnologie?Which networking technology?

HintergrundübertragungenBackground transfers
Sockets. Sockets.

Erstellen von UDP-Datagrammsockets und TCP-Sockets als Low-Level-Schnittstelle für die Kommunikation mit anderen Geräten unter Verwendung des eigenen Protokolls.Creating low level UDP datagram and TCP sockets to communicate with other devices using your own protocol.
Die Socket-Klasse stellt TCP-Sockets bereit, und die DatagramSocket-Klasse stellt einen UDP-Socket bereit.Socket class provides TCP sockets, DatagramSocket class provides a UDP socket. NSStream und CFStream stellen TCP-Sockets bereit, und CFSocket stellt UDP-Sockets bereit.NSStream and CFStream provide TCP sockets, CFSocket provides UDP sockets. Sie können die DatagramSocket-Klasse für die Kommunikation mit einem UDP-Datagrammsocket und die StreamSocket-Klasse für die Kommunikation per TCP oder Bluetooth RFCOMM verwenden.You can use the DatagramSocket class to communicate using a UDP datagram socket and the StreamSocket class to communicate over TCP or Bluetooth RFCOMM.

Grundlagen zum NetzwerkNetworking basics

Welche Netzwerktechnologie?Which networking technology?

Übersicht über SocketsSockets overview
Websockets. WebSockets.

Bieten bidirektionale Kommunikation zwischen einem Client und einem Server und ermöglichen die Datenübertragung in Echtzeit.Provide two-way communication between a client and server, enabling real-time data transfer.
In Android sind keine WebSockets-Bibliotheken integriert.No built-in WebSockets libraries exist on Android. In iOS sind keine WebSockets-Bibliotheken integriert.No built-in WebSockets libraries exist on iOS. Sichere Verbindungen mit Servern, die WebSockets unterstützen, können mit der MessageWebSocket-Klasse hergestellt werden, um kleinere Nachrichten mit Empfangsbestätigung zu senden, und mit StreamWebSocket, um größere Binärdateien zu übertragen, die in Abschnitten gelesen werden können.Secure connections to servers supporting WebSockets can be made with the MessageWebSocket class for smaller messages with receipt notifications and StreamWebSocket for larger binary file transfers which can be read in sections.

Grundlagen zum NetzwerkNetworking basics

Welche Netzwerktechnologie?Which networking technology?

Übersicht über WebSocketsWebSockets overview
OAuth-Bibliotheken. OAuth libraries.

OAuth-Bibliotheken ermöglichen den Zugriff auf OAuth-Drittanbieter und jede in die Plattform integrierte Kontoverwaltung.OAuth libraries allowing access to third party OAuth providers, and any account management built into the platform.
Es wird keine generische OAuth-Bibliothek bereitgestellt.No generic OAuth library is provided. Für die OAuth-Authentifizierung bei Google Play-Diensten wird die GoogleAuthUtil-Klasse bereitgestellt.The GoogleAuthUtil class is provided for OAuth authentication with Google Play Services .
Es wird keine generische OAuth-Bibliothek bereitgestellt.No generic OAuth library is provided. Das Accounts Framework bietet Zugriff auf Benutzerkonten, die bereits auf dem Gerät gespeichert sind, z. B. Facebook und Twitter.The accounts framework provides access to user accounts already stored on the device such as Facebook and Twitter. Mit dem Webauthentifizierungsbroker aus der generischen OAuth-Bibliothek können Sie eine Verbindung mit Identitätsanbieterdiensten von Drittanbietern herstellen.The generic OAuth library Web authentication broker lets you connect to third-party identity provider services. Die Benutzer können im Schließfach für Anmeldeinformationen ihre Anmeldeinformationen speichern und sie auf mehreren Geräten verwenden.The Credential locker allows your users to save their login and use it on multiple devices. Der Microsoft.Live-Namespace ermöglicht Ihnen den einfachen Zugriff auf das Live SDK-OAuth-Protokoll für den Zugriff auf Microsoft-Dienste.The Microsoft.Live namespace lets you easily access Live SDK OAuth for access to Microsoft services.

Authentifizierung und BenutzeridentitätAuthentication and user identity

Windows.Security.Authentication.Web-API-DokumentationWindows.Security.Authentication.Web API documentation

WebAuthenticationBroker-CodebeispielWebAuthenticationBroker code example

ToolsTooling

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
IDE. IDE.

Das zum Erstellen der App verwendete Toolset.The toolset used to create your app.
Android Studio und Eclipse, wobei Google Entwicklern die Verwendung von Android Studio empfiehlt.Android Studio and Eclipse, with Google pushing developers toward the use of Android Studio. XcodeXcode Visual Studio und Blend für Visual Studio verfügen über alle Tools, die Sie zum Programmieren, entwerfen, verbinden, Debuggen, analysieren, optimieren und Testen von UWP-apps benötigen.Visual Studio and Blend for Visual Studio has all the tools you need to code, design, connect, debug, analyze, optimize and test UWP apps. Visual Studio bietet Ihnen außerdem Emulatoren für Windows 10-Geräte, sodass Sie Ihre App auf unterschiedlichen emulierten Geräten testen können.Visual Studio also provides you with emulators for Windows 10 devices, so you can test your app across a range of emulated devices.

Downloads und Tools für UWPDownloads and tools for UWP
Code Organisation. Code organization.

Die grundlegende Ordnerstruktur einer App, häufig anhand einer anfänglichen Vorlage erstellt.The basic folder structure of an app, often created from an initial template.
Die Android Manifest-Datei, java-Ordner mit Quelldateien, res-Ordner mit Ressourcen, einschließlich Layouts und Werten, Gradle-Buildskripts in Android Studio und Ant-Buildskripts in Eclipse.AndroidManifest file, java folder containing source files, res folder with resources including layouts and values, Gradle build scripts in Android Studio and Ant build scripts in Eclipse. Quelldateien und Supporting Files, Datei Info.plist, Main.storyboard und LaunchScreen.storyboard.Source files and Supporting Files, Info.plist file, Main.storyboard and LaunchScreen.storyboard. In Objektbibliotheken gespeicherte Images.Images are stored in Asset libraries. Die UWP-App enthält XAML- und Codedateien für die App mit den Namen „Example.xaml“ und „Example.xaml.cs“, verschiedene Images im Ordner Assets, eine Startseite, z. B. MainPage.xaml oder MainPage.xaml.cs, und ein Manifest.Your UWP app contains XAML and code files for your app named Example.xaml and Example.xaml.cs, various images in the Assets folder, a start page such as MainPage.xaml and MainPage.xaml.cs and a manifest.

Erstellen der App „Hello, world“Create a hello world app

App-LebenszyklusApp lifecycle

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
App-Lebenszyklus. App lifecycle.

Behandeln von Ereignissen beim Starten, Anhalten, Fortsetzen und Schließen der App, mit der Möglichkeit, den Anwendungszustand zu speichern/wiederherzustellen und weitere Aufgaben auszuführen.Handling events on app launch, suspension, resume and close, providing an opportunity to save/restore application state and run other tasks.
Jede Aktivität verfügt über einen eigenen Aktivitätslebenszyklus mit Zuständen, z. B. resumed.Each activity has its own activity lifecycle with states such as resumed. Lebenszyklus Rückrufe , wie z. b. onresume , werden in Ihren Aktivitäts Klassenimplementiert.Lifecycle callbacks such as onResume are implemented in your activity classes. Der Anwendungslebenszyklus weist Zustände, z. B. suspended, auf.The application lifecycle has states such as suspended. Methoden, z. B. applicationDidEnterBackground:, werden im appDelegate-Objekt implementiert, um bei Zustandsänderungen Code auszuführen.Methods such as applicationDidEnterBackground: are implemented in the application delegate object to run code on state changes. Die Anwendung weist die App-Ausführungszustände „NotRunning“, „Activated“, „Runningׅ“, „Suspending“, „Suspended“ und „Resuming“ auf.Your application has the app execution states NotRunning, Activated, Running, Suspending, Suspended and Resuming.

Sie können die Methoden „OnLaunched“, „OnActivated“, „Suspending“ oder „Resuming“ der Application-Klasse implementieren, um Code auszuführen, wenn sich der Zustand ändert.You can implement the Application class methods OnLaunched, OnActivated, Suspending or Resuming in your app to run code when the state changes.

App-LebenszyklusApp lifecycle
Hintergrundaufgaben. Background tasks.

Aufgaben, die Vorgänge im Hintergrund ausführen und weiterhin ausgeführt werden, wenn die App nicht mehr im Vordergrund ausgeführt wird.Tasks that perform background operations and continue to run when the app is no longer in the foreground.
Apps können Dienste starten, die Hintergrundvorgänge ausführen, wenn die App nicht mehr im Vordergrund ausgeführt wird.Apps can launch services which perform background operations when the app is no longer in the foreground. Dienste besitzen einen eigenen Lebenszyklus und werden im Manifest registriert.Services have their own lifecycle and are registered in the manifest. Die Ausführung im Hintergrund ist nur für bestimmte Aufgabentypen zulässig.Background execution is only permitted for specific task types.

Apps deklarieren unterstützte Hintergrundaufgaben in der Datei „Info.plist“ mithilfe der UIBackgroundModes.Apps declare supported background tasks in the Info.plist file using the UIBackgroundModes.

Das System steuert, wann und wie lange Hintergrundaufgaben ausgeführt werden.The system controls when background tasks are run and for how long.
Sie können eine Hintergrundaufgabe erstellen, indem Sie die IBackgroundTask-Schnittstelle implementieren und die Aufgabe im Anwendungsmanifest registrieren.You can create a background task by implementing the IBackgroundTask interface and registering the task in the application manifest. Sie können festlegen, dass eine Aufgabe durch einen Timer, Systemtrigger oder Wartungsauslöser ausgelöst wird.You can set a task to be triggered with a timer, system trigger, and maintenance trigger.

Unterstützen Ihrer App mit HintergrundaufgabenSupport your app with background tasks

Erstellen und Registrieren einer HintergrundaufgabeCreate and register a background task

Richtlinien für HintergrundaufgabenGuidelines for background tasks

LeistungPerformance

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Bewährte Methoden für die Leistung. Performance best practices.

Richtlinien für das Erstellen von schnellen, dynamischen und akkuschonenden Apps mit kurzer Startzeit.Guidelines for building apps that are fast, responsive, considerate of battery life with a fast startup time.
Android bietet das Schulungshandbuch Best Practices for Performance (Bewährte Methoden zur Leistungssteigerung).Android provides the Best Practices for Performance training guide. iOS bietet das Dokument Performance Overview (Übersicht über die Leistung).iOS provides the Performance Overview document. Sie können das ausführliche Handbuch zur Leistung lesen, das unter anderem Abschnitte zu folgenden Themen enthält: Festlegen von Leistungszielen, Messen der Leistung, Speicherverwaltung, flüssige Animationen, effizienter Dateisystemzugriff und verfügbare Tools für Profilerstellung und Leistung.You can read the detailed Performance guide with sections covering topics such as; setting performance goals, measuring performance, memory management, smooth animations, efficient file system access and the tools available for profiling and performance.
Anzeigen der Optimierung für eine reaktionsfähige Benutzeroberfläche. View optimization for a responsive UI.

Verbessern der Leistung durch Optimieren der Ansichten.Improving performance by optimizing views.
Das Optimieren der Layouthierarchien mit dem Tool Hierarchy Viewer, das Wiederverwenden von Layouts und das Laden von Ansichten bei Bedarf sind Verfahren, mit denen Sie die Reaktionsfähigkeit des UI-Threads erhalten und verhindern, dass "ANR"-Meldungen (Application Not Responding) ausgegeben werden.Optimizing layout hierarchies using the Hierarchy Viewer tool, reusing layouts and loading views on demand are all techniques to help keep the UI thread responsive and avoid "Application Not Responding" dialogs (ANR's).
Beheben von UI-Problemen mit Offscreen-Rendering, Mischebenen und Rasterung mithilfe des Tools Core Animation, um die Reaktionsfähigkeit des UI-Threads zu erhalten.Fixing UI issues with offscreen rendering, blended layers, rasterization using the Core Animation tool help keep the UI thread responsive. Sie können mit einigen einfachen Schritten das XAML-Markup und die XAML-Layoutsoptimieren.You can easily optimize XAML markup and layouts by following a few simple steps. Dazu gehören das Reduzieren der Layoutstruktur, das Minimieren der Elementanzahl und das Minimieren der Überzeichnung.Techniques include reducing layout structure, minimizing the element count and minimizing overdrawing.

Aufrechterhalten der Reaktionsfähigkeit des UI-ThreadsKeep the UI thread responsive

Optimieren Ihres XAML-MarkupsOptimize your XAML markup

Optimieren des XAML-LayoutsOptimize your XAML layout
Threading. Threading.

Verwenden von Threading zum Aufrechterhalten der Reaktionsfähigkeit der Benutzeroberfläche und parallelen Ausführen mehrerer Aufgaben.Use of threading to maintain a responsive UI and run multiple tasks in parallel.
Threading erfolgt mithilfe der Klassen Runnable, Handler, ThreadPoolExecutor und der abstrakten Klasse AsyncTask.Threading is achieved using the classes Runnable, Handler, ThreadPoolExecutor, and the higher level AsyncTask. Threading erfolgt mithilfe von NSThread, Grand Central Dispatch und der abstrakten Klasse NSOperation.Threading is achieved using NSThread, Grand Central Dispatch, and the higher level NSOperation. Sie können mit Threads arbeiten, indem Sie mit RunAsyncArbeitsaufgaben an den Threadpool senden.You can work with threads by submitting work items to the threadpool with RunAsync. Sie können mit CreateTimer einen Timer zum Senden einer Arbeitsaufgabe verwenden und mit CreatePeriodicTimer eine regelmäßige Arbeitsaufgabe erstellen.You can use a timer to submit a work item with CreateTimer and create a repeating work item with CreatePeriodicTimer.

Senden einer Arbeitsaufgabe an den ThreadpoolSubmit a work item to the thread pool

Senden einer Arbeitsaufgabe mithilfe eines TimersUse a timer to submit a work item

Erstellen einer regelmäßigen ArbeitsaufgabeCreate a periodic work item

Bewährte Methoden zum Verwenden des ThreadpoolsBest practices for using the thread pool
Asynchrone Programmierung. Asynchronous programming.

Vermeiden Sie komplexes Threading, indem Sie mit Mustern der asynchronen Programmierung die Reaktionsfähigkeit des UI-Threads aufrechterhalten.Avoid threading complexity by taking advantage of asynchronous programming patterns to keep the UI thread responsive.
Zum Erstellen eigener asynchroner Klassen ist die Verwendung von Threading erforderlich.The use of threading is required to create your own asynchronous classes. Einige integrierte Klassen sind asynchron.Some built-in classes are asynchronous. Zum Erstellen eigener asynchroner Klassen ist die Verwendung von Threading erforderlich.The use of threading is required is required to create your own asynchronous classes. Einige integrierte Klassen sind asynchron.Some built-in classes are asynchronous. Sie können asynchrone Muster verwenden, um zu vermeiden, dass der Haupt Thread blockiert wird, wenn Sie Ihre eigenen APIs erstellen, z. b C# . asynchrone und auf Visual Basic warten .You can use asynchronous patterns to avoid blocking the main thread when you create your own APIs, for example, using async and await in C# and Visual Basic. Sie können die integrierten asynchronen APIs verwenden, die mit dem Wort Async enden.You can use the asynchronous built-in APIs which end in the word Async.

Asynchrone ProgrammierungAsynchronous programming

Aufrufen asynchroner APIs in C# oder Visual BasicCall asynchronous APIs in C# or Visual Basic
Listen Ansichts Optimierung. List view optimization.

Integrierte Muster zum Optimieren von Datenlisten, die häufig eine geringe Leistung aufweisen, wenn große Mengen von Daten angezeigt werden müssen.Built-in patterns to aid with optimizing lists of data, which often have poor performance when large amounts of data need to be shown
Das ViewHolder-Entwurfsmuster wird verwendet, um mehrfache Ansichtssuchvorgänge zu vermeiden, sodass Sie wiederverwendbare UI-Elemente verwenden können.The ViewHolder design pattern is used to avoid multiple view lookups, which allows you to use reusable UI elements. Die Leistung von UITableView kann mit einer Reihe von Optimierungen verbessert werden, es ist jedoch keine Optimierung integriert.A range of optimizations can be made to improve the performance of UITableView, nothing is built-in. Sie können das ListView- und das GridView-Steuerelement verwenden. Diese bieten bereits UI-Virtualisierung für gleichmäßiges Schwenken und gleichmäßigen Bildlauf sowie schnelleres Starten.You can use the ListView and GridView controls which provide UI virtualization out-of-box, providing a smooth panning and scrolling experience and a faster startup time. Sie können auch IList und INotifyCollectionChanged in der Datenquelle implementieren, um Datenvirtualisierung bereitzustellen und die Leistung zusätzlich zu verbessern.You can also implement IList and INotifyCollectionChanged in your data source, providing data virtualization and further improving performance.

Optimieren der ListView- und GridView-BenutzeroberflächeListView and GridView UI optimization

Virtualisierung von ListView- und GridView-DatenListView and GridView data virtualization

MonetisierungMonetization

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
In-App-Käufe. In-app purchases.

Plattformfeatures ermöglichen es den Benutzern, in Ihren Apps Käufe durchzuführen.Platform features that allow users to make purchases in your apps.
Google-Dienste bieten In-App-Abrechnung.In-app billing is provided by Google Services. Produkte werden der Google Play Developer Console hinzugefügt.Products are added to the Google Play Developer Console. In-App-Käufe werden mit der Google Play Billing Library implementiert.In-app purchases are implemented with the Google Play Billing Library. Produkte werden iTunes Connect hinzugefügt.Products are added to iTunes Connect. In-App-Käufe werden mit dem StoreKit-Framework implementiert.In-app purchases are implemented using the StoreKit framework.

Produkte werden mithilfe von SKMutablePayment und SKPaymentQueue gekauft.Products are purchased using SKMutablePayment and SKPaymentQueue.
Sie erstellen In-App-Produktkäufe für Ihre App, indem Sie sie Ihrer App hinzufügen und an den Store übermitteln.You create in-app product purchases for your app by adding them to your app and submitting them to the Store.

Sie definieren In-App-Käufe mit der CurrentApp-Klasse.You use the CurrentApp class to define in-app purchases.

Mit CurrentApp.RequestProductPurchaseAsync zeigen Sie die Benutzeroberfläche an, über die Kunden das Produkt kaufen können.You use CurrentApp.RequestProductPurchaseAsync to display the UI that allows customers to purchase the product.

Aktivieren von In-App-ProduktkäufenEnable in-app product purchases
Nutzbare in-App-Käufe. Consumable in-app purchases.

In-App-Produkte, die gekauft, verwendet und dann erneut gekauft werden können.In-app products which can be purchased, used and then purchased again.
Käufe von Verbrauchsartikeln werden aktiviert, indem ein regulärer Kauf getätigt wird und das Produkt dann mit consumePurchase verbraucht wird, sodass es gekauft, verwendet und dann erneut gekauft werden kann.Consumable purchases are enabled by making a regular purchase and then consuming it with consumePurchase, enabling it to be purchased, used, and then purchased again. Verbrauchsartikel sind in iTunes Connect als Verbrauchsartikel definiert.Consumable products are defined as consumable products in iTunes Connect. Sie unterstützen Verbrauchsartikel, indem Sie ihren Produkttyp als „Verbrauchsartikel“ definieren, wenn Sie sie an den Store übermitteln.You can support consumables by defining their product type as Consumable when you submit them to the Store. Nach dem Kauf eines Verbrauchartikels rufen Sie CurrentApp.ReportConsumableFulfillmentAsync auf, um dem Benutzer den Zugriff auf den Artikel zu ermöglichen.You then call CurrentApp.ReportConsumableFulfillmentAsync after a consumable purchase has been made to allow the customer to access it.

Unterstützen von Endverbraucher-In-App-KäufenEnable consumable in-app purchases
Testen von in-App-Käufen. Testing in-app purchases.

Ermöglichen es Ihnen, den Code für In-App-Käufe zu testen, ohne Ihre App an den Store zu übermitteln.Enabling you to test your in-app purchase code without putting your app in the Store.
Für Tests wird die In-app Billing Sandbox verwendet.The in-app billing sandbox is used for testing. Für Tests werden Sandbox-Testerkonten verwendet.Sandbox tester accounts are used for testing. Zum Testen von In-App-Käufen können Sie einfach die CurrentAppSimulator-Klasse anstelle von CurrentApp verwenden.You can test in-app purchases by simply using the CurrentAppSimulator class in place of CurrentApp.

Testversionen . Trials.

Ermöglichen es Ihnen, für die Testversion einer App einfach den Inhalt zu beschränken oder Werbung zu entfernen.Enabling you to easily limit content or remove advertising based on a trial version of an app.
App-Testversionen werden von Google Play nicht offiziell unterstützt.Google Play doesn't officially support app trials. Für Testversionen oder das Entfernen von Werbung wird ein In-App-Kauf erstellt und der entsprechende Codepfad verwendet, wenn der Kauf erfolgreich bestätigt wurde.Trials or removing advertising is achieved by creating an in-app purchase and taking the appropriate code path when confirming the purchase was successful. App-Testversionen werden vom App Store nicht offiziell unterstützt.The App Store doesn't officially support app trials. Für Testversionen oder das Entfernen von Werbung wird ein In-App-Kauf erstellt und der entsprechende Codepfad verwendet, wenn der Kauf erfolgreich bestätigt wurde.Trials or removing advertising is achieved by creating an in-app purchase and taking the appropriate code path when confirming the purchase was successful. Sie können eine kostenlose Testversion Ihrer App anbieten, indem Sie beim Übermitteln der App an den Store die Option „Kostenlose Testversion“ verwenden.You can offer a free trial version of your app by using the 'Free Trial' option when submitting your app to the Store. Anschließend können Sie mit LicenseInformation.IsTrial den Teststatus der App überprüfen und entsprechend andere Codepfade angeben.You can then use LicenseInformation.IsTrial to check the trial status of the app and present different code paths accordingly. Sie können sich für das LicenseChanged-Ereignis registrieren, um benachrichtigt zu werden, wenn der Benutzer während der Ausführung der App den Teststatus ändert.You can register for the LicenseChanged event to be notified when the user changes the trial status while the app is running.

Ausschließen oder Beschränken von Features in einer TestversionExclude or limit features in a trial version

Anpassen an mehrere PlattformenAdapting to multiple platforms

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Adaptive Benutzeroberfläche: flexible Layouts. Adaptive UI: flexible layouts.

Unterstützen unterschiedlicher Bildschirmgrößen mit flexibler Höhe und Breite.Supporting different screen sizes with a flexible height and width.
Flexible Layouts lassen sich mit den Werten wrap_content und match_parent in LinearLayout-Objekten oder durch Verwendung von RelativeLayout-Objekten für die Ausrichtung erstellen.Flexible layouts can be achieved using the wrap_content and match_parent values in LinearLayout objects, or by making use of RelativeLayout objects for alignment. Flexible Layouts können unter Verwendung des adaptiven Modells mit universellen Storyboards erstellt werden, wobei Autolayout mit Constraints und Traits, z. B. horizontalSizeClass und displayScale, die auf Ansichtscontroller angewendet werden, genutzt wird.Flexible layouts can be achieved using the adaptive model with universal Storyboards, making use of Auto Layout with constraints and traits such as horizontalSizeClass and displayScale which are applied to view controllers. Mit Layouteigenschaften und Panels sowie einer Kombination von festen und dynamischen Größen erstellen Sie ein dynamisches Layout.You can create a fluid layout using layout properties and panels with a combination of fixed and dynamic sizing.

Definieren von Layouts mit XAML – Layouteigenschaften und -panelsDefine layouts with XAML - layout properties and panels

Reaktionsfähiges Design für Apps für die universelle Windows Platform (UWP) – GrundlagenResponsive design 101
Adaptive Benutzeroberfläche: angepasste Layouts. Adaptive UI: tailored layouts.

Unterstützung unterschiedlicher Bildschirmgrößen mit eigenen Ziellayouts.Supporting different screen sizes with separate targeted layouts.
Durch die Bereitstellung alternativer Layoutdateien für unterschiedliche Bildschirmkonfigurationen im Verzeichnis „resources“ mit Konfigurationsqualifizierern, z. B. small, large, ldpi und hdpi, können Sie benutzerdefinierte Layouts auf Bildschirme unterschiedlicher Größe und Pixeldichte anwenden.Providing alternative layout files for different screen configurations in the resources directory using configuration qualifiers such as small, large, ldpi, and hdpi allows you to target custom layouts to screens of varying size and density. Definieren Sie ein jeweils eigenes iPhone- und iPad-Storyboard, um Layouts in einer universellen App an unterschiedliche Gerätefamilien anzupassen.Define a separate iPhone and iPad Storyboard to tailor layouts to different device families in a universal app. Sie können ein maßgeschneidertes Layout erstellen, indem Sie unterschiedliche XAML-Markupdateien pro Gerätefamilie definieren.You can build a tailored layout by defining different XAML markup files per device family.

Definieren von Layouts mit XAML – Maßgeschneiderte LayoutsDefine layouts with XAML - tailored layouts
Adaptive Benutzeroberfläche: reaktionsfähige Layouts. Adaptive UI: responsive layouts.

Reaktion auf Änderungen der Bildschirmgröße, z. B. Drehung, oder eine Änderung der Fenstergröße.Responding to changes in screen size, such as rotation, or a change in the size of a window.
Dynamische Layouts werden durch die Verwendung flexibler Layouts mit LinearLayout und RelativeLayout oder das Bereitstellen alternativer Layoutdateien für unterschiedliche Ausrichtungen ermöglicht.Use of flexible layouts with LinearLayout and RelativeLayout, or providing alternative layout files for different orientations enable responsive layouts. Wenn sich die Größe oder Traits einer Ansicht ändern, werden die in Storyboards angegebenen Constraints angewendet.When the size or traits of a view change, the constraints specified in storyboards are applied. Mit VisualState, VisualStateManager und AdaptiveTrigger können Sie ganz einfach als Reaktion auf Änderungen der Fenstergröße zur Laufzeit Abschnitte der Benutzeroberfläche dynamisch umbrechen, neu positionieren, anzeigen, ersetzen oder ihre Größe ändern.You can easily reflow, reposition, resize, reveal, or replace sections of your UI at runtime in response to window size changes using VisualState, the VisualStateManager and AdaptiveTrigger.

Definieren von Layouts mit XAML – Visuelle Zustände und ZustandsauslöserDefine layouts with XAML - visual states and state triggers

Reaktionsfähiges Design für Apps für die universelle Windows Platform (UWP) – GrundlagenResponsive design 101
Unterstützung verschiedener Gerätefunktionen. Supporting different device capabilities.

Nutzen Sie erweiterte Hardwarefeatures, während Geräte, die diese nicht aufweisen, trotzdem unterstützt werden.Take advantage of advanced hardware features while still supporting devices without them.
Durch das Testen von Gerätefeatures zur Laufzeit mit PackageManager.hasSystemFeature können Sie bestimmen, ob hardwarespezifischer Code ausgeführt werden kann.Testing for device features at runtime using PackageManager.hasSystemFeature enables you to decide if hardware specific code can run. Es gibt keine einzelne Prüfung, mit der Sie zur Laufzeit Gerätefeatures testen können. Stattdessen müssen Sie für jedes Feature spezielle Tests ausführen, um zu bestimmen, ob hardwarespezifischer Code ausgeführt werden kann.There is no single check you can perform at runtime to test for device features, you test for each feature in a specific way to decide if hardware specific code can be run. Sie können für die Berücksichtigung zusätzlicher Funktionen in unterschiedlichen Gerätefamilien, einschließlich Smartphone, Desktop und IoT, dem Paket Plattformerweiterungs-SDKs hinzufügen.You can add platform extension SDKs to your package to target additional functionality found in different device families including phone, desktop, and IoT. Mit der ApiInformation-API testen Sie zur Laufzeit, ob Typen und Member vorhanden sind, und rufen diese nur auf, wenn dies der Fall ist.You use the ApiInformation API to test for the presence of types and members at runtime, and can call those types and members only if they're present.
Unterstützung verschiedener Gerätefunktionen. Supporting different device capabilities.

Nutzen Sie erweiterte Hardwarefeatures, während Geräte, die diese nicht aufweisen, trotzdem unterstützt werden.Take advantage of advanced hardware features while still supporting devices without them.
Die Android Support Library kann Ihrer App hinzugefügt werden, um neuere APIs für Geräte verfügbar zu machen, auf denen ältere Versionen von Android ausgeführt werden.The Android Support Library can be packaged with your app to make some newer APIs available to those with older versions of Android. Das Testen der API-Ebene zur Laufzeit kann mit Build.Version.SDK_INT erfolgen.Testing for the API level at runtime can be done using Build.Version.SDK_INT. Mit Standardlaufzeitprüfungen lässt sich ermitteln, ob APIs verfügbar sind. Zum Beispiel kann mit der class-Methode überprüft werden, ob eine Klasse vorhanden ist, und mit respondsToSelector: lässt sich überprüfen, ob Methoden in Klassen vorhanden sind.Standard runtime checks are used to find out if APIs are available, such as the class method to check if a class exists and respondsToSelector: to check for methods on classes. Mit ApiInformation.IsApiContractPresent können Sie ermitteln, ob ein API-Vertrag mit einer angegebenen Haupt- und Nebenversionsnummer vorhanden ist.You can use ApiInformation.IsApiContractPresent to identify if an API contract with a specified major and minor number is present. Mit der ApiInformation-API testen Sie außerdem zur Laufzeit, ob Typen und Member vorhanden sind, und rufen diese nur auf, wenn das der Fall ist.You also use the ApiInformation API to test for the presence of types and members at runtime, and can call those types and members only if they're present.

BenachrichtigungenNotifications

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Kacheln und Zeichen. Tiles and badges.

Präsentation von Updates für Benutzer auf dem Startbildschirm.Present updates to users on the home screen.
App-Widgets sind Ansichten in der Anwendung, die in den Startbildschirm eingebettet und regelmäßige Updates empfangen können.App Widgets are views on your application that can be embedded into the home screen and can receive periodic updates. In Android ist kein Signalsystem vorhanden.No badge system exists on Android. Es ist kein mit Kacheln identisches System vorhanden.No identical system to tiles exists. Auf iOS werden Widgets im Benachrichtigungscenter angezeigt und als App-Erweiterungen implementiert.Widgets on iOS mappear in the Notification Center and are implemented as App Extensions. Sie können dem Symbol auch ein Signal mit einer Zahl hinzufügen, die sich als Reaktion auf lokale oder Remotebenachrichtigungen ändert.You can also add a badge to your icon with a number which can change in response to local or remote notifications. Es gibt kein Kachelsystem.There is no tiles system. Ihre App verfügt über eine Kachel, die an den Startbildschirm angeheftet werden kann und in der Text und Bilder Ihrer Wahl sowie ein Signal mit Glyphen und Zahlen angezeigt werden.Your app has a tile which can be pinned to the start screen and is used to display your choice of text, images, and a badge with glyphs and numbers. Sie können den Inhalt der Kacheln über die App aktualisieren, entweder durch Pushbenachrichtigungen oder zu vordefinierten Zeitpunkten.You can update the content of tiles from the app; via push notifications or at predefined schedules. Kacheln können adaptiv sein und sich abhängig davon ändern, wo sie angezeigt werden.Tiles can be adaptive, and can change according to where they are being displayed.

Erstellen von KachelnCreate tiles

Erstellen adaptiver KachelnCreate adaptive tiles

Auswählen einer Methode für die Übermittlung von BenachrichtigungenChoose a notification delivery method

Richtlinien für Kacheln und SignaleGuidelines for tiles and badges
Anzeigen von Benachrichtigungen Displaying notifications.

Typen von Benachrichtigungen, die angezeigt werden können.Types of notifications that can be displayed.
Benachrichtigungen können im Benachrichtigungsbereich und in der Benachrichtigungsschublade angezeigt werden. Bei Heads-Up-Benachrichtigungen handelt es sich um Benachrichtigungen in einem kleinen unverankerten Fenster.Notifications can be shown in the notification area and notification drawer, heads-up notifications present a notification in a small floating window. Den Benachrichtigungen können durch Definieren eines PendingIntent Aktionen hinzugefügt werden.Notifications can have actions added to them by defining a PendingIntent. Popupbenachrichtigungen werden als Banner oder Warnungen angezeigt.Pop-up notifications appear as banners or alerts. Sie können interaktiven Benachrichtigungen, die mit UIMutableUserNotificationAction definiert werden, benutzerdefinierte Aktionsschaltflächen hinzufügen.You can add custom action buttons to actionable notifications which are defined with UIMutableUserNotificationAction. Sie können adaptive Popupbenachrichtigungen hinzufügen.You can create adaptive pop-up notifications called toast notifications. Sie können in XML Popups mit visuellem Inhalt, mit Aktionen, bei denen es sich um Schaltflächen handeln kann, oder mit Eingaben und Audioinhalten definieren.You can define toasts in XML with visual content, actions which can be buttons, or inputs and audio.

Adaptive und interaktive PopupbenachrichtigungenAdaptive and interactive toast notifications

Auswählen einer Methode für die Übermittlung von BenachrichtigungenChoose a notification delivery method

Richtlinien für PopupbenachrichtigungenGuidelines for toast notifications
Lokale Benachrichtigungen werden geplant. Scheduling local notifications.

Lokale Benachrichtigungen, die von der App zu einem geplanten Zeitpunkt gesendet werden.Local notifications sent by your app at a scheduled time.
Benachrichtigungen und Aktionen werden mit einem NotificationCompat.Builder definiert. Sie können mit AlarmManager und BroadcastReceiver in der App geplant und behandelt werden.Notifications and actions are defined using a NotificationCompat.Builder and can be scheduled and handled in-app using AlarmManager and BroadcastReceiver. Lokale Benachrichtigungen werden mit UILocalNotification erstellt und können mit UILocalNotification.scheduleLocalNotification:geplant werden. | Sie können Popupbenachrichtigungen mitScheduledToastNotificationplanen. Sie können eine Kachelbenachrichtigung aus Ihrer App mit derTileNotification-Klasse senden oder eine Kachelbenachrichtigung mit ScheduledTileNotification planen.Local notifications are created using UILocalNotification, and can be scheduled with UILocalNotification.scheduleLocalNotification:. | You can schedule a toast notification using ScheduledToastNotification. You can send a tile notification from your app using the TileNotification class, or schedule a tile notification with ScheduledTileNotification.

Adaptive und interaktive PopupbenachrichtigungenAdaptive and interactive toast notifications

Benachrichtigung über lokale Kachel senden | | Senden von Pushbenachrichtigungen.Send a local tile notification | | Sending push notifications. Von einem Pushbenachrichtigungs-Server wird eine Benachrichtigung gesendet, die optional in der App behandelt wird.A notification sent from a push notification server and optionally handled in-app.
Google Cloud Messaging unterstützt Pushbenachrichtigungen für Android.Google Cloud Messaging provides push notification support for Android.

Medienaufzeichnung und -renderingMedia capture and rendering

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Erfassungs Medien. Capturing media.

Aufzeichnen von Audio- und visuellen Inhalten.Recording audio and visual content.
Mithilfe eines Intents, z. B. MediaStore.ACTION_VIDEO_CAPTURE, können Medien mit einer vorhandenen Kamera-App aufgezeichnet werden.Using an intent such as MediaStore.ACTION_VIDEO_CAPTURE allows media to be captured with an existing camera app. Die Bibliothek android.hardware.camera2 oder camera ermöglicht die Implementierung einer benutzerdefinierten Kameraschnittstelle.Using the android.hardware.camera2 or camera library enables the implementation of a custom camera interface. Für die Audioaufzeichnung können MediaRecorder-APIs verwendet werden.MediaRecorder APIs can be used to capture audio. Der UIImagePickerController ermöglicht das Aufzeichnen von Videos und Fotos mit der Benutzeroberfläche des Systems.The UIImagePickerController allows for the capture of video and photos with the system UI. Die AVFoundation-Klassen, z. B. AVCaptureSession, aktivieren den direkten Zugriff auf die Kamera.The AVFoundation classes such as AVCaptureSession enable direct access to the camera.
Die AVAudioRecorder-Klasse ermöglicht die Audioaufzeichnung.The AVAudioRecorder class enables audio recording.
Mit der CameraCaptureUI-Klasse können Sie Fotos und Videos mit der integrierten Kamera-UI aufzeichnen.You can capture photos and video while using the built-in camera UI with the CameraCaptureUI class. Sie können auf einer niedrigen Ebene mit der Kamera interagieren und Klassen in Windows.Media.Capture, beispielsweise die MediaCapture-API für die Audioaufzeichnung verwenden.You can interact with the camera at a low level, and capture audio with classes in Windows.Media.Capture such as the MediaCapture API.

Aufnehmen von Fotos und Videos mit CameraCaptureUICapture photos and video with CameraCaptureUI

Aufnehmen von Fotos und Videos mit MediaCaptureCapture photos and video with MediaCapture
Medienwiedergabe. Media playback.

Wiedergeben von Audio- und Videodateien.Playing audio and video files.
Zum Wiedergeben von Audio- und Videodateien werden die MediaPlayer-Klasse und die AudioManager-Klasse verwendet.The MediaPlayer and AudioManager classes are used to play audio and video files. Zum Wiedergeben von Audio- und Videodateien werden das AVKit-Framework, AVAudioPlayer und das Media Player-Framework verwendet.The AVKit framework, AVAudioPlayer, and Media Player Framework are used to play audio and video files. Sie können mit den Klassen MediaSource, MediaElement und MediaPlayer Audio- und Videodateien aus Quellen, z. B. lokalen und Remotedateien, wiedergeben.You can use the MediaSource class, MediaElement, and MediaPlayer classes to play back audio and video from sources such as local and remote files.

Medienwiedergabe mit „MediaSource“Media playback with MediaSource
Medien werden bearbeitet. Editing media.

Erstellen neuer Mediendateien aus vorhandenen Aufzeichnungen und Anwenden von Spezialeffekten.Composing new media files from existing recordings and applying special effects.
Zum Bearbeiten von Inhalten können Klassen niedriger Ebene, z. B. MediaCodec, MediaMuxer und android.media.effect, verwendet werden.Low level classes such as MediaCodec, MediaMuxer, and android.media.effect can be used for content editing. Zum Bearbeiten von Inhalten können Klassen im AV Foundation-Framework, z. B. AVMutableComposition, AVMutableVideoComposition und AVMutableAudioMix, verwendet werden.Classes in the AV Foundation framework such as AVMutableComposition, AVMutableVideoComposition, and AVMutableAudioMix can be used for content editing. Sie können mit den Windows.Media.Editing-APIs, z. B. MediaComposition und MediaClip, Medienkompositionen aus Audio- und Videodateien erstellen.You can use the Windows.Media.Editing APIs such as MediaComposition and MediaClip to create media compositions from audio and video files. Sie können Video- und Bildüberlagerungen hinzufügen, Videoclips kombinieren, Hintergrundaudio hinzufügen und Audio- und Videoeffekte anwenden.You are able to add video and image overlays, combine video clips, add background audio, and apply audio and video effects.

Medienkompositionen und -bearbeitungMedia compositions and editing

SensorenSensors

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Sensoren. Sensors.

Erkennen der Bewegung, Position und Umwelteigenschaften des Geräts.Detect device movement, position and environmental properties.
Das Sensor-Framework wird für den Zugriff auf Hardware- und Softwaresensoren mit Klassen, z. B. SensorManager und SensorEvent, verwendet.The sensor framework is used to access hardware and software sensors with classes such as SensorManager and SensorEvent. Das Core Motion Framework wird für den Zugriff auf Sensorrohdaten und verarbeitete Sensordaten verwendet.The Core Motion framework is used to access raw and processed sensor data. Sie können Klassen in Windows.Devices.Sensors für den Zugriff auf Sensorwerte und Ereignisse verwenden, die ausgelöst werden, wenn der Sensor neue Messdaten empfängt.You can use classes in Windows.Devices.Sensors to access sensor readings and events triggered when new reading data is received from the sensor.

SensorenSensors

Position und KartenfunktionenLocation and mapping

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Speicherort. Location.

Suchen der aktuellen Position des Geräts und Nachverfolgen von Änderungen.Finding the device's current location and tracking changes.
Die Standort-APIs der Google Play-Dienste bieten mit dem Fused Location Provider unter Verwendung der getLastLocation-Methode und der requestLocationUpdates-Methode High-Level-Zugriff auf die letzte bekannte Position.The Google Play services location APIs provide high-level access to the last known location with the fused location provider using the getLastLocation and requestLocationUpdates methods. Low-Level-Zugriff wird in den Android-Bibliotheken mit dem LocationManager bereitgestellt.Low-level access is provided in the Android libraries with the LocationManager. Die cllocationmanager -Basisklasse wird verwendet, um den Speicherort eines Geräts zu überwachen, mit startupdatingloation für den Dienst "Standard Location" und " startmonitoringsignifiantlocationchanges " für den Dienst für wichtige Änderungs Orte.The Core Location CLLocationManager class is used to monitor a device's location, with startUpdatingLocation for the standard location service and startMonitoringSignificantLocationChanges for the significant-change location service. Sie können die Geräteposition mit Klassen in Windows.Devices.Geolocation nachverfolgen.You can track device location with classes in Windows.Devices.Geolocation. Verwenden Sie für einmaliges Lesen Geolocator.GetGeopositionAsync.Use Geolocator.GetGeopositionAsync for a one-time reading. Verwenden Sie Geolocator.PositionChanged, um die Position mithilfe eines Timers regelmäßig abzurufen oder um informiert zu werden, wenn sich die Position ändert.Use Geolocator.PositionChanged to obtain the location regularly using a timer, or be informed when the location has changed.

Abrufen der Position eines BenutzersGet the user's location
Anzeigen von Zuordnungen. Displaying maps.

Anzeigen einer interaktiven integrierten Karte und Hinzufügen von interessanten Orten.Displaying an interactive built-in map and adding points of interest.
Die Klassen GoogleMap, MapFragment und MapView in der Google Maps Android API ermöglichen das Einbetten von Karten in Apps.The GoogleMap, MapFragment, and MapView classes within the Google Maps Android API allow maps to be embedded in apps. Interessante Orte können mit Markern und der anpassbaren Marker-Klasse angezeigt werden.Points of interest can be displayed using markers and the customizable Marker class. Karten werden mit der MKMapView-Klasse im MapKit-Framework in iOS-Apps eingebettet.Maps are embedded into iOS apps with the MKMapView class in the MapKit framework. Es können Anmerkungen mit Objektklassen, z. B. MKPointAnnotation und MKPinAnnotationView, zu den Apps hinzugefügt werden, um interessante Orte anzuzeigen.Annotations can be added to apps to display points of interest using object classes such as MKPointAnnotation and view classes such as MKPinAnnotationView. Sie können mit dem integrierten MapControl-XAML-Steuerelement, das 2D-, 3D- und Streetside-Ansichten bereitstellt, Karten in die Apps einbetten.You can embed maps in your apps using the built-in MapControl XAML control which provides 2D, 3D, and streetside views. Mit Klassen wie MapIcon, MapPolygon und MapPolyline können Sie interessante Orte mit einer Ortsmarke, einem Bild oder einer Form hinzufügen.You can add points of interest with a pushpin, image, or shape using classes such as MapIcon, MapPolygon and MapPolyline.

Anzeigen von Karten mit 2D-, 3D- und Streetside-AnsichtenDisplay maps with 2D, 3D, and Streetside views

Anzeigen von interessanten Orten (POI) auf einer KarteDisplay points of interest (POI) on a map
Geofencing. Geofencing.

Überwachen des Betretens und Verlassens einer bestimmten geografischen Region.Monitor the entering and leaving of a particular geographic region.
Geofences werden mit den Location Services im Google Play Services SDK überwacht.Geofences are monitored using the Location Services in the Google Play Services SDK. Regionen werden mit der CLCircularRegion-Klasse überwacht und mit der CLLocationManager.startMonitoringForRegion:-Methode registriert.Regions are monitored with the CLCircularRegion class and registered with the CLLocationManager.startMonitoringForRegion:. Sie können einen Geofence-Bereich mit der Geofence-Klasse erstellen und überwachte Zustände, z. B. das Betreten oder Verlassen einer Region, definieren.You can create a geofence with the Geofence class and define your monitored states such as entering or leaving a region. Mit der GeofenceMonitor-Klasse behandeln Sie Geofence-Ereignisse im Vordergrund und mit der LocationTrigger-Hintergrundklasse im Hintergrund.Handle geofence events in the foreground with the GeofenceMonitor class, and in the background with the LocationTrigger background class.

Einrichten von Geofence-BereichenSet up a geofence
Geocodierung und umgekehrte Geocodierung. Geocoding and reverse geocoding.

Das Umwandeln von Adressen in geografische Standorte (Geocodierung) und das Umwandeln geografischer Standorte in Adressen (umgekehrte Geocodierung).Converting addresses to geographic locations (geocoding) and converting geographic locations to addresses (reverse geocoding).
Für Geocodierung und umgekehrte Geocodierung wird die Geocoder-Klasse verwendet.The Geocoder class is used for geocoding and reverse geocoding. Für Geocodierung wird die CLGeocoder-Klasse verwendet.The CLGeocoder class is used for geocoding. Sie können Geocodierung mit der MapLocationFinder-Klasse in Windows.Services.Maps ausführen.You can perform geocoding using the MapLocationFinder class in Windows.Services.Maps. Sie verwenden FindLocationsAsync für Geocodierung und FindLocationsAtAsync für umgekehrte Geocodierung.You use FindLocationsAsync for geocoding and FindLocationsAtAsync for reverse geocoding.

Durchführen der Geocodierung und umgekehrten GeocodierungPerform geocoding and reverse geocoding
Routen und Anweisungen. Routes and directions.

Bereitstellen von Routen und Entfernungen zwischen zwei geografische Standorten und der entsprechenden Wegbeschreibungen.Providing routes, distances, and directions between two geographical locations.
Google bietet den Webdienst Google Maps Directions API, der in Android verwendet werden kann, obwohl kein SDK verfügbar ist.Google provides the web service Google Maps Directions API which can be used on Android although no SDK is provided. MapKit stellt die MKDirections-API bereit, mit der Informationen zu einer Route und Wegbeschreibungen abgerufen werden können.Map Kit provides the MKDirections API which can be used to fetch information about a route and directions. Sie können mit der MapRouteFinder-Klasse in Windows.Services.Maps eine Fußgänger -oder Autoroute anfordern.You can request a walking or driving route with the MapRouteFinder class in Windows.Services.Maps. Routen werden als MapRoute-Instanz zurückgegeben, die einfach in einem MapControl angezeigt werden kann.Routes are returned as a MapRoute instance which can be easily shown on a MapControl. Wegbeschreibungen werden im MapRouteManeuver -Objekt zurückgegeben.Directions are returned inside the MapRouteManeuver object.

Anzeigen von Routen und Wegbeschreibungen auf einer KarteDisplay routes and directions on a map

App-zu-App-KommunikationApp-to-app communication

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Aufrufen einer anderen APP. Invoking another app.

Starten einer anderen App und optionales Freigeben von Daten, z. B. Links, Text, Fotos, Videos und Dateien.Launching another app, and optionally sharing data such as links, text, photos, videos, and files.
Zum Starten einer anderen App wird ein impliziter Intent verwendet. Dabei werden eine Action und optionale Daten in einem Intent definiert und mit startActivityForResult aufgerufen.An implicit intent is used to launch another app, by defining an action and optional data in an Intent and calling it with startActivityForResult.
Mit App-Erweiterungen kann der Zugriff auf App-Daten für eine andere App bereitgestellt werden.App extensions can be used to provide access to app data to another app. URL-Schemas ermöglichen das Übergeben einer URL an eine andere App.URL schemes enable a URL to be passed to another app. Sie können mit Launcher.LaunchUriAsync eine andere App aufrufen, die sich für einen URI registriert hat, oder Launcher.LaunchUriForResultsAsync verwenden, um eine andere App aufzurufen und Ergebnisse von dieser abzurufen.You can launch another app which has registered for a URI with Launcher.LaunchUriAsync, or Launcher.LaunchUriForResultsAsync to launch for results and get data back from the launched app. Sie können mit Launcher.LaunchFileAsync eine Datei an eine andere App übergeben, damit sie von dieser behandelt wird.You can use Launcher.LaunchFileAsync to pass a file to another app to handle.

Zum Freigeben von Daten zwischen Apps können Sie einfach einen Freigabe-Vertrag verwenden.You can use a share contract to easily share data between apps.

Starten der Standard-App für einen URILaunch the default app for a URI

Starten einer App für ErgebnisseLaunch an app for results

Starten der Standard-App für eine DateiLaunch the default app for a file

Freigeben von DatenShare data
Zulassen, dass Ihre APP aufgerufen wird. Allowing your app to be invoked.

Zulassen, dass Ihre App auf eine Anforderung von einer anderen App antwortet.Allow your app to respond to a request from another app.
Apps registrieren eine Intent-Behandlungsaktivität bei einem Intent-Filter, um auf einen impliziten Intent von einer anderen App zu reagieren.Apps register an intent handling activity with an intent filter to respond to an implicit intent from another app. Durch das Verpacken einer App-Erweiterung können Daten für andere Apps freigegeben werden.Packaging an app extension enables data to be shared with other apps. Apps können mit dem Schlüssel CFBundleURLTypes in „Info.plist“ ein benutzerdefiniertes URL-Schema registrieren.Apps can register a custom URL scheme using the CFBundleURLTypes key in Info.plist. Sie können Ihre App als Standardhandler für einen URI-Schemanamen registrieren, indem Sie ein Protokoll im Paketmanifest registrieren und den Application.OnActivated Ereignishandler aktualisieren. Optional werden Ergebnisse zurückgegeben.You can register your app to be the default handler for a URI scheme name by registering a protocol in the package manifest and updating the Application.OnActivated event handler, optionally returning results. Auf die gleiche Weise können Sie Ihre App als Standardhandler für bestimmte Dateitypen registrieren, indem Sie im Paketmanifest eine Deklaration hinzufügen und das Application.OnFileActivated-Ereignis behandeln.In the same way you can register your app to be the default handler for certain file types by adding a declaration in the package manifest and handling the Application.OnFileActivated event.

Sie können die Freigabe-Vertrag-Anforderungen behandeln, indem Sie die App im Manifest als Freigabeziel registrieren und das Application.OnShareTargetActivated-Ereignis behandeln.You can handle share contract requests by registering your app as a share target in the manifest and handling the Application.OnShareTargetActivated event.

Starten einer App für ErgebnisseLaunch an app for results

Behandeln der DateiaktivierungHandle file activation

Empfangen von DatenReceive data
Kopieren und einfügen. Copy and paste.

Kopieren und Einfügen von Text und anderen Inhalten zwischen Apps.Copy and pasting text and other content between apps.
Das Clipboard Framework kann verwendet werden, um Kopieren und Einfügen mit der ClipboardManager-Klasse und der ClipData-Klasse zu implementieren.The clipboard framework can be used to implement copy and paste with the ClipboardManager and ClipData classes. Zum Implementieren von Kopieren und Einfügen können UIPasteboard, UIMenuController und UIResponderStandardEditActions verwendet werden.The UIPasteboard, UIMenuController, and UIResponderStandardEditActions can be used to implement copy and paste. Viele Standard-XAML-Steuerelemente unterstützen bereits Kopieren und Einfügen.Many default XAML controls already support copy and paste. Sie können mithilfe der Klassen DataPackage und Clipboard in Windows.ApplicationModel.DataTransfer das Kopieren und Einfügen selbst implementieren.You can implement copy and paste yourself using the DataPackage and Clipboard classes in Windows.ApplicationModel.DataTransfer.

Kopieren und EinfügenCopy and paste
Drag & Drop. Drag and drop.

Drag & Drop von Inhalten zwischen Apps.Dragging and dropping content between apps.
Drag & Drop kann mit dem Android Drag/Drop Framework in einer einzelnen Anwendung implementiert werden.Drag and drop can be implemented within a single application by using the Android drag/drop framework. Von iOS werden keine allgemeinen Drag & Drop-APIs bereitgestellt.No high-level drag and drop APIs are provided by iOS. Sie können in der App Drag & Drop implementieren, um Drag & Drop-Funktionen von App zu App, von Desktop zu App und von App zu Desktop zu ermöglichen.You can implement dragging and dropping in your app to enable app-to-app, desktop-to-app, and app-to-desktop drag and drop capabilities. Sie können in der UIElement-Klasse mit den Eigenschaften AllowDrop und CanDrag und den Ereignissen DragOver, und Drop Unterstützung für Drag & Drop implementieren.You implement drag and drop support in the UIElement class with the AllowDrop, and CanDrag properties, and the DragOver, and Drop events.

Drag & DropDrag and drop

SoftwaredesignSoftware design

Allgemeines KonzeptGeneral concept AndroidAndroid iOSiOS Windows 10-UWPWindows 10 UWP
Software Entwurfsmuster. Software design patterns.

Empfohlene oder perfekt verwendete Muster für die Plattform.Recommended or well-used patterns for the platform.
Für die Android-Entwicklung wurde kein formales Musters empfohlen oder bereitgestellt, jedoch ermöglicht eventuell die Betaversion des Data Binding Frameworks die häufigere Verwendung des Model-View-ViewModel (MVVM)-Musters.No formal pattern has been recommended or provided for Android development, although the beta Data Binding Framework may enable more widespread use of the Model-View-ViewModel (MVVM) pattern. In einer Reihe von Drittanbieterartikeln und -Frameworks werden die Ansätze Model-View-Presenter (MVP) und MVVM empfohlen.A number of third party articles and frameworks recommend the Model-View-Presenter (MVP) and MVVM approaches. Model-View-Controller (MVC) ist ein häufig verwendetes Muster für iOS und in die Plattform integriert.Model-View-Controller (MVC) is a common pattern used with iOS and is integrated into the platform. Sie sind beim Softwaredesign für UWP nicht auf ein bestimmtes Muster beschränkt.You are not limited towards a specific pattern when building for UWP.

Sie können das integrierte Datenbindungsmuster verwenden, um eine deutliche Trennung von Datenaspekten und UI-Aspekten sicherzustellen und zu vermeiden, dass Sie UI-Ereignishandler programmieren müssen, die Eigenschaftswerte aktualisieren.You can use the built-in data binding pattern to ensure clean separation of data concerns and UI concerns, and avoid having to code up UI event handlers which then update property values.

Sie können die Datenbindung auf die Befolgung des Model-View-ViewModel (MVVM)-Musters erweitern, indem Sie MVVM-Bibliotheken von Drittanbietern, z. B. das MVVM Light Toolkit, nutzen, oder eine eigene Bibliothek verwenden und Logik von der CodeBehind-Datei fernhalten.You can extend data binding to follow the Model-View-ViewModel (MVVM) pattern, either by making use of third-party MVVM libraries such as MVVM Light Toolkit, or rolling your own and keeping logic out of code-behind.

Das MVVM-MusterThe MVVM Pattern

Visual Studio-Template 10-ProjektvorlagenTemplate 10 Visual Studio project templates