SlideShare a Scribd company logo
Android Wear Essen-als
Improve your Android skills, building watch faces
What you should know about
Android Wear
Android Wear
• Android SDK
• Specific wear APIs in external libraries (support:wearable,
play-services-wearable)
• All devices are compa>ble with API 23 (minSdkVersion 23)
• Only a few devices are compa>ble with API > 23 ("Android Wear
2.0")
Crea%ng a wear app
h"ps://developer.android.com/training/building-wearables.html
Crea%ng a wear app
• Ac$vity
• AndroidManifest.xml
• LayoutInflater
• You know the stuff...
Crea%ng a watch face
h"ps://developer.android.com/training/wearables/watch-faces/index.html
Crea%ng a watch face
1. Create a class that extends
CanvasWatchFaceService.Engine
2. Create a Service that extends CanvasWatchFaceService and
override onCreateEngine
Prefer OpenGL ES instead of the Canvas API ?
Use Gles2WatchFaceService instead
Create a watch face project
Ba#ery usage
AMOLED
Interac(ve mode (default)
Ambient mode / Low-bit Ambient
Low-bit Ambient / Ambient
Burn-in effect
Burn-in effect
h"ps://en.wikipedia.org/wiki/Screen_burn-in
Burn-in effect
Burn-in effect
Avoid burn-in
• Do not draw large areas of pixels in ambient mode
• Do not place content within 10 pixels of the edge of the screen
I'm bored, can I see some code?
class Engine extends CanvasWatchFaceService.Engine {
Paint paint;
@Override void onCreate(SurfaceHolder holder) {
paint = new Paint();
paint.setTextSize(80_DIP);
paint.setStyle(Style.FILL);
paint.setColor(Color.MAGENTA);
paint.setTextAlign(Align.CENTER);
paint.setAntiAlias(true);
}
@Override void onDraw(Canvas canvas, Rect bounds) {
canvas.drawText("18:42", bounds.centerX(), bounds.centerY(), paint);
}
}
Style.STROKE
if (inAmbientMode) {
paint.setColor(WHITE);
paint.setStyle(STROKE);
paint.setStrokeWidth(1_DIP);
if (lowBitEnabled) {
paint.setAntiAlias(false);
}
}
Lifecycle
Enough theory
10mn to create a watch face
#1: Draw the background
Paint backgroundPaint = new Paint();
@Override void onCreate(SurfaceHolder holder) {
super.onCreate(holder);
backgroundPaint.setStyle(FILL);
backgroundPaint.setColor(DKGRAY);
backgroundPaint.setAntiAlias(true);
}
@Override void onDraw(Canvas canvas, Rect bounds) {
canvas.drawRect(0, 0, bounds.width(), bounds.height(), backgroundPaint);
}
Background
Gradient: Linear / Sweep / Radial
LinearGradient(0, centerY, width, centerY, WHITE, BLACK, CLAMP));
SweepGradient(radius, radius, WHITE, BLACK));
RadialGradient(centerX, centerY, radius, WHITE, BLACK, CLAMP));
paint.setShader(shader);
Tile mode: Clamp / Mirror / Repeat
tileMode = Shader.TileMode.CLAMP;
tileMode = Shader.TileMode.MIRROR;
tileMode = Shader.TileMode.REPEAT;
new RadialGradient(radius, radius, radius / 10, WHITE, BLACK, tileMode));
Gradient posi-ons
int[] colors = new int[] { RED, GREEN, BLUE, MAGENTA, CYAN};
float[] positions = new float[] { 0f, 0.1f, 0.4f, 0.8f, 1.0f};
gradient = new LinearGradient(0, radius, width, radius, colors, positions, CLAMP);
Gradient posi-ons
Shader shader = new LinearGradient(
0, centerY, width, centerY,
new int[] {blue, blue, white, white, red, red},
new float[] {0f, 0.33f, 0.33f, 0.66f, 0.66f, 1f},
CLAMP);
bgPaint.setShader(shader);
Back to our background
int[] colors = new int[] {DKGRAY, DKGRAY, BLACK, BLACK};
float[] positions = new float[] {0, 0.25f, 0.25f, 1f};
bgPaint.setShader(new RadialGradient(centerX, centerY, 6_DIP, colors, positions, REPEAT));
#2 Place the minutes indicators
Path path;
@Override void onApplyWindowInsets(WindowInsets insets) {
[...]
path = createMinutesIndicators(centerX, centerY, radius - 10_DP);
}
@Override void onDraw(Canvas canvas, Rect bounds) {
[...]
canvas.drawPath(path, paint);
}
Minutes indicators
Add shadow
mnPaint.setShadowLayer(4f, 2f, 2f, Color.GRAY);
#3 Create the watch hands
Paint handHourPaint;
Path handHourPath;
@Override void onCreate(SurfaceHolder holder) { [...]
handHourPaint = new Paint();
handHourPaint.setStyle(Paint.Style.FILL);
handHourPaint.setColor(Color.WHITE);
handHourPaint.setAntiAlias(true);
handHourPaint.setPathEffect(new CornerPathEffect(2_DP));
}
@Override void onApplyWindowInsets(WindowInsets insets) { [...]
handHourPath = createHandHour(centerX, centerY, radius - 20_DP);
}
@Override void onDraw(Canvas canvas, Rect bounds) { [...]
canvas.drawPath(handHourPath, handHourPaint);
}
Hour hand
path.moveTo(
centerX - 16_DIP, centerY
);
path.lineTo(
centerX - 10_DIP, centerY
);
path.arcTo(
new RectF(
centerX - 10_DIP,
centerY - 10_DIP,
centerX + 10_DIP,
centerY + 10_DIP
),
180f, -180f
);
path.lineTo(
centerX + 16_DIP, centerY
);
path.quadTo(
centerX,
centerY - 20_DIP,
centerX + 1_DIP,
centerY - needleHeight
);
path.quadTo(
centerX,
centerY - 20_DIP,
centerX - 16_DIP,
centerY
);
int[] colors = new int[] {
0xff878191, 0xffaba6b3,
0xffb9b1c5, 0xffa9a2b3
};
float[] positions = new float[] {
0, 0.49f, 0.51f, 1f
},
Shader gradient = new LinearGradient(
radius - 10_DIP, 0,
radius + 10_DIP, 0,
colors, positions,
Shader.TileMode.CLAMP
);
handHourPaint.setShader(gradient);
canvas.save();
canvas.rotate(
10 * 360 / 12,
centerX, centerY
);
canvas.drawPath(path, paint);
canvas.restore();
Paint shadowPaint = new Paint();
shadowPaint.setAntiAlias(true);
shadowPaint.setColor(GRAY);
shadowPaint.setShadowLayer(4f, 4f, 2f, GRAY);
[...]
canvas.drawPath(handHourPath, shadowPaint);
canvas.drawPath(handHourPath, watchHandPaint);
Add the minute
hand
Add the second
hand
#4 Create the ambient mode
#5 No step 5
Source code
github.com/Nilhcem/the-10mn-watchface
Tips & Tricks
#1: Official documenta2on is !
developer.android.com/wear/index.html
#2: Share code with a common module
#3: Custom WatchFrame
Layout
h"ps://github.com/Nilhcem/hexawatch/
blob/master/companion/src/main/java/
com/nilhcem/hexawatch/ui/widget/
WearFrameLayout.java
<com.nilhcem.hexawatch.ui.widget.WearFrameLayout
android:layout_width="wrap_content"
android:layout_height="match_parent">
<com.nilhcem.hexawatch.ui.widget.HexawatchView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</com.nilhcem.hexawatch.ui.widget.WearFrameLayout>
#4: Consider using Protobuf over
Json
#5: Want to cut bitmaps? Use Xfermode
#6: Check out ustwo clockwise SDK
h"ps://github.com/ustwo/clockwise
#7: Stripes shader
aka "A burn-in friendly way to fill a large surface"
paint.setStyle(Paint.Style.FILL);
paint.setShader(new LinearGradient(
0f, 0f, TWO_DIP, TWO_DIP,
new int[] {
WHITE, WHITE, TRANSPARENT, TRANSPARENT
},
new float[] {
0, 0.25f, 0.25f, 1f
},
Shader.TileMode.REPEAT
)
);
#8: Bitmap shader
github.com/Nilhcem/shammane-
androidwear
Bitmap dotPattern = BitmapFactory.decodeResource(
context.getResources(),
R.drawable.dot_pattern
);
paint.setShader(
new BitmapShader(
dotPattern, TileMode.REPEAT, TileMode.REPEAT
)
);
#9: Experiment in an
Android (not wear) custom
View
<com.nilhcem.experiments.ui.widget.WearFrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.nilhcem.experiments.ui.ExperimentalView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</com.nilhcem.experiments.ui.widget.WearFrameLayout>
#10: Use ValueAnimator
for onDraw anima7ons
private ValueAnimator animator;
private final Handler handler = new Handler();
public void onTapCommand(int tapType, int x, int y, long e) {
if (tapType == TAP_TYPE_TAP) {
animator = ValueAnimator.ofInt(0, Math.round(MAX_RADIUS));
animator.setDuration(600L);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.start();
invalidate();
}
}
public void onDraw(Canvas canvas, Rect bounds) {
if (animator != null && animator.isRunning()) {
int value = (Integer) animator.getAnimatedValue();
canvas.drawCircle(centerX, centerY, value, paint);
// Invalidate at a 30fps ratio
handler.postDelayed(() -> invalidate()), 1000L / 30);
}
}
#11: Path Interpolator
Anima3on
Path path = new Path();
path.moveTo(0, 0);
path.lineTo(0.250f, 0.250f);
path.lineTo(0.500f, -0.500f);
path.lineTo(0.750f, 0.625f);
path.lineTo(0.875f, 0.500f);
path.lineTo(1f, 1f);
ObjectAnimator animator =
ObjectAnimator.ofFloat(bugdroid, View.TRANSLATION_X, 0, 100);
animator.setRepeatCount(ObjectAnimator.INFINITE);
animator.setRepeatMode(ObjectAnimator.REVERSE);
animator.setInterpolator(PathInterpolatorCompat.create(path));
animator.setDuration(2000);
animator.start();
#11: Path Interpolator
Anima3on
#12: Move a view along a
Path
h"p://stackoverflow.com/ques5ons/6154370/
android-move-object-along-a-path
Path path = new Path();
path.arcTo(new RectF(0, 0, 300, 300), 0, 180); // 1 -> 2
path.quadTo(200, 80, 400, 400); // 2 -> 3
path.lineTo(500f, 300f); // 3 -> 4
path.close(); // 4 -> 1
ObjectAnimator animator =
ObjectAnimator.ofFloat(bugdroid, "x", "y", path);
animator.setRepeatCount(ObjectAnimator.INFINITE);
animator.setInterpolator(new DecelerateInterpolator());
animator.setDuration(7000);
animator.start();
#13: Vector Drawables
• M (x,y): Absolute move to (x,y)
• m (x,y): Rela5ve move to (x,y)
• L or l (x,y): Line to (x,y)
• C or c (x1,y1,x2,y2): Curve from (x1,y1) to (x2,y2)
• Q or q (x1,y1,x,y): Quadra5c curve to (x,y) using (x1,y1) as the control point
• Z or z: Close path
h#ps://www.w3.org/TR/SVG/paths.html
#13: Vector Drawables
#14: Port your app to
Tizen
• HTML5 Canvas api
• Low-Bit Ambient mode
• Burn-in support
• onTimeTick() becomes
window.addEventListener("time
tick", drawWatchContent);
Hexawatch
github.com/Nilhcem/hexawatch
• Square / Circular shapes
• Se1ngs app
• Protobuf
• Gear s2 port
• Custom views
• Custom wear frame layout
• Common module
From a hoodie to a watch face
nilhcem.com/android-wear/watchfaces-
design
• Android Wear 1 + 2 support
• Square / Circular shapes
• Chin support
• Textures + Xfer modes
Conclusion
• Good to be curious
• Improve your skills
• Fun
• Rewarding
Android Wear Essen-als
• Twi%er: @Nilhcem
• Slides: slideshare.net/Nilhcem/android-wear-essen:als
• 10mn-watchface: github.com/Nilhcem/the-10mn-watchface
• Hexawatch: github.com/Nilhcem/hexawatch
• Hoodie watch face making-of: nilhcem.com/android-wear/
watchfaces-design

More Related Content

What's hot

Android Design Patterns
Android Design PatternsAndroid Design Patterns
Android Design Patterns
Godfrey Nolan
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzles
Danny Preussler
 
Enhance your world with ARKit. UA Mobile 2017.
Enhance your world with ARKit. UA Mobile 2017.Enhance your world with ARKit. UA Mobile 2017.
Enhance your world with ARKit. UA Mobile 2017.
UA Mobile
 
Android TDD
Android TDDAndroid TDD
Android TDD
Godfrey Nolan
 
Capture image on eye blink
Capture image on eye blinkCapture image on eye blink
Capture image on eye blink
InnovationM
 
Android camera2
Android camera2Android camera2
Android camera2
Takuma Lee
 
Google Fit, Android Wear & Xamarin
Google Fit, Android Wear & XamarinGoogle Fit, Android Wear & Xamarin
Google Fit, Android Wear & Xamarin
Peter Friese
 
Android code puzzlers + tips & tricks
Android code puzzlers + tips & tricksAndroid code puzzlers + tips & tricks
Android code puzzlers + tips & tricksNLJUG
 
303 TANSTAAFL: Using Open Source iPhone UI Code
303 TANSTAAFL: Using Open Source iPhone UI Code303 TANSTAAFL: Using Open Source iPhone UI Code
303 TANSTAAFL: Using Open Source iPhone UI Code
jonmarimba
 
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
Andrey Karpov
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
Peter Friese
 
2011 py con
2011 py con2011 py con
2011 py conEing Ong
 
Blending Culture in Twitter Client
Blending Culture in Twitter ClientBlending Culture in Twitter Client
Blending Culture in Twitter Client
Kenji Tanaka
 
Android swedroid
Android swedroidAndroid swedroid
Android swedroid
Johan Nilsson
 
Android Unit Testing With Robolectric
Android Unit Testing With RobolectricAndroid Unit Testing With Robolectric
Android Unit Testing With Robolectric
Danny Preussler
 
YQL Tutorial
YQL TutorialYQL Tutorial
YQL Tutorial
Tom Croucher
 
mobl
moblmobl
mobl
zefhemel
 
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефонаКурсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефонаГлеб Тарасов
 

What's hot (19)

package org dev
package org devpackage org dev
package org dev
 
Android Design Patterns
Android Design PatternsAndroid Design Patterns
Android Design Patterns
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzles
 
Enhance your world with ARKit. UA Mobile 2017.
Enhance your world with ARKit. UA Mobile 2017.Enhance your world with ARKit. UA Mobile 2017.
Enhance your world with ARKit. UA Mobile 2017.
 
Android TDD
Android TDDAndroid TDD
Android TDD
 
Capture image on eye blink
Capture image on eye blinkCapture image on eye blink
Capture image on eye blink
 
Android camera2
Android camera2Android camera2
Android camera2
 
Google Fit, Android Wear & Xamarin
Google Fit, Android Wear & XamarinGoogle Fit, Android Wear & Xamarin
Google Fit, Android Wear & Xamarin
 
Android code puzzlers + tips & tricks
Android code puzzlers + tips & tricksAndroid code puzzlers + tips & tricks
Android code puzzlers + tips & tricks
 
303 TANSTAAFL: Using Open Source iPhone UI Code
303 TANSTAAFL: Using Open Source iPhone UI Code303 TANSTAAFL: Using Open Source iPhone UI Code
303 TANSTAAFL: Using Open Source iPhone UI Code
 
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
 
2011 py con
2011 py con2011 py con
2011 py con
 
Blending Culture in Twitter Client
Blending Culture in Twitter ClientBlending Culture in Twitter Client
Blending Culture in Twitter Client
 
Android swedroid
Android swedroidAndroid swedroid
Android swedroid
 
Android Unit Testing With Robolectric
Android Unit Testing With RobolectricAndroid Unit Testing With Robolectric
Android Unit Testing With Robolectric
 
YQL Tutorial
YQL TutorialYQL Tutorial
YQL Tutorial
 
mobl
moblmobl
mobl
 
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефонаКурсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
 

Viewers also liked

Van hoa ca phe viet
Van hoa ca phe vietVan hoa ca phe viet
Van hoa ca phe viet
Luc Tran
 
What is Eventivous?
What is Eventivous?What is Eventivous?
What is Eventivous?
Kair Kasper
 
Git & Git Workflows
Git & Git WorkflowsGit & Git Workflows
Git & Git Workflows
Kıvanç Erten
 
Theoldvirginian
TheoldvirginianTheoldvirginian
Theoldvirginian
Katy Adams
 
Dinas pengabdian masyarakat
Dinas pengabdian masyarakatDinas pengabdian masyarakat
Dinas pengabdian masyarakat
HIMA KS
 
Kotlin cheat sheet by ekito
Kotlin cheat sheet by ekitoKotlin cheat sheet by ekito
Kotlin cheat sheet by ekito
Arnaud Giuliani
 
Inria - Bilan social 2014
Inria - Bilan social 2014Inria - Bilan social 2014
Inria - Bilan social 2014
Inria
 
New microsoft office power point presentation (2)
New microsoft office power point presentation (2)New microsoft office power point presentation (2)
New microsoft office power point presentation (2)
tpremastella
 
Teknik analisis semiotika
Teknik analisis semiotikaTeknik analisis semiotika
Teknik analisis semiotika
pycnat
 
Plancton
PlanctonPlancton
EJAAN YANG DISEMPURNAKAN
EJAAN YANG DISEMPURNAKANEJAAN YANG DISEMPURNAKAN
EJAAN YANG DISEMPURNAKAN
Phaphy Wahyudhi
 
Reconfigurer un site chimique ancien grâce au Lean par J.Ferradini
Reconfigurer un site chimique ancien grâce au Lean par J.FerradiniReconfigurer un site chimique ancien grâce au Lean par J.Ferradini
Reconfigurer un site chimique ancien grâce au Lean par J.Ferradini
Institut Lean France
 
Pelatihan singkat olah data dengan software spss
Pelatihan singkat olah data dengan software spssPelatihan singkat olah data dengan software spss
Pelatihan singkat olah data dengan software spss
prana gio
 
ANKLE FRACTURES
ANKLE FRACTURESANKLE FRACTURES
ANKLE FRACTURES
Umesh Yadav
 
Cerivcal spine speacial test (3)
Cerivcal spine speacial test (3)Cerivcal spine speacial test (3)
Cerivcal spine speacial test (3)abdul alim
 

Viewers also liked (17)

Fxos
FxosFxos
Fxos
 
Presentation1
Presentation1Presentation1
Presentation1
 
Van hoa ca phe viet
Van hoa ca phe vietVan hoa ca phe viet
Van hoa ca phe viet
 
What is Eventivous?
What is Eventivous?What is Eventivous?
What is Eventivous?
 
Git & Git Workflows
Git & Git WorkflowsGit & Git Workflows
Git & Git Workflows
 
Theoldvirginian
TheoldvirginianTheoldvirginian
Theoldvirginian
 
Dinas pengabdian masyarakat
Dinas pengabdian masyarakatDinas pengabdian masyarakat
Dinas pengabdian masyarakat
 
Kotlin cheat sheet by ekito
Kotlin cheat sheet by ekitoKotlin cheat sheet by ekito
Kotlin cheat sheet by ekito
 
Inria - Bilan social 2014
Inria - Bilan social 2014Inria - Bilan social 2014
Inria - Bilan social 2014
 
New microsoft office power point presentation (2)
New microsoft office power point presentation (2)New microsoft office power point presentation (2)
New microsoft office power point presentation (2)
 
Teknik analisis semiotika
Teknik analisis semiotikaTeknik analisis semiotika
Teknik analisis semiotika
 
Plancton
PlanctonPlancton
Plancton
 
EJAAN YANG DISEMPURNAKAN
EJAAN YANG DISEMPURNAKANEJAAN YANG DISEMPURNAKAN
EJAAN YANG DISEMPURNAKAN
 
Reconfigurer un site chimique ancien grâce au Lean par J.Ferradini
Reconfigurer un site chimique ancien grâce au Lean par J.FerradiniReconfigurer un site chimique ancien grâce au Lean par J.Ferradini
Reconfigurer un site chimique ancien grâce au Lean par J.Ferradini
 
Pelatihan singkat olah data dengan software spss
Pelatihan singkat olah data dengan software spssPelatihan singkat olah data dengan software spss
Pelatihan singkat olah data dengan software spss
 
ANKLE FRACTURES
ANKLE FRACTURESANKLE FRACTURES
ANKLE FRACTURES
 
Cerivcal spine speacial test (3)
Cerivcal spine speacial test (3)Cerivcal spine speacial test (3)
Cerivcal spine speacial test (3)
 

Similar to Android Wear Essentials

Android design and Custom views
Android design and Custom views Android design and Custom views
Android design and Custom views Lars Vogel
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in Android
Robert Cooper
 
Enhancing UI/UX using Java animations
Enhancing UI/UX using Java animationsEnhancing UI/UX using Java animations
Enhancing UI/UX using Java animations
Naman Dwivedi
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best PracticesYekmer Simsek
 
Advance ui development and design
Advance ui  development and design Advance ui  development and design
Advance ui development and design
Rakesh Jha
 
Android 3
Android 3Android 3
Android 3
Robert Cooper
 
CocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIViewCocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads France
 
Android Studio (Java)The SimplePaint app (full code given below).docx
Android Studio (Java)The SimplePaint app (full code given below).docxAndroid Studio (Java)The SimplePaint app (full code given below).docx
Android Studio (Java)The SimplePaint app (full code given below).docx
amrit47
 
Intro to computer vision in .net
Intro to computer vision in .netIntro to computer vision in .net
Intro to computer vision in .net
Stephen Lorello
 
Android app development basics
Android app development basicsAndroid app development basics
Android app development basicsAnton Narusberg
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
anistar sung
 
Android classes in mumbai
Android classes in mumbaiAndroid classes in mumbai
Android classes in mumbai
Vibrant Technologies & Computers
 
Package org dev
Package org devPackage org dev
Package org dev
jaya lakshmi
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
Peter Friese
 
Android UI Development: Tips, Tricks, and Techniques
Android UI Development: Tips, Tricks, and TechniquesAndroid UI Development: Tips, Tricks, and Techniques
Android UI Development: Tips, Tricks, and Techniques
Edgar Gonzalez
 
Android UI Tips, Tricks and Techniques
Android UI Tips, Tricks and TechniquesAndroid UI Tips, Tricks and Techniques
Android UI Tips, Tricks and Techniques
Marakana Inc.
 
Building a dashboard using AngularJS
Building a dashboard using AngularJSBuilding a dashboard using AngularJS
Building a dashboard using AngularJS
RajthilakMCA
 
ProTips DroidCon Paris 2013
ProTips DroidCon Paris 2013ProTips DroidCon Paris 2013
ProTips DroidCon Paris 2013
Mathias Seguy
 
Getting Started in VR with JS
Getting Started in VR with JSGetting Started in VR with JS
Getting Started in VR with JS
Rudy Jahchan
 
Workshop 26: React Native - The Native Side
Workshop 26: React Native - The Native SideWorkshop 26: React Native - The Native Side
Workshop 26: React Native - The Native Side
Visual Engineering
 

Similar to Android Wear Essentials (20)

Android design and Custom views
Android design and Custom views Android design and Custom views
Android design and Custom views
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in Android
 
Enhancing UI/UX using Java animations
Enhancing UI/UX using Java animationsEnhancing UI/UX using Java animations
Enhancing UI/UX using Java animations
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best Practices
 
Advance ui development and design
Advance ui  development and design Advance ui  development and design
Advance ui development and design
 
Android 3
Android 3Android 3
Android 3
 
CocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIViewCocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIView
 
Android Studio (Java)The SimplePaint app (full code given below).docx
Android Studio (Java)The SimplePaint app (full code given below).docxAndroid Studio (Java)The SimplePaint app (full code given below).docx
Android Studio (Java)The SimplePaint app (full code given below).docx
 
Intro to computer vision in .net
Intro to computer vision in .netIntro to computer vision in .net
Intro to computer vision in .net
 
Android app development basics
Android app development basicsAndroid app development basics
Android app development basics
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
 
Android classes in mumbai
Android classes in mumbaiAndroid classes in mumbai
Android classes in mumbai
 
Package org dev
Package org devPackage org dev
Package org dev
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
 
Android UI Development: Tips, Tricks, and Techniques
Android UI Development: Tips, Tricks, and TechniquesAndroid UI Development: Tips, Tricks, and Techniques
Android UI Development: Tips, Tricks, and Techniques
 
Android UI Tips, Tricks and Techniques
Android UI Tips, Tricks and TechniquesAndroid UI Tips, Tricks and Techniques
Android UI Tips, Tricks and Techniques
 
Building a dashboard using AngularJS
Building a dashboard using AngularJSBuilding a dashboard using AngularJS
Building a dashboard using AngularJS
 
ProTips DroidCon Paris 2013
ProTips DroidCon Paris 2013ProTips DroidCon Paris 2013
ProTips DroidCon Paris 2013
 
Getting Started in VR with JS
Getting Started in VR with JSGetting Started in VR with JS
Getting Started in VR with JS
 
Workshop 26: React Native - The Native Side
Workshop 26: React Native - The Native SideWorkshop 26: React Native - The Native Side
Workshop 26: React Native - The Native Side
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 

Android Wear Essentials