{"repo":"devxoul/Umbrella","free":true,"listed":false,"github":"https://github.com/devxoul/Umbrella","clone":"git clone https://github.com/devxoul/Umbrella.git","description":"☂️ Analytics abstraction layer for Swift","language":"Swift","stars":615,"topics":["swift","analytics"],"license":"MIT","category":"analytics","readme_excerpt":"☂️ Umbrella Analytics abstraction layer for Swift. Inspired by Moya. Table of Contents Why? Features At a Glance Getting Started Defining Events Using Analytics Built-in Providers Creating Custom Providers Installation Contributing Generating Xcode Workspace Creating New Provider License Why? There are many tools for mobile app analytics such as Firebase, Google Analytics, Fabric Answers, Flurry, Mixpanel, etc. You might use one or more of those in your application. But most of those SDKs have some problems: if you use multiple analytics tools, your code will be messed up. And the SDKs take event name as a string and parameters as a dictionary which is not guaranteed by Swift compiler. It means that if you change the event definition, you should find all related code by your hand. It has an opportunity that cause a human error. Umbrella uses Swift enums and the associated values to solve these problems. Features 💪 Taking advantages of Swift compiler by using an enum and associated values. 🎯 Logging events to multiple analytics providers at once. 🎨 Creating custom analytics providers. At a Glance Before 🤢 After 😊 Getting Started Defining Events First of all, you should define all of your events in a single enum. Let's assume that we have three events that have associated parameters. Then make the enum to conform the protocol EventType . It requires two functions: name(for:) and parameters(for:) . You can even provide different event names and parameters by provider s. Usi","default_branch":null,"files":null,"tree":[],"storefront":"/r/devxoul","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/devxoul/Umbrella/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}