• Platforms
  • Partners
  • Forums
  • 日本語
  • TLC Tealium Learning Center Tealium Learning
    Community
  • Discussions & Ideas Dicussions & Ideas
  • Product Guides Product Guides
  • Knowledge Base Knowledge Base
  • Developer Docs Developer Docs
  • Education Education
  • TLC Blog TLC Blog
  • Support Desk Support Desk
  • CDH Customer Data Hub Customer Data Hub
  • Mobile
  • Getting Started
    • Overview
    • Quick Start Guide
    • Mobile Concepts
    • Client-Side
    • Server-Side
    • Tracking Webviews
    • Data Layer
    • Consent Management
    • Event Batching
    • User Location and Geofencing
    • Media Tracking
    • Deep Links
    • Timed Events
    • Trace
    • Hosted Data Layer
    • Adobe Visitor Service Module
    • Feature Comparison
    • Troubleshooting
  • Remote Commands
    • Overview
    • How It Works
    • Integrations
      • Adjust
      • AppsFlyer
      • Branch
      • Braze
      • Contentsquare
      • Facebook
      • Firebase
      • Kochava
      • Usabilla
  • Android (Java)
    • Overview
    • Install
    • Track
    • Data Layer
    • Data Management
    • Consent Management
    • Module List
      • Ad Identifier Module
      • Crash Reporter Module
      • Install Referrer Module
      • Lifecycle Tracking Module
      • Location Module
      • Optimizely X Tracking Module
    • Android TV
    • Android Wear
    • API Reference
      • ConsentManager
      • DataSources
      • Lifecycle
      • Tealium
      • Tealium.Config
      • TealiumLocation
    • Release Notes
  • Android (Kotlin)
    • Overview
    • Install
    • Track
    • Data Layer
    • Consent Management
    • Identity Resolution
    • Module List
      • Ad Identifier Module
      • AutoTracking Module
      • AdobeVisitorService Module
      • Collect Module
      • Collectors Module
      • Crash Reporter Module
      • In-App Purchase Module
      • Install Referrer Module
      • Lifecycle Tracking Module
      • Location Manager Module
      • Media Module
      • RemoteCommands Module
      • Tag Management Dispatcher Module
      • Visitor Service Module
    • Android TV
    • API Reference
      • ConsentCategory
      • ConsentManager
      • CurrentVisit
      • DataLayer
      • Lifecycle
      • LocationManager
      • Media
      • Tealium
      • TealiumConfig
      • VisitorProfile
      • VisitorService
    • Release Notes
  • Cordova 1.x
    • Overview
    • Install
    • Track
    • Data Management
    • Module List
      • Ad Identifier Module
      • Crash Reporter Module
      • Install Referrer Module
    • API Reference
    • Release Notes
  • Cordova 2.x
    • Overview
    • Install
    • Track
    • API Reference
    • Release Notes
  • Flutter 1.x
    • Overview
    • Install
    • Track
    • Consent Management
    • Data Management
    • API Reference
    • Release Notes
  • Flutter 2.x
    • Overview
    • Install
    • Track
    • Consent Management
    • Data Management
    • API Reference
      • Tealium
      • TealiumConfig
      • VisitorProfile
    • Release Notes
  • iOS (Objective-C)
    • Overview
    • Install
    • Track
    • Data Layer
    • Data Management
    • Consent Management
    • Tag Management
    • Module List
      • Lifecycle Tracking Module
    • tvOS
    • watchOS
    • API Reference
    • Release Notes
  • iOS (Swift) 1.x
    • Overview
    • Install
    • Track
    • Data Layer
    • Data Management
    • App Extensions
    • Identity Resolution
    • Consent Management
    • Modules
    • Module List
      • AppData Module
      • Attribution Module
      • AutoTracking Module
      • Collect Module
      • Connectivity Module
      • CrashReporter Module
      • DataSource Module
      • DefaultStorage Module
      • Delegate Module
      • DeviceData Module
      • DispatchQueue Module
      • FileStorage Module
      • Lifecycle Module
      • Location Module
      • Logger Module
      • PersistentData Module
      • RemoteCommands Module
      • TagManagement Module
      • VisitorService Module
      • VolatileData Module
    • Feature Comparison
    • Working with Objective-C
    • API Reference
      • TealiumConfig
      • TealiumConsentCategories
      • TealiumConsentManagerDelegate
      • TealiumConsentManager
      • TealiumInstanceManager
      • TealiumPersistentData
      • TealiumVolatileData
      • Tealium
    • Release Notes
  • iOS (Swift) 2.x
    • Overview
    • Install
    • Track
    • Data Layer
    • Consent Management
    • App Extensions
    • Identity Resolution
    • Modules
    • Module List
      • AppData Module
      • AdobeVisitorService Module
      • Attribution Module
      • AutoTracking Module
      • Collect Module
      • Connectivity Module
      • CrashReporter Module
      • DeviceData Module
      • In-App Purchase Module
      • Lifecycle Module
      • Location Module
      • Media Module
      • RemoteCommands Module
      • TagManagement Module
      • VisitorService Module
    • Working with Objective-C
    • API Reference
      • LocationModule
      • MediaSession
      • Tealium
      • TealiumConfig
      • TealiumConsentCategories
      • TealiumConsentManager
      • TealiumDataLayer
      • TealiumInstanceManager
    • Release Notes
  • NativeScript
    • Overview
    • Install
    • Track
    • API Reference
      • Tealium
      • TealiumConfig
    • Release Notes
  • React Native 1.x
    • Overview
    • Install
    • Track
    • API Reference
    • Release Notes
  • React Native 2.x
    • Overview
    • Install
    • Track
    • Location Module
    • API Reference
    • Release Notes
  • Unity 1.x
    • Overview
    • Install
    • Track
    • API Reference
  • Unity 2.x
    • Overview
    • Install
    • Track
    • API Reference
  • Xamarin 1.x
    • Overview
    • Install
    • Track
    • Data Management
    • Consent Management
    • API Reference
    • Release Notes
  • Xamarin 2.x
    • Overview
    • Install
    • Track
    • Data Layer
    • Consent Management
    • API Reference
    • Release Notes
  • Web
  • Getting Started
    • Overview
    • Quick Start Guide
    • Web Concepts
    • Data Layer
      • An Introduction to the Data Layer
      • How the Data Layer Works for Websites
      • Data Layer Best Practices
      • Definitions
        • Retail
        • Publisher
        • Hotel
        • Travel
        • Basic Video Tracking
  • Adobe Launch
    • Overview
    • Install
    • Data Layer
  • AMP
    • Overview
    • Install
    • Track
    • Data Layer
  • Angular
    • Overview
    • Install
    • Track
    • API Reference
  • Google Tag Manager
    • Overview
    • Install
    • Data Layer
  • JavaScript (Web)
    • Overview
    • Install
    • Track
    • Data Layer
    • Universal Data Object (utag_data)
    • Universal Tag (utag.js)
    • Data Layer Object (b)
    • Single-Page Applications
    • Settings
    • Debugging
    • API Reference
      • Cookie Functions
      • GDPR Functions
      • Tracking Functions
      • Utility Functions
    • Release Notes
  • Server
  • C#
    • Overview
    • Install
    • Track
    • Data Layer
    • API Reference
    • Release Notes
  • HTTP API
    • Overview
    • Endpoint
    • Data Layer
  • Java
    • Overview
    • Install
    • Track
    • API Reference
    • Release Notes
  • Node
    • Overview
    • Install
    • Track
    • API Reference
  • Python
    • Overview
    • Install
    • Track
    • API Reference
  • Roku
    • Overview
    • Install
    • Track
    • API Reference
  • Ruby
    • Overview
    • Install
    • Track
    • API Reference
