Quelle: Developing Android REST Client Applications - Google dl
Recommend Documents
May 20, 2010 ... Developing Android REST Client Applications. • View live notes and ask
questions about this session on. Google Wave: –http://bit.ly/bHNnTm.
and CArtAgO environment programming framework â to the development of Web Client applications. Following the cloud computing perspective, these kinds of ...
O'Reilly Media, Inc. Developing Android Applications with Adobe AIR, the image
of a Royal Flycatcher, ... Topics include ActionScript, Adobe Flex®, Adobe.
A description for this result is not available because of this site's robots.txtLearn more
A description for this result is not available because of this site's robots.txtLearn more
A description for this result is not available because of this site's robots.txtLearn more
phones, has raised the need for specific software development methods and tools. Most applications for these devices are either Web- or Java-based,1 although.
Android goes Semantic: DL Reasoners on. Smartphones. Roberto Yus, Carlos
Bobed, Guillermo Esteban, Fernando Bobillo, and. Eduardo Mena. University of ...
Client usually blocks until server responds ... Distributed Software Systems. 6.
Client and Server Functions. Clients ... OSF's DCE (Distributed Computing.
applications for the Android and iOS platform for assistive living environments. ... [9], context-awareness in mobile device applications [4] [10] and mobile service ...
sible for the maintenance and development of Android, as well as making
Android .... Framework Application Programming Interface (API), debugging code
with tools from ... For example, TI has established an Android community at ...
Once you have th
Title: Add Firebase Client-Android to Android Application for Database. Owner: Purvik. YouTube Tutorial Link: https://yo
Sep 27, 2018 - specifically with datasets that allow access to source code of apps. Figure 1 ... former case did we include the publication in my set of relevant work. .... up-to-date sample of executable Android app packages â AndroZoo.
Page 1 of 2. Stand 02/ 2000 MULTITESTER I Seite 1. RANGE MAX/MIN VoltSensor HOLD. MM 1-3. V. V. OFF. Hz A. A. °C. °F.
Accessing files on a remote machine remains the .... to read remote files using the Clarens server, via a ... a remote file repository, with the ability to download.
Communication between Client and Server using sockets and Java Server ... of
web oriented client-server applications and to examine the Java language in the
...
Use the Intent API to get a registration ID. // Registration ID is compartmentalized per app/device. Intent regIntent =
Originals of Slides and Source Code for Examples: ... JSF 2, PrimeFaces, servlets
/JSP, Ajax, jQuery, Android development, Java 6 or 7 programming, custom ...
applications from the SE to Android environments may not be as easy and ... for Java application development and deployment makes it very attractive to.
each utilizing an extensive set of open-source Java libraries. - to Android from the SE environment. Keywords: Android, Java, application porting. 1 Introduction.
LAUNCHING ADVANCED REST CLIENT. 1. Click on app icon displaying on the header in Google Chrome. Type chrome://apps in ch
Developing Android REST Client Applications • View live notes and ask questions about this session on Google Wave:
–http://bit.ly/bHNnTm
3
REST Client Applications
4
REST Client Applications • REST: A broadly adopted architecture style
4
REST Client Applications • REST: A broadly adopted architecture style • A large number of REST APIs are available
4
REST Client Applications • REST: A broadly adopted architecture style • A large number of REST APIs are available • Why develop them if mobile friendly web sites already exist?
4
Incorrect Implementation of REST Methods “I haven’t failed, I’ve found 10,000 ways that don’t work.” - Thomas Alva Edison
The Incorrect Implementation of REST Methods 1. Get, create, update, delete
Activity
CursorAdapter
Worker thread REST Method 2. GET/POST/ PUT/DELETE
3. Process data
Processor
4. Save data structure
Memory Storage 6
What’s wrong with this approach?
7
What’s wrong with this approach? • The operating system may shut down the process
7
What’s wrong with this approach? • The operating system may shut down the process • Data is not persistently stored
7
Implementing REST Methods “There’s a way to do it better ... find it.” - Thomas Alva Edison
REST Method Implementation Patterns
9
REST Method Implementation Patterns • Introducing three design patterns to handle REST methods – Use a Service API – Use the ContentProvider API – Use the ContentProvider API and a SyncAdapter
9
Implementing REST Methods Option A: Use a Service API
Option A: Use a Service API Activity 1. initiate(param)
CursorAdapter
11. Callback to registered activities
Service Helper 2. startService(Intent)
8’. ContentObserver notification
8”. requery
10. Binder callback
Service 3. start(param)
9. Operation complete callback 4.insert/update
Processor 5. start(param)
8.insert/update 7. REST method complete callback
REST Method 11
Content Provider
6. GET/POST/PUT/DELETE
The REST Method
12
REST Method
The REST Method • An entity which: – Prepares the HTTP URL & HTTP request body – Executes the HTTP transaction – Processes the HTTP response
12
REST Method
The REST Method • An entity which: – Prepares the HTTP URL & HTTP request body – Executes the HTTP transaction – Processes the HTTP response
• Select the optimal content type for responses – Binary, JSON, XML – New in Froyo: JSON parser (same org.json API)
12
REST Method
The REST Method
REST Method
• An entity which: – Prepares the HTTP URL & HTTP request body – Executes the HTTP transaction – Processes the HTTP response
• Select the optimal content type for responses – Binary, JSON, XML – New in Froyo: JSON parser (same org.json API)
• Enable the gzip content encoding when possible
12
The REST Method
REST Method
• An entity which: – Prepares the HTTP URL & HTTP request body – Executes the HTTP transaction – Processes the HTTP response
• Select the optimal content type for responses – Binary, JSON, XML – New in Froyo: JSON parser (same org.json API)
• Enable the gzip content encoding when possible • Run the REST method in a worker thread
12
The REST Method
REST Method
• An entity which: – Prepares the HTTP URL & HTTP request body – Executes the HTTP transaction – Processes the HTTP response
• Select the optimal content type for responses – Binary, JSON, XML – New in Froyo: JSON parser (same org.json API)
• Enable the gzip content encoding when possible • Run the REST method in a worker thread • Use the Apache HTTP client
12
Option A: Use a Service API Activity 1. initiate(param)
Option A: Use a Service API Activity 1. initiate(param)
CursorAdapter
11. Callback to registered activities
Service Helper 2. startService(Intent)
8’. ContentObserver notification
8”. requery
10. Binder callback
Service 3. start(param)
9. Operation complete callback 4.insert/update
Processor 5. start(param)
8.insert/update 7. REST method complete callback
REST Method 16
Content Provider
6. GET/POST/PUT/DELETE
The Service
17
Service
The Service • The role of the service
17
Service
The Service
Service
• The role of the service • Forward path: receives the Intent sent by the Service Helper and starts the corresponding REST Method
17
The Service
Service
• The role of the service • Forward path: receives the Intent sent by the Service Helper and starts the corresponding REST Method • Return path: handles the Processor callback and invokes the Service Helper binder callback
17
The Service
Service
• The role of the service • Forward path: receives the Intent sent by the Service Helper and starts the corresponding REST Method • Return path: handles the Processor callback and invokes the Service Helper binder callback • It can implement a queue of downloads
17
Option A: Use a Service API Activity 1. initiate(param)
CursorAdapter
11. Callback to registered activities
Service Helper 2. startService(Intent)
8’. ContentObserver notification
8”. requery
10. Binder callback
Service 3. start(param)
9. Operation complete callback 4.insert/update
Processor 5. start(param)
8.insert/update 7. REST method complete callback
REST Method 18
Content Provider
6. GET/POST/PUT/DELETE
The Service Helper
19
Service Helper
The Service Helper
Service Helper
• Singleton which exposes a simple asynchronous API to be used by the user interface
19
The Service Helper
Service Helper
• Singleton which exposes a simple asynchronous API to be used by the user interface • Prepare and send the Service request – Check if the method is already pending – Create the request Intent – Add the operation type and a unique request id – Add the method specific parameters – Add the binder callback – Call startService(Intent) – Return the request id
19
The Service Helper
Service Helper
• Singleton which exposes a simple asynchronous API to be used by the user interface • Prepare and send the Service request – Check if the method is already pending – Create the request Intent – Add the operation type and a unique request id – Add the method specific parameters – Add the binder callback – Call startService(Intent) – Return the request id
• Handle the callback from the service – Dispatch callbacks to the user interface listeners 19
Option A: Use a Service API Activity 1. initiate(param)
CursorAdapter
11. Callback to registered activities
Service Helper 2. startService(Intent)
8’. ContentObserver notification
8”. requery
10. Binder callback
Service 3. start(param)
9. Operation complete callback 4.insert/update
Processor 5. start(param)
8.insert/update 7. REST method complete callback
REST Method 20
Content Provider
6. GET/POST/PUT/DELETE
Handling the REST Method in an Activity
21
Activity & CursorAdapter
Handling the REST Method in an Activity
Activity & CursorAdapter
• Add an operation listener in onResume and remove it in onPause
21
Handling the REST Method in an Activity
Activity & CursorAdapter
• Add an operation listener in onResume and remove it in onPause • Consider these cases: – The Activity is still active when the request completes – The Activity is paused then resumed and then the request completes – The Activity is paused when the request completes and then Activity is resumed
21
Handling the REST Method in an Activity
Activity & CursorAdapter
• Add an operation listener in onResume and remove it in onPause • Consider these cases: – The Activity is still active when the request completes – The Activity is paused then resumed and then the request completes – The Activity is paused when the request completes and then Activity is resumed
• The CursorAdapter handles the ContentProvider notification by implementing a ContentObserver
21
Option A: Use a Service API Activity 1. initiate(param)
CursorAdapter
11. Callback to registered activities
Service Helper 2. startService(Intent)
8’. ContentObserver notification
8”. requery
10. Binder callback
Service 3. start(param)
9. Operation complete callback 4.insert/update
Processor 5. start(param)
8.insert/update 7. REST method complete callback
REST Method 22
Content Provider
6. GET/POST/PUT/DELETE
Implementing REST Methods Option B: Use the ContentProvider API
Option B: Use the ContentProvider API Activity & CursorAdapter 1. query, insert, update, delete
7’. ContentObserver notification
7”. query
Content Provider 2. start(Intent)
Service Helper 3. startService(Intent) 7. insert/update
Service 4. start(param)
REST Method 24
5. GET/POST/ PUT/DELETE
6. Process data
Processor
A Simple Pattern for the REST of us Option C: Use a ContentProvider API and a SyncAdapter “To have a great idea, have a lot of them.” -Thomas Alva Edison
A Simple Pattern Using the ContentProvider API Use a sync adapter to initiate all your REST methods
Content Provider 1.Get items that need to be synced 5. insert/ update/delete
Sync Adapter 2. start(param)
REST Method 3. GET/POST/ PUT/DELETE
26
4. Process data
Processor
6’. requery
Conclusions “The value of an idea lies in the using of it.” - Thomas Alva Edison
Conclusions
28
Conclusions • Do not implement REST methods inside Activities
28
Conclusions • Do not implement REST methods inside Activities • Start long running operations from a Service
28
Conclusions • Do not implement REST methods inside Activities • Start long running operations from a Service • Persist early & persist often
28
Conclusions • Do not implement REST methods inside Activities • Start long running operations from a Service • Persist early & persist often • Minimize the network usage
28
Conclusions • Do not implement REST methods inside Activities • Start long running operations from a Service • Persist early & persist often • Minimize the network usage • Use a sync adapter to execute background operations which are not time critical – New in Froyo: Android Cloud to Device Messaging
28
Developing Android REST Client Applications • View live notes and ask questions about this session on Google Wave: