Repository files navigation

Glucose Direct

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

App programmed in Swift/SwiftUI for using Libre 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 3 Support* (over LibreLinkUp)
  • Libre 2 EU support (without transmitter) - Currently not supported are Libre 2 US/CA/AUS, Libre Pro, Libre H sensors :'( - I am very happy about support for their connection
  • 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 statistics
  • 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
  • Simple evaluation of glucose values
  • Loop (Workspace, dev branch) support, Loop CGM Manager
  • Insulin input and display

Available languages

  • Bulgarian
  • Chinese (simplified)
  • Chinese (traditional)
  • Dutch
  • English
  • Finnish
  • French
  • Georgian
  • German
  • Italian
  • Polish
  • Portuguese
  • Russian
  • Spanish
  • Swedish
  • Turkish
  • Ukrainian ❤️🇺🇦

Requirements

  • Apple iPhone with iOS 15

Quick test?

You can quickly get an idea of Glucose 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?

Thank you all hardworking translators for your great work ❤️

birdfly, Diabetlum, Fcourela, Anna Furman (annafman), Nicola Lorenzetti (goldshotter), Matthias (HellsCrimson), Sahar Monitor (keyzersemen), Timmy_otoole, evr, Jon B Mårtensson (JBM_), Mrzurgon, Alberto Del Rio Malo (albertodeviaje2), georgin303@yandex.ru (georgin303), eyesoganci, mrfrostt, Mykola (Yroslavadudko), Fábio Romariz (fabioromariz), Francisco Losada (flosada), Moschetti Tiziana (ellie_fiume), Daisy Zhang (ryes), Alberto Nadim Assaf (alberto330), ferdytao, Irena Tkach (iratkach_1), Jean-Jacques Erbstein (jjerbstein), Bmwmax73, Zhang Lin (Kobe24), Ato83, Rico Opheij (CrazySugarNL), Imma Texeira Ceró (immatexeira), kadet11415, Anton Vershinin (anton-tony_v), Bubblan, Asli Uygun Cheesmar (asliseckin), yinojiang,

Todo

  • Cache Nightscout uploads without an Internet connection and run them later
  • Transmitter battery notifications
  • Upload sensor end to nightscout

Screenshots

ScreenshotScreenshotScreenshotScreenshot

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

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

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

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

Source:https://freesound.org/people/LorenzoTheGreat/sounds/417791Author: 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/613653Author: melokacool License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Glucose Direct

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

App programmed in Swift/SwiftUI for using Libre 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 3 Support* (over LibreLinkUp)
  • Libre 2 EU support (without transmitter) - Currently not supported are Libre 2 US/CA/AUS, Libre Pro, Libre H sensors :'( - I am very happy about support for their connection
  • 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 statistics
  • 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
  • Simple evaluation of glucose values
  • Loop (Workspace, dev branch) support, Loop CGM Manager
  • Insulin input and display

Available languages

  • Bulgarian
  • Chinese (simplified)
  • Chinese (traditional)
  • Dutch
  • English
  • Finnish
  • French
  • Georgian
  • German
  • Italian
  • Polish
  • Portuguese
  • Russian
  • Spanish
  • Swedish
  • Turkish
  • Ukrainian ❤️🇺🇦

Requirements

  • Apple iPhone with iOS 15

Quick test?

You can quickly get an idea of Glucose 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?

Thank you all hardworking translators for your great work ❤️

birdfly, Diabetlum, Fcourela, Anna Furman (annafman), Nicola Lorenzetti (goldshotter), Matthias (HellsCrimson), Sahar Monitor (keyzersemen), Timmy_otoole, evr, Jon B Mårtensson (JBM_), Mrzurgon, Alberto Del Rio Malo (albertodeviaje2), georgin303@yandex.ru (georgin303), eyesoganci, mrfrostt, Mykola (Yroslavadudko), Fábio Romariz (fabioromariz), Francisco Losada (flosada), Moschetti Tiziana (ellie_fiume), Daisy Zhang (ryes), Alberto Nadim Assaf (alberto330), ferdytao, Irena Tkach (iratkach_1), Jean-Jacques Erbstein (jjerbstein), Bmwmax73, Zhang Lin (Kobe24), Ato83, Rico Opheij (CrazySugarNL), Imma Texeira Ceró (immatexeira), kadet11415, Anton Vershinin (anton-tony_v), Bubblan, Asli Uygun Cheesmar (asliseckin), yinojiang,

Todo

  • Cache Nightscout uploads without an Internet connection and run them later
  • Transmitter battery notifications
  • Upload sensor end to nightscout

Screenshots

ScreenshotScreenshotScreenshotScreenshot

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

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

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

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

Source:https://freesound.org/people/LorenzoTheGreat/sounds/417791Author: 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/613653Author: melokacool License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Glucose Direct

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

