App programmed in Swift/SwiftUI for using Libre 1/2 blood glucose sensors.

Last update: Apr 21, 2022

Glucose Direct App

Warning, This project is highly experimental. Please use this app with caution and extreme care. Do not mindlessly make decisions based on software. Do not use this software if you are unsure.

App programmed in Swift/SwiftUI for using Libre 1/2 blood glucose sensors. I try to keep the code as readable and understandable as possible so that as many people as possible can understand how this part of diabetes management works.

Current features

  • Libre 2 EU support (without transmitter)
  • Libre 1 support with transmitter (supported transmitter bubble)
  • Libre 1, manual scans without transmitter
  • Add manual bgm values
  • Manage bgm/cgm values
  • Units mg/dL or mmol/L
  • Upload glucose values to Nightscout
  • Upload sensor start to Nightscout
  • FreeAPS X support (with Shared App Groups)
  • Calendar export (to support Apple Watch)
  • Glucose read aloud
  • Glucose badge
  • Glucose chart
  • Glucose trend arrow
  • Glucose change per minute
  • Factory calibration
  • Custom calibration
  • Lifetime details
  • Transmitter details
  • Sensor details
  • Glucose alert for lows and highs
  • Connection lost alert
  • Missed readings alert
  • Sensor expiring alert
  • Snooze for glucose alerts

Available languages

  • Swedish
  • Spanish
  • Russian
  • Portuguese
  • Italian
  • German
  • Finnish
  • English
  • Chinese (simplified and traditional)

Requirements

  • Apple iPhone with iOS 15

Quick test?

You can quickly get an idea of Libre Direct: TestFlight

Frequently Asked Questions

Read the FAQ ☺️

Feedback?

I am very happy to receive feedback - suggestions for improvement or reports of bugs encountered.

Support?

Many thanks goes to

  • Richard for the design of the app icon
  • Jon-b-m and bubblan for your translation into Swedish
  • birdfly for your translation into Chinese (simplified and traditional)
  • Timmy_otoole and albertodeviaje2 for your translation into Spanish
  • goldshotter and ferdytao for your translation into Italian
  • Fcourela for your translation into Portuguese
  • keyzersemen, georgin303 and anton-tony_v for your translation into Russian
  • mrfrostt and Mrzurgon for your translation into Finnish
  • Thanks to all Paypal supporters
  • All who contribute to the app with their ideas

Todo

  • Cache Nightscout uploads without an Internet connection and run them later
  • Connect to Apple Health
  • Transmitter battery notifications
  • Upload sensor end to nightscout
  • Other transmitters
  • Other diabetes sources to upload to (like tidepool, ...)

Screenshots

Screenshot Screenshot Screenshot Screenshot

I use sounds from the following sources (incl. licenses):

Source: https://freesound.org/people/SpliceSound/sounds/369848 Author: SpliceSound License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Source: https://freesound.org/people/JavierZumer/sounds/257227 Author: JavierZumer License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/JavierZumer/sounds/257235 Author: JavierZumer License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/LorenzoTheGreat/sounds/417791 Author: LorenzoTheGreat License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/LittleRobotSoundFactory/sounds/270329/ Author: LittleRobotSoundFactory License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/LittleRobotSoundFactory/sounds/270327/ Author: LittleRobotSoundFactory License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/LittleRobotSoundFactory/sounds/270323/ Author: LittleRobotSoundFactory License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/LittleRobotSoundFactory/sounds/270319/ Author: LittleRobotSoundFactory License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/LittleRobotSoundFactory/sounds/270330/ Author: LittleRobotSoundFactory License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/LittleRobotSoundFactory/sounds/270305/ Author: LittleRobotSoundFactory License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/LittleRobotSoundFactory/sounds/270304/ Author: LittleRobotSoundFactory License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/ProjectsU012/sounds/341629/ Author: ProjectsU012 License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/ProjectsU012/sounds/334261/ Author: ProjectsU012 License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/ProjectsU012/sounds/360964/ Author: ProjectsU012 License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/ProjectsU012/sounds/333785/ Author: ProjectsU012 License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/TannerSound/sounds/478262/ Author: TannerSound License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/andersmmg/sounds/511491/ Author: andersmmg License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/shinephoenixstormcrow/sounds/337050/ Author: shinephoenixstormcrow License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/soneproject/sounds/346425/ Author: soneproject License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/ying16/sounds/353069/ Author: ying16 License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/queenoyster/sounds/582986/ Author: queenoyster License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Source: https://freesound.org/people/walkingdistance/sounds/185197/ Author: walkingdistance License: Attribution 3.0 Unported, http://creativecommons.org/licenses/by/3.0/

