DROIDS ON FIRE. Adrián

Size: px
Start display at page:

Download "DROIDS ON FIRE. Adrián"

Transcription

1 DROIDS ON FIRE Adrián

2 ige2vk

3

4

5

6

7

8 Developer experience matters

9 Cross-platform

10 Integrated

11 Getting Started with Firebase

12

13

14

15

16

17

18

19

20

21 /ykro/wikitaco

22 public void oncreate() { super.oncreate(); firebaseauth = FirebaseAuth.getInstance(); FirebaseDatabase db = FirebaseDatabase.getInstance(); FirebaseStorage storage = FirebaseStorage.getInstance(); firebaseanalytics = FirebaseAnalytics.getInstance(this); //db & storage references firebasedatabsereference = db.getreference(); firebasestoragereference = storage.getreference(); //notifications FirebaseMessaging.getInstance().subscribeToTopic(NEW_TACOS_TOPIC);... }

23 public void oncreate() {... //remote config firebaseremoteconfig = FirebaseRemoteConfig.getInstance(); //enable developer mode for frequent refreshes FirebaseRemoteConfigSettings configsettings = new FirebaseRemoteConfigSettings.Builder().setDeveloperModeEnabled(BuildConfig.DEBUG).build(); firebaseremoteconfig.setconfigsettings(configsettings); firebaseremoteconfig.setdefaults(r.xml.remote_config_defaults); }

24 STEP 1 LET S START WITH SOME AUTH

25 Authentication & account management Supports: & password Google, Facebook, Twitter, and GitHub sign-in Existing auth systems Out-of-the box UI

26

27

28

29

30 ENTER FIREBASE UI

31

32 LoginActivity.java private FirebaseAuth auth; private void dologin() { FirebaseUser currentuser = auth.getcurrentuser(); if (currentuser!= null) { Intent i = new Intent(this, MainActivity.class); i.addflags(intent.flag_activity_clear_top Intent.FLAG_ACTIVITY_NEW_TASK Intent.FLAG_ACTIVITY_CLEAR_TASK); startactivity(i); } else {... }

33 LoginActivity.java private void dologin() {... if (currentuser!= null) {... } else { startactivityforresult( AuthUI.getInstance().createSignInIntentBuilder().setProviders(Arrays.asList( new AuthUI.IdpConfig.Builder(AuthUI. _PROVIDER).build(), new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(), new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build(), new AuthUI.IdpConfig.Builder(AuthUI.TWITTER_PROVIDER).build())).setIsSmartLockEnabled(false).build(), RC_SIGN_IN); } }

34 public void onactivityresult(int requestcode, int resultcode, Intent data) { super.onactivityresult(requestcode, resultcode, data); if (requestcode == RC_SIGN_IN) { if (resultcode == ResultCodes.OK) { dologin(); } } }

35 WITHOUT FIREBASE UI

36

37 protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_login); auth = ((Aplicacion)getApplicationContext()).getAuth(); authlistener = new FirebaseAuth.AuthStateListener() public void onauthstatechanged(@nonnull FirebaseAuth firebaseauth) { hideprogress(); dologin(); } };... dologin(); }

38 public void onstart() { super.onstart(); auth.addauthstatelistener(authlistener); public void onstop() { super.onstop(); if (authlistener!= null) { auth.removeauthstatelistener(authlistener); } }

39 LoginActivity.java public void signin(view v){ String = input .gettext().tostring(); String password = inputpassword.gettext().tostring(); showprogress(); auth.signinwith andpassword( , password).addoncompletelistener(this, new OnCompleteListener<AuthResult>() public void oncomplete(@nonnull Task<AuthResult> task) { if (!task.issuccessful()) { hideprogress(); showsnackbar(task.getexception().getlocalizedmessage()); } } }); }

40 STEP 2 TACOSDB.SAVE( )

41 Cloud-hosted NoSQL database Synchronization & conflict resolution Access directly from your app

42

43

44

45 // Root // { // "message" : "Hello, World!", // "words" : { // "-KKGDzmrcC8o5EunCptc" : "test!", // "-KKGEIIqvk-R0yitCXIc" : "another item" } }

46

47

48 Taco.java public class Taco { private String name; private String description; private boolean isfavorite; /* getters & setters */ }

49 TacoRecyclerAdapter.java public class TacoRecyclerAdapter extends FirebaseRecyclerAdapter<Taco,TacoRecyclerAdapter.TacoViewHolder> { private Context context; private final static int layoutid = R.layout.item_taco; public TacoRecyclerAdapter(Context context, DatabaseReference databasereference) { super(taco.class, layoutid, TacoViewHolder.class, databasereference); this.context = context; }... }

50 protected void populateviewholder(tacoviewholder viewholder, Taco model, int position) { viewholder.tvtaconame.settext(model.getname());... }

51 WITHOUT FIREBASE UI

52 TacoRecyclerAdapter.java private ArrayList<String> keys; private ArrayList<DataSnapshot> items; protected DatabaseReference databasereference; public TacoRecyclerAdapter(Context context, DatabaseReference ref) {... ref.addchildeventlistener(this); } public void destroy() { booksreference.removeeventlistener(this); }

