En esta conferencia Pedro Diezma profundiza en el SDK WatchKit para comenzar a crear aplicaciones para el wearable de Apple. Analizando, además, las posibilidades de integración con el framework HealthKit de iOS 8.
3. - Compañía de capital 100% español
- Especialización en soluciones
wearable aplicadas al ámbito
empresarial
- Más de 15 años de experiencia en
consultoría tecnológica, desarrollo e
integración de sistemas
- Expertos en tecnologías wearable
- Acuerdos y estrecha colaboración
con fabricantes de dispositivos
líderes en el mercado: Thalmics
Labs, Google, Space Glasses,
Qualcomm, Layar, Meta, etc.
- Líder en el mercado español en
soluciones wearable
Company overview
Onalytica, founded in 2004, is an influence monitor platform
which automatically sources and tracks meaningful, relevant
content from over 40 million global sources, allowing our
customers to better understand the Voice of the Market.
13. TM
on WearTech
¿Qué es el Health Kit? I
• HealthKit es un framework y parte importantes
de iOS8 y es el primer paso para sacar el máximo
potencial a Apple Watch.
• Aporta un datastore centralizado, coordinado y
seguro información sobre salud.
• El sistema operativo aporta privacidad y
seguridad. Requiere de la autorización del
usuario.
• HealthKit trabaja con third-party apps y ofrece al
usuario el control sobre la información que
comparte.
• Puedes ver diagnósticos, resultados de
laboratorio y exámentes médicos.
14. TM
on WearTech
¿Qué es el Health Kit? II
• Apple ha trabajado con las clínicas Mayo, con
Nike y otros centros del Salud.
• Es un easy-to-read dashboard para el fitness y
health data
• enfoque mix-and-match
• Muestra pulso, calorías, colesterol y todo tipo de
información médica.
• Dispone de un Emergency Card, donde podemos
poner grupo santguíneo y alergias.
17. TM
on WearTech
¿Qué es el Health Kit?
Los desarrolladores NO pueden crear tipos de datos personalizados o unidades. En
cambio, HealthKit intenta proporcionar una lista bastante completa de tipos de datos y
unidades
Todos los objetos HealthKit tienen las siguientes propiedades:
• UUID. Un identificador único para esa entrada en particular.
• Fuente. La fuente de los datos.
• Metadatos. Un diccionario que contiene información adicional sobre la entrada.
Objetos HealthKit se pueden dividir en dos grupos principales: características (No cambian:
sexo, altura, etc.) y muestras (representan datos en un punto determinado en el tiempo
). clase HKSample :
• Type: análisis de una muestra del sueño, una muestra
de altura, o una muestra de recuento de pasos.
• Start date.
• End date
18. TM
on WearTech
¿Qué es el Health Kit?
Las muestras se pueden dividir además en cuatro subtipos:
• Category samples (HKCategorySample): Sólo hay un tipo de categoría de
la muestra, el análisis del sueño.
• Quantity samples (HKQuantitySample ): Estas muestras representan los
datos que se pueden almacenar como valores numéricos: pasos dados, la
temperatura del usuario, y su frecuencia de pulso.
• Correlations (HKCorrelation): contiene una o más muestras: alimentación
y la presión arterial.
• Workouts (HKWorkout ) Entrenamientos representan algún tipo de
actividad física, como correr, nadar, o incluso jugar. Entrenamientos a
menudo tienen tipo, duración, distancia, etc.
19. ¿Qué es el Health Kit?
HKUnit: Ofrece la representación para una sola unidad. Es compatible con una
amplia gama de unidades métricas. Una unidad simple representa una sola
medición, como metros, libras o segundos. Una unidad compleja combina una o
más unidades simples utilizando operaciones matemáticas, tales m / s, o mG/dL..
HKQuantity: Almacena un valor para una unidad determinada.
HealthKit proporciona soporte para las unidades que utilizan las clases
HKUnit y HKQuantity:
21. TM
on WearTech
Posibilidades Health Kit
Deporte y Ejercicios Salud trabajadores Consultas médicas
Rehabilitación Riesgos laborales
+ Emergencias
Dieta y control de peso
31. // Guardar Datos Sueño
var healthStore: HKHealthStore? Link base de datos
****************************************
let nowDate: NSDate = NSDate() Fecha
let sleepAnalysisType: HKCategorySampleType =
HKCategorySampleType.categoryTypeForIdentifier(HKCategoryTypeIdentifi
erSleepAnalysis) Type Sleep Analysis
let sleepCategorySample: HKCategorySample = HKCategorySample(type:
sleepAnalysisType, value: sleepValue, startDate: nowDate, endDate:
nowDate) creamos el objeto muestra para guardar en healthkit
self.healthStore!.saveObject(sleepCategorySample, withCompletion:
completion) Guardamos
Programación Apple Watch
32. Bluetooth
//Guardamos información de la Glucosa
var healthStore: HKHealthStore? // Link a BBDD
let nowDate: NSDate = NSDate() // Fecha Actual
let mgUnit: HKUnit = HKUnit.gramUnitWithMetricPrefix(.mg) // Objeto
HKUnit mG
let dlUnit: HKUnit =HKUnit.literUnitWithMetricPrefix(.dl) // Objeto
HKUnit dL
let sugarUnit: HKUnit = mgUnit.unitDividedByUnit(dlUnit) // Objeto
HKUnit mG/dL
let sugarQuantity: HKQuantity = HKQuantity(unit: sugarUnit, doubleValue:
value) //Cantidad, valor (ex 150)
let sugarType: HKQuantityType =
HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietar
ySugar) // Tipo Objeto en Healthkit
let sugarSample: HKQuantitySample = HKQuantitySample(type: sugarType,
quantity: sugarQuantity, startDate: nowDate, endDate: nowDate) //
Objeto a insertar BD
self.healthStore!.saveObject(sugarSample, withCompletion: completion)
// Añades a Base de datos
Programación Apple Watch
33. Esquema App Diagnóstico: Rules
//ScanController, controla el tap del botón scanear y recoge info
de Healthkit
func buttonScanAction(sender:UIButton!)
{
let sugarType: HKQuantityType =
HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietarySugar)
//Objeto Type info a recuperar (Azúcar)
let starDate: NSDate = NSDate.date()
// Definimos variables startDate y endDate a fecha actual
let endDate: NSDate = NSDate.date()
let predicate: NSPredicate = HKQuery.predicateForSamplesWithStartDate(startDate:
startDate, endDate: endDate, options: HKQueryOptions.StrictStartDate)
// Creamos query siguiendo las fechas
let query: HKStatisticsQuery = HKStatisticsQuery(quantityType: sugarType,
quantitySamplePredicate: predicate, options: nil) {
(_query, result, error) -> Void in
if completionHandler != nil {
}
}
self.healthStore!.executeQuery(query)
}
34. Programación Apple Watch
Comprobamos los valores del scaneo para ver que tipo de
enfermedad puedes tener, si detecta alguna llama al
QuestionsController
func Rules(glucoseValue: Int, HeartRateValue: Int, SleepValue: Int)
sharedInstance.database!.open()
let query: String = "SELECT * FROM Diseases WHERE Glucose =
'(GlucoseValue)' AND Heart = '(HeartRateValue)' AND Sleep =
'(SleepValue)", parameters:[glucoseValue,HeartRateValue,SleepValue]
var resultSet: FMResultSet! =
sharedInstance.database!.executeQuery(query, withArgumentsInArray:
nil)
if resultSet {
var question: Int = resultSet.question
self.pushControllerWithName("questionsController",context:question)
}
sharedInstance.database!.close()
}
35. //Question Controller
override func init(context: AnyObject?) {
//Init busca la pregunta x Id y la muestra
super.init(context: context)
var id = context as Int
getQuestion(id)
}
func buttonYesAction(sender:UIButton!)
{
//Pulsacion Si busca la siguiente pregunta
var idNext = sender.tag
if(idNext != 9999)
{
UpdateQuestion(idNext)
}
}
Programación Apple Watch
36. func buttonNoAction(sender:UIButton!)
{
//Pulsacion No, busca la siguiente pregunta
var idNext = sender.tag
if(idNext != 9999)
{
UpdateQuestion(idNext)
}
}
func getQuestion (id:Int)
{
sharedInstance.database!.open()
let query: String = "SELECT * FROM Questions WHERE Id = '(id)'",
parameters:[id]
var resultSet: FMResultSet! = sharedInstance.database!.executeQuery(query,
withArgumentsInArray: nil)
if resultSet {
question: String = resultSet.question
yes: Int = resultSet.yes
no: Int = resultSet.no
}
sharedInstance.database!.close()
}
Programación Apple Watch
40. TM
on WearTech
Smart Watch Platform
40
Smartwatch Weartech ® es una plataforma que permite el desarrollo ágil y nativo sobre
relojes inteligentes (smart watches) para realizar acciones de marketing (wearable
marketing), desarrollo de aplicaciones empresariales, y apps watch.