Caffeine tracking for everyone

Overview

Cortado

Download Cortado on the App Store

CI Status Coverage Status

Cortado is an iPhone app to help you track your caffeine consumption habits. Besides letting you manually enter caffeine data, it detects when you are at a coffee shop and automatically prompts you to input data right from your lock screen or watch.

For more information on the ideas behind Cortado, check out the blog post introducing it.

Cortado is available for sale on the App Store. While this codebase will allow you to build and run the app for free, if you actually use Cortado, please buy it on the App Store to help support future development.

Setup

  1. Clone this repo: git clone https://github.com/lazerwalker/cortado.git
  2. Generate API keys for both Foursquare and Mixpanel.
  3. If they are not already on your machine, install Cocoapods and Cocoapods-Keys: sudo gem install cocoapods cocoapods-keys
  4. Run pod install, plugging in your Mixpanel and Foursquare API keys as prompted.
  5. Open Cortado.xcworkspace in Xcode

From there, you should be good to go to build Cortado!

Contributing

Pull requests are welcome! Please run the test suite before opening a pull request, and please try to add new tests as appropriate.

Although there is no formal style guide, please follow the example of existing code. In general, you should:

  • Prefer autolayout over manual frame positioning
  • Prefer Interface Builder over layout code
  • Have no more than 1-2 view controllers/views per Storyboard/xib.
  • Maintain model immutability whenever possible
  • Use MVVM architecture and ReactiveCocoa as appropriate

A Plea

Releasing Cortado under such a liberal license is an experiment. I'm putting a lot of trust in you. Please don't abuse that trust. If you use Cortado, please buy a copy rather than simply compiling it from source. If you want to build your own software based off of my code, please make it meaningfully different rather than just a Cortado clone. You're all wonderful people, and I know I don't even need to be saying any of this.

License

The source code to Cortado is available under the MIT license. See the LICENSE file for more information.

The icons and photos that appear in this app are all licensed under a Creative Commons By-Attribution license. For licensing information and attribution for a given art asset, check out the "Image Attribution" section of the app (accessible from the settings page of the app itself, or from within SettingsViewController.storyboard in Xcode).

Although technically allowed by the licensing terms, please do not simply submit your own version of Cortado to the App Store.

Contact

Em Lazer-Walker

Comments
  • Location prompt questions!

    Location prompt questions!

    Hi there, this looks awesome! Congrats on the release and open source!

    You talk a bit about the power of prompting the user when they're near a location so I'm curious about your experience with your setup. It looks like you're fetching venues around the user with the coffee category (not starbucks!), then setting local notifications for those coordinates.

    How frequently do you refetch nearby coffee shops? Local notifications for coordinates are subject to limitations for how many geofences can be active at once. What's your thinking behind managing how many of these are active at any time?

    opened by nickoneill 2
  • Fix Travis / Coveralls integration

    Fix Travis / Coveralls integration

    Locally, the tests pass and Coveralls/Slather works. There's some config needed to get Travis to work, though, seemingly centered around Cocoapods-Keys.

    opened by lazerwalker 0
  • Today widget

    Today widget

    Sometimes I drink coffee not at a coffee shop. Should be a pretty simple implementation to have a "yo"-like interface for coffee consumption.

    opened by rodericj 5
  • Store venueID?

    Store venueID?

    When a venue is associated with a caffeine entry, I'm just storing that venue's name. Might be nice for completeness' sake to add the Foursquare venueID if we have it.

    opened by lazerwalker 0
  • Add URL scheme

    Add URL scheme

    Would be nice to be able to pass in e.g. cortado://addDrink?lat=70.27834&lng=18274&venueName=Blue%20Bottle%20Coffee and get a screen identical to tapping "Other" from a notification.

    opened by lazerwalker 1
  • Changing Date crashing app

    Changing Date crashing app

    Trying to edit an entry's date crashes the app and does not save the changes attempted to be made. After selecting a date in the past and tapping "done", the crash occurs. I'm on an iPhone 6+ running iOS 9 b3.

    opened by evanattwitter 4
Owner
Emilia
Emilia
This library uses ARKit Face Tracking in order to catch user's smile.

SmileToUnlock Make your users smile before opening the app :) Gif with the demonstration Installation Cocoapods The most preferable way to use this li

Ruslan Serebriakov 628 Oct 22, 2022
A library that allows you to generate and update environment maps in real-time using the camera feed and ARKit's tracking capabilities.

ARKitEnvironmentMapper Example To run the example project, clone the repo, and run pod install from the Example directory first. Installation ARKitEnv