App programmed in Swift/SwiftUI for using Libre 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 3 Support* (over LibreLinkUp)
  • Libre 2 EU support (without transmitter) - Currently not supported are Libre 2 US/CA/AUS, Libre Pro, Libre H sensors :'( - I am very happy about support for their connection
  • 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 statistics
  • 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
  • Simple evaluation of glucose values
  • Loop (Workspace, dev branch) support, Loop CGM Manager
  • Insulin input and display

Available languages

  • Bulgarian
  • Chinese (simplified)
  • Chinese (traditional)
  • Dutch
  • English
  • Finnish
  • French
  • Georgian
  • German
  • Italian
  • Polish
  • Portuguese
  • Russian
  • Spanish
  • Swedish
  • Turkish
  • Ukrainian ❤️🇺🇦

Requirements

  • Apple iPhone with iOS 15

Quick test?

You can quickly get an idea of Glucose 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?

Thank you all hardworking translators for your great work ❤️

birdfly, Diabetlum, Fcourela, Anna Furman (annafman), Nicola Lorenzetti (goldshotter), Matthias (HellsCrimson), Sahar Monitor (keyzersemen), Timmy_otoole, evr, Jon B Mårtensson (JBM_), Mrzurgon, Alberto Del Rio Malo (albertodeviaje2), georgin303@yandex.ru (georgin303), eyesoganci, mrfrostt, Mykola (Yroslavadudko), Fábio Romariz (fabioromariz), Francisco Losada (flosada), Moschetti Tiziana (ellie_fiume), Daisy Zhang (ryes), Alberto Nadim Assaf (alberto330), ferdytao, Irena Tkach (iratkach_1), Jean-Jacques Erbstein (jjerbstein), Bmwmax73, Zhang Lin (Kobe24), Ato83, Rico Opheij (CrazySugarNL), Imma Texeira Ceró (immatexeira), kadet11415, Anton Vershinin (anton-tony_v), Bubblan, Asli Uygun Cheesmar (asliseckin), yinojiang,

Todo

  • Cache Nightscout uploads without an Internet connection and run them later
  • Transmitter battery notifications
  • Upload sensor end to nightscout

Screenshots

ScreenshotScreenshotScreenshotScreenshot

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

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

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

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

Source:https://freesound.org/people/LorenzoTheGreat/sounds/417791Author: 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/613653Author: melokacool License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Glucose Direct

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

App programmed in Swift/SwiftUI for using Libre 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 3 Support* (over LibreLinkUp)
  • Libre 2 EU support (without transmitter) - Currently not supported are Libre 2 US/CA/AUS, Libre Pro, Libre H sensors :'( - I am very happy about support for their connection
  • 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 statistics
  • 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
  • Simple evaluation of glucose values
  • Loop (Workspace, dev branch) support, Loop CGM Manager
  • Insulin input and display

Available languages

  • Bulgarian
  • Chinese (simplified)
  • Chinese (traditional)
  • Dutch
  • English
  • Finnish
  • French
  • Georgian
  • German
  • Italian
  • Polish
  • Portuguese
  • Russian
  • Spanish
  • Swedish
  • Turkish
  • Ukrainian ❤️🇺🇦

Requirements

  • Apple iPhone with iOS 15

Quick test?

You can quickly get an idea of Glucose 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?

Thank you all hardworking translators for your great work ❤️

birdfly, Diabetlum, Fcourela, Anna Furman (annafman), Nicola Lorenzetti (goldshotter), Matthias (HellsCrimson), Sahar Monitor (keyzersemen), Timmy_otoole, evr, Jon B Mårtensson (JBM_), Mrzurgon, Alberto Del Rio Malo (albertodeviaje2), georgin303@yandex.ru (georgin303), eyesoganci, mrfrostt, Mykola (Yroslavadudko), Fábio Romariz (fabioromariz), Francisco Losada (flosada), Moschetti Tiziana (ellie_fiume), Daisy Zhang (ryes), Alberto Nadim Assaf (alberto330), ferdytao, Irena Tkach (iratkach_1), Jean-Jacques Erbstein (jjerbstein), Bmwmax73, Zhang Lin (Kobe24), Ato83, Rico Opheij (CrazySugarNL), Imma Texeira Ceró (immatexeira), kadet11415, Anton Vershinin (anton-tony_v), Bubblan, Asli Uygun Cheesmar (asliseckin), yinojiang,

Todo

  • Cache Nightscout uploads without an Internet connection and run them later
  • Transmitter battery notifications
  • Upload sensor end to nightscout

Screenshots

ScreenshotScreenshotScreenshotScreenshot

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

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

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

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

Source:https://freesound.org/people/LorenzoTheGreat/sounds/417791Author: 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/613653Author: melokacool License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Glucose Direct

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