Source: https://freesound.org/people/melokacool/sounds/613653 Author: melokacool License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

GitHub

https://github.com/creepymonster/GlucoseDirectApp
Comments
  • 1. readRaw() and writeRaw() not supported by the Libre 2

    The custom NFC commands A3 and A4 to read from any 16-bit address and to gain write access to the FRAM are not supported by the Libre 2.

    The overhead introduced by the nested handlers at https://github.com/creepymonster/LibreDirectApp/blob/d1a94370ed8465234d967729fea277df121cc665/LibreDirectLibrary/Modules/Libre2/Libre2PairingService.swift#L95-L97 can be therefore avoided.

    Reviewed by gui-dos at 2021-10-03 12:34
  • 2. Schieber "Bewegung"

    Moin,

    danke für die App, eine schöne Alternative zu xDrip.

    In den Einstellungen habe ich ein interessantes Verhalten festgestellt.

    Wenn man unter "Glukose-Einstellungen" einen der beiden Slider bewegt, verschiebt sich der andere mit, aber der Wert bleibt gleich.

    Gruß mg

    Reviewed by quotengrote at 2021-12-08 13:50
  • 3. Libre Link Upload&Download integration

    For relatives and doctors that are not as technically capable and willing to use opensource software, it would be great if you could interface directly with the Abbott database. Being a Libre Linkup partner to watch over your relatives glucose levels or send your own measurements to your linkup partners like wife, husband, boyfriend or doctor would be great.

    Reviewed by yoshimo at 2021-12-26 23:15
  • 4. Libre algorithm

    It's a great app and very useful, but I have some suggestions to make if I'm allowed. First, and most importantly is the libre algorithm which in my opinion is reading to low (with about 6-7%). It would be great if you could raise the readings with about 6% at least.
    Secondly but not so important are the notifications which should be more basic. Besides that congratulations for your work!

    Reviewed by dugamarian at 2021-12-18 07:15
  • 5. adding manual BG while waiting for sensor

    I was waiting for a virtual sensor connection and added a manual Glucose Reading in List. This initiated the graph on Overview with the sensor connection state output below Simulator Screen Shot - iPhone 13 mini - 2021-12-09 at 09 49 13

    Reviewed by mountrcg at 2021-12-09 08:52
  • 6. chart scale not very clean when using mmol/l

    I understand that the chart's scale is just a direct conversion from 50 - 350 mg/dL. However, when using mmol/l, this is between 2.8 mmol/l to 19.4 mmol/l. Not having whole number scale on the graph makes it less readable.

    Would suggest implementing a different scale when using mmol/l. For example -- 2 mmol/l to 20 mmmol/l.

    Reviewed by midnightcoup at 2021-12-28 13:34
  • 7. timescale too short in default graph view/ addition of selectable timescale

    The current time range in the graph is not very long (around 1h) and is not really enough to see any meaningful trends in blood glucose. The graph is often just an almost straight line. It is not really possible to notice any trends or have an overview of the day.

    Ideally, the default view should be set to 6h and there should be a selectable timescale of 3h, 6h, 12h, and 24h.

    Reviewed by midnightcoup at 2021-12-26 23:26
  • 8. Support for Libre 2 US without transmitter

    Libre 2 US now has an app that allows it to be used without the hardware reader. However, none of the transmitters work as far as I can tell. How do I get this working? If you can point me in the right direction, I will try to get it working and send you a diff. I have not programmed in swift but, if I know how the EU version was hacked, I can do the same for the US version.

    Reviewed by xambu at 2022-01-23 16:00
  • 9. inaccuracy in glucose readings

    The readings tend to be over 1.5 mmol/l (around 30 mg/dl) off from Freestyle Libre app and from xDrip using Libre algorithm (OOP2). xDrip with Libre algorithm is much closer to the readings on the Libre app and from a finger prick test.

    Which algorithm is being used here? Are there plans to implement the OOP2?

    Reviewed by midnightcoup at 2021-12-16 17:36
  • 10. Any plans to add support for Libre Pro sensors?

    Majority of users in India use Libre Pro sensors with MiaoMiao transmitters. It's supposed to be used with the Tomato app but it is proving to be highly unreliable recently. Also, it's no longer available on the App store either. It would amazing if you could add support for Libre Pro. I can contribute as a Product Designer but unfortunately have no experience in Swift.

    Reviewed by varunmashru at 2022-03-23 20:42
  • 11. erratic trend arrows

    It seems that the trend arrow is based on the difference compared to only the last reading. This is not the best implementation because for example, if I leave the house, the change in temperature creates a small but sharp variation in in BG measurement and this frequently shows up as ↑↑ or ↓↓. The measurement soon stabilizes, but there is this transient time where the arrows are shown erratically.

    This can be mitigated by using last 10 mins or so of readings as moving mean average to calculate the trend.

    Reviewed by midnightcoup at 2021-12-28 13:39
  • 12. addition of data cursor to graph view

    It is currently not possible in graph view to have a data cursor to see what the blood glucose value is at a specific time on the graph. Sure, this can be seen by scrolling on the table view but a data cursor implementation on the graph would be a lot more usable.

    xDrip has a very nice implementation of this.

    Reviewed by midnightcoup at 2021-12-28 13:31
  • 13. Nightscout upload improvements

    First big thanks for the app. Really love this app. Simple, and supports everything I need (show current glucose value, simple calibration possibility, and upload data to nightscout).

    For the nightscout upload, I've some sort of feature request. It seems that the glucose value is uploaded every 5 minutes (00:00 - 00:05 - 00:10 - ... 23:50 - 23:55).

    Whenever such an upload should be done, but there's some issue with the glucose value (e.g. sensor is too far away from the phone and no bluetooth connection is available) or with the phone itself (e.g. no cell phone signal and no WLAN, or airplane mode is turned on), the value is missing in nightscout (and in the Diagram area of the app). The feature request would be to detect such issues, and provide (e.g. upload to nightscout) the data at a later point when the issue is resolved.

    Thinking about possible solution resulted in the following ;-) ... This may be 2 different scenarios: a) no bluetooth connection to sensor -> in this case you don't have the data. But maybe there some way to get "historical data" from the sensor (last 8h), and upload the missing pieces.

    b) no signal/airplane mode -> here the data should be available in the app. Delayed uploading the data, when either WLAN or cell phone signal is restored.

    I don't know about the technical challenges for this 2 scenarios, and how difficult it is to find out if upload to nightscout was not possible or failed.

    What's your opinion on this, do you think this may be something that could be supported?

    Thanks for the great app!

    Reviewed by blackmondaytom at 2021-12-18 14:47
