All Projects → StravaKit → Stravakit

StravaKit / Stravakit

Licence: mit
Strava API Client built with Swift

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Stravakit

Gaugekit
Kit for building custom gauges + easy reproducible Apple's style ring gauges.
Stars: ✭ 997 (+1894%)
Mutual labels:  cocoapods, carthage
Swiftymessenger
Swift toolkit for passing messages between iOS apps and extensions.
Stars: ✭ 48 (-4%)
Mutual labels:  cocoapods, carthage
Avsqldebugger
A Simple Core Data Debugger that will look inside your apps DB
Stars: ✭ 30 (-40%)
Mutual labels:  cocoapods, carthage
Sketchkit
A lightweight auto-layout DSL library for iOS & tvOS.
Stars: ✭ 40 (-20%)
Mutual labels:  cocoapods, carthage
Lgalertview
Customizable implementation of UIAlertViewController, UIAlertView and UIActionSheet. All in one. You can customize every detail. Make AlertView of your dream! :)
Stars: ✭ 1,027 (+1954%)
Mutual labels:  cocoapods, carthage
Ctpanoramaview
A library that displays spherical or cylindrical panoramas with touch or motion based controls.
Stars: ✭ 951 (+1802%)
Mutual labels:  cocoapods, carthage
Bfkit Swift
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
Stars: ✭ 963 (+1826%)
Mutual labels:  cocoapods, carthage
Tbactionsheet
A Custom&Powerful Action Sheet For iOS. 一个 ActionSheet 满足所有样式!超高自由度的可定制!
Stars: ✭ 942 (+1784%)
Mutual labels:  cocoapods, carthage
Wstagsfield
An iOS text field that represents tags, hashtags, tokens in general.
Stars: ✭ 1,013 (+1926%)
Mutual labels:  cocoapods, carthage
Sica
🦌 Simple Interface Core Animation. Run type-safe animation sequencially or parallelly
Stars: ✭ 980 (+1860%)
Mutual labels:  cocoapods, carthage
Istimeline
Simple timeline view written in Swift 3
Stars: ✭ 1,005 (+1910%)
Mutual labels:  cocoapods, carthage
Grview
UIView and other UIKit elements with a gradient and other attributes for IOS
Stars: ✭ 39 (-22%)
Mutual labels:  cocoapods, carthage
Quiver
Validation, searching and filtering made easy for swift.
Stars: ✭ 27 (-46%)
Mutual labels:  cocoapods, carthage
Fontblaster
Programmatically load custom fonts into your iOS and tvOS app.
Stars: ✭ 1,000 (+1900%)
Mutual labels:  cocoapods, carthage
Tkswitchercollection
An animation switch collection
Stars: ✭ 877 (+1654%)
Mutual labels:  cocoapods, carthage
Swiftlyext
SwiftlyExt is a collection of useful extensions for Swift 3 standard classes and types 🚀
Stars: ✭ 31 (-38%)
Mutual labels:  cocoapods, carthage
Mixpanel Iphone
iPhone tracking library for Mixpanel Analytics
Stars: ✭ 939 (+1778%)
Mutual labels:  cocoapods, carthage
Imagescout
A Swift implementation of fastimage. Supports PNG, GIF, and JPEG.
Stars: ✭ 940 (+1780%)
Mutual labels:  cocoapods, carthage
Centeredcollectionview
A lightweight UICollectionViewLayout that 'pages' and centers its cells 🎡 written in Swift
Stars: ✭ 965 (+1830%)
Mutual labels:  cocoapods, carthage
Swiftysound
SwiftySound is a simple library that lets you play sounds with a single line of code.
Stars: ✭ 995 (+1890%)
Mutual labels:  cocoapods, carthage

StravaKit

MIT Licence CocoaPods Compatible Carthage Compatible Platform BuddyBuild

API client for Strava written in Swift.

See Change Log and To Do List for completed features and future plans.

CocoaPods

StravaKit is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'StravaKit', '~> 0.9'

Carthage

StravaKit can also be built using Carthage.

Add the following line to your Cartfile:

github "StravaKit/StravaKit" ~> 0.9

Beta Status

While the StravaKit version is less than 1.0.0 it is considered beta. Breaking changes will follow Semantic Versioning standards with some exceptions while it is still in beta. All versions in the 0.5.x series will be compatible while a bump to 0.6 or 0.7 may include breaking changes in model properties as those details are worked out. Once the version has reached 1.0.0 strict Semantic Versioning will be followed.

Docs

Strava Labs provides an API Reference. It includes specifications for working with OAuth and the various REST endpoints. Discussions on the API can be found in the Developer Forum.

Contributions

Assistance with adding new functionality, fixing a bug or reporting a bug is welcome. For new functionality you can browse the To Do List for missing features and once you've decided what you'd like to add you can create a new issue to let others know you are going to be preparing an update. Fork the repository, prepare your update with tests and submit a Pull Request. For bugs, if you plan on fixing them yourself, please also fork the repository, include tests and submit a Pull Request. If you've discovered a bug please create a new issue and label it as a bug. It is possible the issue has already been logged so look before adding a new issue.

If there is a feature that you feel is important and would like it implemented sooner you can create an issue and invite others to comment on it and use the reactions feature to indicate that they also are interested in that feature. The feature requests with more positive reactions will get priority.

Purpose and Goals

The StravaKit framework is intended to be a Swift implementation of a Strava API client. The goal is to make it fully functional so that it can be used to build any iOS or potentially Mac, Apple TV or watchOS app. Dependencies will be kept at a minimum. While StravaKit will be made available via CocoaPods and Carthage, it will not have any dependencies itself. It will also not load in UIKit so that it will be possible to use for developing a Mac app.

StravaKit will also track with the current version of Swift once 3.0 is released without any priority for older versions of Swift or Objective-C and iOS releases. If an app requires older versions of iOS or Objective-C it is recommended to use FRDStravaClient which is built with Objective-C and will be more appropriate for backward compatibility.

Architecture

The response returned while authorizing access to the Strava API includes the access token and the athlete profile. While these values are stored in the Keychain, this framework does not provide other data store solutions. Either another entirely separate framework will be built on top of StravaKit or optional features will be defined as submodules. With CocoaPods it is possible to define subspecs. For Carthage and SwiftPM submodules may not be supported currently. It may make most sense to create extension frameworks which work with StravaKit. A data store solution would use StravaKit and wrap all interactions with the API so the app and view controllers would not directly interact with the API and would instead submit requests to the data store for what is needed and get a deferred result when the data is ready, either from locally stored data which is still fresh or after pulling a fresh copy from the API.

License

MIT

Author

Brennan Stehling - 2016-2017

Examples

A demo application is included with StravaKit along with a comprehensive collection of tests which demonstrate how StravaKit can be used. You can also browse the documentation which is generated using Jazzy.

Note: Not all endpoints have been implemented in StravaKit. See Contributions.


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].