App programmed in Swift/SwiftUI for using Libre 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 3 Support* (over LibreLinkUp)
  • Libre 2 EU support (without transmitter) - Currently not supported are Libre 2 US/CA/AUS, Libre Pro, Libre H sensors :'( - I am very happy about support for their connection
  • 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 statistics
  • 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
  • Simple evaluation of glucose values
  • Loop (Workspace, dev branch) support, Loop CGM Manager
  • Insulin input and display

Available languages

  • Bulgarian
  • Chinese (simplified)
  • Chinese (traditional)
  • Dutch
  • English
  • Finnish
  • French
  • Georgian
  • German
  • Italian
  • Polish
  • Portuguese
  • Russian
  • Spanish
  • Swedish
  • Turkish
  • Ukrainian ❤️🇺🇦

Requirements

  • Apple iPhone with iOS 15

Quick test?

You can quickly get an idea of Glucose 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?

Thank you all hardworking translators for your great work ❤️

birdfly, Diabetlum, Fcourela, Anna Furman (annafman), Nicola Lorenzetti (goldshotter), Matthias (HellsCrimson), Sahar Monitor (keyzersemen), Timmy_otoole, evr, Jon B Mårtensson (JBM_), Mrzurgon, Alberto Del Rio Malo (albertodeviaje2), georgin303@yandex.ru (georgin303), eyesoganci, mrfrostt, Mykola (Yroslavadudko), Fábio Romariz (fabioromariz), Francisco Losada (flosada), Moschetti Tiziana (ellie_fiume), Daisy Zhang (ryes), Alberto Nadim Assaf (alberto330), ferdytao, Irena Tkach (iratkach_1), Jean-Jacques Erbstein (jjerbstein), Bmwmax73, Zhang Lin (Kobe24), Ato83, Rico Opheij (CrazySugarNL), Imma Texeira Ceró (immatexeira), kadet11415, Anton Vershinin (anton-tony_v), Bubblan, Asli Uygun Cheesmar (asliseckin), yinojiang,

Todo

  • Cache Nightscout uploads without an Internet connection and run them later
  • Transmitter battery notifications
  • Upload sensor end to nightscout

Screenshots

ScreenshotScreenshotScreenshotScreenshot

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

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

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

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

Source:https://freesound.org/people/LorenzoTheGreat/sounds/417791Author: 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/613653Author: melokacool License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Glucose Direct

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

App programmed in Swift/SwiftUI for using Libre 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 3 Support* (over LibreLinkUp)
  • Libre 2 EU support (without transmitter) - Currently not supported are Libre 2 US/CA/AUS, Libre Pro, Libre H sensors :'( - I am very happy about support for their connection
  • 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 statistics
  • 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
  • Simple evaluation of glucose values
  • Loop (Workspace, dev branch) support, Loop CGM Manager
  • Insulin input and display

Available languages

  • Bulgarian
  • Chinese (simplified)
  • Chinese (traditional)
  • Dutch
  • English
  • Finnish
  • French
  • Georgian
  • German
  • Italian
  • Polish
  • Portuguese
  • Russian
  • Spanish
  • Swedish
  • Turkish
  • Ukrainian ❤️🇺🇦

Requirements

  • Apple iPhone with iOS 15

Quick test?

You can quickly get an idea of Glucose 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?

Thank you all hardworking translators for your great work ❤️

birdfly, Diabetlum, Fcourela, Anna Furman (annafman), Nicola Lorenzetti (goldshotter), Matthias (HellsCrimson), Sahar Monitor (keyzersemen), Timmy_otoole, evr, Jon B Mårtensson (JBM_), Mrzurgon, Alberto Del Rio Malo (albertodeviaje2), georgin303@yandex.ru (georgin303), eyesoganci, mrfrostt, Mykola (Yroslavadudko), Fábio Romariz (fabioromariz), Francisco Losada (flosada), Moschetti Tiziana (ellie_fiume), Daisy Zhang (ryes), Alberto Nadim Assaf (alberto330), ferdytao, Irena Tkach (iratkach_1), Jean-Jacques Erbstein (jjerbstein), Bmwmax73, Zhang Lin (Kobe24), Ato83, Rico Opheij (CrazySugarNL), Imma Texeira Ceró (immatexeira), kadet11415, Anton Vershinin (anton-tony_v), Bubblan, Asli Uygun Cheesmar (asliseckin), yinojiang,

Todo

  • Cache Nightscout uploads without an Internet connection and run them later
  • Transmitter battery notifications
  • Upload sensor end to nightscout

Screenshots

ScreenshotScreenshotScreenshotScreenshot

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

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

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

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

Source:https://freesound.org/people/LorenzoTheGreat/sounds/417791Author: 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/613653Author: melokacool License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Glucose Direct

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

