rTracker is a complete iOS application for creating local on-device databases ('trackers') to log data with timestamps.

Overview

rTracker

rTracker is a complete iOS application for creating local on-device databases ('trackers') to log data with timestamps.

Trackers can use a variety of iOS controls (number/text fields, sliders, radiobuttons, checkbuttons), and can implement limited functions on values within entries and over time. These controls comprise the data input form, and are presented when the device is in portrait orientation; rotating the device to landscape mode will present a graph of the collected data over time.

Tracker data can be exported in CSV format, and trackers (with or without data) can be shared with other rTracker users. CSV data can also be imported, and trackers can be created with (specially formatted) CSV files.

Trackers can have iOS local notifications which trigger on specific time and data criteria, implementing a 'reminder to track' facility.

rTracker supports URL schemes to either open the application main window (rTracker://) or a specific tracker (rTracker://tid=4).

A rudimentary privacy facility is available, such that trackers and/or their values can be hidden until a 'graphical password' is entered.

Views

Tracker list sample tracker graph

Status

rTracker is available on the Apple App Store. Released as open source because programming is fun, but filing company paperwork is not.

Documentation

The original webpages for the commercial website are here

Dependencies / included software

Tracker reminders (iOS local notifications) can have sounds associated with them. For the published app these have been obtained from http://www.freesfx.co.uk/ , however their licensing does not allow redistribution in this repository. Any .caf audio file included in the top level directory and added to the project in Xcode will be placed in the bundle and offered as a reminder sound effect; see the 'readme.sounds' file for details.

The TimesSquare calendar view is included, with modifications updating it for more recent versions of iOS and supporting coloring of individual dates.

Many other contributions from around the net (especially Matt Gallagher's CSV parser, and Peter Steinberger's ThreadGuard work) and snippets from StackOverflow are attributed (though often insufficiently) in the source files.

The released application includes Fabric/Crashlytics for crash reporting. Relevant lines in the source code are enabled/disabled by '#define FABRIC' in the file dbg-defs.h.

Development / layout

Preprocessor macros control log, warning and error level NSLog messages. These and other project-wide devlopment controls are contained in the file dbg-defs.h.

Each tracker defines a frontend for one sqlite3 database, and the overall list of trackers is one more (so 5 trackers means 5+1 separate sqlite3 databases).

The base class for individual tracked values is valueObj and this implements an Objective C protocol called voProtocol. The default voProtocol implementations are in voState, and subclassed in control-named classes such as voSlider.

rTrackerA is a separate build target which uses the iOS advertising platform, is limited to 8 trackers of 8 items each, and offers an in-app upgrade to remove these features. It is being/has been removed from the App Store.

rTracker-test is a separate build target for distribution to testers through Fabric.

GitHub contribution hints

License

Copyright 2010-2020 Robert T. Miller

Licensed under the Apache License, Version 2.0 (the "License"); you may not use these files except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

You might also like...
BowTies - The main purpose of this application is to show how you can perform simple operations using Core Data
BowTies - The main purpose of this application is to show how you can perform simple operations using Core Data

BowTies The main purpose of this application is to show how you can perform simp

Disk is a powerful and simple file management library built with Apple's iOS Data Storage Guidelines in mind
Disk is a powerful and simple file management library built with Apple's iOS Data Storage Guidelines in mind

Disk is a powerful and simple file management library built with Apple's iOS Data Storage Guidelines in mind

Ios-App-ication-Swift - A simple iOS application made in Xcode using Swift
Ios-App-ication-Swift - A simple iOS application made in Xcode using Swift

📱 iPhone Calculator A simple iOS application made in Xcode using Swift. This ap

🛶Shallows is a generic abstraction layer over lightweight data storage and persistence.

Shallows Shallows is a generic abstraction layer over lightweight data storage and persistence. It provides a StorageKey, Value type, instances of w

KeyPathKit is a library that provides the standard functions to manipulate data along with a call-syntax that relies on typed keypaths to make the call sites as short and clean as possible.

KeyPathKit Context Swift 4 has introduced a new type called KeyPath, with allows to access the properties of an object with a very nice syntax. For in

Realm is a mobile database: a replacement for Core Data & SQLite

Realm is a mobile database that runs directly inside phones, tablets or wearables. This repository holds the source code for the iOS, macOS, tvOS & wa

A library that provides the ability to import/export Realm files from a variety of data container formats.

Realm Converter Realm Converter is an open source software utility framework to make it easier to get data both in and out of Realm. It has been built

An alternative to Core Data for people who like having direct SQL access.

FCModel 2 An alternative to Core Data for people who like having direct SQL access. By Marco Arment. See the LICENSE file for license info (it's the M

Your Data Storage Troubleshooter 🛠
Your Data Storage Troubleshooter 🛠

Your Data Storage Troubleshooter 🛠 Introduction StorageKit is a framework which reduces the complexity of managing a persistent layer. You can easily

Comments
  • Possible incompatibility with iPhone 11 Pro or iOS 13

    Possible incompatibility with iPhone 11 Pro or iOS 13

    Since getting the new iPhone, I’ve had 2 instances where the app posted a message about recovering data. Then when the dialog went away, there was no data. On the first one, I had the data saved from my recent migration. I still have that data, but it’s as if the last week didn’t happen.

    I don’t know if this code is still maintained, but if so, thanks in advance.

    opened by PhilipTeitel 5
  • Viewing past data via the calendar no longer working

    Viewing past data via the calendar no longer working

    Before the update it used to be possible to view and edit past data by selecting a blue date on the calendar, but this doesn’t work anymore. When you pick a date the app stays on creating a new entry.

    opened by PaulRobson 2
  • Fix 14.4

    Fix 14.4

    Choice value now supports up to 8 entries 1 minute resolution for setting tracker entry time bugfixes and updates for iOS 14: fix sideways initial graph view, tracker entry menu available if mail not configured, update various deprecated frameworks to current.

    opened by rob-miller 0
  • 2019 update

    2019 update

    Fix race conditions exposed on iPhone Xs (graph issues) and iPhone 11 (corrupted databases). Update to iOS 13.3 interfaces and fix issues detected by Xcode 11.

    opened by rob-miller 0
Releases(v3.3.0)
  • v3.3.0(Apr 15, 2021)

    Choice value now supports up to 8 entries 1 minute resolution for setting tracker entry time bugfixes and updates for iOS 14: fix sideways initial graph view, tracker entry menu available if mail not configured, update various deprecated frameworks to current.

    Source code(tar.gz)
    Source code(zip)
Owner
Rob Miller
Coder, bioinformatician, Unix and 3D printer geek.
Rob Miller
A Swift wrapper for SQLite databases

Squeal, a Swift interface to SQLite Squeal provides access to SQLite databases in Swift. Its goal is to provide a simple and straight-forward base API

Christian Niles 297 Aug 6, 2022
Sharing SQL queries between Server and Mobile databases

Sharing SQL queries between Server and Mobile databases Overview As we all know, code is expensive to maintain, and the more complex the code, the mor

Aaron LaBeau 4 May 24, 2022
A GUI for dynamically creating NSPredicates at runtime to query data in your iOS app.

PredicateEditor PredicateEditor is a visual editor for creating and using NSPredicates for querying data in your app. PredicateEditor was inspired by

Arvindh Sukumar 362 Jul 1, 2022
StorageManager - FileManager framework that handels Store, fetch, delete and update files in local storage

StorageManager - FileManager framework that handels Store, fetch, delete and update files in local storage. Requirements iOS 8.0+ / macOS 10.10+ / tvOS

Amr Salman 47 Nov 3, 2022
pick the voice from the local storage.you can play and pause the voice

flutter_add_voice A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you starte

Mehrab Bozorgi 1 Nov 27, 2021
Web server serving local files

swift-web A web server serving local static files. Installation Using Mint The easiest way to install swift-web is via mint. mint install adam-fowler/

Adam Fowler 10 Dec 10, 2022
Easiest local storage library in Swift

SundeedQLite SundeedQLite is the easiest offline database integration, built using Swift language Requirements iOS 12.0+ XCode 10.3+ Swift 5+ Installa

Nour Sandid 15 Sep 23, 2022
BubblePop - a number of bubbles are randomly displayed on an iOS device screen

Description The game is called BubblePop . In this game, a number of bubbles are

null 2 Mar 23, 2022
Creating a Todo app using Realm and SwiftUI

Realmで作るTodoアプリ note記事「【SwiftUI】Realmを使ってTodoアプリを作る」のソースです。

null 1 Jul 20, 2022
CloudKit, Apple’s remote data storage service, provides a possibility to store app data using users’ iCloud accounts as a back-end storage service.

CloudKit, Apple’s remote data storage service, provides a possibility to store app data using users’ iCloud accounts as a back-end storage service. He

Yalantis 252 Nov 4, 2022