IOS SWIFT V1

Feature Comparison

Detailed list of feature comparison between iOS Objective-C and iOS Swift libraries.

The Tealium library for Swift is fully compatible with apps running pure Swift, Objective-C, or any combination of the two. Since it is the newest and most up-to-date library, we strongly recommend implementing the Swift library if possible.

The Objective-C library is still fully supported, but the Swift library generally updates faster and has the newest features. Additionally, Swift has the widest compatibility of all Tealium libraries, including support for server-side Swift environments.

Check the comparison table below to figure out which is most suitable for your needs.

Memory Footprint & Performance

All SDKs have some performance and memory impacts on your app. This varies between apps, and may be difficult to measure the exact footprint of a specific SDK.

We have measured the Tealium Swift SDK against a baseline of a standard blank iOS Single View app. These figures may vary for your specific implementation, so they only serve as a rough indicator. All figures obtained using XCode Allocations Instrument.

Compiled App Archive (.ipa file)

  • 3+ MB (includes all modules)

Runtime Memory Usage

  • 2 - 2.5+ MB (Collect module and supporting modules)
  • 7 - 10+ MB (Tag Management module, Collect module, and supporting modules)

Startup Time

  • ≈0.05 seconds (approximate time from initialization to completion callback firing)

Swift Versions

  • 4.0+ (Xcode 9.0+)