Displays your HomeKit temperature sensors in your menu bar
Displays your HomeKit temperature sensors in your menu bar

Temperature Glance Displays your HomeKit temperature sensors in your menu bar Screenshot Note This is a very simple app that I made for myself but dec

Apr 9, 2022
ProximitySensor - Property wrappers for using the Proximity Sensor from the SwiftUI app

ProximitySensor Property wrappers for using the Proximity Sensor from the SwiftU

Jan 31, 2022
NetworkIcom - Project using Swift and SwiftUI to access Icom 7610 via Ethernet

Background This repository is an upload of a local Git repository from an Apple

Feb 13, 2022
Google-Blogger-iOS-App - Using Google Blogger API to build an iOS app like Medium

Google Blogger iOS App Using Google Blogger API to build an iOS app like Medium!

May 16, 2022
BioViewer - Protein (.pdb, .cif and .fasta) viewer for iPhone, iPad and Mac, using SwiftUI + SceneKit
BioViewer - Protein (.pdb, .cif and .fasta) viewer for iPhone, iPad and Mac, using SwiftUI + SceneKit

BioViewer - Protein (.pdb, .cif and .fasta) viewer for iPhone, iPad and Mac, using SwiftUI + SceneKit

Apr 12, 2022
Easy-to-use segues in SwiftUI, allowing for presenting views using common UIKIt Segue types - push, modal and popover
Easy-to-use segues in SwiftUI, allowing for presenting views using common UIKIt Segue types - push, modal and popover

