Vývoj iOS aplikace pro měření krevního tlaku pomocí tonometru a kamery: volba technologického stacku a implementace OCR
Vývoj iOS aplikace, která měří krevní tlak pomocí tonometru a kamery smartphonu, vyžaduje pečlivý výběr technologického stacku a implementaci přesného OCR. Toto řešení umožňuje uživatelům sledovat své zdraví bez závislosti na cloudových službách a externích API, což zajišťuje plnou autonomii a bezpečnost dat.
Volba technologického stacku pro vývoj iOS
Při vývoji aplikace pro měření tlaku pomocí tonometru byl klíčovým aspektem výběr technologického stacku. Zvažovaly se možnosti crossplatformních frameworků, jako je React Native a Flutter, ale pro úkol vyžadující vysokou přesnost OCR a přímý přístup ke kameře se ukázal nativní přístup jako výhodnější. Hlavní kritéria výběru zahrnovala:
- Kvalitu OCR: nativní Vision framework od Apple poskytuje přesné rozpoznávání textu na zařízení.
- Přístup ke kameře: AVFoundation umožňuje přímo ovládat kameru, což je klíčové pro zpracování videa v reálném čase.
- Lokální ukládání dat: SwiftData nabízí ORM podobné rozhraní bez nutnosti psaní SQL dotazů.
Výsledný stack zahrnuje:
- SwiftUI pro deklarativní tvorbu uživatelského rozhraní.
- Vision framework pro provádění OCR pomocí VNRecognizeTextRequest.
- SwiftData pro správu lokální databáze.
- Swift Charts pro vizualizaci grafů dynamiky tlaku.
- AVFoundation pro práci s kamerou (implementace v druhé části projektu).
Architektura projektu a datový model
Projekt je postaven na architektuře MVVM (Model-View-ViewModel), která je standardní pro SwiftUI. To odděluje logiku aplikace od uživatelského rozhraní, což zjednodušuje testování a údržbu kódu. Datový model je implementován pomocí anotace @Model v SwiftData, která automaticky ukládá objekty do lokální databáze bez ručních migrací. Příklad struktury modelu:
@Model
class BloodPressureReading {
var systolic: Int
var diastolic: Int
var heartRate: Int
var timestamp: Date
}
Implementace OCR a validace dat
OCR je prováděno pomocí Vision frameworku, kde VNRecognizeTextRequest zpracovává obrázky z kamery. Hlavní složitost však nespočívá v rozpoznávání textu, ale ve filtrování falešných detekcí kvůli odleskům, pozadí nebo cizím nápisům. K tomu se používá postprocessing s přísnými omezeními:
- Vyřazení fyziologicky nemožných hodnot (např. tlak nad 300 mm Hg).
- Použití algoritmů podobných NMS v detekci objektů pro odstranění duplikátů.
- Nastavení parametrů validace na základě testovacích dat.
Uživatelské rozhraní a funkčnost aplikace
Hlavní obrazovka aplikace zahrnuje:
- Graf dynamiky systolického a diastolického tlaku za posledních 7 dní, vytvořený pomocí Swift Charts.
- Kartu s posledním měřením zobrazující hodnoty a barevný indikátor (např. zelený pro normu, červený pro zvýšený tlak).
- Tlačítko pro spuštění nového měření pomocí kamery.
Aplikace funguje zcela offline, nevyžaduje internetové připojení ani účty, což garantuje důvěrnost dat.
Co je důležité
- Nativní stack SwiftUI + Vision poskytuje vysokou přesnost OCR a výkon na iOS zařízeních.
- Lokální ukládání dat s SwiftData eliminuje závislost na cloudových službách a zvyšuje bezpečnost.
- Validace OCR je klíčová pro filtrování falešných detekcí a zajištění spolehlivosti měření.
- Architektura MVVM zjednodušuje vývoj a testování oddělením logiky a rozhraní.
- Aplikace podporuje autonomní provoz, což je relevantní v podmínkách nestability externích služeb.
— Editorial Team
Zatím žádné komentáře.