53 TacoRecyclerAdapter.java private ArrayList<String> keys; private ArrayList<DataSnapshot> items; protected DatabaseReference databasereference; public TacoRecyclerAdapter(Context context, DatabaseReference ref) {... ref.addchildeventlistener(this); } public void destroy() { booksreference.removeeventlistener(this); }

54 TacoRecyclerAdapter.java private ArrayList<String> keys; private ArrayList<DataSnapshot> items; protected DatabaseReference databasereference; public TacoRecyclerAdapter(Context context, DatabaseReference ref) {... ref.addchildeventlistener(this); } public void destroy() { booksreference.removeeventlistener(this); }

55 public void onchildadded(datasnapshot datasnapshot, String s) { items.add(datasnapshot); keys.add(datasnapshot.getkey()); notifyiteminserted(getitemcount()-1); }

56 public void onchildchanged(datasnapshot datasnapshot, String s) { String key = datasnapshot.getkey(); if (keys.contains(key)) { int index = keys.indexof(key); items.set(index, datasnapshot); notifyitemchanged(index, datasnapshot.getvalue(taco.class)); } }

57

58 STEP 3 TACOS AND NO PICTURES, HUH?

59 Easy file storage Handles poor connectivity Backed by & accessible from Google Cloud Storage

60 Static, "read-only" data Website assets Images / audio downloaded from your app Read-write blobs of data User-generated content App-generated content

61

62 protected void populateviewholder(tacoviewholder viewholder, Taco model, int position) {... StorageReference storagereference = ((App)context.getApplicationContext()).getTacoStorageReference( getref(position).getkey()); Glide.with(context).using(new FirebaseImageLoader()).load(storageReference).centerCrop().crossFade().into(viewHolder.ivTacoImg); }

63 WITHOUT FIREBASE UI

64 TacoRecyclerAdapter.java storageref.child(downloadpath).getstream( new StreamDownloadTask.StreamProcessor() public void doinbackground(streamdownloadtask.tasksnapshot tasksnapshot, InputStream inputstream) throws IOException {... } }).addonsuccesslistener(new OnSuccessListener<StreamDownloadTask.TaskSnapshot>() public void onsuccess(streamdownloadtask.tasksnapshot tasksnapshot) {... } }) });

65 STEP 4 MOAR INGREDIENTS & NO DEPLOY

66 Modify without Server-side variables deploying text Easily tune & experiment text Modify without Customize fordeploying Audiences text Integrated with Analytics

67

68

69

70 TacoRecyclerAdapter.java firebaseremoteconfig.fetch(cacheexpiration).addoncompletelistener(new OnCompleteListener<Void>() public void oncomplete(@nonnull Task<Void> task) { if (task.issuccessful()) { firebaseremoteconfig.activatefetched(); favoritesenabled = firebaseremoteconfig.getboolean("favorites_enabled"); String tacolistexperiment = firebaseremoteconfig.getstring("taco_list_columns_experiment"); firebaseanalytics.setuserproperty("taco_list_columns",tacolistexperiment);... } } });

71 STEP 5 SPREAD THE WORD

72 No Cost cross-platform messaging solution Notifications to drive user interaction Versatile Messaging Targeting

73 Simple UI, with no coding Built on Cloud Messaging Audience targeting Conversion funnel insights

74

75

76

77 AndroidManifest.xml <application... > <service android:name=".notificationservice.messagingservicehandler"> <intent-filter> <action android:name="com.google.firebase.messaging_event"/> </intent-filter> </service> <meta-data android:name="com.google.firebase.messaging.default_notification_icon" /> <meta-data android:name="com.google.firebase.messaging.default_notification_color" /> </application>

78 MessagingServiceHandler.java public class MessagingServiceHandler extends FirebaseMessagingService public void onmessagereceived(remotemessage remotemessage) { super.onmessagereceived(remotemessage); if (remotemessage.getnotification()!= null) { sendnotification(remotemessage.getnotification().getbody()); } } }

79 MessagingServiceHandler.java private void sendnotification(string messagebody) { Intent intent = new Intent(this, TacosListActivity.class); intent.addflags(intent.flag_activity_clear_top); PendingIntent pendingintent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT); Uri defaultsounduri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); NotificationCompat.Builder notificationbuilder = new NotificationCompat.Builder(this).setContentTitle("Wiki Taco").setContentText(messageBody).setAutoCancel(true).setSound(defaultSoundUri).setContentIntent(pendingIntent); NotificationManager notificationmanager = (NotificationManager) getsystemservice(context.notification_service); notificationmanager.notify(0, notificationbuilder.build()); }

80 STEP 6 SLICE, ANALYZE & IMPROVE

81 Designed for apps Event and user centric Connects across Firebase Free & unlimited

82

83

84

85

86

87

88