Operating Systems

  • iOS 9.0+
  • tvOS 9.2+
  • macOS 10.11+
  • WatchOS 3.0+

Tealium Products

  • Tealium iQ Tag Management
  • Tealium EventStream
  • Tealium AudienceStream
  • Tealium DataAccess

tealium-swift vs. tealium-ios

The Swift library was built from scratch on a completely new codebase to the Objective-C library, and there are some subtle differences between the two libraries in terms of the current feature set. Below, we have compared the different features of both libraries. If you have requests for new features, feel free to open an issue on our GitHub page, or contact your account manager.

Feature TealiumIOS (Objective-C) Tealium-Swift Description Notes
Instance Manager/Multiton ✔ ✔ Enables support for multiple Tealium instances (profiles) running in the same app. May be added to Swift in a future release. Not a widely-used feature of the Objective-C library. Most customers do not need this feature.
UI Auto Tracking ✔ Automatically tracks UIViews and Events Available as an optional module, but not recommended due to additional performance overheads
Lifecycle Tracking ✔ ✔ Tracks App lifecycle events.
Tag Management ✔ ✔ Allows use of Tealium iQ through a non-rendered web view
Tealium Collect ✔ ✔ Sends data to Tealium Customer Data Hub using a native HTTPS request
Offline functionality/queuing ✔ ✔ Automatically queues events if the device is online, and transmits when the device is online again
Remote Mobile Publish Settings (MPS) ✔ ✔ Allows remote configuration of certain library settings Support added in version 1.9.0
Volatile Data ✔ ✔ Stores data for the current session (until app is terminated)
Persistent Data ✔ ✔ Stores data between app launches
Remote Commands ✔ ✔ Allows triggering of specified native code blocks from Tealium iQ
Apple Search Ads Support ✔ Adds support for the Apple Search Ads API to collect attribution data automatically Not planning to port to Objective-C
Optimizely Experiment Tracking ✔ Tracks Optimizely experiment data automatically May port to Swift in future.
iOS Support ✔ ✔
watchOS Support ✔ ✔
tvOS Support ✔ ✔
macOS Support ✔
CocoaPods Support ✔ ✔ Support for the CocoaPods dependency manager
Carthage Support ✔ ✔ Support for the Carthage dependency manager
Swift Package Manager (SPM) Support ✔ Support for the Swift Package Manager dependency manager
Source Code Available ✔ May assist with debugging
Consent Manager ✔ ✔ Assists with GDPR/privacy compliance
Tealium Visitor Service API ✔ ✔ Provides callbacks for changes to a user’s AudienceStream visitor profile
"Modules "
Previous
Modules
Next
Working with Objective-C
"Working with Objective-C"

 

Was this article helpful?

This page was last updated: July 23, 2020      

Thank you for your feedback!

Table of Contents

  • Memory Footprint & Performance
  • Swift Versions
  • Operating Systems
  • Tealium Products
  • tealium-swift vs. tealium-ios
  • Platforms
  • Partners
  • Forums
  • Mobile
  • Getting Started
  • Remote Commands
  • Android (Java)
  • Android (Kotlin)
  • Cordova 1.x
  • Cordova 2.x
  • Flutter 1.x
  • Flutter 2.x
  • iOS (Objective-C)
  • iOS (Swift) 1.x
  • iOS (Swift) 2.x
  • NativeScript
  • React Native 1.x
  • React Native 2.x
  • Unity 1.x
  • Unity 2.x
  • Xamarin 1.x
  • Xamarin 2.x
  • Web
  • Getting Started
  • Adobe Launch
  • AMP
  • Angular
  • Google Tag Manager
  • JavaScript (Web)
  • Server
  • C#
  • HTTP API
  • Java
  • Node
  • Python
  • Roku
  • Ruby