SlideShare a Scribd company logo
Android Wear 2.0
Next Level of Freedom for Your Action
Constantine Mars
Organizer @ GDG Dnipro
Senior Developer @ DataArt
A long time ago…
A long time ago…
in the Lviv, not so far away :)
A long time ago…
in the Lviv, not so far away :)
We’ve been talking about...
#gdgceesummit
Freedom of tethering
BLE
WiFi
Cellular
#gdgceesummit
And chances to get direct access to Play Store
And today...
Developer Preview 3
Play Store and More
Available since September 28
#gdgceesummit
Play Store features
● multiple accounts,
● support of alpha and
beta testing
● update or uninstall
apps in “My apps” view
● install only the watch
app
● phone apps are no
longer necessary
You can now build and publish
watch-only apps for users to
discover on Google Play
#gdgceesummit
android {
publishNonDefault true // Allows you to reference product flavors in your phone's build.gradle
defaultConfig
{ minSdkVersion 23 } // This is the minSdkVersion of the Wear 1.0 embedded app
productFlavors {
wear1 { /* Use the defaultConfig value */ }
wear2 { minSdkVersion 24 }
}
}
Flavors for supporting both 2.0 and 1.x
#gdgceesummit
dependencies {
...
wearApp project(path: ':wear', configuration: 'wear1Release')
}
Package only when build variant requires it
#gdgceesummit
If no need in 1.x - simply publish MultiAPK
Hardware
Key platform features and supported watches
#gdgceesummit
Officially supported watches
LG Watch Urbane 2nd Edition Huawei Watch
#gdgceesummit
Officially supported watches
LG Watch Urbane 2nd Edition Huawei Watch
Display: 1.4 inches, 400 x 400 pixels (~286 ppi)
CPU:Quad-core 1.2 GHz Cortex-A7
GPU: Adreno 305, Chipset: Qualcomm Snapdragon 400
Memory: 4 GB, 512 MB RAM
Comm: Wi-Fi 802.11 b/g, Bluetooth v4.1 LE
Network: No cellular connectivity
Battery: 300 mAh (48h)
Display: 1.38 inches, 480 x 480 pixels (~348 ppi)
CPU: Quad-core 1.2 GHz Cortex-A7
GPU: Adreno 305, Chipset: Qualcomm Snapdragon 400
Memory: 4 GB, 768 MB RAM
Comm: Wi-Fi 802.11 b/g, Bluetooth v4.1 LE, GPS, NFC
Network: GSM, HSPA, LTE
Battery: 570 mAh (60h)
Complications
Personal expression and utility
#gdgceesummit
Personal expression and utility
Modern by LG Ranger by Zuhanden GoogleFit Today
#gdgceesummit
Or simply an personal expression :)
HeyKittyKitty by WatchMaster
#gdgceesummit
Complications
“any feature in a timepiece beyond the simple display
of hours and minutes” (Wikipedia)
#gdgceesummit
Complication types
-Short text
-Long text
-Range of values
-Icon (small picture)
-Image (big picture)
Complications coding
#gdgceesummit
New in Preview 3
com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA
Request permission to access Complication Data
#gdgceesummit
Runtime permissions. Wearable version:)
Now required for
accessing Complication
Providers from
WatchFace apps
#gdgceesummit
Each position need to be identified
private static final int LEFT_DIAL_COMPLICATION = 0;
private static final int RIGHT_DIAL_COMPLICATION = 1;
public static final int[] COMPLICATION_IDS = {LEFT_DIAL_COMPLICATION,
RIGHT_DIAL_COMPLICATION};
Complication ID
#gdgceesummit
Each position must be mapped with array of supported types
// Left and right dial supported types.
public static final int[][] COMPLICATION_SUPPORTED_TYPES = {
{ComplicationData.TYPE_SHORT_TEXT},
{ComplicationData.TYPE_SHORT_TEXT}
};
Complication supported types
#gdgceesummit
Data Providers and system trigger .onComplicationDataUpdate() sometimes
/* Called when there is updated data for a complication id. */
@Override
public void onComplicationDataUpdate(
int complicationId, ComplicationData complicationData) {
Log.d(TAG, "onComplicationDataUpdate() id: " + complicationId);
mActiveComplicationDataSparseArray.put(complicationId, complicationData);
invalidate();
}
ComplicationData receiving
#gdgceesummit
.onDraw() is the moment of drawing. ComplicationData where stored earlier
@Override
public void onDraw(Canvas canvas, Rect bounds) {
ComplicationData complicationData;
for (int i = 0; i < COMPLICATION_IDS.length; i++) {
complicationData = mActiveComplicationDataSparseArray
.get(COMPLICATION_IDS[i]);
// ...
Complications rendering
#gdgceesummit
Complication may be deactivated or contain wrong data type
if ((complicationData != null)
&& (complicationData.isActive(currentTimeMillis))
&& (complicationData.getType() ==
ComplicationData.TYPE_SHORT_TEXT)) {
ComplicationText mainText = complicationData.getShortText();
CharSequence complicationMessage =
mainText.getText(getApplicationContext(),
currentTimeMillis);
Complications rendering
#gdgceesummit
Actual drawing is trivial
canvas.drawText(
complicationMessage,
0,
complicationMessage.length(),
complicationsX,
mComplicationsY,
mComplicationPaint);
Complications rendering
Data Providers
#gdgceesummit
Android Wear role in data exchange
#gdgceesummit
Data Providers
Data Providers coding
#gdgceesummit
<service android:name=".RandomNumberProviderService"
android:label="@string/complications_provider_random_number"
android:icon="@drawable/ic_watch_white">
Data Provider Service attributes
Extend ComplicationProviderService
#gdgceesummit
<intent-filter>
<action
android:name="android.support.wearable.complications.ACTION_COMPLICATION_UPDA
TE_REQUEST"/>
</intent-filter>
<meta-data
android:name="android.support.wearable.complications.SUPPORTED_TYPES"
android:value="RANGED_VALUE,SHORT_TEXT,LONG_TEXT"/>
Data Provider declaration
#gdgceesummit
Update period
<meta-data
android:name="android.support.wearable.complications.UPDATE_PERIOD_SECONDS"
android:value="120"/>
Data Provider declaration
#gdgceesummit
@Override
public void onComplicationActivated( int complicationId, int dataType,
ComplicationManager complicationManager) { … }
@Override
public void onComplicationUpdate( int complicationId, int dataType,
ComplicationManager complicationManager) { … }
@Override
public void onComplicationDeactivated(int complicationId) { … }
Data Provider methods
#gdgceesummit
@Override
public void onComplicationUpdate(int complicationId, int dataType,
ComplicationManager complicationManager) {
// Retrieve or generate your data
int randomNumber = (int) Math.floor(Math.random() * 10);
String randomNumberText =
String.format(Locale.getDefault(), "%d!", randomNumber);
Exposing data to complications
Called according to update period time
#gdgceesummit
ComplicationData complicationData = null;
switch (dataType) {
case ComplicationData.TYPE_SHORT_TEXT:
complicationData = new ComplicationData.Builder(
ComplicationData.TYPE_SHORT_TEXT)
.setShortText(ComplicationText.plainText(randomNumberText))
.build();
break;
Exposing data to complications
#gdgceesummit
@Override
public void onComplicationUpdate( int complicationId, int dataType,
ComplicationManager complicationManager) {
…
if (complicationData != null) {
complicationManager.updateComplicationData(
complicationId,
complicationData);
}
Exposing data to complications
#gdgceesummit
WatchFaceService.Engine.setDefaultComplicationProvider()
Default Providers
Notifications updated
#gdgceesummit
Notifications in Android Wear 1.X
#gdgceesummit
Android Wear 2.0 Notifications
Material Design for Wearables, Dark Theme
#gdgceesummit
Notifications preview
#gdgceesummit
Notifications messaging style
Notifications coding
#gdgceesummit
Notification noti = new NotificationCompat.Builder()
.setContentTitle(messages.length + " new messages with " + sender)
.setContentText("subject")
.setSmallIcon(R.drawable.new_message)
// 2) set the style to MessagingStyle
.setStyle(new NotificationCompat.MessagingStyle(
getResources().getString(R.string.reply_name))
.addMessage(messages[0])
.addMessage(messages[1]);
Notifications with modern MessagingStyle
set MessagingStyle
#gdgceesummit
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(R.drawable.ic_reply_icon,
getString(R.string.label), replyPendingIntent)
.addRemoteInput(remoteInput)
.setAllowGeneratedReplies(true)
.build();
Notifications with SmartReply
Allow SmartReply
Starting with Preview 3 SmartReply uses standalone machine, located on watch
#gdgceesummit
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(R.drawable.ic_reply_icon,
getString(R.string.label), replyPendingIntent)
.addRemoteInput(remoteInput)
.extend(new NotificationCompat.Action.WearableExtender()
.setHintDisplayActionInline(true))
.build();
Inline Action, available directly from stream
Set inline action
(Not new) Input Methods
#gdgceesummit
New input methods
#gdgceesummit
Voice input, Emoji
#gdgceesummit
Keyboard, Handwriting
#gdgceesummit
Wait, a Keyboard???
LG Watch Urbane 2nd Edition
Display: 1.38 inches, 480 x 480 pixels (~348 ppi)
CPU: Quad-core 1.2 GHz Cortex-A7
GPU: Adreno 305, Chipset: Qualcomm Snapdragon 400
Memory: 4 GB, 768 MB RAM
Comm: Wi-Fi 802.11 b/g, Bluetooth v4.1, LE, GPS, NFC
Network: GSM, HSPA, LTE
Battery: 570 mAh (60h)
Size x2 bigger than first phones
Material Design for Wearables
#gdgceesummit
1D Layout
Do Don’t
#gdgceesummit
UI Anatomy
#gdgceesummit
Navigation Drawer
#gdgceesummit
Action Drawer
#gdgceesummit
Dark Theme
#gdgceesummit
Brightness values
1 App color - Default color
2 Dark background - 15%
3 Lighter background - 30%
4 UI element - 40%
5 Lighter UI element - 65%
6 Accent - 100%
#gdgceesummit
Applications list
#gdgceesummit
WearableRecyclerView
Since Preview 3 - .setCircularScrollingGestureEnabled(true) available
Some new Google Fit features
for Android Wear
#gdgceesummit
Upcoming APIs
Beat to Beat API Goals API Profile API
#gdgceesummit
Real Time Gym Activity Recognition
#gdgceesummit
Recognized exercises
Q&A?
Thank you!
Constantine Mars
@ConstantineMars
+ConstantineMars

More Related Content

Similar to Android Wear 2.0 - New Level of Freedom for Your Action - GDG CEE Leads Summit 2016

Google tv
Google tv Google tv
Google tv
Iñaki Villar
 
What's new in android jakarta gdg (2015-08-26)
What's new in android   jakarta gdg (2015-08-26)What's new in android   jakarta gdg (2015-08-26)
What's new in android jakarta gdg (2015-08-26)
Google
 
Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010
Chris Ramsdale
 
Google Developer Fest 2010
Google Developer Fest 2010Google Developer Fest 2010
Google Developer Fest 2010Chris Ramsdale
 
Android CTS training
Android CTS trainingAndroid CTS training
Android CTS training
jtbuaa
 
Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)
Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)
Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)
DroidConTLV
 
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
mharkus
 
Optimizing Apps for Better Performance
Optimizing Apps for Better PerformanceOptimizing Apps for Better Performance
Optimizing Apps for Better Performance
Elif Boncuk
 
Knock knock! Who's there? Doze. - Yonatan Levin
Knock knock! Who's there? Doze. - Yonatan Levin Knock knock! Who's there? Doze. - Yonatan Levin
Knock knock! Who's there? Doze. - Yonatan Levin
DroidConTLV
 
Cleaning your architecture with android architecture components
Cleaning your architecture with android architecture componentsCleaning your architecture with android architecture components
Cleaning your architecture with android architecture components
Debora Gomez Bertoli
 
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Codemotion
 
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Codemotion
 
Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical world
Stefano Sanna
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCJim Tochterman
 
Architecture components, Константин Марс, TeamLead, Senior Developer, DataArt
Architecture components, Константин Марс, TeamLead, Senior Developer, DataArtArchitecture components, Константин Марс, TeamLead, Senior Developer, DataArt
Architecture components, Константин Марс, TeamLead, Senior Developer, DataArt
Alina Vilk
 
Shape12 6
Shape12 6Shape12 6
Shape12 6pslulli
 
Getting your app ready for android n
Getting your app ready for android nGetting your app ready for android n
Getting your app ready for android n
Sercan Yusuf
 
Gdg san diego android 11 meetups what's new in android - ui and dev tools
Gdg san diego android 11 meetups  what's new in android  - ui and dev toolsGdg san diego android 11 meetups  what's new in android  - ui and dev tools
Gdg san diego android 11 meetups what's new in android - ui and dev tools
Svetlin Stanchev
 
android level 3
android level 3android level 3
android level 3
DevMix
 

Similar to Android Wear 2.0 - New Level of Freedom for Your Action - GDG CEE Leads Summit 2016 (20)

Google tv
Google tv Google tv
Google tv
 
What's new in android jakarta gdg (2015-08-26)
What's new in android   jakarta gdg (2015-08-26)What's new in android   jakarta gdg (2015-08-26)
What's new in android jakarta gdg (2015-08-26)
 
Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010
 
Google Developer Fest 2010
Google Developer Fest 2010Google Developer Fest 2010
Google Developer Fest 2010
 
Android CTS training
Android CTS trainingAndroid CTS training
Android CTS training
 
Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)
Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)
Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)
 
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
 
Optimizing Apps for Better Performance
Optimizing Apps for Better PerformanceOptimizing Apps for Better Performance
Optimizing Apps for Better Performance
 
JBoss World 2010
JBoss World 2010JBoss World 2010
JBoss World 2010
 
Knock knock! Who's there? Doze. - Yonatan Levin
Knock knock! Who's there? Doze. - Yonatan Levin Knock knock! Who's there? Doze. - Yonatan Levin
Knock knock! Who's there? Doze. - Yonatan Levin
 
Cleaning your architecture with android architecture components
Cleaning your architecture with android architecture componentsCleaning your architecture with android architecture components
Cleaning your architecture with android architecture components
 
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
 
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
 
Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical world
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
 
Architecture components, Константин Марс, TeamLead, Senior Developer, DataArt
Architecture components, Константин Марс, TeamLead, Senior Developer, DataArtArchitecture components, Константин Марс, TeamLead, Senior Developer, DataArt
Architecture components, Константин Марс, TeamLead, Senior Developer, DataArt
 
Shape12 6
Shape12 6Shape12 6
Shape12 6
 
Getting your app ready for android n
Getting your app ready for android nGetting your app ready for android n
Getting your app ready for android n
 
Gdg san diego android 11 meetups what's new in android - ui and dev tools
Gdg san diego android 11 meetups  what's new in android  - ui and dev toolsGdg san diego android 11 meetups  what's new in android  - ui and dev tools
Gdg san diego android 11 meetups what's new in android - ui and dev tools
 
android level 3
android level 3android level 3
android level 3
 

More from Constantine Mars

Mobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
Mobile Applications Architecture - GDG Ternopil' Architecture Components MeetupMobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
Mobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
Constantine Mars
 
Quick look at Design Patterns in Android Development
Quick look at Design Patterns in Android DevelopmentQuick look at Design Patterns in Android Development
Quick look at Design Patterns in Android Development
Constantine Mars
 
Dagger 2 - Ciklum Speakers' Corner
Dagger 2 - Ciklum Speakers' CornerDagger 2 - Ciklum Speakers' Corner
Dagger 2 - Ciklum Speakers' Corner
Constantine Mars
 
Architecture components - IT Talk
Architecture components - IT TalkArchitecture components - IT Talk
Architecture components - IT Talk
Constantine Mars
 
Jump into cross platform development with firebase
Jump into cross platform development with firebaseJump into cross platform development with firebase
Jump into cross platform development with firebase
Constantine Mars
 
Dagger2 - IT NonStop Voronezh 2016
Dagger2 - IT NonStop Voronezh 2016Dagger2 - IT NonStop Voronezh 2016
Dagger2 - IT NonStop Voronezh 2016
Constantine Mars
 
DeviceHive Android BLE Gateway
DeviceHive Android BLE GatewayDeviceHive Android BLE Gateway
DeviceHive Android BLE Gateway
Constantine Mars
 
Scrum Overview
Scrum OverviewScrum Overview
Scrum Overview
Constantine Mars
 
Android Wear 2.0, Awareness API - GDG Dnipro Post I/O 2016
Android Wear 2.0, Awareness API - GDG Dnipro Post I/O 2016Android Wear 2.0, Awareness API - GDG Dnipro Post I/O 2016
Android Wear 2.0, Awareness API - GDG Dnipro Post I/O 2016
Constantine Mars
 
RxJava for Android - GDG and DataArt
RxJava for Android - GDG and DataArtRxJava for Android - GDG and DataArt
RxJava for Android - GDG and DataArt
Constantine Mars
 
Android N Security Overview - Mobile Security Saturday at Ciklum
Android N Security Overview - Mobile Security Saturday at CiklumAndroid N Security Overview - Mobile Security Saturday at Ciklum
Android N Security Overview - Mobile Security Saturday at Ciklum
Constantine Mars
 
Study Jam: Android for Beginners, Summary
Study Jam: Android for Beginners, SummaryStudy Jam: Android for Beginners, Summary
Study Jam: Android for Beginners, Summary
Constantine Mars
 
Pebble Watch Development
Pebble Watch DevelopmentPebble Watch Development
Pebble Watch Development
Constantine Mars
 
Xamarin Forms in Action
Xamarin Forms in ActionXamarin Forms in Action
Xamarin Forms in Action
Constantine Mars
 
RxJava for Android - GDG DevFest Ukraine 2015
RxJava for Android - GDG DevFest Ukraine 2015RxJava for Android - GDG DevFest Ukraine 2015
RxJava for Android - GDG DevFest Ukraine 2015
Constantine Mars
 

More from Constantine Mars (15)

Mobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
Mobile Applications Architecture - GDG Ternopil' Architecture Components MeetupMobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
Mobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
 
Quick look at Design Patterns in Android Development
Quick look at Design Patterns in Android DevelopmentQuick look at Design Patterns in Android Development
Quick look at Design Patterns in Android Development
 
Dagger 2 - Ciklum Speakers' Corner
Dagger 2 - Ciklum Speakers' CornerDagger 2 - Ciklum Speakers' Corner
Dagger 2 - Ciklum Speakers' Corner
 
Architecture components - IT Talk
Architecture components - IT TalkArchitecture components - IT Talk
Architecture components - IT Talk
 
Jump into cross platform development with firebase
Jump into cross platform development with firebaseJump into cross platform development with firebase
Jump into cross platform development with firebase
 
Dagger2 - IT NonStop Voronezh 2016
Dagger2 - IT NonStop Voronezh 2016Dagger2 - IT NonStop Voronezh 2016
Dagger2 - IT NonStop Voronezh 2016
 
DeviceHive Android BLE Gateway
DeviceHive Android BLE GatewayDeviceHive Android BLE Gateway
DeviceHive Android BLE Gateway
 
Scrum Overview
Scrum OverviewScrum Overview
Scrum Overview
 
Android Wear 2.0, Awareness API - GDG Dnipro Post I/O 2016
Android Wear 2.0, Awareness API - GDG Dnipro Post I/O 2016Android Wear 2.0, Awareness API - GDG Dnipro Post I/O 2016
Android Wear 2.0, Awareness API - GDG Dnipro Post I/O 2016
 
RxJava for Android - GDG and DataArt
RxJava for Android - GDG and DataArtRxJava for Android - GDG and DataArt
RxJava for Android - GDG and DataArt
 
Android N Security Overview - Mobile Security Saturday at Ciklum
Android N Security Overview - Mobile Security Saturday at CiklumAndroid N Security Overview - Mobile Security Saturday at Ciklum
Android N Security Overview - Mobile Security Saturday at Ciklum
 
Study Jam: Android for Beginners, Summary
Study Jam: Android for Beginners, SummaryStudy Jam: Android for Beginners, Summary
Study Jam: Android for Beginners, Summary
 
Pebble Watch Development
Pebble Watch DevelopmentPebble Watch Development
Pebble Watch Development
 
Xamarin Forms in Action
Xamarin Forms in ActionXamarin Forms in Action
Xamarin Forms in Action
 
RxJava for Android - GDG DevFest Ukraine 2015
RxJava for Android - GDG DevFest Ukraine 2015RxJava for Android - GDG DevFest Ukraine 2015
RxJava for Android - GDG DevFest Ukraine 2015
 

Recently uploaded

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 

Recently uploaded (20)

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 

Android Wear 2.0 - New Level of Freedom for Your Action - GDG CEE Leads Summit 2016