89 App.java String tacolistcolumnsexperiment = firebaseremoteconfig.getstring("taco_list_columns_experiment"); int tacolistcolumns = 1; if (tacolistcolumnsexperiment.equals(taco_list_experiment_variant_a)) { tacolistcolumns = 2; } else if (tacolistcolumnsexperiment.equals(taco_list_experiment_variant_b)) { tacolistcolumns = 3; } gridlayoutmanager.setspancount(tacolistcolumns); //analytics binding for a/b test firebaseanalytics.setuserproperty("taco_list_columns",tacolistcolumnsexperiment);

90 App.java String tacolistcolumnsexperiment = firebaseremoteconfig.getstring("taco_list_columns_experiment"); int tacolistcolumns = 1; if (tacolistcolumnsexperiment.equals(taco_list_experiment_variant_a)) { tacolistcolumns = 2; } else if (tacolistcolumnsexperiment.equals(taco_list_experiment_variant_b)) { tacolistcolumns = 3; } gridlayoutmanager.setspancount(tacolistcolumns); //analytics binding for a/b test firebaseanalytics.setuserproperty("taco_list_columns",tacolistcolumnsexperiment);

91 protected void oncreate(bundle savedinstancestate) {... Bundle bundle = new Bundle(); bundle.putstring(firebaseanalytics.param.item_id, id); bundle.putstring(firebaseanalytics.param.item_name, name); app.logevent(firebaseanalytics.event.view_item, bundle); }

92 STEP 7 TIME TO TASTE TEST IT

93 Test on the most popular devices before you ship Reports & screenshots Robo & custom tests

94

95

96

97

98

99 STEP 8 TOO SPICY?

100 See crashes & impact Version & OS drill-down Integrated with Analytics

101

102

103 protected void oncreate(bundle savedinstancestate) { String description = intent.getstringextra(taco_description_key); if (description == null) { description = ""; FirebaseCrash.log("No description available for " + id); } TextView txtdescription = (TextView) findviewbyid(r.id.txtdescription); txtdescription.settext(description); }

104

105

106 /ykro/wikitaco

107 ige2vk

108

109 DROIDS ON FIRE Adrián

Open Lecture Mobile Programming. Firebase Tools

Open Lecture Mobile Programming. Firebase Tools Open Lecture Mobile Programming Firebase Tools Agenda Setup Firebase Authentication Firebase Database Firebase Cloud Messaging Setting up a new Firebase project Navigate to https://console.firebase.google.com/

More information

CMSC436: Fall 2013 Week 3 Lab

CMSC436: Fall 2013 Week 3 Lab CMSC436: Fall 2013 Week 3 Lab Objectives: Familiarize yourself with the Activity class, the Activity lifecycle, and the Android reconfiguration process. Create and monitor a simple application to observe

More information

Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26

Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26 Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26 Inject one subtle defect (fault seeding) To be reviewed by a few class members Usability study by CPE 484 students

More information

Overview of Activities

Overview of Activities d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282 Principles of Operating Systems II Systems Programming

More information

Introduction to Android Multimedia

Introduction to Android Multimedia Introduction to Android Multimedia CS 436 Software Development on Mobile By Dr.Paween Khoenkaw Android Intent Intent,Intent-filter What is Intent? -Intent is a message sent from one program to another

More information

Using Libraries, Text-to-Speech, Camera. Lecture 12

Using Libraries, Text-to-Speech, Camera. Lecture 12 Using Libraries, Text-to-Speech, Camera Lecture 12 Libraries Many Android developers have produced useful libraries. There is a Maven repository to store various libraries This makes it easy to add them

More information

Writing Efficient Drive Apps for Android. Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations

Writing Efficient Drive Apps for Android. Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations Writing Efficient Drive Apps for Android Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations Raise your hand if you use Google Drive source: "put your hands up!" (CC-BY) Raise the other

More information

Activities. https://developer.android.com/guide/components/activities.html Repo: https://github.com/karlmorris/basicactivities

Activities. https://developer.android.com/guide/components/activities.html Repo: https://github.com/karlmorris/basicactivities Activities https://developer.android.com/guide/components/activities.html Repo: https://github.com/karlmorris/basicactivities Overview What is an Activity Starting and stopping activities The Back Stack

More information

Android. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license

Android. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license Android Android Mobile operating system developed by Google A complete stack OS, framework A rich set of applications Email, calendar, browser, maps, text messaging, contacts, camera, dialer, music player,

More information

Index A, B. Cloud functions AndroidManifest.xml, authentication triggers,

Index A, B. Cloud functions AndroidManifest.xml, authentication triggers, A, B AdMob, 233 addtestdevice() method, 240 AdRequest.Builder(), 234 AdView component, 233 connected with Firebase, 247 interstitial Ads, 240 rewarded video ad, 244 sign up, 235 using Android Studio, 233

More information

10.1 Introduction. Higher Level Processing. Word Recogniton Model. Text Output. Voice Signals. Spoken Words. Syntax, Semantics, Pragmatics

10.1 Introduction. Higher Level Processing. Word Recogniton Model. Text Output. Voice Signals. Spoken Words. Syntax, Semantics, Pragmatics Chapter 10 Speech Recognition 10.1 Introduction Speech recognition (SR) by machine, which translates spoken words into text has been a goal of research for more than six decades. It is also known as automatic

