This document summarizes a presentation about developing for Android Wear. It discusses wear-generated notifications, which are notifications created directly on the wearable device using context such as time and location. Notifications can include basic content, content actions that allow taking an action from the notification, and custom display intents. The presentation also covers building wearable apps using components designed for small screens like the WearableListView and CardFragment. It provides examples of how to implement dismissal overlays, confirmation activities, and components that adapt to different screen shapes.
Ch10 - Programming for Touchscreens and Mobile Devicesdcomfort6819
This document discusses programming for touchscreens and mobile devices in JavaScript. It covers using touch and pointer events to handle user input, and accessing device hardware like geolocation, battery status, orientation sensors, and cameras through JavaScript APIs. The document provides examples of getting a user's location, creating maps centered on that location, and handling different types of user input across devices. It also discusses tools for testing mobile web apps and techniques for optimizing apps by minimizing file sizes and loading scripts responsively.
Fragments represent reusable portions of user interface in an activity. An activity can host multiple fragments that the user can navigate between. Fragment transactions allow adding, replacing, and removing fragments within an activity. Fragments can communicate with each other using interfaces to pass data between fragments hosted by the same activity.
[/SUMMARY]
The document provides an overview of Android Wear development including basic setup, notifications, layouts, the data layer, and a comparison to WatchKit. It discusses debugging over Bluetooth, using emulators, packaging structures, basic and expanded notifications, backgrounds, remote control, actions, and common layouts. Code examples and resources are provided for key topics like notifications, data transfer, and common UI structures in Android Wear.
The document discusses the importance of keyboard accessibility in applications. It notes that while mice allow easy learning, keyboard navigation is more efficient. When building applications inside browsers, mouse-only interfaces are common but this limits accessibility. The document provides tips on using consistent keyboard shortcuts, avoiding browser shortcut conflicts, and making shortcuts visible to users. It emphasizes the importance of ensuring all application components can be used without a mouse through thorough testing of keyboard navigation.
This document discusses how to add notifications, broadcast receivers, services, and sync adapters to Android apps. It covers creating basic notifications using NotificationCompat.Builder, showing notifications using the NotificationManager, and adding actions and expanded layouts to notifications. It also explains how to create broadcast receivers by extending BroadcastReceiver and registering receivers statically in the manifest or dynamically in code.
The document provides an overview and agenda for an Android development tutorial being given in Tokyo, Japan in October 2009. It introduces key Android concepts like Activities, Views, Intents, Services, and Notifications. It also outlines the development environment and tools needed, including Ubuntu, Eclipse, and the Android SDK. The document guides attendees through creating their first basic Android map application, including designing the UI, adding elements to the layout, and running the application.
This document describes a "fad-free architecture" approach for developing mobile apps. It advocates separating user interface code from non-UI code and relying primarily on first-party Apple frameworks rather than third-party libraries. The key aspects are a DataController class that coordinates other controllers like NetworkController and PersistenceController, and view controllers that receive the DataController through dependency injection to access non-UI functionality. This architecture aims to produce stable, maintainable apps by avoiding transient technical trends in favor of tried-and-tested techniques.
La Unión Europea ha acordado un paquete de sanciones contra Rusia por su invasión de Ucrania. Las sanciones incluyen restricciones a los bancos rusos, la prohibición de exportaciones de alta tecnología a Rusia y la congelación de activos de oligarcas rusos. Los líderes de la UE esperan que estas medidas disuadan a Rusia de continuar su agresión militar contra Ucrania.
Ch10 - Programming for Touchscreens and Mobile Devicesdcomfort6819
This document discusses programming for touchscreens and mobile devices in JavaScript. It covers using touch and pointer events to handle user input, and accessing device hardware like geolocation, battery status, orientation sensors, and cameras through JavaScript APIs. The document provides examples of getting a user's location, creating maps centered on that location, and handling different types of user input across devices. It also discusses tools for testing mobile web apps and techniques for optimizing apps by minimizing file sizes and loading scripts responsively.
Fragments represent reusable portions of user interface in an activity. An activity can host multiple fragments that the user can navigate between. Fragment transactions allow adding, replacing, and removing fragments within an activity. Fragments can communicate with each other using interfaces to pass data between fragments hosted by the same activity.
[/SUMMARY]
The document provides an overview of Android Wear development including basic setup, notifications, layouts, the data layer, and a comparison to WatchKit. It discusses debugging over Bluetooth, using emulators, packaging structures, basic and expanded notifications, backgrounds, remote control, actions, and common layouts. Code examples and resources are provided for key topics like notifications, data transfer, and common UI structures in Android Wear.
The document discusses the importance of keyboard accessibility in applications. It notes that while mice allow easy learning, keyboard navigation is more efficient. When building applications inside browsers, mouse-only interfaces are common but this limits accessibility. The document provides tips on using consistent keyboard shortcuts, avoiding browser shortcut conflicts, and making shortcuts visible to users. It emphasizes the importance of ensuring all application components can be used without a mouse through thorough testing of keyboard navigation.
This document discusses how to add notifications, broadcast receivers, services, and sync adapters to Android apps. It covers creating basic notifications using NotificationCompat.Builder, showing notifications using the NotificationManager, and adding actions and expanded layouts to notifications. It also explains how to create broadcast receivers by extending BroadcastReceiver and registering receivers statically in the manifest or dynamically in code.
The document provides an overview and agenda for an Android development tutorial being given in Tokyo, Japan in October 2009. It introduces key Android concepts like Activities, Views, Intents, Services, and Notifications. It also outlines the development environment and tools needed, including Ubuntu, Eclipse, and the Android SDK. The document guides attendees through creating their first basic Android map application, including designing the UI, adding elements to the layout, and running the application.
This document describes a "fad-free architecture" approach for developing mobile apps. It advocates separating user interface code from non-UI code and relying primarily on first-party Apple frameworks rather than third-party libraries. The key aspects are a DataController class that coordinates other controllers like NetworkController and PersistenceController, and view controllers that receive the DataController through dependency injection to access non-UI functionality. This architecture aims to produce stable, maintainable apps by avoiding transient technical trends in favor of tried-and-tested techniques.
La Unión Europea ha acordado un paquete de sanciones contra Rusia por su invasión de Ucrania. Las sanciones incluyen restricciones a los bancos rusos, la prohibición de exportaciones de alta tecnología a Rusia y la congelación de activos de oligarcas rusos. Los líderes de la UE esperan que estas medidas disuadan a Rusia de continuar su agresión militar contra Ucrania.
This document discusses ways to improve the interface builder experience in iOS development. It introduces IBInspectable, which allows additional view properties to be configurable in interface builder's attributes inspector. It also introduces IBDesignable, which allows changes made to IBInspectable properties to be visible in interface builder in real time rather than requiring running the app. The document provides examples of how to implement these features to consolidate view configuration and get live previews of custom property changes in interface builder.
El documento presenta una introducción al pensamiento sistémico para la ingeniería de sistemas. Brevemente describe que fue realizado por Tomas Agreda para la República Bolivariana de Venezuela en junio de 2016 como parte de sus estudios de pregrado en la especialidad de ingeniería de sistemas en el Instituto Universitario Politécnico Santiago Mariño.
1) This report summarizes the activities, objectives, and financial accounting of a grant awarded to Boise State University to implement a campus-wide financial awareness campaign called the Buckless Broncos Campaign.
2) Over the course of the fall semester, three student interns developed and implemented various activities to educate students about spending, borrowing, and financial goal setting which engaged over 394 students total.
3) An assessment found that the campaign was successful in increasing student awareness of personal finance and resources, and in establishing sustainable peer-led financial literacy initiatives led by the student interns.
El documento discute la segregación escolar y la discriminación entre estudiantes. Señala que la discriminación puede ser física o psicológica y que los estudiantes más vulnerables son aquellos con discapacidades, bajos recursos económicos u obesidad. Aunque los maestros a menudo no se dan cuenta de la discriminación, puede prevenirse mejorando las relaciones entre estudiantes y fomentando la inclusión. La discriminación tiene efectos negativos en el rendimiento y bienestar de los estudiantes.
This document discusses bridged notifications in Android Wear. It explains that bridged notifications display existing phone and tablet notifications on Android Wear devices. The notifications are formatted differently for the wearable. Additional extensions allow wearable-specific features to be added. The document provides code examples for creating basic notifications and more advanced notifications with features like large icons, text styles, buttons, and multiple pages. It also demonstrates how to group stacked notifications that can be displayed on both the wearable and paired phone.
Mehdi Varse presented on high performance databases. The presentation outlined performance metrics to monitor in enterprise applications including business transactions, query performance, user and query conflicts, capacity, configuration, and NoSQL databases. It also discussed database tuning, in-memory databases, parallel and distributed database systems, and high-performance database requirements. Examples of databases used at Facebook like MySQL, Memcached, Haystack, and Cassandra were reviewed.
О́стрый тонзилли́т (от лат. tonsillae — миндалины); в повседневной жизни анги́на (от лат. ango — «сжимаю, сдавливаю, душу») — инфекционное заболевание с местными проявлениями в виде острого воспаления компонентов лимфатического глоточного кольца, чаще всего нёбных миндалин, вызываемое стрептококками или стафилококками, реже другими микроорганизмами.
Диагностика товарного рынка Украины: макроэкономические показатели и тенденци...KNEU
Целью настоящего исследования является разработка методологии изучения глобализации бизнеса в целом, а также отдельных ее аспектов, связанных с информационно-коммуникативными проблемами отечественного бизнеса, на фоне усиления кризисных явлений в экономике страны. Формирование системы антикризисных мер, в качестве катализатора развития товарного рынка в условиях глобализации отечественного бизнеса.
Предметом исследования выступают методические и прикладные вопросы диагностики товарного рынка и анализа значимых макроэкономических показателей по масштабу влияния кризисных явлений на экономику Украины.
Объектом исследования является процесс уточнения стратегического направления маркетинговой деятельности субъектов хозяйствования работающих на отечественном и мировых товарных рынках, с учетом особенностей повышенного риска // О.В. Данніков "Діагностика товарного ринку України:
макроекономічні показники і тенденції розвитку" // O.V. Dannikov / "Diagnostics product market Ukraine:macroeconomic indicators and trends" /
Abstract. The aim of this study is to develop a methodology for studying the globalization of business as a whole, and its individual aspects related to information and communication problems of the domestic business amid increasing crisis in the economy. Formation of system of anti-crisis measures, as a catalyst for the commodity market development in the context of globalization of the domestic business.
The subject of the research are methodological and applied questions of the commodity market diagnosis and analysis of major macroeconomic indicators of the scale of the impact of the crisis on the Ukrainian economy.
The object of research is the process of clarifying the strategic direction of marketing activity of business entities operating in the domestic and world commodity markets, allowing for the increased risk.
At the beginning of 2016 can already state that is critical braking Ukraine's economic development and worsening of macroeconomic indicators. In mos
Path testing is a structural testing method that focuses on executing all paths through the code or algorithm based on its structure rather than specifications. It involves converting the program into a control flow graph by representing the code as nodes, regions, and edges to show the flow of execution. This allows testers to ensure all statements are executed by following each path in the graph from start to finish.
A complete Lab Manual with Aim, Procedure, Source Code, ... All the Experiments of Mobile Application Development Lab are developed using Android Studio.
The document describes creating an Android Wear app to control a Now TV box from a Moto 360 smartwatch. It provides context that the app was created for a Now TV hackday and must be simple, interesting, useful and developed within 4 hours. It then outlines the architecture and code for building a basic Wear app that communicates with a mobile app using messages. The mobile app acts as a listener and uses the messages to send commands to control the Now TV box remotely.
This document provides an overview of the window management architecture in Firefox OS. It discusses the AppWindow class and its subclasses like ActivityWindow and HomescreenWindow. It covers modules like AppWindowManager, ActivityWindowManager, and LayoutManager that manage window instances. It outlines principles like wrapping APIs and focusing on single responsibilities. It includes diagrams of window lifecycles and event flows. It proposes future work like improving transitions, removing origin references, and implementing LockScreenWindow and ScreenSaverWindow. The document gives a detailed but technical summary of the Firefox OS window management system.
Google I/O 2019 - what's new in Android Q and JetpackSunita Singh
Google IO 2019 highlighted several new Android features including Bubbles for easy multi-tasking, dark theme support, sharing improvements, and gesture navigation. It also provided updates on Jetpack components like CameraX, Navigation, Compose, ViewPager 2, ViewBindings and WorkManager to improve development. Machine learning was expanded through updates to MLKit and new features for on-device translation and object detection.
The document provides an introduction and overview of developing applications for Android Wear. It discusses various topics like notifications, standalone apps, voice commands, and interactions between handheld and wearable apps. Code snippets are provided to demonstrate how to create notifications, add custom actions, handle voice inputs, create paged and stacked notifications, and add voice commands to apps. Links are included to documentation and examples to help developers get started with the Android Wear SDK.
The document provides an introduction and overview of developing applications for Android Wear. It discusses various aspects of creating notifications, standalone apps, and utilizing voice commands on wearables. Key points covered include adding dependencies, creating basic notifications, customizing notifications for wearables, handling voice inputs, using activities as custom notifications, and adding support for built-in and custom voice commands. Code samples are provided throughout to demonstrate implementation. The document aims to help developers get started with the Android Wear SDK and understand best practices.
This document provides an overview and introduction to developing applications for Google Glass. It discusses the key components of Glass including live cards, static cards and immersion. It then covers the software stack and looks at building a basic "Hello World" application using the Glass Development Kit (GDK). The document also discusses design patterns for Glassware including ongoing tasks, services and the Mirror API. It provides examples of using sensors, location services and other Glass features in applications. Finally, it discusses design principles for Glass and explores some example Glass apps.
Getting started with android dev and test perspectiveGunjan Kumar
The presentation covers basic intro to Android, how to get started with development, including instructions on setup, common UI usages like menus, dialogs; details on services like Sensors, Location and Google Maps
It also covers ideas on how to test including details on shell and installation instructions without using Eclipse
Break Timer: Android-wear introduction and application case-studyUmair Vatao
Break Timer: An android-wear application that sits silently on your wrist and remind you to take a break if you keep typing for long duration (Facebook counts!). Help you avoid RSI problem.
Developing AIR for Mobile with Flash Professional CS5.5Chris Griffith
This document provides guidance on developing mobile applications using Adobe AIR for mobile platforms. It discusses key considerations for touch interfaces like larger touch targets. It also covers platform-specific development setup and tools for Android and iOS. The document reviews AIR capabilities for mobile like gestures, location services and hardware integration. It provides optimization tips for performance like bitmap caching and GPU acceleration.
Build your own remote control. Droidcon greece 2016Jesus Gumiel
Build your own remote control. This talk explains how to turn your smartwatch into a remote control to can handle pretty much everything connected to the Internet.
It includes an easy example of a wearable app and its integration with the phone
This document discusses ways to improve the interface builder experience in iOS development. It introduces IBInspectable, which allows additional view properties to be configurable in interface builder's attributes inspector. It also introduces IBDesignable, which allows changes made to IBInspectable properties to be visible in interface builder in real time rather than requiring running the app. The document provides examples of how to implement these features to consolidate view configuration and get live previews of custom property changes in interface builder.
El documento presenta una introducción al pensamiento sistémico para la ingeniería de sistemas. Brevemente describe que fue realizado por Tomas Agreda para la República Bolivariana de Venezuela en junio de 2016 como parte de sus estudios de pregrado en la especialidad de ingeniería de sistemas en el Instituto Universitario Politécnico Santiago Mariño.
1) This report summarizes the activities, objectives, and financial accounting of a grant awarded to Boise State University to implement a campus-wide financial awareness campaign called the Buckless Broncos Campaign.
2) Over the course of the fall semester, three student interns developed and implemented various activities to educate students about spending, borrowing, and financial goal setting which engaged over 394 students total.
3) An assessment found that the campaign was successful in increasing student awareness of personal finance and resources, and in establishing sustainable peer-led financial literacy initiatives led by the student interns.
El documento discute la segregación escolar y la discriminación entre estudiantes. Señala que la discriminación puede ser física o psicológica y que los estudiantes más vulnerables son aquellos con discapacidades, bajos recursos económicos u obesidad. Aunque los maestros a menudo no se dan cuenta de la discriminación, puede prevenirse mejorando las relaciones entre estudiantes y fomentando la inclusión. La discriminación tiene efectos negativos en el rendimiento y bienestar de los estudiantes.
This document discusses bridged notifications in Android Wear. It explains that bridged notifications display existing phone and tablet notifications on Android Wear devices. The notifications are formatted differently for the wearable. Additional extensions allow wearable-specific features to be added. The document provides code examples for creating basic notifications and more advanced notifications with features like large icons, text styles, buttons, and multiple pages. It also demonstrates how to group stacked notifications that can be displayed on both the wearable and paired phone.
Mehdi Varse presented on high performance databases. The presentation outlined performance metrics to monitor in enterprise applications including business transactions, query performance, user and query conflicts, capacity, configuration, and NoSQL databases. It also discussed database tuning, in-memory databases, parallel and distributed database systems, and high-performance database requirements. Examples of databases used at Facebook like MySQL, Memcached, Haystack, and Cassandra were reviewed.
О́стрый тонзилли́т (от лат. tonsillae — миндалины); в повседневной жизни анги́на (от лат. ango — «сжимаю, сдавливаю, душу») — инфекционное заболевание с местными проявлениями в виде острого воспаления компонентов лимфатического глоточного кольца, чаще всего нёбных миндалин, вызываемое стрептококками или стафилококками, реже другими микроорганизмами.
Диагностика товарного рынка Украины: макроэкономические показатели и тенденци...KNEU
Целью настоящего исследования является разработка методологии изучения глобализации бизнеса в целом, а также отдельных ее аспектов, связанных с информационно-коммуникативными проблемами отечественного бизнеса, на фоне усиления кризисных явлений в экономике страны. Формирование системы антикризисных мер, в качестве катализатора развития товарного рынка в условиях глобализации отечественного бизнеса.
Предметом исследования выступают методические и прикладные вопросы диагностики товарного рынка и анализа значимых макроэкономических показателей по масштабу влияния кризисных явлений на экономику Украины.
Объектом исследования является процесс уточнения стратегического направления маркетинговой деятельности субъектов хозяйствования работающих на отечественном и мировых товарных рынках, с учетом особенностей повышенного риска // О.В. Данніков "Діагностика товарного ринку України:
макроекономічні показники і тенденції розвитку" // O.V. Dannikov / "Diagnostics product market Ukraine:macroeconomic indicators and trends" /
Abstract. The aim of this study is to develop a methodology for studying the globalization of business as a whole, and its individual aspects related to information and communication problems of the domestic business amid increasing crisis in the economy. Formation of system of anti-crisis measures, as a catalyst for the commodity market development in the context of globalization of the domestic business.
The subject of the research are methodological and applied questions of the commodity market diagnosis and analysis of major macroeconomic indicators of the scale of the impact of the crisis on the Ukrainian economy.
The object of research is the process of clarifying the strategic direction of marketing activity of business entities operating in the domestic and world commodity markets, allowing for the increased risk.
At the beginning of 2016 can already state that is critical braking Ukraine's economic development and worsening of macroeconomic indicators. In mos
Path testing is a structural testing method that focuses on executing all paths through the code or algorithm based on its structure rather than specifications. It involves converting the program into a control flow graph by representing the code as nodes, regions, and edges to show the flow of execution. This allows testers to ensure all statements are executed by following each path in the graph from start to finish.
A complete Lab Manual with Aim, Procedure, Source Code, ... All the Experiments of Mobile Application Development Lab are developed using Android Studio.
The document describes creating an Android Wear app to control a Now TV box from a Moto 360 smartwatch. It provides context that the app was created for a Now TV hackday and must be simple, interesting, useful and developed within 4 hours. It then outlines the architecture and code for building a basic Wear app that communicates with a mobile app using messages. The mobile app acts as a listener and uses the messages to send commands to control the Now TV box remotely.
This document provides an overview of the window management architecture in Firefox OS. It discusses the AppWindow class and its subclasses like ActivityWindow and HomescreenWindow. It covers modules like AppWindowManager, ActivityWindowManager, and LayoutManager that manage window instances. It outlines principles like wrapping APIs and focusing on single responsibilities. It includes diagrams of window lifecycles and event flows. It proposes future work like improving transitions, removing origin references, and implementing LockScreenWindow and ScreenSaverWindow. The document gives a detailed but technical summary of the Firefox OS window management system.
Google I/O 2019 - what's new in Android Q and JetpackSunita Singh
Google IO 2019 highlighted several new Android features including Bubbles for easy multi-tasking, dark theme support, sharing improvements, and gesture navigation. It also provided updates on Jetpack components like CameraX, Navigation, Compose, ViewPager 2, ViewBindings and WorkManager to improve development. Machine learning was expanded through updates to MLKit and new features for on-device translation and object detection.
The document provides an introduction and overview of developing applications for Android Wear. It discusses various topics like notifications, standalone apps, voice commands, and interactions between handheld and wearable apps. Code snippets are provided to demonstrate how to create notifications, add custom actions, handle voice inputs, create paged and stacked notifications, and add voice commands to apps. Links are included to documentation and examples to help developers get started with the Android Wear SDK.
The document provides an introduction and overview of developing applications for Android Wear. It discusses various aspects of creating notifications, standalone apps, and utilizing voice commands on wearables. Key points covered include adding dependencies, creating basic notifications, customizing notifications for wearables, handling voice inputs, using activities as custom notifications, and adding support for built-in and custom voice commands. Code samples are provided throughout to demonstrate implementation. The document aims to help developers get started with the Android Wear SDK and understand best practices.
This document provides an overview and introduction to developing applications for Google Glass. It discusses the key components of Glass including live cards, static cards and immersion. It then covers the software stack and looks at building a basic "Hello World" application using the Glass Development Kit (GDK). The document also discusses design patterns for Glassware including ongoing tasks, services and the Mirror API. It provides examples of using sensors, location services and other Glass features in applications. Finally, it discusses design principles for Glass and explores some example Glass apps.
Getting started with android dev and test perspectiveGunjan Kumar
The presentation covers basic intro to Android, how to get started with development, including instructions on setup, common UI usages like menus, dialogs; details on services like Sensors, Location and Google Maps
It also covers ideas on how to test including details on shell and installation instructions without using Eclipse
Break Timer: Android-wear introduction and application case-studyUmair Vatao
Break Timer: An android-wear application that sits silently on your wrist and remind you to take a break if you keep typing for long duration (Facebook counts!). Help you avoid RSI problem.
Developing AIR for Mobile with Flash Professional CS5.5Chris Griffith
This document provides guidance on developing mobile applications using Adobe AIR for mobile platforms. It discusses key considerations for touch interfaces like larger touch targets. It also covers platform-specific development setup and tools for Android and iOS. The document reviews AIR capabilities for mobile like gestures, location services and hardware integration. It provides optimization tips for performance like bitmap caching and GPU acceleration.
Build your own remote control. Droidcon greece 2016Jesus Gumiel
Build your own remote control. This talk explains how to turn your smartwatch into a remote control to can handle pretty much everything connected to the Internet.
It includes an easy example of a wearable app and its integration with the phone
Android is a mobile operating system based on Linux. It has gone through several versions with new features added over time. The core building blocks of Android are activities, views, intents, services, content providers, fragments, and the AndroidManifest.xml file. This document provides tutorials on how to set up Android in Eclipse, make simple Android apps, and describes some of Android's main UI widgets.
Mobile Application Development with JUCE and Native API’sAdam Wilson
This document discusses mixing JUCE components with native iOS and Android UI elements for mobile app development. It explains that JUCE was designed for desktop apps, not touchscreens, and lists some limitations. The solution presented is to use native platform APIs for scrollable lists, navigation, input, and databases, while using JUCE for audio processing, custom graphics, and specialized GUI elements. Advantages include familiar UIs, smooth scrolling, gesture support, and animation support from native APIs. Disadvantages include extra design and coding work. It then provides details on how to mix JUCE with native UI elements for Android and iOS, including modifying activities, passing data between languages, and integrating JUCE views into native view hierarchies.
The document discusses Android application development. It provides an overview of the Android platform, including that it is an open source software stack for mobile devices powered by Linux. It describes the installation of development tools like Eclipse and the Android SDK. It then covers the basic building blocks for Android apps like activities, services, intents, and content providers.
The document provides information about a mobile application development course including the course teacher, outcomes, units covered, textbooks, and key components of an Android application. The course is taught by Mr. Kiran Khandarkar and covers topics like control flow, directory structure, UI design using layouts, and publishing apps. It also describes the logical components, development flow, project structure, and fundamental elements of an Android screen including activities, views, view groups, and common layouts.
This document discusses how to build GUIs using PyQt by drawing the problem, choosing appropriate widgets, building a simple form using PyQt's class hierarchy and signals/slots, adding CSS for aesthetics, and distributing the application by packaging it into an .exe file. It covers understanding PyQt's classes for UI elements and behaviors, connecting widgets to functions via signals and slots, using QtDesigner for a WYSIWYG editor, and libraries for freezing Python into executables.
Similar to Developing For Android Wear - Part 2 (20)
1. Developing for Android
Wear: Part 2 (Wear-
Generated Notifications
and Wearable Apps)
Justin Munger
GDG Chicago
August 12, 2014
2. What, No Data Layer API? :-O
● Ended up being too large of a topic to fit in
scope of this talk
● Happy to cover it in a future meeting if there
is sufficient interest
● Added in section on Wear-Generated
Notifications to make up for missing Data
Layer API content
● Quick demo of Data Layer API at end of talk
3. What is Android Wear?
● Wearable computer in a watch form factor
● Runs Android OS 4.4W (API Level 20)
● Pairs to phone/tablet through Bluetooth
● Uses Android Wear app and Google Play
Services to sync between phone/tablet and
Wear device
● Current devices available (as of July 2014)
are LG G Watch and Samsung Gear Live
4. Why Android Wear?
● Removes the distractions caused by the
immersive nature of mobile devices
● Delivers only the essential information
needed in a timely manner
● Allows partial interaction with phones/tablets
to perform certain necessary actions
6. Suggest - The Context Stream
● Vertical list of cards
● Cards display contextually-relevant (time-
and/or location-based) information
● One card displayed at a time
● Optional background photos give additional
context
● Cards pushed to user by Android Wear
device and/or paired phone/tablet
7. Demand - The Cue Card
● Allows user to interact with Wear device
through voice or tapping suggested options
● Contains pre-defined voice commands that
applications can hook into
● Also allows for custom voice commands to
start functionality
● Similar to how a person interacts with
Google Glass and even phones/tablets
8. What Does This Presentation Cover?
● Wear-generated notifications
● Android Wear apps
10. Wear-Generated Notifications
● Generated on the Android Wear device
● Used for contextual notifications
● Can use current user context
(time/location/sensor input) to trigger
notifications to user
● Allows for more complex notification
interaction (such as taking action directly on
a card)
11. How to Get Notifications on Wear
● Create notifications the same way that you
would for phones and tablets
● Use Notification and NotificationManager to
create and post notifications
● Doesn’t require Compat classes if
notification is only displayed on Wear device
● Wear-specific functionality is added using
Notification.WearableExtender()
12. Creating a Notification on Wear
● Get an instance of NotificationManager
● Create a Notification using the Notification.
Builder methods
● Add Wear-specific functionality using
NotificationManager.WearableExtender
● Call notify() on NotificationManager, passing
in unique notification ID and Notification
object
13. Basic Notification
● Contains the basic elements that typical
notifications have:
○ Small icon
○ Content title
○ Context text
● Title and text are left aligned on the card
14. Content Action Notification
● Allows action to be taken directly from the
notification
● Specify a PendingIntent that contains the
Activity to launch when tapping notification
● Add it to a Notification using addAction() in
Notification.WearableExtender()
● Indicate tappable notification action by
setting setContentAction() with Action index
15. Display Intent Notification
● Custom UI for a notification
● Use an Activity to host the notification layout
● Activity must be defined in AndroidManifest.
xml with specific settings
● Use the WearableExtender to add the
custom UI using setDisplayIntent() method
● Activity is displayed when notification is
moved out of peek state
16. Custom Size Notification
● Create notifications of five different sizes
from extra-small to full-screen
● Uses an Activity to host the notification
layout
● Use the WearableExtender to add the
custom UI using setDisplayIntent() method
● Set custom size using .
setCustomSizePreset()
18. It’s Android But It’s Not Android
● Android Wear devices has access to most of
the APIs that regular Android devices have
● However, some functionality is not optimized
for Wear devices, mainly UI widgets
● Other functionality is not available on Wear
devices, such as direct network access
19. What Kind of UI Do We Use Then?
● Unofficial Google library for Android Wear UI
● UI made for small form-factor and to support
square/round displays
● Add the following dependency in the project’
s build.gradle file:
dependencies {
compile 'com.google.android.support:wearable:+'
}
22. WearableListView
● Wear-specific ListView implementation
● Allows for vertical scrolling of items
● Items lock into place to facilitate easier
scrolling on a small screen
● Subclasses RecyclerView
● Uses Material Design concepts to display
content
23. WearableListView.Adapter
● Responsible for creating and delivering
content to WearableListView
● Subclasses RecyclerView.Adapter
● Override onCreateViewHolder() to deliver
inflated layout
● Override onBindViewHolder() to populate
inflated layout with content
24. GridViewPager
● Allows 2D scrolling of content
● Displays content in rows and columns
● GridViewPager is non-symmetric
● Each row can have different column count
● Scrolling up and down between rows moves
back to the first column of the row
● Background images have fade transitions
and parallax effects when scrolling
25. GridViewAdapter
● Supplies GridViewPager with custom View
● Overrides:
○ getRowCount() - number of rows
○ getColumnCount() - number of columns
○ instantiateItem() - create custom View and add to
ViewGroup
○ destroyItem() - destroy View
○ getBackground() - supply background image using
ImageReference
26. FragmentGridViewAdapter
● Supplies GridViewPager with Fragment-
based UI to display
● Can use with CardFragment
● Overrides:
○ getRowCount() - number of rows
○ getColumnCount() - number of columns
○ getFragment() - create Fragment-based UI and add
to ViewGroup
○ getBackground() - supply background image using
27. CardFragment
● Fragment-based UI that renders a card
● Instantiated with static method, specifying
title, text, and icon
● Can specify custom layout by subclassing
and overriding onCreateContentView()
29. DismissOverlayView
● Gives an dismissal option for a full-screen
Wear app when a right swipe can’t be used
● Long-pressing the UI brings up an X in a red
circle
● Tapping the X dismisses the activity
30. Setting up DismissOverlayView
● Create a style that sets android:
windowSwipeToDismiss=false
● Set theme of the hosting Activity to the style
● Add DismissOverlayView as the last view in
top-level view hierarchy
● Get reference to DismissOverlayView in
Activity
31. Setting up DismissOverlayView
● Create GestureDetector and create new
SimpleOnGestureListener, overriding
onLongPress()
● Show DismissOverlayView in onLongPress()
● Override onTouchEvent of Activity and pass
event to GestureDetector
● WHEW! That’s a lot of work! :-O There must
be an easier way
32. ConfirmationActivity
● Display an animation to confirm an action
● Show Success, Open On, and Failure
animations
● Can customize text underneath animations
● Launched from an activity rather than
subclassed
33. Setting Up ConfirmationActivity
● Add the activity to the application manifest
● Create an intent, explicitly specifying
ConfirmationActivity
● Add intent extras for the animation type and
animation text
● Start the intent
35. WatchViewStub
● Use one activity layout to specify distinct
rectangular and round layouts
● Widget will determine the proper layout to
load based on the form factor
● Retrieve references to UI elements by
implementing WatchViewStub.
OnLayoutInflatedListener() and overriding
onLayoutInflated()
36. BoxInsetLayout
● Automatically determines form factor and
adjusts UI accordingly
● Specified in XML layout as root element
● No additional code required to use aside
from XML layout element
37. InsetActivity
● Combines BoxInsetLayout and
DismissOverlayView into one component
● No extra XML layout elements required
● Move normal layout inflation and UI
initialization from onCreate() to
onReadyForContent()
● Sometimes works, sometimes doesn’t