SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Creating Android Wearable Apps
Part - I
www.letsnurture.com
info@letsnurture.com
Creating Wearable Apps
• Wearable apps run directly on the device,
giving you access to hardware such as sensors
and the GPU.
• They are fundamentally the same as apps built
for other devices using the Android SDK, but
differ greatly in design and usability and the
amount of functionality provided.
www.letsnurture.com
info@letsnurture.com
Main differences between handheld and wearable apps
• The system enforces a timeout period. If you are displaying
an activity and user's don't interact with it, the device
sleeps. When it wakes back up, the Wear home screen is
displayed instead of your activity.
• If you need to show something persistent, create a
notification in the context stream instead.
• Wearable apps are relatively small in size and functionality
compared to handheld apps.
• They contain only what makes sense on the wearable,
which is usually a small subset of the corresponding
handheld app.
• In general, you should carry out operations on the
handheld when possible and send the results to the
wearable. www.letsnurture.com
info@letsnurture.com
• Users don't download apps directly onto the
wearable. Instead, you bundle the wearable
app inside the handheld app.
• When users install the handheld app, the
system automatically installs the wearable
app. However, for development purposes, you
can still install the wearable app directly to the
wearable.
Main differences between handheld and wearable apps
www.letsnurture.com
info@letsnurture.com
• Wearable apps can access much of the standard
Android APIs, but don't support the following APIs:
– android.webkit
– android.print
– android.app.backup
– android.appwidget
– android.hardware.usb
• You can check if a wearable supports a feature by
calling hasSystemFeature() before trying to use an API.
• Note: We recommend using Android Studio for Android
Wear development as it provides project setup, library
inclusion, and packaging conveniences that aren't available
in ADT.
• The rest of this training assumes you're using Android
Studio. www.letsnurture.com
info@letsnurture.com
Creating and Running a Wearable App
• Wearable apps run directly on the wearable device, giving
you access to low-level hardware such as sensors, activities,
services, and more, right on the wearable.
• A companion handheld app that contains the wearable app
is also required when you want to publish to the Google
Play store.
• Wearables don't support the Google Play store, so users
download the companion handheld app, which
automatically pushes the wearable app to the wearable.
• The handheld app is also useful for doing heavy processing,
network actions, or other work and sending the results to
the wearable
www.letsnurture.com
info@letsnurture.com
Set up an Android Wear Virtual Device
• To set up an Android Wear virtual device:
• Click Tools > Android > AVD Manager.
• Click Create....
• Fill in the following details for the AVD you want to specify
and leave the rest of the fields with their default values:
– AVD Name - A name for your AVD
– Device - Android Wear Round or Square device types
– Target - Android 4.4W - API Level 20
– CPU/ABI - Android Wear ARM (armeabi-v7a)
– Keyboard - Select Hardware keyboard present
– Skin - AndroidWearRound or AndroidWearSquare depending on
the selected device type
– Snapshot - Not selected
– Use Host GPU - Selected, to support custom activities for
wearable notifications
• Click OK.
www.letsnurture.com
info@letsnurture.com
• Start the emulator:
– Select the virtual device you just created.
– Click Start..., then click Launch.
– Wait until the emulator initializes and shows the Android Wear home
screen.
• Pair Your handheld with the emulator:
– On your handheld, install the Android Wear app from Google Play.
– Connect the handheld to your machine through USB.
– Forward the AVD's communication port to the connected handheld
device (you must do this every time the handheld is connected):
adb -d forward tcp:5601 tcp:5601
– Start the Android Wear app on your handheld device and connect to
the emulator.
– Tap the menu on the top right corner of the Android Wear app and
select Demo Cards.
– The cards you select appear as notifications on the home screen of the
emulator.
www.letsnurture.com
info@letsnurture.com
Set up an Android Wear Device
• To set up an Android Wear device:
• Install the Android Wear app, available on Google Play, on
your handheld.
• Follow the app's instructions to pair your handheld with
your wearable. This allows you to test out synced handheld
notifications, if you're building them.
• Leave the Android Wear app open on your phone.
• Connect the wearable to your machine through USB, so you
can install apps directly to it as you develop. A message
appears on both the wearable and the Android Wear app
prompting you to allow debugging.
• On the Android Wear app, check Always allow from this
computer and tap OK.
• The Android tool window on Android Studio shows the
system log from the wearable. The wearable should also be
listed when you run the adb devices command.
www.letsnurture.com
info@letsnurture.com
Create a Project
To begin development, create an app project that contains
wearable and handheld app modules. In Android Studio,
click File > New Project and follow the Project Wizard
instructions, as described in Creating a Project.
As you follow the wizard, enter the following information:
• In the Configure your Project window, enter a name for your
app and a package name.
• In the Form Factors window:
– Select Phone and Tablet and select API 9: Android 2.3
(Gingerbread) under Minimum SDK.
– Select Wear and select API 20: Android 4.4 (KitKat Wear) under Minimum
SDK.
• In the first Add an Activity window, add a blank activity for
mobile.
• In the second Add an Activity window, add a blank activity for
Wear. www.letsnurture.com
info@letsnurture.com
New Project Just Created
When the wizard completes, Android Studio creates a
new project with two modules, mobile and wear.
You now have a project for both your handheld and
wearable apps that you can create activities, services,
custom layouts, and much more in.
On the handheld app, you do most of the heavy lifting,
such as network communications, intensive processing,
or tasks that require long amounts of user interaction.
When these are done, you usually notify the wearable of
the results through notifications or by syncing and
sending data to the wearable.
www.letsnurture.com
info@letsnurture.com
Install the Wearable App
• When developing, you install apps directly to the wearable like with
handheld apps. Use either adb install or the Play button on Android
Studio.
• When you're ready to publish your app to users, you embed the
wearable app inside of the handheld app. When users install the
handheld app from Google Play, a connected wearable
automatically receives the wearable app.
• Note: The automatic installation of wearable apps does not work
when you are signing apps with a debug key and only works with
release keys. See Packaging Wearable Apps for complete
information on how to properly package wearable apps.
• To install the "Hello World" app to the wearable, select wear from
the Run/Debug configuration drop-down menu and click
the Play button. The activity shows up on the wearable and prints
out "Hello world!"
www.letsnurture.com
info@letsnurture.com
Include the Correct Libraries
• As part of the Project Wizard, the correct dependencies are
imported for you in the appropriate
module'sbuild.gradle file.
• However, these dependencies are not required, so read the
following descriptions to find out if you need them or not:
• NotificationsThe Android v4 support library (or v13, which
includes v4) contains the APIs to extend your existing
notifications on handhelds to support wearables.
• For notifications that appear only on the wearable
(meaning, they are issued by an app that runs on the
wearable), you can just use the standard framework APIs
(API Level 20) on the wearable and remove the support
library dependency in the mobile module of your project.
www.letsnurture.com
info@letsnurture.com
Include the Correct Libraries
• Wearable Data LayerTo sync and send data between wearables and
handhelds with the Wearable Data Layer APIs, you need the latest
version of Google Play services. If you're not using these APIs,
remove the dependency from both modules.
• Wearable UI support libraryThis is an unofficial library that
includes UI widgets designed for wearables. We encourage you to
use them in your apps, because they exemplify best practices, but
they can still change at any time.
• However, if the libraries are updated, your apps won't break since
they are compiled into your app. To get new features from an
updated library, you just need to statically link the new version and
update your app accordingly. This library is only applicable if you
create wearable apps.
• In the next lessons, you'll learn how to create layouts designed for
wearables as well as how to use the various voice actions that are
supported by the platform.www.letsnurture.com
info@letsnurture.com
Creating Custom Layouts
• Creating layouts for wearables is the same as
handheld devices, except you have to design
for the screen size and for glanceability.
• Do not port functionality and the UI from a
handheld app and expect a good experience.
• You should create custom layouts only when
necessary. Read the design guidelines for
information on how to design great wearable
apps.
www.letsnurture.com
info@letsnurture.com
Create Custom Notifications
• In general, you should create notifications on the handheld and let
them automatically sync to the wearable.
• This lets you build your notifications once and have them appear on
many types of devices (not just wearables, but eventually Auto and
TV) without having to design them for different form factors.
• If the standard notification styles don't work for you (such
as NotificationCompat.BigTextStyle orNotificationCompat.InboxStyl
e), you can display an activity with a custom layout.
• You can only create and issue custom notifications on the wearable,
and the system does not sync these notifications to the handheld.
• Note: When creating custom notifications on the wearable, you can
use the standard notification APIs (API Level 20) instead of the
Support Library.
www.letsnurture.com
info@letsnurture.com
To create a custom notification:
1. Create a layout and set it as the content view for the activity that you want
to display.
public void onCreate(Bundle bundle){
...
setContentView(R.layout.notification_activity);
}
2. Define necessary properties for the activity in the Android manifest to allow
the activity to be displayed in the wearable's context stream process.
You need to declare the activity to be exportable, be embeddable, and have an
empty task affinity. We also recommend setting the theme
to Theme.DeviceDefault.Light.
For example:
<activity android:name="com.example.MyDisplayActivity"
android:exported="true"
android:allowEmbedded="true"
android:taskAffinity=""
android:theme="@android:style/Theme.DeviceDefault.Light" />
www.letsnurture.com
info@letsnurture.com
3. Create a PendingIntent for the activity that you want to display.
For example:
Intent notificationIntent = new Intent(this, NotificationActivity.class);
PendingIntent notificationPendingIntent =
PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
4. Build a Notification and call setDisplayIntent() providing
the PendingIntent. The system uses thisPendingIntent to launch the
activity when users view your notification.
5. Issue the notification using the notify() method.
Note: When the notification is peeking on the homescreen, the system
displays it with a standard template that it generates from the
notification's semantic data.
This template works well on all watchfaces. When users swipe the
notification up, they'll then see the custom activity for the notification.
www.letsnurture.com
info@letsnurture.com
Create Layouts with the Wearable UI Library
• There's an unofficial UI library that is automatically
included when you create your wearable app with the
Android Studio Project Wizard.
• You can also add the library to your build.gradle file
with the following dependency declaration:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.support:wearable:+'
compile 'com.google.android.gms:play-services-wearable:+'
}
www.letsnurture.com
info@letsnurture.com
This library helps you build UIs that are designed for wearables. Here are some of the major
classes:
• BoxInsetLayout - A FrameLayout that's aware of screen shape and can box its children in the
center square of a round screen.
• CardFragment - A fragment that presents content within an expandable, vertically scrollable card.
• CircledImageView - An image view surrounded by a circle.
• ConfirmationActivity - An activity that displays confirmation animations after the user completes
an action.
• DismissOverlayView - A view for implementing long-press-to-dismiss.
• GridViewPager - A layout manager that allows the user to both vertically and horizontally through
pages of data. You supply an implementation of a GridPagerAdapter to generate the pages that
the view shows.
• GridPagerAdapter - An adapter that supplies pages to a GridViewPager.
• FragmentGridPagerAdapter - An implementation of GridPagerAdapter that represents each
page as a fragment.
• WatchViewStub - A class that can inflate a specific layout, depending on the shape of the
device's screen.
• WearableListView - An alternative version of ListView that is optimized for ease of use on small
screen wearable devices. It displays a vertically scrollable list of items, and automatically snaps to
the nearest item when the user stops scrolling.
www.letsnurture.com
info@letsnurture.com
Adding Voice Capabilities
• Voice actions are an important part of the wearable
experience. They let users carry out actions hands-free and
quickly. Wear provides two types of voice actions:
• System-providedThese voice actions are task-based and
are built into the Wear platform. You filter for them in the
activity that you want to start when the voice action is
spoken.
• Examples include "Take a note" or "Set an alarm".App-
providedThese voice actions are app-based, and you
declare them just like a launcher icon. Users say "Start " to
use these voice actions and an activity that you specify
starts
www.letsnurture.com
info@letsnurture.com
Declare System-provided Voice Actions
• The Android Wear platform provides several voice intents
that are based on user actions such as "Take a note" or "Set
an alarm".
• This allows users to say what they want to do and let the
system figure out the best activity to start.
• When users speak the voice action, your app can filter for
the intent that is fired to start an activity.
• If you want to start a service to do something in the
background, show an activity as a visual cue and start the
service in the activity.
• Make sure to call finish() when you want to get rid of the
visual cue.
www.letsnurture.com
info@letsnurture.com
For example, for the "Take a note" command,
declare this intent filter to start an activity
namedMyNoteActivity:
<activity android:name="MyNoteActivity">
<intent-filter>
<action
android:name="android.intent.action.SEND" />
<category
android:name="com.google.android.voicesearch.SE
LF_NOTE" />
</intent-filter>
</activity>
www.letsnurture.com
info@letsnurture.com
Sample list of the voice intents supported by the Wear Platform
Name Example Phrases Intent
Call a car/taxi "OK Google, get me a taxi"
"OK Google, call me a car"
Actioncom.google.android.gms.actio
ns.RESERVE_TAXI_RESERVATION
Take a note "OK Google, take a note"
"OK Google, note to self"
Actionandroid.intent.action.SENDCat
egorycom.google.android.voicesearc
h.SELF_NOTEExtrasandroid.content.I
ntent.EXTRA_TEXT - a string with
note body
www.letsnurture.com
info@letsnurture.com
Declare App-provided Voice Actions
• If none of the platform voice intents work for
you, you can start your apps directly with a
"Start MyActivityName" voice action.
• Registering for a "Start" action is the same as
registering for a launcher icon on a handheld.
Instead of requesting an app icon in a
launcher, your app requests a voice action
instead.
www.letsnurture.com
info@letsnurture.com
To specify the text to say after "Start", specify
a label attribute for the activtiy that you want to start.
For example, this intent filter recognizes the "Start
MyRunningApp" voice action and
launches StartRunActivity.
<application>
<activity android:name="StartRunActivity"
android:label="MyRunningApp">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
www.letsnurture.com
info@letsnurture.com
Obtaining Free-form Speech Input
private static final int SPEECH_REQUEST_CODE = 0;
// Create an intent that can start the Speech Recognizer activity
private void displaySpeechRecognizer() {
Intent intent = new
Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
// Start the activity, the intent will be populated with the speech
text
startActivityForResult(intent, SPEECH_REQUEST_CODE);
}
// This callback is invoked when the Speech Recognizer returns.
// This is where you process the intent and extract the speech
text from the intent.
www.letsnurture.com
info@letsnurture.com
@Override
protected void onActivityResult(int requestCode, int
resultCode,
Intent data) {
if (requestCode == SPEECH_REQUEST_CODE &&
resultCode == RESULT_OK) {
List<String> results = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
String spokenText = results.get(0);
// Do something with spokenText
}
super.onActivityResult(requestCode, resultCode,
data);
} www.letsnurture.com
info@letsnurture.com
Packaging Wearable Apps
Package Manually
It's still possible to package the wearable app into the handheld app manually if you are using
another IDE or another method of building.
1. Copy the signed wearable app to your handheld project's res/raw directory. We'll refer to
the APK aswearable_app.apk.
2. Create a res/xml/wearable_app_desc.xml file that contains the version and path
information of the wearable app. For example:
<wearableApp package="wearable.app.package.name">
<versionCode>1</versionCode>
<versionName>1.0</versionName>
<rawPathResId>wearable_app</rawPathResId>
</wearableApp>
The package, versionCode, and versionName are the same values specified in the wearable
app'sAndroidManifest.xml file. The rawPathResId is the static variable name of the APK
resource. For example, for wearable_app.apk, the static variable name is wearable_app.
4. Add a meta-data tag to your handheld app's <application> tag to reference
the wearable_app_desc.xmlfile.
<meta-data android:name="com.google.android.wearable.beta.app"
android:resource="@xml/wearable_app_desc"/>
5. Build and sign the handheld app. www.letsnurture.com
info@letsnurture.com
Setup Devices for Debugging
• Enable USB debugging on the handheld:
– Open the Settings app and scroll to the bottom.
– If it doesn't have a Developer Options setting, tap About
Phone (or About Tablet), scroll to the bottom, and tap the build
number 7 times.
– Go back and tap Developer Options.
– Enable USB debugging.
• Enable Bluetooth debugging on the wearable:
– Tap the home screen twice to bring up the Wear menu.
– Scroll to the bottom and tap Settings.
– Scroll to the bottom. If there's no Developer Options item,
tap About, and then tap the build number 7 times.
– Tap the Developer Options item.
– Enable Debug over Bluetooth.
www.letsnurture.com
info@letsnurture.com
Set Up a Debugging Session
1. On the handheld, open the Android Wear companion app.
2. Tap the menu on the top right and select Settings.
3. Enable Debugging over Bluetooth. You should see a tiny status
summary appear under the option:Host: disconnected
Target: connected
4. Connect the handheld to your machine over USB and run:adb
forward tcp:4444 localabstract:/adb-hub; adb connect
localhost:4444Note: You can use any available port that you have
access to.
• In the Android Wear companion app, you should see the status
change to:
• Host: connected
Target: connected
www.letsnurture.com
info@letsnurture.com
Debug Your App
• Your wearable should show up as localhost:4444 when
running adb devices. To run any adb command, use this format:
adb -s localhost:4444 <command>
• If there are no other devices connected over TCP/IP (namely
emulators), you can shorten the command to:
adb -e <command>
For example:
adb -e logcat
adb -e shell
adb -e bugreport
www.letsnurture.com
info@letsnurture.com
Let’s Make it Happen Now
www.letsnurture.com
info@letsnurture.com