More information

Programming with Android: Intents. Luca Bedogni. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: Intents. Luca Bedogni. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: Intents Luca Bedogni Dipartimento di Scienze dell Informazione Università di Bologna Outline What is an intent? Intent description Handling Explicit Intents Handling implicit

More information

IEMS 5722 Mobile Network Programming and Distributed Server Architecture

IEMS 5722 Mobile Network Programming and Distributed Server Architecture Department of Information Engineering, CUHK MScIE 2 nd Semester, 2016/17 IEMS 5722 Mobile Network Programming and Distributed Server Architecture Lecture 7 Instant Messaging & Google Cloud Messaging Lecturer:

More information

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah. Islamic University of Gaza Faculty of Engineering Computer Engineering Department Mobile Computing ECOM 5341 By Eng. Wafaa Audah July 2013 1 Launch activitits, implicit intents, data passing & start activity

More information

TUTOR FINDER APP REPORT OF MAJOR PROJECT SUBMITTED FOR PARTIAL FULFILLMENT OF THE REQUIREMENT FOR THE DEGREE OF MASTERS OF COMPUTER APPLICATION

TUTOR FINDER APP REPORT OF MAJOR PROJECT SUBMITTED FOR PARTIAL FULFILLMENT OF THE REQUIREMENT FOR THE DEGREE OF MASTERS OF COMPUTER APPLICATION TUTOR FINDER APP REPORT OF MAJOR PROJECT SUBMITTED FOR PARTIAL FULFILLMENT OF THE REQUIREMENT FOR THE DEGREE OF MASTERS OF COMPUTER APPLICATION BISHAL MANDAL REGISTRATION NO: 151170510014 of 2015-2016

More information

Understand applications and their components. activity service broadcast receiver content provider intent AndroidManifest.xml

Understand applications and their components. activity service broadcast receiver content provider intent AndroidManifest.xml Understand applications and their components activity service broadcast receiver content provider intent AndroidManifest.xml Android Application Written in Java (it s possible to write native code) Good

More information

SMAATSDK. NFC MODULE ON ANDROID REQUIREMENTS AND DOCUMENTATION RELEASE v1.0

SMAATSDK. NFC MODULE ON ANDROID REQUIREMENTS AND DOCUMENTATION RELEASE v1.0 SMAATSDK NFC MODULE ON ANDROID REQUIREMENTS AND DOCUMENTATION RELEASE v1.0 NFC Module on Android Requirements and Documentation Table of contents Scope...3 Purpose...3 General operating diagram...3 Functions

More information

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2.

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2. Outline 1. Set up Android Studio Android development Tiberiu Vilcu Prepared for EECS 411 Sugih Jamin 15 September 2017 2. Create sample app 3. Add UI to see how the design interface works 4. Add some code

More information

Lecture 14. Android Application Development

Lecture 14. Android Application Development Lecture 14 Android Application Development Notification Instructor Muhammad Owais muhammad.owais@riphah.edu.pk Cell: 03215500223 Notifications Used to notify user for events Three general forms of Notifications

More information

UNDERSTANDING ACTIVITIES

UNDERSTANDING ACTIVITIES Activities Activity is a window that contains the user interface of your application. An Android activity is both a unit of user interaction - typically filling the whole screen of an Android mobile device

More information

Workshop. 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking

Workshop. 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking Workshop 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking 2. Create Intent with Parsing Data (Page 3 8) Making Phone Call and Dial Access Web Content Playing YouTube Video 3. Create

More information

Mobile Application Development MyRent Settings

Mobile Application Development MyRent Settings Mobile Application Development MyRent Settings Waterford Institute of Technology October 13, 2016 John Fitzgerald Waterford Institute of Technology, Mobile Application Development MyRent Settings 1/19

More information

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

ANDROID SDK. Developers Guide

ANDROID SDK. Developers Guide ANDROID SDK Developers Guide Content description This is a reference manual and configuration guide for the NeoCheck Document Verification Android SDK product. It shows how to interact with the Xamarin

More information

Notification mechanism

Notification mechanism Notification mechanism Adaptation of materials: dr Tomasz Xięski. Based on presentations made available by Victor Matos, Cleveland State University. Portions of this page are reproduced from work created

More information

Have a development environment in 256 or 255 Be familiar with the application lifecycle

Have a development environment in 256 or 255 Be familiar with the application lifecycle Upcoming Assignments Readings: Chapter 4 by today Horizontal Prototype due Friday, January 22 Quiz 2 today at 2:40pm Lab Quiz next Friday during lecture time (2:10-3pm) Have a development environment in

More information

CS 193A. Multiple Activities and Intents

CS 193A. Multiple Activities and Intents CS 193A Multiple Activities and Intents This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Multiple

More information

LECTURE NOTES OF APPLICATION ACTIVITIES

LECTURE NOTES OF APPLICATION ACTIVITIES Department of Information Networks The University of Babylon LECTURE NOTES OF APPLICATION ACTIVITIES By College of Information Technology, University of Babylon, Iraq Samaher@inet.uobabylon.edu.iq The

