Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Primeiros Passos com Google Fit
Search
Douglas Kayama
May 07, 2016
Technology
0
190
Primeiros Passos com Google Fit
3 anos de Android Meetup – GDG São Paulo
Douglas Kayama
May 07, 2016
Tweet
Share
More Decks by Douglas Kayama
See All by Douglas Kayama
TensorFlow no Android – v2
douglasdrumond
0
29
BLE
douglasdrumond
0
29
TensorFlow no Android
douglasdrumond
0
20
Firebase or Realm?
douglasdrumond
0
78
Rio Dev Day – Introdução ao Android
douglasdrumond
0
97
Google I/O
douglasdrumond
0
61
Criando apps com alto nível de qualidade (versão longa)
douglasdrumond
0
39
Criando apps com alto nível de qualidade (versão curta)
douglasdrumond
0
27
RxJava
douglasdrumond
5
560
Other Decks in Technology
See All in Technology
OpenID Connect for Identity Assurance の概要と翻訳版のご紹介 / 20250219-BizDay17-OIDC4IDA-Intro
oidfj
0
160
Postmanを使いこなす!2025年ぜひとも押さえておきたいPostmanの10の機能
nagix
2
140
5分で紹介する生成AIエージェントとAmazon Bedrock Agents / 5-minutes introduction to generative AI agents and Amazon Bedrock Agents
hideakiaoyagi
0
230
2024.02.19 W&B AIエージェントLT会 / AIエージェントが業務を代行するための計画と実行 / Algomatic 宮脇
smiyawaki0820
10
1.5k
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
24
6.6k
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
510
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
320
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
2
1.3k
マルチモーダル理解と生成の統合 DeepSeek Janus, etc... / Multimodal Understanding and Generation Integration
hiroga
0
370
開発スピードは上がっている…品質はどうする? スピードと品質を両立させるためのプロダクト開発の進め方とは #DevSumi #DevSumiB / Agile And Quality
nihonbuson
2
2.4k
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
540
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
6
1.6k
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Visualization
eitanlees
146
15k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
How to train your dragon (web standard)
notwaldorf
91
5.8k
Building Your Own Lightsaber
phodgson
104
6.2k
YesSQL, Process and Tooling at Scale
rocio
171
14k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Transcript
Primeiros Passos com Google Fit Douglas Drumond @douglasdrumond
@douglasdrumond O que é o Google Fit?
@douglasdrumond Sensors Activity History
@douglasdrumond Sugestões de apps • Health/Fitness • Wearable sensor based
• Personal analytics (quantified self)
@douglasdrumond Capacidades • Activity • Heart rate • Location •
Nutrition • Power • Speed • Weight • Workout • Strength • Weight Lift • Crossfit • Interval Training • High Intensity Interval Training
@douglasdrumond 3rd party • Nike Fuel • Adidas • Jump
• Hustle • Quickness
@douglasdrumond IMPORTANTE!
@douglasdrumond Seja responsável • Terms and conditions bla bla bla
• RESPEITE O USUÁRIO
@douglasdrumond ARQUITETURA
@douglasdrumond Arquitetura
@douglasdrumond Arquitetura
@douglasdrumond Fitness store • Cloud • Apps em plataformas diferentes
• Apps diferentes
@douglasdrumond Arquitetura
@douglasdrumond Vamos detalhar?
@douglasdrumond Sensor framework • Data sources • Data types •
Data points • Datasets • Sessions
@douglasdrumond Data sources • Sensores • Hardware ou software
@douglasdrumond Data type • Tipos de dados, ex: passos, bpm,
localização • Define um schema • Nome e lista de campos
@douglasdrumond Data points • Array de valores • Timestamp ou
time range
@douglasdrumond Datasets • Conjunto de data points • Mesmo tipo
• Queries (respostas)
@douglasdrumond Sessions • Intervalo de tempo • Organização de dados
@douglasdrumond #soudev
@douglasdrumond Setup
@douglasdrumond Console do Google • Pegar o SHA1 via keytool
• Cadastrar novo client ID • Depende do nome do pacote e assinatura
@douglasdrumond Gradle dependencies { compile 'com.google.android.gms:play-services-fitness:8.4.0' }
@douglasdrumond Construa o client mClient = new GoogleApiClient.Builder(this) .addApi(Fitness.SENSORS_API) .addScope(new
Scope(Scopes.FITNESS_LOCATION_READ)) .addConnectionCallbacks(…) .build();
@douglasdrumond Leia dados Fitness.SensorsApi.findDataSources(mClient, new DataSourcesRequest.Builder() .setDataTypes(DataType.TYPE_LOCATION_SAMPLE) .setDataSourceTypes(DataSource.TYPE_RAW) .build()) .setResultCallback(new
ResultCallback<…>() … for (DataSource dataSource : dataSourcesResult.getDataSources()) { registerFitnessDataListener(dataSource, DataType.TYPE_LOCATION_SAMPLE); } } } });
@douglasdrumond registerFitnessDataListener mListener = new OnDataPointListener() { public void onDataPoint(DataPoint
dataPoint) { for (Field field : dataPoint.getDataType().getFields()) { Value val = dataPoint.getValue(field); Log.i(TAG, "Detected DataPoint field: " + field.getName()); Log.i(TAG, "Detected DataPoint value: " + val); } } };
@douglasdrumond registerFitnessDataListener Fitness.SensorsApi.add(mClient, new SensorRequest.Builder() .setDataSource(dataSource).setDataType(dataType) .setSamplingRate(10, TimeUnit.SECONDS).build(), mListener) .setResultCallback(new
ResultCallback<Status>() { @Override public void onResult(Status status) { if (status.isSuccess()) {Log.i(TAG, "Listener registered!”); } else { Log.i(TAG, "Listener not registered.”); } } });
@douglasdrumond Alguns exemplos DataSource nutritionSource = new DataSource.Builder() .setDataType(DataType.TYPE_NUTRITION) ...
.build(); DataPoint banana = DataPoint.create(nutritionSource); banana.setTimestamp(now.getMillis(), TimeUnit.MILLISECONDS); banana.getValue(Field.FIELD_FOOD_ITEM).setString("banana"); banana.getValue(Field.FIELD_MEAL_TYPE).setInt(Field.MEAL_TYPE_SNACK); banana.getValue(Field.FIELD_NUTRIENTS).setKeyValue(Field.NUTRIENT_POT ASSIUM, 422f)
@douglasdrumond Tópicos não cobertos • Recording API • History API
• Sessions API • BLE API • Config API (Custom Data Types)
@douglasdrumond Samples • https://github.com/googlesamples/android-fit
@douglasdrumond Quero Saber Mais • https://developers.google.com/fit/ • slack.androiddevbr.org
@douglasdrumond Obrigado! •
[email protected]
• @douglasdrumond • +DouglasDrumond • www.cafelinear.com