Weitere ähnliche Inhalte

Was ist angesagt?

Android Wear Presentation
Android Wear PresentationAndroid Wear Presentation
Android Wear PresentationNanik Tolaram
 
Android On Your Sleeve - DroidCon Montreal 2015
Android On Your Sleeve - DroidCon Montreal 2015Android On Your Sleeve - DroidCon Montreal 2015
Android On Your Sleeve - DroidCon Montreal 2015Neal Sanche
 
Droidcon Turin 2015 - Android wear sdk introduction
Droidcon Turin 2015 - Android wear sdk introductionDroidcon Turin 2015 - Android wear sdk introduction
Droidcon Turin 2015 - Android wear sdk introductionMichelantonio Trizio
 
Android wear SDK introduction
Android wear SDK introductionAndroid wear SDK introduction
Android wear SDK introductionTiziano Basile
 
Android Wear, a developer's perspective
Android Wear, a developer's perspectiveAndroid Wear, a developer's perspective
Android Wear, a developer's perspectiveSebastian Vieira
 
Apple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewApple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewSammy Sunny
 
Development Playbook Application With Adobe AIR 2.5 and QNX SDK
Development Playbook Application With Adobe AIR 2.5 and QNX SDKDevelopment Playbook Application With Adobe AIR 2.5 and QNX SDK
Development Playbook Application With Adobe AIR 2.5 and QNX SDKTubagus Anwar
 
