---
title: "Protocols | Mobile sdk | Mobile sdk ios | Ios"
description: "The following protocols are available globally."
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Protocols

The following protocols are available globally.

-   `[MTAnnotation](#/s:11MapTilerSDK12MTAnnotationP)`
    
    Protocol requirements for all annotation objects.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTAnnotation/)
    
    #### Declaration
    
    Swift
    
    ```
    public protocol MTAnnotation : Sendable
    ```
    
-   `[MTVectorLayerHelper](#/s:11MapTilerSDK19MTVectorLayerHelperP)`
    
    Base protocol adopted by vector layer helpers to share defaults and common option normalization logic.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTVectorLayerHelper/)
    
    #### Declaration
    
    Swift
    
    ```
    public protocol MTVectorLayerHelper : AnyObject
    ```
    
-   `[MTLoggable](#/s:11MapTilerSDK10MTLoggableP)`
    
    Protocol requirement for all Logger objects.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTLoggable/)
    
    #### Declaration
    
    Swift
    
    ```
    public protocol MTLoggable : Sendable
    ```
    
-   `[MTLocationManagerDelegate](#/s:11MapTilerSDK25MTLocationManagerDelegateP)`
    
    Protocol requirements for location manager.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTLocationManagerDelegate/)
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public protocol MTLocationManagerDelegate : AnyObject
    ```
    
-   `[MTControllable](#/s:11MapTilerSDK14MTControllableP)`
    
    Defines methods for adding the map controls.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTControllable/)
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public protocol MTControllable
    ```
    
-   `[MTNavigable](#/s:11MapTilerSDK11MTNavigableP)`
    
    Defines methods for navigating the map.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTNavigable/)
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public protocol MTNavigable
    ```
    
-   `[MTRendering](#/s:11MapTilerSDK11MTRenderingP)`
    
    Defines methods for adjusting rendering parameters.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTRendering/)
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public protocol MTRendering
    ```
    
-   `[MTStylable](#/s:11MapTilerSDK10MTStylableP)`
    
    Defines methods for map styling methods.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTStylable/)
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public protocol MTStylable
    ```
    
-   `[MTZoomable](#/s:11MapTilerSDK10MTZoomableP)`
    
    Defines methods for manipulating zoom level.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTZoomable/)
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public protocol MTZoomable
    ```
    
-   `[MTGesture](#/s:11MapTilerSDK9MTGestureP)`
    
    Defines gestures behaviour.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTGesture/)
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public protocol MTGesture
    ```
    
-   `[MTMapViewContent](#/s:11MapTilerSDK16MTMapViewContentP)`
    
    Map view content requirements.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTMapViewContent/)
    
    #### Declaration
    
    Swift
    
    ```
    public protocol MTMapViewContent
    ```
    
-   `[MTMapViewDelegate](#/s:11MapTilerSDK17MTMapViewDelegateP)`
    
    Delegate responsible for map event propagation
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTMapViewDelegate/)
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public protocol MTMapViewDelegate : AnyObject
    ```
    
-   `[MTLayer](#/s:11MapTilerSDK7MTLayerP)`
    
    Protocol requirements for all types of Layers.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTLayer/)
    
    #### Declaration
    
    Swift
    
    ```
    public protocol MTLayer : AnyObject, MTMapViewContent, Sendable
    ```
    
-   `[MTSource](#/s:11MapTilerSDK8MTSourceP)`
    
    Protocol requirements for all types of Sources.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTSource/)
    
    #### Declaration
    
    Swift
    
    ```
    public protocol MTSource : AnyObject, MTMapViewContent, Sendable
    ```
    
-   `[MTTileSource](#/s:11MapTilerSDK12MTTileSourceP)`
    
    Protocol requirements for all tile type sources.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTTileSource/)
    
    #### Declaration
    
    Swift
    
    ```
    public protocol MTTileSource : MTSource
    ```
    
-   `[MTOfflineDownloadDelegate](#/s:11MapTilerSDK25MTOfflineDownloadDelegateP)`
    
    Delegate protocol for receiving offline download events.
    
    [See more](https://docs.maptiler.com/mobile-sdk/ios/api/Protocols/MTOfflineDownloadDelegate/)
    
    #### Declaration
    
    Swift
    
    ```
    public protocol MTOfflineDownloadDelegate : AnyObject, Sendable
    ```