More information

Introduction to Android

Introduction to Android Introduction to Android http://myphonedeals.co.uk/blog/33-the-smartphone-os-complete-comparison-chart www.techradar.com/news/phone-and-communications/mobile-phones/ios7-vs-android-jelly-bean-vs-windows-phone-8-vs-bb10-1159893

More information

Prototyping a Social Network. AngularJS: Firebase integration with AngularFire

Prototyping a Social Network. AngularJS: Firebase integration with AngularFire Prototyping a Social Network AngularJS: Firebase integration with AngularFire Pizza++ 2 Pizza++ Feature Set Find top pizzas to eat near me Post pizzas Rate pizzas Review (comment) pizzas Discuss about

More information

Mobile Application Development

Mobile Application Development Mobile Application Development donation-web api { method: 'GET', path: '/api/candidates', config: CandidatesApi.find, { method: 'GET', path: '/api/candidates/{id', config: CandidatesApi.findOne, { method:

More information

Services. service: A background task used by an app.

Services. service: A background task used by an app. CS 193A Services This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Services service: A background task

More information

Medicine Information Mobile Application Using Tablet Image Anaysis Using Android Studio

Medicine Information Mobile Application Using Tablet Image Anaysis Using Android Studio Medicine Information Mobile Application Using Tablet Image Anaysis Using Android Studio M.Sakthiumamaheswari 1, Parimala Suresh Congovi 2, Madheswari Kanmani 3 Department of Computer science Engineering,

More information

Android Activities. Akhilesh Tyagi

Android Activities. Akhilesh Tyagi Android Activities Akhilesh Tyagi Apps, memory, and storage storage: Your device has apps and files installed andstoredonitsinternaldisk,sdcard,etc. Settings Storage memory: Some subset of apps might be

More information

Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time

Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time The 1 activity 1 thing the user can do heuristic may not make sense for larger devices Application

More information

Firebase Essentials. Android Edition

Firebase Essentials. Android Edition Firebase Essentials Android Edition Firebase Essentials Android Edition First Edition 2017 Neil Smyth / Payload Media, Inc. All Rights Reserved. This book is provided for personal use only. Unauthorized

More information

shared objects monitors run() Runnable start()

shared objects monitors run() Runnable start() Thread Lecture 18 Threads A thread is a smallest unit of execution Each thread has its own call stack for methods being invoked, their arguments and local variables. Each virtual machine instance has at

More information

Midterm Examination. CSCE 4623 (Fall 2017) October 20, 2017

Midterm Examination. CSCE 4623 (Fall 2017) October 20, 2017 Midterm Examination CSCE 4623 (Fall 2017) Name: UA ID: October 20, 2017 Instructions: 1. You have 50 minutes to complete the exam. The exam is closed note and closed book. No material is allowed with you

More information

Firebase Realtime Database. Landon Cox April 6, 2017

Firebase Realtime Database. Landon Cox April 6, 2017 Firebase Realtime Database Landon Cox April 6, 2017 Databases so far SQLite (store quiz progress locally) User starts app Check database to see where user was Say you want info about your friends quizzes

More information

Overview. Lecture: Implicit Calling via Share Implicit Receiving via Share Launch Telephone Launch Settings Homework

Overview. Lecture: Implicit Calling via Share Implicit Receiving via Share Launch Telephone Launch Settings Homework Implicit Intents Overview Lecture: Implicit Calling via Share Implicit Receiving via Share Launch Telephone Launch Settings Homework Intents Intent asynchronous message used to activate one Android component

More information

Android Application Development

Android Application Development Android Application Development Octav Chipara What is Android A free, open source mobile platform A Linux-based, multiprocess, multithreaded OS Android is not a device or a product It s not even limited

More information

Programming with Android: Activities and Intents. Dipartimento di Informatica Scienza e Ingegneria Università di Bologna

Programming with Android: Activities and Intents. Dipartimento di Informatica Scienza e Ingegneria Università di Bologna Programming with Android: Activities and Intents Luca Bedogni Marco Di Felice Dipartimento di Informatica Scienza e Ingegneria Università di Bologna Outline What is an intent? Intent description Handling

More information

Understanding Application

Understanding Application Introduction to Android Application Development, Android Essentials, Fifth Edition Chapter 4 Understanding Application Components Chapter 4 Overview Master important terminology Learn what the application

More information

CS 528 Mobile and Ubiquitous Computing Lecture 4a: Fragments, Camera Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 4a: Fragments, Camera Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 4a: Fragments, Camera Emmanuel Agu Fragments Recall: Fragments Sub-components of an Activity (screen) An activity can contain multiple fragments, organized

More information

Intents. Your first app assignment

Intents. Your first app assignment Intents Your first app assignment We will make this. Decidedly lackluster. Java Code Java Code XML XML Preview XML Java Code Java Code XML Buttons that work

More information

FRAGMENTS.

FRAGMENTS. Fragments 69 FRAGMENTS In the previous section you learned what an activity is and how to use it. In a small-screen device (such as a smartphone), an activity typically fi lls the entire screen, displaying

More information

Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ]

Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ] s@lm@n Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ] Android AND-401 : Practice Test Question No : 1 Which of the following is required to allow the Android