Android Marshmallow demos
Android Marshmallow demosAndroid Marshmallow demos
Android Marshmallow demosYossi Elkrief
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersAmbarish Hazarnis
 
Augmented Reality - A look before you leap
Augmented Reality - A look before you leapAugmented Reality - A look before you leap
Augmented Reality - A look before you leapGnana Sundar Rajendiran
 
Android Wear Development
Android Wear DevelopmentAndroid Wear Development
Android Wear DevelopmentJohnny Sung
 
Mobile Augmented Reality Development tools
Mobile Augmented Reality Development toolsMobile Augmented Reality Development tools
Mobile Augmented Reality Development toolsThiwanka Makumburage
 
Making Augmented Reality Applications with Android NDK
Making Augmented Reality Applications with Android NDKMaking Augmented Reality Applications with Android NDK
Making Augmented Reality Applications with Android NDKEvren Coşkun
 
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences Qualcomm Developer Network
 
Developing AIR for Android with Flash Professional CS5
Developing AIR for Android with Flash Professional CS5Developing AIR for Android with Flash Professional CS5
Developing AIR for Android with Flash Professional CS5Chris Griffith
 
Applications Development
Applications DevelopmentApplications Development
Applications DevelopmentThe Sapper UAE
 

Was ist angesagt? (20)