Easy-to-use segues in SwiftUI, allowing for presenting views using common UIKIt Segue types - push, modal and popover

Apr 16, 2022
This was built during my bootcamp using SwiftUI, WebKit and an API from Hacker News

HackerNewsReader This was built during my bootcamp using SwiftUI, WebKit and an API from Hacker News. This was programmed from scratch with SwiftUI. I

Feb 25, 2022
A sample app that implements MVVM architecture using Swift, ViewModel, Alamofire
A sample app that implements MVVM architecture using Swift, ViewModel, Alamofire

MVVM Architecture Android: Template This repository contains a sample app that implements MVVM architecture using Swift, ViewModel, Alamofire, and etc

Oct 19, 2021
Swift sample app for running privileged operations on macOS using a helper tool
Swift sample app for running privileged operations on macOS using a helper tool

SwiftAuthorizationSample demonstrates how to run privileged operations on macOS using a helper tool managed by launchd. This sample was created with t

May 16, 2022
RMSUI - A Simple Swift MVVM architectured Rick & Morty UI app in order to practice SwiftUI & GraphQL

RMSUI A Simple Swift MVVM architectured "Rick & Morty UI" app ?? in order to pra

Jan 24, 2022
Custom MacBook login screen and pam modules using multipeer connectivity and usb hardware checks with iOS app for sign in.

Custom MacBook login screen and pam modules using multipeer connectivity and usb hardware checks with iOS app for sign in.

Apr 17, 2022
Create an app using VIPER architecture
Create an app using VIPER architecture

How not to get confused with VIPER Implementation This is a demo app to share in swift study group using VIPER Architechture When using VIPER Architec

Dec 4, 2021
a playground app using `MultipeerConnectivity` to transfor data wirelessly between iOS / iPadOS

README An example app using MultipeerConnectivity to transfor data wirelessly between iOS / iPadOS. Both using Data and Stream to transfer data are su

Jan 7, 2022
An iOS App which shows live AQI (Air quality index) data for different cities using Web-socket
An iOS App which shows live AQI (Air quality index) data for different cities using Web-socket

AQI - Assignment This is an iOS App which shows live AQI (Air quality index) dat

Apr 25, 2022
Quiz app using MVC.
Quiz app using MVC.

Quizzler Our Goal The goal of this tutorial is to take you one step further in your journey of becoming an app developer. We are going to introduce yo

Jan 10, 2022
an onboarding app built in SwiftUI
an onboarding app built in SwiftUI

hello hello is application onboarding macOS devices. Inspired by Kandji's Liftoff Logo created with Type with Pride font family Warning DO NOT USE THI

May 22, 2022
OnBoardSwiftUI-Food - Food App Onboarding screen made with SwiftUI
OnBoardSwiftUI-Food - Food App Onboarding screen made with SwiftUI

OnBoardSwiftUI-Food Food App Onboarding screen made with SwiftUI. App Details Lo

Apr 20, 2022
DBZ-Legends - A SwiftUI based app for all the DBZ peeps out there
DBZ-Legends - A SwiftUI based app for all the DBZ peeps out there

DBZ-Legends Just a simple UI based app for all the DBZ fans. You can tap on the

Apr 5, 2022