{"id":19755326,"url":"https://github.com/awkward/trekker","last_synced_at":"2025-04-30T11:32:47.822Z","repository":{"id":56698631,"uuid":"97242587","full_name":"awkward/Trekker","owner":"awkward","description":"Trekker, easily combine and swap out multiple analytics services on iOS","archived":false,"fork":false,"pushed_at":"2021-11-30T11:47:55.000Z","size":106,"stargazers_count":24,"open_issues_count":0,"forks_count":5,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-03-27T02:56:21.057Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/awkward.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-14T14:30:30.000Z","updated_at":"2023-07-08T16:57:11.000Z","dependencies_parsed_at":"2022-08-15T23:31:18.651Z","dependency_job_id":null,"html_url":"https://github.com/awkward/Trekker","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awkward%2FTrekker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awkward%2FTrekker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awkward%2FTrekker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awkward%2FTrekker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awkward","download_url":"https://codeload.github.com/awkward/Trekker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224208083,"owners_count":17273674,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T03:10:21.132Z","updated_at":"2024-11-12T03:10:21.878Z","avatar_url":"https://github.com/awkward.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"Docs/icon.png\" width=\"136\" alt=\"icon\"\u003e\u003cbr\u003e\n  Trekker\u003cbr\u003e\n  \u003cp align=\"center\"\u003e\n  \u003ca href=\"https://travis-ci.org/awkward/Trekker\"\u003e\n    \u003cimg src=\"https://travis-ci.org/awkward/Trekker.svg?branch=master\" alt=\"Build Status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/madeawkward\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/contact-madeawkward-blue.svg?style=flat\" alt=\"Contact\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003c/h1\u003e\n\nA wrapper to easily swap out different analytics services or to support multiple analytics services at once. Trekker works best with event based analytics services like Mixpanel, Amplitude, Firebase, and Answers by Crashlytics.\n\n## Introduction\n\nHi, we're \u003ca href=\"https://awkward.co/\" target=\"_blank\"\u003eAwkward\u003c/a\u003e. We used many different analytics services for our iOS reddit client called \u003ca href=\"https://beamreddit.com/\" target=\"_blank\"\u003eBeam\u003c/a\u003e. We weren't quite sure which service we wanted to use, so we wanted to make it easy to implement them all and switch between services on the fly. Trekker was born. We welcome you to use Trekker for your own projects.\n\n## Features\n\n- Event tracking\n- Profile tracking\n- Timed event tracking (event tracking with duration)\n- Event Super Properties\n- Push notification registration\n\n## Getting started\n\n### As a submodule\n\n1. Add Trekker as a submodule to your git project\n2. Drag `Trekker.xcodeproj` into the project navigator\n3. Go to the project settings and select the settings of the target you want to add Trekker too\n4. Click plus beneath the `Embedded Binaries` and select the `Trekker` framework in the Trekker project\n5. Follow the steps below to add an analytics service (`TrekkerService`)\n\n### Manually\n\n1. Copy all Swift files from the Trekker directory to the project in your navigator\n2. Follow the steps below to add an analytics service (`TrekkerService`)\n\n## Adding a TrekkerService\n\nTrekkerService is the protocol that is implemented for every analytics service that is fed into Trekker.\n\nAdding a Trekker is simple.\nFirst add the framework of the analytics service to your app. There are ready build implementations for some services, see the example services folder.\n\nIf the service doesn't have a ready implementation, a new subclass of NSObject should be made. It should implement the TrekkerService protocol. This requires implementing the following properties:\n\n```Swift\nvar serviceName: String // The name of the analytics service\n\nvar versionString: String // The version of the SDK of the analytics service\n```\n\nNow you can implement the following protocols for the features the analytics service supports:\n\n- `TrekkerEventAnalytics` for simple event based analytics\n- `TrekkerTimedEventAnalytics` for time event analytics, these events will often have an added `duration` property\n- `TrekkerPushNotificationAnalytics` for services that allow sending push notification messages\n- `TrekkerUserProfileAnalytics` for services that support user profiles\n- `TrekkerEventSuperPropertiesAnalytics` for services that support super properties. Properties that are included with every event.\n\n## Documentation\n\n\u003e We're trying to keep our documentation as updated as possible. Here you can find more information on Trekker.\n\n## License\n\n\u003e Trekker is available under the MIT license. See the LICENSE file for more info.\n\n## Links\n\n  - \u003ca href=\"https://awkward.co/\" target=\"_blank\"\u003eAwkward\u003c/a\u003e\n  - \u003ca href=\"https://beamreddit.com/\" target=\"_blank\"\u003eBeam\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawkward%2Ftrekker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawkward%2Ftrekker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawkward%2Ftrekker/lists"}