Android Wear Presentation
Android Wear PresentationAndroid Wear Presentation
Android Wear Presentation
 
Android On Your Sleeve - DroidCon Montreal 2015
Android On Your Sleeve - DroidCon Montreal 2015Android On Your Sleeve - DroidCon Montreal 2015
Android On Your Sleeve - DroidCon Montreal 2015
 
Droidcon Turin 2015 - Android wear sdk introduction
Droidcon Turin 2015 - Android wear sdk introductionDroidcon Turin 2015 - Android wear sdk introduction
Droidcon Turin 2015 - Android wear sdk introduction
 
Android wear SDK introduction
Android wear SDK introductionAndroid wear SDK introduction
Android wear SDK introduction
 
Android Wear, a developer's perspective
Android Wear, a developer's perspectiveAndroid Wear, a developer's perspective
Android Wear, a developer's perspective
 
Apple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewApple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical Overview
 
Cyworld AppStore Overview
Cyworld AppStore OverviewCyworld AppStore Overview
Cyworld AppStore Overview
 
Development Playbook Application With Adobe AIR 2.5 and QNX SDK
Development Playbook Application With Adobe AIR 2.5 and QNX SDKDevelopment Playbook Application With Adobe AIR 2.5 and QNX SDK
Development Playbook Application With Adobe AIR 2.5 and QNX SDK
 
AR with vuforia
AR with vuforiaAR with vuforia
AR with vuforia
 
Android Marshmallow demos
Android Marshmallow demosAndroid Marshmallow demos
Android Marshmallow demos
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - Beginners
 
Augmented Reality - A look before you leap
Augmented Reality - A look before you leapAugmented Reality - A look before you leap
Augmented Reality - A look before you leap
 
Android Wear Development
Android Wear DevelopmentAndroid Wear Development
Android Wear Development
 
Mobile Augmented Reality Development tools
Mobile Augmented Reality Development toolsMobile Augmented Reality Development tools
Mobile Augmented Reality Development tools
 
Making Augmented Reality Applications with Android NDK
Making Augmented Reality Applications with Android NDKMaking Augmented Reality Applications with Android NDK
Making Augmented Reality Applications with Android NDK
 
Android programming basics
Android programming basicsAndroid programming basics
Android programming basics
 
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
 
Developing AIR for Android with Flash Professional CS5
Developing AIR for Android with Flash Professional CS5Developing AIR for Android with Flash Professional CS5
Developing AIR for Android with Flash Professional CS5
 
Applications Development
Applications DevelopmentApplications Development
Applications Development
 
Augmented Reality
Augmented RealityAugmented Reality
Augmented Reality
 

Andere mochten auch

тест для 5 класса (1)
тест для 5 класса (1)тест для 5 класса (1)
тест для 5 класса (1)kryljanauki
 
ИУБиП, Колледж рационального обучения, Ростов-на-Дону, Группа К3М2, Выполнили...
ИУБиП, Колледж рационального обучения, Ростов-на-Дону, Группа К3М2, Выполнили...ИУБиП, Колледж рационального обучения, Ростов-на-Дону, Группа К3М2, Выполнили...
ИУБиП, Колледж рационального обучения, Ростов-на-Дону, Группа К3М2, Выполнили...Anton Drotik
 
World healthcare conference madu-v3
World healthcare conference madu-v3World healthcare conference madu-v3
World healthcare conference madu-v3caribbeanheart
 
Master trening startup_shevchuk 2015 v1.1
Master trening startup_shevchuk 2015 v1.1Master trening startup_shevchuk 2015 v1.1
Master trening startup_shevchuk 2015 v1.1Aleksei Shevchuk
 
Ugg: The Beach Boots
Ugg: The Beach BootsUgg: The Beach Boots
Ugg: The Beach Bootsviegrace
 
Anything’s Possible
Anything’s PossibleAnything’s Possible
Anything’s Possiblecharliecl500
 
Pil-educational art software designed by Miss Munrakhan
Pil-educational art software designed by Miss MunrakhanPil-educational art software designed by Miss Munrakhan
Pil-educational art software designed by Miss Munrakhanbindiya14
 
Marshall Cassidy : VOCALSpin : Ugly Like Me
Marshall Cassidy : VOCALSpin : Ugly Like MeMarshall Cassidy : VOCALSpin : Ugly Like Me
Marshall Cassidy : VOCALSpin : Ugly Like MeVOCAL SPIN
 
presentation of English
presentation of Englishpresentation of English
presentation of EnglishLuis11234
 
Part of the sentences. Basic Grammar
Part of the sentences. Basic GrammarPart of the sentences. Basic Grammar
Part of the sentences. Basic GrammarLiriett Herrera
 
Cnc final project coffee book
Cnc final project coffee bookCnc final project coffee book
Cnc final project coffee bookTrevor Hoareau
 
Get ready for new nexus devices
Get ready for new nexus devicesGet ready for new nexus devices
Get ready for new nexus devicesKetan Raval
 

Andere mochten auch (19)

Empresa
EmpresaEmpresa
Empresa
 
FASI sejarah
FASI sejarahFASI sejarah
FASI sejarah
 
тест для 5 класса (1)
тест для 5 класса (1)тест для 5 класса (1)
тест для 5 класса (1)
 
ИУБиП, Колледж рационального обучения, Ростов-на-Дону, Группа К3М2, Выполнили...
ИУБиП, Колледж рационального обучения, Ростов-на-Дону, Группа К3М2, Выполнили...ИУБиП, Колледж рационального обучения, Ростов-на-Дону, Группа К3М2, Выполнили...
ИУБиП, Колледж рационального обучения, Ростов-на-Дону, Группа К3М2, Выполнили...
 
World healthcare conference madu-v3
World healthcare conference madu-v3World healthcare conference madu-v3
World healthcare conference madu-v3
 
La llegenda de Sant jordi
La llegenda de Sant jordiLa llegenda de Sant jordi
La llegenda de Sant jordi
 
The universe
The universeThe universe
The universe
 
Master trening startup_shevchuk 2015 v1.1
Master trening startup_shevchuk 2015 v1.1Master trening startup_shevchuk 2015 v1.1
Master trening startup_shevchuk 2015 v1.1
 
Ugg: The Beach Boots
Ugg: The Beach BootsUgg: The Beach Boots
Ugg: The Beach Boots
 
Smart Social Media
Smart Social MediaSmart Social Media
Smart Social Media
 
Anything’s Possible
Anything’s PossibleAnything’s Possible
Anything’s Possible
 