More information

CS378 - Mobile Computing. Anatomy of an Android App and the App Lifecycle

CS378 - Mobile Computing. Anatomy of an Android App and the App Lifecycle CS378 - Mobile Computing Anatomy of an Android App and the App Lifecycle Application Components five primary components different purposes and different lifecycles Activity single screen with a user interface,

More information

Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial

Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Revision history 90001431-13 Revision Date Description A October 2014 Original release. B October 2017 Rebranded the document. Edited the document.

More information

Intents. 18 December 2018 Lecture Dec 2018 SE 435: Development in the Android Environment 1

Intents. 18 December 2018 Lecture Dec 2018 SE 435: Development in the Android Environment 1 Intents 18 December 2018 Lecture 4 18 Dec 2018 SE 435: Development in the Android Environment 1 Topics for Today Building an Intent Explicit Implicit Other features: Data Result Sources: developer.android.com

More information

Accelerating Information Technology Innovation

Accelerating Information Technology Innovation Accelerating Information Technology Innovation http://aiti.mit.edu India Summer 2012 Review Session Android and Web Working with Views Working with Views Create a new Android project. The app name should

More information

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

Mobile Programming Lecture 5. Composite Views, Activities, Intents and Filters

Mobile Programming Lecture 5. Composite Views, Activities, Intents and Filters Mobile Programming Lecture 5 Composite Views, Activities, Intents and Filters Lecture 4 Review How do you get the value of a string in the strings.xml file? What are the steps to populate a Spinner or

More information

Terms: MediaPlayer, VideoView, MediaController,

Terms: MediaPlayer, VideoView, MediaController, Terms: MediaPlayer, VideoView, MediaController, Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: www.sisoft.in Email:info@sisoft.in Phone: +91-9999-283-283

More information

Action Bar. (c) 2010 Haim Michael. All Rights Reserv ed.

Action Bar. (c) 2010 Haim Michael. All Rights Reserv ed. Action Bar Introduction The Action Bar is a widget that is shown on top of the screen. It includes the application logo on its left side together with items available from the options menu on the right.

More information

Real-Time Embedded Systems

Real-Time Embedded Systems Real-Time Embedded Systems DT8025, Fall 2016 http://goo.gl/azfc9l Lecture 8 Masoumeh Taromirad m.taromirad@hh.se Center for Research on Embedded Systems School of Information Technology 1 / 51 Smart phones

More information

EMBEDDED SYSTEMS PROGRAMMING Android Services

EMBEDDED SYSTEMS PROGRAMMING Android Services EMBEDDED SYSTEMS PROGRAMMING 2016-17 Android Services APP COMPONENTS Activity: a single screen with a user interface Broadcast receiver: responds to system-wide broadcast events. No user interface Service:

More information

A Tour of Android. and some of it s APIs. Bryan Noll

A Tour of Android. and some of it s APIs. Bryan Noll A Tour of Android and some of it s APIs Bryan Noll Me professionally A good starting point http://neidetcher.blogspot.com/2009/07/android-presentation-from-denver-open.html The OS The VM Basic Views Basic

More information

Computer Science Large Practical: Storage, Settings and Layouts. Stephen Gilmore School of Informatics October 26, 2017

Computer Science Large Practical: Storage, Settings and Layouts. Stephen Gilmore School of Informatics October 26, 2017 Computer Science Large Practical: Storage, Settings and Layouts Stephen Gilmore School of Informatics October 26, 2017 Contents 1. Storing information 2. Kotlin compilation 3. Settings 4. Layouts 1 Storing

More information

Using Intents to Launch Activities

Using Intents to Launch Activities Using Intents to Launch Activities The most common use of Intents is to bind your application components. Intents are used to start, stop, and transition between the Activities within an application. The

More information

Android Help. Section 8. Eric Xiao

Android Help. Section 8. Eric Xiao Android Help Section 8 Eric Xiao The Midterm That happened Any residual questions? New Assignment! Make a low-fi prototype Must be interactive Use balsamiq or paper Test it with users 3 tasks Test task

More information

Repairing crashes in Android Apps. Shin Hwei Tan Zhen Dong Xiang Gao Abhik Roychoudhury National University of Singapore

Repairing crashes in Android Apps. Shin Hwei Tan Zhen Dong Xiang Gao Abhik Roychoudhury National University of Singapore Repairing crashes in Android Apps Shin Hwei Tan Zhen Dong Xiang Gao Abhik Roychoudhury National University of Singapore Android Repair System Criteria for Android repair system: Could be used by any smartphone

More information

Embedded Systems Programming - PA8001

Embedded Systems Programming - PA8001 Embedded Systems Programming - PA8001 http://goo.gl/ydeczu Lecture 8 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering

More information

Android Services & Local IPC: Overview of Programming Bound Services