SV Hawks 91 Dec 4, 2022
Augmented Reality image tracking with SwiftUI, RealityKit and ARKit 4.

ARImageTracking This is an Augmented Reality Xcode project that uses Apple's newest RealityKit framework and ARKit 4 features, to dynamically track a

Richard Qi 198 Dec 7, 2022
Everyone tries to implement a cache at some point in their iOS app’s lifecycle, and this is ours.

Everyone tries to implement a cache at some point in their app’s lifecycle, and this is ours. This is a library that allows people to cache NSData wit

Spotify 1.2k Dec 28, 2022
A simple, but powerful UI patcher for macOS Big Sur designed for everyone.

What is Patched Sur? Patched Sur is a UI patcher for macOS Big Sur, designed to make it easy to run macOS 11 on unsupported Macs. This patcher hopes t

Ben 274 Dec 24, 2022
RaceMe is a run tracking + ghosting iOS mobile application.

RaceMe RaceMe is a run tracking + ghosting iOS mobile application. Core features: run tracking ghost runner simulation in real time compete with runne

Enoch Ng 608 Dec 8, 2022
Menubar app to remove link tracking parameters automatically

TrackerZapper Website and more info TrackerZapper is a Mac app that sits in your menubar and silently removes tracking parameters from any links you c

Robb Knight 280 Jan 2, 2023
Intuitive cycling tracker app for iOS built with SwiftUI using Xcode. Features live route tracking, live metrics, storage of past cycling routes and many customization settings.

GoCycling Available on the iOS App Store https://apps.apple.com/app/go-cycling/id1565861313 App Icon About Go Cycling is a cycling tracker app built e

Anthony Hopkins 64 Dec 19, 2022
A library that allows you to generate and update environment maps in real-time using the camera feed and ARKit's tracking capabilities.

ARKitEnvironmentMapper Example To run the example project, clone the repo, and run pod install from the Example directory first. Installation ARKitEnv

SV Hawks 91 Dec 4, 2022
This library uses ARKit Face Tracking in order to catch user's smile.

SmileToUnlock Make your users smile before opening the app :) Gif with the demonstration Installation Cocoapods The most preferable way to use this li

Ruslan Serebriakov 628 Oct 22, 2022
A library that allows you to generate and update environment maps in real-time using the camera feed and ARKit's tracking capabilities.

ARKitEnvironmentMapper Example To run the example project, clone the repo, and run pod install from the Example directory first. Installation ARKitEnv

SV Hawks 91 Dec 4, 2022
Build your own 'AirTags' 🏷 today! Framework for tracking personal Bluetooth devices via Apple's massive Find My network.

OpenHaystack is a framework for tracking personal Bluetooth devices via Apple's massive Find My network.

Secure Mobile Networking Lab 5.8k Jan 9, 2023
Augmented Reality image tracking with SwiftUI, RealityKit and ARKit 4.

ARImageTracking This is an Augmented Reality Xcode project that uses Apple's newest RealityKit framework and ARKit 4 features, to dynamically track a

Richard Qi 198 Dec 7, 2022
Restoration tracking & research app for iOS

Tugz Restoration tracking & research app for iOS For Android check out Tea Time Logger Several discussions on the restoration subreddit the idea of a

null 2 Apr 20, 2022
An interactive body tracking installation

SharingElements An interactive body tracking installation Requirements Hardware requirements: MacOS computer (preferably (M1 chip)[https://en.wikipedi

Joel Gethin Lewis 15 Jun 7, 2022
🌍 Nearby earthquake tracking app

Earthquake Tracker Description An application for tracking earthquakes in a radius of 2500 km from the user's location in the last month. Information

Anastasia Bespalova 0 Dec 9, 2021
Nearby earthquake tracking app

Earthquake Tracker Description An application for tracking earthquakes in a radius of 2500 km from the user's location in the last month. Information

Anastasia Bespalova 0 Dec 9, 2021
Objective-C library for tracking keyboard in iOS apps.

NgKeyboardTracker Objective-c library for tracking keyboard in iOS apps. Adding to your project If you are using CocoaPods, add to your Podfile: pod '

Meiwin Fu 808 Nov 17, 2022
An application on the iPad for people who cook. It comes with features such as smart recipes, recipe management and ingredient inventory tracking.

ChopChop ChopChop is an application on the iPad for people who cook. It comes with features such as smart recipes, recipe management and ingredient in

Seow Alex 0 Dec 23, 2021
Simple and Lightweight App Version Tracking for iOS written in Swift

AEAppVersion Simple and lightweight iOS App Version Tracking written in Swift I made this for personal use, but feel free to use it or contribute. For

Marko Tadić 12 Nov 11, 2022