Pil-educational art software designed by Miss Munrakhan
Pil-educational art software designed by Miss MunrakhanPil-educational art software designed by Miss Munrakhan
Pil-educational art software designed by Miss Munrakhan
 
Marshall Cassidy : VOCALSpin : Ugly Like Me
Marshall Cassidy : VOCALSpin : Ugly Like MeMarshall Cassidy : VOCALSpin : Ugly Like Me
Marshall Cassidy : VOCALSpin : Ugly Like Me
 
presentation of English
presentation of Englishpresentation of English
presentation of English
 
Final
FinalFinal
Final
 
Presentation m podvorok
Presentation m podvorokPresentation m podvorok
Presentation m podvorok
 
Part of the sentences. Basic Grammar
Part of the sentences. Basic GrammarPart of the sentences. Basic Grammar
Part of the sentences. Basic Grammar
 
Cnc final project coffee book
Cnc final project coffee bookCnc final project coffee book
Cnc final project coffee book
 
Get ready for new nexus devices
Get ready for new nexus devicesGet ready for new nexus devices
Get ready for new nexus devices
 

Ähnlich wie Android Wearable App Development - 1

Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android ApplicationNandini Prabhu
 
Android deep dive
Android deep diveAndroid deep dive
Android deep diveAnuSahniNCI
 
Build your own remote control. Droidcon greece 2016
Build your own remote control. Droidcon greece 2016Build your own remote control. Droidcon greece 2016
Build your own remote control. Droidcon greece 2016Jesus Gumiel
 
Application development
Application developmentApplication development
Application developmentShubham Sharma
 
How to create android applications
How to create android applicationsHow to create android applications
How to create android applicationsTOPS Technologies
 
Discover Android Wear
Discover Android WearDiscover Android Wear
Discover Android WearTroy Miles
 
Mobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool LabsMobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool LabsHarutyun Abgaryan
 
Android Wear Code Lab
Android Wear Code LabAndroid Wear Code Lab
Android Wear Code LabGerard
 
Android workshop
Android workshopAndroid workshop
Android workshopSagar Patel
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programmingPERKYTORIALS
 
Android Interview Questions
Android Interview QuestionsAndroid Interview Questions
Android Interview QuestionsGaurav Mehta
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 

Ähnlich wie Android Wearable App Development - 1 (20)

Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android Application
 
Android deep dive
Android deep diveAndroid deep dive
Android deep dive
 
Android wear notes
Android wear notesAndroid wear notes
Android wear notes
 
Android wear notes
Android wear notesAndroid wear notes
Android wear notes
 
Build your own remote control. Droidcon greece 2016
Build your own remote control. Droidcon greece 2016Build your own remote control. Droidcon greece 2016
Build your own remote control. Droidcon greece 2016
 
Application development
Application developmentApplication development
Application development
 
How to create android applications
How to create android applicationsHow to create android applications
How to create android applications
 
Android app upload
Android app uploadAndroid app upload
Android app upload
 
Londroid meetup
Londroid meetupLondroid meetup
Londroid meetup
 
Discover Android Wear
Discover Android WearDiscover Android Wear
Discover Android Wear
 
Internship presentation
Internship presentationInternship presentation
Internship presentation
 
Presentation[1]
Presentation[1]Presentation[1]
Presentation[1]
 
Mobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool LabsMobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool Labs
 
Android Wear Code Lab
Android Wear Code LabAndroid Wear Code Lab
Android Wear Code Lab
 
Android workshop
Android workshopAndroid workshop
Android workshop
 
Presentation
PresentationPresentation
Presentation
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
 
Android Interview Questions
Android Interview QuestionsAndroid Interview Questions
Android Interview Questions
 
Android interview questions
Android interview questionsAndroid interview questions
Android interview questions
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 

Mehr von Ketan Raval

Amazon Alexa Auto Software Development Kit (SDK)
Amazon Alexa Auto Software Development Kit (SDK)Amazon Alexa Auto Software Development Kit (SDK)
Amazon Alexa Auto Software Development Kit (SDK)Ketan Raval
 
Proximity Marketing Solutions enhancing Businesses leveraging iBeacon SDK Int...
Proximity Marketing Solutions enhancing Businesses leveraging iBeacon SDK Int...Proximity Marketing Solutions enhancing Businesses leveraging iBeacon SDK Int...
Proximity Marketing Solutions enhancing Businesses leveraging iBeacon SDK Int...Ketan Raval
 
Zero ui future is here
Zero ui   future is hereZero ui   future is here
Zero ui future is hereKetan Raval
 
Android n and beyond
Android n and beyondAndroid n and beyond
Android n and beyondKetan Raval
 
IoT and Future of Connected world
IoT and Future of Connected worldIoT and Future of Connected world
IoT and Future of Connected worldKetan Raval
 
#Instagram API Get visibility you always wanted
#Instagram API   Get visibility you always wanted#Instagram API   Get visibility you always wanted
#Instagram API Get visibility you always wantedKetan Raval
 
Keynote - Devfest 2015 organized by GDG Ahmedabad
Keynote - Devfest 2015 organized by GDG AhmedabadKeynote - Devfest 2015 organized by GDG Ahmedabad
Keynote - Devfest 2015 organized by GDG AhmedabadKetan Raval
 
Android notifications
Android notificationsAndroid notifications
Android notificationsKetan Raval
 
How to make your Mobile App HIPPA Compliant
How to make your Mobile App HIPPA CompliantHow to make your Mobile App HIPPA Compliant
How to make your Mobile App HIPPA CompliantKetan Raval
 
3 d touch a true game changer
3 d touch a true game changer3 d touch a true game changer
3 d touch a true game changerKetan Raval
 
OBD Mobile App - Fault Codes, Driving Behaviour and Fuel Economy
OBD Mobile App - Fault Codes, Driving Behaviour and Fuel EconomyOBD Mobile App - Fault Codes, Driving Behaviour and Fuel Economy
OBD Mobile App - Fault Codes, Driving Behaviour and Fuel EconomyKetan Raval
 
Vehicle to vehicle communication using gps
Vehicle to vehicle communication using gpsVehicle to vehicle communication using gps
Vehicle to vehicle communication using gpsKetan Raval
 
Obd how to guide
Obd how to guideObd how to guide
Obd how to guideKetan Raval
 
Garmin api integration
Garmin api integrationGarmin api integration
Garmin api integrationKetan Raval
 
Beacon The Google Way
Beacon The Google WayBeacon The Google Way
Beacon The Google WayKetan Raval
 
Edge detection iOS application
Edge detection iOS applicationEdge detection iOS application
Edge detection iOS applicationKetan Raval
 
Google calendar integration in iOS app
Google calendar integration in iOS appGoogle calendar integration in iOS app
Google calendar integration in iOS appKetan Raval
 