Android Services & Local IPC: Overview of Programming Bound Services : Overview of Programming Bound Services d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville,

More information

Thread. A Thread is a concurrent unit of execution. The thread has its own call stack for methods being invoked, their arguments and local variables.

Thread. A Thread is a concurrent unit of execution. The thread has its own call stack for methods being invoked, their arguments and local variables. 1 Thread A Thread is a concurrent unit of execution. The thread has its own call stack for methods being invoked, their arguments and local variables. Each virtual machine instance has at least one main

More information

Getting Started With Android Feature Flags

Getting Started With Android Feature Flags Guide Getting Started With Android Feature Flags INTRO When it comes to getting started with feature flags (Android feature flags or just in general), you have to understand that there are degrees of feature

More information

Multiple Activities. Many apps have multiple activities

Multiple Activities. Many apps have multiple activities Intents Lecture 7 Multiple Activities Many apps have multiple activities An activity A can launch another activity B in response to an event The activity A can pass data to B The second activity B can

More information

DOCUMENTATION ON ACPL FM220 RD APPLICATION. Contents

DOCUMENTATION ON ACPL FM220 RD APPLICATION. Contents DOCUMENTATION ON ACPL FM220 RD APPLICATION Contents 1 Device Registration... 2 1.1 Install Test Application... 2 1.2 Device connection... 2 1.3 Registration for Device... 3 2 Testing for Registered Devices...

More information

package import import import import import import import public class extends public void super new this class extends public super public void new

package import import import import import import import public class extends public void super new this class extends public super public void new Android 2-D Drawing Android uses a Canvas object to host its 2-D drawing methods. The program below draws a blue circle on a white canvas. It does not make use of the main.xml layout but draws directly

More information

EMBEDDED SYSTEMS PROGRAMMING Application Basics