App programmed in Swift/SwiftUI for using Libre 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 3 Support* (over LibreLinkUp)
  • Libre 2 EU support (without transmitter) - Currently not supported are Libre 2 US/CA/AUS, Libre Pro, Libre H sensors :'( - I am very happy about support for their connection
  • 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 statistics
  • 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
  • Simple evaluation of glucose values
  • Loop (Workspace, dev branch) support, Loop CGM Manager
  • Insulin input and display

Available languages

  • Bulgarian
  • Chinese (simplified)
  • Chinese (traditional)
  • Dutch
  • English
  • Finnish
  • French
  • Georgian
  • German
  • Italian
  • Polish
  • Portuguese
  • Russian
  • Spanish
  • Swedish
  • Turkish
  • Ukrainian ❤️🇺🇦

Requirements

  • Apple iPhone with iOS 15

Quick test?

You can quickly get an idea of Glucose 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?

Thank you all hardworking translators for your great work ❤️

birdfly, Diabetlum, Fcourela, Anna Furman (annafman), Nicola Lorenzetti (goldshotter), Matthias (HellsCrimson), Sahar Monitor (keyzersemen), Timmy_otoole, evr, Jon B Mårtensson (JBM_), Mrzurgon, Alberto Del Rio Malo (albertodeviaje2), georgin303@yandex.ru (georgin303), eyesoganci, mrfrostt, Mykola (Yroslavadudko), Fábio Romariz (fabioromariz), Francisco Losada (flosada), Moschetti Tiziana (ellie_fiume), Daisy Zhang (ryes), Alberto Nadim Assaf (alberto330), ferdytao, Irena Tkach (iratkach_1), Jean-Jacques Erbstein (jjerbstein), Bmwmax73, Zhang Lin (Kobe24), Ato83, Rico Opheij (CrazySugarNL), Imma Texeira Ceró (immatexeira), kadet11415, Anton Vershinin (anton-tony_v), Bubblan, Asli Uygun Cheesmar (asliseckin), yinojiang,

Todo

  • Cache Nightscout uploads without an Internet connection and run them later
  • Transmitter battery notifications
  • Upload sensor end to nightscout

Screenshots

ScreenshotScreenshotScreenshotScreenshot

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

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

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

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

Source:https://freesound.org/people/LorenzoTheGreat/sounds/417791Author: 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/613653Author: melokacool License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Glucose Direct

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

App programmed in Swift/SwiftUI for using Libre 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 3 Support* (over LibreLinkUp)
  • Libre 2 EU support (without transmitter) - Currently not supported are Libre 2 US/CA/AUS, Libre Pro, Libre H sensors :'( - I am very happy about support for their connection
  • 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 statistics
  • 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
  • Simple evaluation of glucose values
  • Loop (Workspace, dev branch) support, Loop CGM Manager
  • Insulin input and display

Available languages

  • Bulgarian
  • Chinese (simplified)
  • Chinese (traditional)
  • Dutch
  • English
  • Finnish
  • French
  • Georgian
  • German
  • Italian
  • Polish
  • Portuguese
  • Russian
  • Spanish
  • Swedish
  • Turkish
  • Ukrainian ❤️🇺🇦

Requirements

  • Apple iPhone with iOS 15

Quick test?

You can quickly get an idea of Glucose 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?

Thank you all hardworking translators for your great work ❤️

birdfly, Diabetlum, Fcourela, Anna Furman (annafman), Nicola Lorenzetti (goldshotter), Matthias (HellsCrimson), Sahar Monitor (keyzersemen), Timmy_otoole, evr, Jon B Mårtensson (JBM_), Mrzurgon, Alberto Del Rio Malo (albertodeviaje2), georgin303@yandex.ru (georgin303), eyesoganci, mrfrostt, Mykola (Yroslavadudko), Fábio Romariz (fabioromariz), Francisco Losada (flosada), Moschetti Tiziana (ellie_fiume), Daisy Zhang (ryes), Alberto Nadim Assaf (alberto330), ferdytao, Irena Tkach (iratkach_1), Jean-Jacques Erbstein (jjerbstein), Bmwmax73, Zhang Lin (Kobe24), Ato83, Rico Opheij (CrazySugarNL), Imma Texeira Ceró (immatexeira), kadet11415, Anton Vershinin (anton-tony_v), Bubblan, Asli Uygun Cheesmar (asliseckin), yinojiang,

Todo

  • Cache Nightscout uploads without an Internet connection and run them later
  • Transmitter battery notifications
  • Upload sensor end to nightscout

Screenshots

ScreenshotScreenshotScreenshotScreenshot

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

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

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

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

Source:https://freesound.org/people/LorenzoTheGreat/sounds/417791Author: 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/613653Author: melokacool License: CC0 1.0 Universal, http://creativecommons.org/publicdomain/zero/1.0/

Releases

Packages

Used by

Contributors

Languages