Big data cloudcomputing
Big data cloudcomputingBig data cloudcomputing
Big data cloudcomputingKetan Raval
 
All about Apple Watchkit
All about Apple WatchkitAll about Apple Watchkit
All about Apple WatchkitKetan Raval
 

Mehr von Ketan Raval (20)

Amazon Alexa Auto Software Development Kit (SDK)
Amazon Alexa Auto Software Development Kit (SDK)Amazon Alexa Auto Software Development Kit (SDK)
Amazon Alexa Auto Software Development Kit (SDK)
 
Proximity Marketing Solutions enhancing Businesses leveraging iBeacon SDK Int...
Proximity Marketing Solutions enhancing Businesses leveraging iBeacon SDK Int...Proximity Marketing Solutions enhancing Businesses leveraging iBeacon SDK Int...
Proximity Marketing Solutions enhancing Businesses leveraging iBeacon SDK Int...
 
Keynote 2016
Keynote 2016Keynote 2016
Keynote 2016
 
Zero ui future is here
Zero ui   future is hereZero ui   future is here
Zero ui future is here
 
Android n and beyond
Android n and beyondAndroid n and beyond
Android n and beyond
 
IoT and Future of Connected world
IoT and Future of Connected worldIoT and Future of Connected world
IoT and Future of Connected world
 
#Instagram API Get visibility you always wanted
#Instagram API   Get visibility you always wanted#Instagram API   Get visibility you always wanted
#Instagram API Get visibility you always wanted
 
Keynote - Devfest 2015 organized by GDG Ahmedabad
Keynote - Devfest 2015 organized by GDG AhmedabadKeynote - Devfest 2015 organized by GDG Ahmedabad
Keynote - Devfest 2015 organized by GDG Ahmedabad
 
Android notifications
Android notificationsAndroid notifications
Android notifications
 
How to make your Mobile App HIPPA Compliant
How to make your Mobile App HIPPA CompliantHow to make your Mobile App HIPPA Compliant
How to make your Mobile App HIPPA Compliant
 
3 d touch a true game changer
3 d touch a true game changer3 d touch a true game changer
3 d touch a true game changer
 
OBD Mobile App - Fault Codes, Driving Behaviour and Fuel Economy
OBD Mobile App - Fault Codes, Driving Behaviour and Fuel EconomyOBD Mobile App - Fault Codes, Driving Behaviour and Fuel Economy
OBD Mobile App - Fault Codes, Driving Behaviour and Fuel Economy
 
Vehicle to vehicle communication using gps
Vehicle to vehicle communication using gpsVehicle to vehicle communication using gps
Vehicle to vehicle communication using gps
 
Obd how to guide
Obd how to guideObd how to guide
Obd how to guide
 
Garmin api integration
Garmin api integrationGarmin api integration
Garmin api integration
 
Beacon The Google Way
Beacon The Google WayBeacon The Google Way
Beacon The Google Way
 
Edge detection iOS application
Edge detection iOS applicationEdge detection iOS application
Edge detection iOS application
 
Google calendar integration in iOS app
Google calendar integration in iOS appGoogle calendar integration in iOS app
Google calendar integration in iOS app
 
Big data cloudcomputing
Big data cloudcomputingBig data cloudcomputing
Big data cloudcomputing
 
All about Apple Watchkit
All about Apple WatchkitAll about Apple Watchkit
All about Apple Watchkit
 

Kürzlich hochgeladen

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 

Kürzlich hochgeladen (20)

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 