EMBEDDED SYSTEMS PROGRAMMING Application Basics EMBEDDED SYSTEMS PROGRAMMING 2015-16 Application Basics APPLICATIONS Application components (e.g., UI elements) are objects instantiated from the platform s frameworks Applications are event driven ( there

More information

Mobile Development Lecture 8: Intents and Animation

Mobile Development Lecture 8: Intents and Animation Mobile Development Lecture 8: Intents and Animation Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Elgayyar.weebly.com 1. Multiple Activities Intents Multiple Activities Many apps have multiple activities.

More information

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering Getting Started Dr. Miguel A. Labrador Department of Computer Science & Engineering labrador@csee.usf.edu http://www.csee.usf.edu/~labrador 1 Goals Setting up your development environment Android Framework

More information

This tutorial is meant for software developers who want to learn how to lose less time on API integrations!

This tutorial is meant for software developers who want to learn how to lose less time on API integrations! CloudRail About the Tutorial CloudRail is an API integration solution that speeds up the process of integrating third-party APIs into an application and maintaining them. It does so by providing libraries

More information

Table of Content. CLOUDCHERRY Android SDK Manual

Table of Content. CLOUDCHERRY Android SDK Manual Table of Content 1. Introduction: cloudcherry-android-sdk 2 2. Capabilities 2 3. Setup 2 4. How to create static token 3 5. Initialize SDK 5 6. How to trigger the SDK? 5 7. How to setup custom legends

More information

Our First Android Application

Our First Android Application Mobile Application Development Lecture 04 Imran Ihsan Our First Android Application Even though the HelloWorld program is trivial in introduces a wealth of new ideas the framework, activities, manifest,

More information

Developing Android Applications

Developing Android Applications Developing Android Applications Introduction to Software Engineering Fall 2015 Updated 21 October 2015 Android Lab 02 Advanced Android Features 2 Class Plan UI Elements Activities Intents Data Transfer

More information

Creating a Custom ListView

Creating a Custom ListView Creating a Custom ListView References https://developer.android.com/guide/topics/ui/declaring-layout.html#adapterviews Overview The ListView in the previous tutorial creates a TextView object for each

More information

Android File & Storage

Android File & Storage Files Lecture 9 Android File & Storage Android can read/write files from two locations: Internal (built into the device) and external (an SD card or other drive attached to device) storage Both are persistent

More information

Basic UI elements: Defining Activity UI in the code. Marco Ronchetti Università degli Studi di Trento

Basic UI elements: Defining Activity UI in the code. Marco Ronchetti Università degli Studi di Trento 1 Basic UI elements: Defining Activity UI in the code Marco Ronchetti Università degli Studi di Trento UI Programmatically public class UIThroughCode extends Activity { LinearLayout llayout; TextView tview;

More information

Vienos veiklos būsena. Theory

Vienos veiklos būsena. Theory Vienos veiklos būsena Theory While application is running, we create new Activities and close old ones, hide the application and open it again and so on, and Activity can process all these events. It is

More information

API Guide for Gesture Recognition Engine. Version 2.0

API Guide for Gesture Recognition Engine. Version 2.0 API Guide for Gesture Recognition Engine Version 2.0 Table of Contents Gesture Recognition API... 3 API URI... 3 Communication Protocol... 3 Getting Started... 4 Protobuf... 4 WebSocket Library... 4 Project

More information

Starting Another Activity Preferences

Starting Another Activity Preferences Starting Another Activity Preferences Android Application Development Training Xorsat Pvt. Ltd www.xorsat.net fb.com/xorsat.education Outline Starting Another Activity Respond to the Button Create the

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

Mobile Programming Lecture 9. Bound Services, Location, Sensors, IntentFilter

Mobile Programming Lecture 9. Bound Services, Location, Sensors, IntentFilter Mobile Programming Lecture 9 Bound Services, Location, Sensors, IntentFilter Agenda Bound Services Location Sensors Starting an Activity for a Result Understanding Implicit Intents Bound Service When you

More information

Android writing files to the external storage device

Android writing files to the external storage device Android writing files to the external storage device The external storage area is what Android knows as the SD card. There is a virtual SD card within the Android file system although this may be of size

More information

LECTURE 12 BROADCAST RECEIVERS

LECTURE 12 BROADCAST RECEIVERS MOBILE APPLICATION DEVELOPMENT LECTURE 12 BROADCAST RECEIVERS IMRAN IHSAN ASSISTANT PROFESSOR WWW.IMRANIHSAN.COM Application Building Blocks Android Component Activity UI Component Typically Corresponding

More information

Services. Marco Ronchetti Università degli Studi di Trento

Services. Marco Ronchetti Università degli Studi di Trento 1 Services Marco Ronchetti Università degli Studi di Trento Service An application component that can perform longrunning operations in the background and does not provide a user interface. So, what s

More information

Developing Android Applications Introduction to Software Engineering Fall Updated 1st November 2015

Developing Android Applications Introduction to Software Engineering Fall Updated 1st November 2015 Developing Android Applications Introduction to Software Engineering Fall 2015 Updated 1st November 2015 Android Lab 3 & Midterm Additional Concepts No Class Assignment 2 Class Plan Android : Additional

More information

The Definitive Guide to Firebase

The Definitive Guide to Firebase The Definitive Guide to Firebase Build Android Apps on Google s Mobile Platform Laurence Moroney The Definitive Guide to Firebase Build Android Apps on Google s Mobile Platform Laurence Moroney The Definitive

More information

Basic UI elements: Android Buttons (Basics) Marco Ronchetti Università degli Studi di Trento

Basic UI elements: Android Buttons (Basics) Marco Ronchetti Università degli Studi di Trento Basic UI elements: Android Buttons (Basics) Marco Ronchetti Università degli Studi di Trento Let s work with the listener Button button = ; button.setonclicklistener(new.onclicklistener() { public void

More information

Automatically persisted among application sessions

Automatically persisted among application sessions STORAGE OPTIONS Storage options SharedPreference Small amount of data, as Key-value pairs Private to an Activity or Shared among Activities Internal storage Small to medium amount of data Private to the

More information

CS378 -Mobile Computing. Anatomy of and Android App and the App Lifecycle

CS378 -Mobile Computing. Anatomy of and Android App and the App Lifecycle CS378 -Mobile Computing Anatomy of and Android App and the App Lifecycle Hello Android Tutorial http://developer.android.com/resources/tutorials/hello-world.html Important Files src/helloandroid.java Activity

More information

Contents. a. Initialization... 27

Contents. a. Initialization... 27 Contents 1. License... 6 2. Introduction... 7 3. Plugin updates... 8 a. Update from previous versions to 1.10.0... 8 4. Example project... 9 5. GitHub Repository... 9 6. Getting started... 10 7. Mobile

More information

Lab 1: Getting Started With Android Programming

Lab 1: Getting Started With Android Programming Islamic University of Gaza Faculty of Engineering Computer Engineering Dept. Eng. Jehad Aldahdooh Mobile Computing Android Lab Lab 1: Getting Started With Android Programming To create a new Android Project

More information

FORT Mobile SDK for Android

FORT Mobile SDK for Android FORT Mobile SDK for Android Merchant Integration Guide Document Version: 2.4 February, 2018 Copyright Statement All rights reserved. No part of this document may be reproduced in any form or by any means

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Android Lifecycle An activity begins its lifecycle when entering the oncreate() state If not

More information

Mobile User Interfaces

Mobile User Interfaces Mobile User Interfaces CS 2046 Mobile Application Development Fall 2010 Announcements Next class = Lab session: Upson B7 Office Hours (starting 10/25): Me: MW 1:15-2:15 PM, Upson 360 Jae (TA): F 11:00

More information

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

Android Coding. Dr. J.P.E. Hodgson. August 23, Dr. J.P.E. Hodgson () Android Coding August 23, / 27

Android Coding. Dr. J.P.E. Hodgson. August 23, Dr. J.P.E. Hodgson () Android Coding August 23, / 27 Android Coding Dr. J.P.E. Hodgson August 23, 2010 Dr. J.P.E. Hodgson () Android Coding August 23, 2010 1 / 27 Outline Starting a Project 1 Starting a Project 2 Making Buttons Dr. J.P.E. Hodgson () Android

More information