Android Wearable App Development - 1

  • 1. Creating Android Wearable Apps Part - I www.letsnurture.com info@letsnurture.com
  • 2. Creating Wearable Apps • Wearable apps run directly on the device, giving you access to hardware such as sensors and the GPU. • They are fundamentally the same as apps built for other devices using the Android SDK, but differ greatly in design and usability and the amount of functionality provided. www.letsnurture.com info@letsnurture.com
  • 3. Main differences between handheld and wearable apps • The system enforces a timeout period. If you are displaying an activity and user's don't interact with it, the device sleeps. When it wakes back up, the Wear home screen is displayed instead of your activity. • If you need to show something persistent, create a notification in the context stream instead. • Wearable apps are relatively small in size and functionality compared to handheld apps. • They contain only what makes sense on the wearable, which is usually a small subset of the corresponding handheld app. • In general, you should carry out operations on the handheld when possible and send the results to the wearable. www.letsnurture.com info@letsnurture.com
  • 4. • Users don't download apps directly onto the wearable. Instead, you bundle the wearable app inside the handheld app. • When users install the handheld app, the system automatically installs the wearable app. However, for development purposes, you can still install the wearable app directly to the wearable. Main differences between handheld and wearable apps www.letsnurture.com info@letsnurture.com
  • 5. • Wearable apps can access much of the standard Android APIs, but don't support the following APIs: – android.webkit – android.print – android.app.backup – android.appwidget – android.hardware.usb • You can check if a wearable supports a feature by calling hasSystemFeature() before trying to use an API. • Note: We recommend using Android Studio for Android Wear development as it provides project setup, library inclusion, and packaging conveniences that aren't available in ADT. • The rest of this training assumes you're using Android Studio. www.letsnurture.com info@letsnurture.com
  • 6. Creating and Running a Wearable App • Wearable apps run directly on the wearable device, giving you access to low-level hardware such as sensors, activities, services, and more, right on the wearable. • A companion handheld app that contains the wearable app is also required when you want to publish to the Google Play store. • Wearables don't support the Google Play store, so users download the companion handheld app, which automatically pushes the wearable app to the wearable. • The handheld app is also useful for doing heavy processing, network actions, or other work and sending the results to the wearable www.letsnurture.com info@letsnurture.com
  • 7. Set up an Android Wear Virtual Device • To set up an Android Wear virtual device: • Click Tools > Android > AVD Manager. • Click Create.... • Fill in the following details for the AVD you want to specify and leave the rest of the fields with their default values: – AVD Name - A name for your AVD – Device - Android Wear Round or Square device types – Target - Android 4.4W - API Level 20 – CPU/ABI - Android Wear ARM (armeabi-v7a) – Keyboard - Select Hardware keyboard present – Skin - AndroidWearRound or AndroidWearSquare depending on the selected device type – Snapshot - Not selected – Use Host GPU - Selected, to support custom activities for wearable notifications • Click OK. www.letsnurture.com info@letsnurture.com
  • 8. • Start the emulator: – Select the virtual device you just created. – Click Start..., then click Launch. – Wait until the emulator initializes and shows the Android Wear home screen. • Pair Your handheld with the emulator: – On your handheld, install the Android Wear app from Google Play. – Connect the handheld to your machine through USB. – Forward the AVD's communication port to the connected handheld device (you must do this every time the handheld is connected): adb -d forward tcp:5601 tcp:5601 – Start the Android Wear app on your handheld device and connect to the emulator. – Tap the menu on the top right corner of the Android Wear app and select Demo Cards. – The cards you select appear as notifications on the home screen of the emulator. www.letsnurture.com info@letsnurture.com
  • 9. Set up an Android Wear Device • To set up an Android Wear device: • Install the Android Wear app, available on Google Play, on your handheld. • Follow the app's instructions to pair your handheld with your wearable. This allows you to test out synced handheld notifications, if you're building them. • Leave the Android Wear app open on your phone. • Connect the wearable to your machine through USB, so you can install apps directly to it as you develop. A message appears on both the wearable and the Android Wear app prompting you to allow debugging. • On the Android Wear app, check Always allow from this computer and tap OK. • The Android tool window on Android Studio shows the system log from the wearable. The wearable should also be listed when you run the adb devices command. www.letsnurture.com info@letsnurture.com
  • 10. Create a Project To begin development, create an app project that contains wearable and handheld app modules. In Android Studio, click File > New Project and follow the Project Wizard instructions, as described in Creating a Project. As you follow the wizard, enter the following information: • In the Configure your Project window, enter a name for your app and a package name. • In the Form Factors window: – Select Phone and Tablet and select API 9: Android 2.3 (Gingerbread) under Minimum SDK. – Select Wear and select API 20: Android 4.4 (KitKat Wear) under Minimum SDK. • In the first Add an Activity window, add a blank activity for mobile. • In the second Add an Activity window, add a blank activity for Wear. www.letsnurture.com info@letsnurture.com
  • 11. New Project Just Created When the wizard completes, Android Studio creates a new project with two modules, mobile and wear. You now have a project for both your handheld and wearable apps that you can create activities, services, custom layouts, and much more in. On the handheld app, you do most of the heavy lifting, such as network communications, intensive processing, or tasks that require long amounts of user interaction. When these are done, you usually notify the wearable of the results through notifications or by syncing and sending data to the wearable. www.letsnurture.com info@letsnurture.com
  • 12. Install the Wearable App • When developing, you install apps directly to the wearable like with handheld apps. Use either adb install or the Play button on Android Studio. • When you're ready to publish your app to users, you embed the wearable app inside of the handheld app. When users install the handheld app from Google Play, a connected wearable automatically receives the wearable app. • Note: The automatic installation of wearable apps does not work when you are signing apps with a debug key and only works with release keys. See Packaging Wearable Apps for complete information on how to properly package wearable apps. • To install the "Hello World" app to the wearable, select wear from the Run/Debug configuration drop-down menu and click the Play button. The activity shows up on the wearable and prints out "Hello world!" www.letsnurture.com info@letsnurture.com
  • 13. Include the Correct Libraries • As part of the Project Wizard, the correct dependencies are imported for you in the appropriate module'sbuild.gradle file. • However, these dependencies are not required, so read the following descriptions to find out if you need them or not: • NotificationsThe Android v4 support library (or v13, which includes v4) contains the APIs to extend your existing notifications on handhelds to support wearables. • For notifications that appear only on the wearable (meaning, they are issued by an app that runs on the wearable), you can just use the standard framework APIs (API Level 20) on the wearable and remove the support library dependency in the mobile module of your project. www.letsnurture.com info@letsnurture.com
  • 14. Include the Correct Libraries • Wearable Data LayerTo sync and send data between wearables and handhelds with the Wearable Data Layer APIs, you need the latest version of Google Play services. If you're not using these APIs, remove the dependency from both modules. • Wearable UI support libraryThis is an unofficial library that includes UI widgets designed for wearables. We encourage you to use them in your apps, because they exemplify best practices, but they can still change at any time. • However, if the libraries are updated, your apps won't break since they are compiled into your app. To get new features from an updated library, you just need to statically link the new version and update your app accordingly. This library is only applicable if you create wearable apps. • In the next lessons, you'll learn how to create layouts designed for wearables as well as how to use the various voice actions that are supported by the platform.www.letsnurture.com info@letsnurture.com
  • 15. Creating Custom Layouts • Creating layouts for wearables is the same as handheld devices, except you have to design for the screen size and for glanceability. • Do not port functionality and the UI from a handheld app and expect a good experience. • You should create custom layouts only when necessary. Read the design guidelines for information on how to design great wearable apps. www.letsnurture.com info@letsnurture.com
  • 16. Create Custom Notifications • In general, you should create notifications on the handheld and let them automatically sync to the wearable. • This lets you build your notifications once and have them appear on many types of devices (not just wearables, but eventually Auto and TV) without having to design them for different form factors. • If the standard notification styles don't work for you (such as NotificationCompat.BigTextStyle orNotificationCompat.InboxStyl e), you can display an activity with a custom layout. • You can only create and issue custom notifications on the wearable, and the system does not sync these notifications to the handheld. • Note: When creating custom notifications on the wearable, you can use the standard notification APIs (API Level 20) instead of the Support Library. www.letsnurture.com info@letsnurture.com
  • 17. To create a custom notification: 1. Create a layout and set it as the content view for the activity that you want to display. public void onCreate(Bundle bundle){ ... setContentView(R.layout.notification_activity); } 2. Define necessary properties for the activity in the Android manifest to allow the activity to be displayed in the wearable's context stream process. You need to declare the activity to be exportable, be embeddable, and have an empty task affinity. We also recommend setting the theme to Theme.DeviceDefault.Light. For example: <activity android:name="com.example.MyDisplayActivity" android:exported="true" android:allowEmbedded="true" android:taskAffinity="" android:theme="@android:style/Theme.DeviceDefault.Light" /> www.letsnurture.com info@letsnurture.com
  • 18. 3. Create a PendingIntent for the activity that you want to display. For example: Intent notificationIntent = new Intent(this, NotificationActivity.class); PendingIntent notificationPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 4. Build a Notification and call setDisplayIntent() providing the PendingIntent. The system uses thisPendingIntent to launch the activity when users view your notification. 5. Issue the notification using the notify() method. Note: When the notification is peeking on the homescreen, the system displays it with a standard template that it generates from the notification's semantic data. This template works well on all watchfaces. When users swipe the notification up, they'll then see the custom activity for the notification. www.letsnurture.com info@letsnurture.com
  • 19. Create Layouts with the Wearable UI Library • There's an unofficial UI library that is automatically included when you create your wearable app with the Android Studio Project Wizard. • You can also add the library to your build.gradle file with the following dependency declaration: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.support:wearable:+' compile 'com.google.android.gms:play-services-wearable:+' } www.letsnurture.com info@letsnurture.com
  • 20. This library helps you build UIs that are designed for wearables. Here are some of the major classes: • BoxInsetLayout - A FrameLayout that's aware of screen shape and can box its children in the center square of a round screen. • CardFragment - A fragment that presents content within an expandable, vertically scrollable card. • CircledImageView - An image view surrounded by a circle. • ConfirmationActivity - An activity that displays confirmation animations after the user completes an action. • DismissOverlayView - A view for implementing long-press-to-dismiss. • GridViewPager - A layout manager that allows the user to both vertically and horizontally through pages of data. You supply an implementation of a GridPagerAdapter to generate the pages that the view shows. • GridPagerAdapter - An adapter that supplies pages to a GridViewPager. • FragmentGridPagerAdapter - An implementation of GridPagerAdapter that represents each page as a fragment. • WatchViewStub - A class that can inflate a specific layout, depending on the shape of the device's screen. • WearableListView - An alternative version of ListView that is optimized for ease of use on small screen wearable devices. It displays a vertically scrollable list of items, and automatically snaps to the nearest item when the user stops scrolling. www.letsnurture.com info@letsnurture.com
  • 21. Adding Voice Capabilities • Voice actions are an important part of the wearable experience. They let users carry out actions hands-free and quickly. Wear provides two types of voice actions: • System-providedThese voice actions are task-based and are built into the Wear platform. You filter for them in the activity that you want to start when the voice action is spoken. • Examples include "Take a note" or "Set an alarm".App- providedThese voice actions are app-based, and you declare them just like a launcher icon. Users say "Start " to use these voice actions and an activity that you specify starts www.letsnurture.com info@letsnurture.com
  • 22. Declare System-provided Voice Actions • The Android Wear platform provides several voice intents that are based on user actions such as "Take a note" or "Set an alarm". • This allows users to say what they want to do and let the system figure out the best activity to start. • When users speak the voice action, your app can filter for the intent that is fired to start an activity. • If you want to start a service to do something in the background, show an activity as a visual cue and start the service in the activity. • Make sure to call finish() when you want to get rid of the visual cue. www.letsnurture.com info@letsnurture.com
  • 23. For example, for the "Take a note" command, declare this intent filter to start an activity namedMyNoteActivity: <activity android:name="MyNoteActivity"> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="com.google.android.voicesearch.SE LF_NOTE" /> </intent-filter> </activity> www.letsnurture.com info@letsnurture.com
  • 24. Sample list of the voice intents supported by the Wear Platform Name Example Phrases Intent Call a car/taxi "OK Google, get me a taxi" "OK Google, call me a car" Actioncom.google.android.gms.actio ns.RESERVE_TAXI_RESERVATION Take a note "OK Google, take a note" "OK Google, note to self" Actionandroid.intent.action.SENDCat egorycom.google.android.voicesearc h.SELF_NOTEExtrasandroid.content.I ntent.EXTRA_TEXT - a string with note body www.letsnurture.com info@letsnurture.com
  • 25. Declare App-provided Voice Actions • If none of the platform voice intents work for you, you can start your apps directly with a "Start MyActivityName" voice action. • Registering for a "Start" action is the same as registering for a launcher icon on a handheld. Instead of requesting an app icon in a launcher, your app requests a voice action instead. www.letsnurture.com info@letsnurture.com
  • 26. To specify the text to say after "Start", specify a label attribute for the activtiy that you want to start. For example, this intent filter recognizes the "Start MyRunningApp" voice action and launches StartRunActivity. <application> <activity android:name="StartRunActivity" android:label="MyRunningApp"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> www.letsnurture.com info@letsnurture.com
  • 27. Obtaining Free-form Speech Input private static final int SPEECH_REQUEST_CODE = 0; // Create an intent that can start the Speech Recognizer activity private void displaySpeechRecognizer() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); // Start the activity, the intent will be populated with the speech text startActivityForResult(intent, SPEECH_REQUEST_CODE); } // This callback is invoked when the Speech Recognizer returns. // This is where you process the intent and extract the speech text from the intent. www.letsnurture.com info@letsnurture.com
  • 28. @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) { List<String> results = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); String spokenText = results.get(0); // Do something with spokenText } super.onActivityResult(requestCode, resultCode, data); } www.letsnurture.com info@letsnurture.com
  • 29. Packaging Wearable Apps Package Manually It's still possible to package the wearable app into the handheld app manually if you are using another IDE or another method of building. 1. Copy the signed wearable app to your handheld project's res/raw directory. We'll refer to the APK aswearable_app.apk. 2. Create a res/xml/wearable_app_desc.xml file that contains the version and path information of the wearable app. For example: <wearableApp package="wearable.app.package.name"> <versionCode>1</versionCode> <versionName>1.0</versionName> <rawPathResId>wearable_app</rawPathResId> </wearableApp> The package, versionCode, and versionName are the same values specified in the wearable app'sAndroidManifest.xml file. The rawPathResId is the static variable name of the APK resource. For example, for wearable_app.apk, the static variable name is wearable_app. 4. Add a meta-data tag to your handheld app's <application> tag to reference the wearable_app_desc.xmlfile. <meta-data android:name="com.google.android.wearable.beta.app" android:resource="@xml/wearable_app_desc"/> 5. Build and sign the handheld app. www.letsnurture.com info@letsnurture.com
  • 30. Setup Devices for Debugging • Enable USB debugging on the handheld: – Open the Settings app and scroll to the bottom. – If it doesn't have a Developer Options setting, tap About Phone (or About Tablet), scroll to the bottom, and tap the build number 7 times. – Go back and tap Developer Options. – Enable USB debugging. • Enable Bluetooth debugging on the wearable: – Tap the home screen twice to bring up the Wear menu. – Scroll to the bottom and tap Settings. – Scroll to the bottom. If there's no Developer Options item, tap About, and then tap the build number 7 times. – Tap the Developer Options item. – Enable Debug over Bluetooth. www.letsnurture.com info@letsnurture.com
  • 31. Set Up a Debugging Session 1. On the handheld, open the Android Wear companion app. 2. Tap the menu on the top right and select Settings. 3. Enable Debugging over Bluetooth. You should see a tiny status summary appear under the option:Host: disconnected Target: connected 4. Connect the handheld to your machine over USB and run:adb forward tcp:4444 localabstract:/adb-hub; adb connect localhost:4444Note: You can use any available port that you have access to. • In the Android Wear companion app, you should see the status change to: • Host: connected Target: connected www.letsnurture.com info@letsnurture.com
  • 32. Debug Your App • Your wearable should show up as localhost:4444 when running adb devices. To run any adb command, use this format: adb -s localhost:4444 <command> • If there are no other devices connected over TCP/IP (namely emulators), you can shorten the command to: adb -e <command> For example: adb -e logcat adb -e shell adb -e bugreport www.letsnurture.com info@letsnurture.com
  • 33. Let’s Make it Happen Now www.letsnurture.com info@letsnurture.com