Skip to content
academia.sh

Course Intermediate

Platform Services and Integrations

Published Updated

By the end of this course

Start course

01

System Capabilities

Notifications with channels and priorities, cloud messaging from server to device, location providers, camera and media access, sensor data, deep links and shortcuts, and home screen widgets.

  1. 01 Notifications A notification is built from a channel, an importance level and an action, and is shown only once the runtime permission is granted. The lesson measures how many copies of eight events reached the receiver and shows what a closed channel, a missing permission and a shared ID turn the delivery into.
  2. 02 Cloud Messaging The platform's cloud messaging service carries a message from the server to the device by device token; the collapse key and the time to live decide what becomes of it. The lesson measures which of the messages piled up on an offline device arrives and the delivery of a message whose time to live runs out.
  3. 03 Location and Maps The location provider delivers location updates through a callback; the minimum interval rule decides which update reaches the receiver, and once the runtime permission is revoked, later updates stop arriving. The lesson measures the delivery of these two rules.
  4. 04 Camera and Media The camera library returns a single result for each capture request; when storage is full, no result arrives. The lesson measures the delivery of capture requests and shows that when the shutter is touched twice in a row, two separate results arrive.
  5. 05 Sensors Sensor events arrive quickly from device hardware such as the accelerometer; a slow receiver cannot keep up with all of them. The lesson measures which sensor event arrives when the buffer overflows and when the receiver takes only the last reading, and what happens once the listener is unregistered.
  6. 06 Deep Links and Shortcuts A deep link ties an address that comes from outside to a specific screen of the app; while the screen is being recreated, the same link can be processed once more. The lesson measures this duplicated delivery and the effect of keeping the handled marker in saved state or in memory.
  7. 07 Widgets A widget is a small view that lives on the home screen and holds data updates until the widget is opened. The lesson measures that of the accumulated updates only the last one is drawn, and that updates do not reach a widget that has been removed from the home screen.

02

Security and External Services

Encrypted storage and the Keystore, network security configuration, authentication flows, app signing, analytics and crash reporting, remote configuration, and in-app purchases and ads.

  1. 01 Encrypted Storage and the Keystore A secret the app writes is encrypted with a key in the keystore; if the key is bound to user authentication, it is invalidated when the lock screen is removed and the record can no longer be read. The lesson measures how many copies of a written secret reach the next read.
  2. 02 Network Security Configuration Network security configuration decides on cleartext traffic, trusted certificate sources, and domain-specific rules. The lesson measures how many copies of a request blocked as cleartext reached the server, and the outcome of a connection that does not match a pinned certificate.
  3. 03 Authentication Flows Biometric authentication opens a gate on the device, while account-based sign-in gives the server an access token and a refresh token. The lesson measures how many copies reach the server when concurrent requests start the same refresh twice, and how single flight changes that.
  4. 04 App Signing Every released version is signed with a signing key, and the device installs an update only if it comes from the same certificate as the installed app. The lesson measures how many copies of a released version reached the installed app on the device, and what happens to a version signed with a different key.
  5. 05 Analytics and Crash Reporting Analytics events and crash reports travel from an upload queue to the server; if the response is lost, the client retries the same event. The lesson measures how many copies of a sent event reached the server, how a bounded queue drops the oldest events, and why deduplication does not change the delivery.
  6. 06 Remote Configuration In remote configuration, the app fetches values from the server and activates them in a separate step. The lesson measures the last value winning for a key fetched twice before activation, the first value being superseded, and a value that is fetched but not activated being lost.
  7. 07 In-App Purchases and Ads In an in-app purchase, a purchase that is not acknowledged is redelivered every time the platform queries purchases. The lesson measures an unacknowledged purchase arriving duplicated, an acknowledged one arriving once, and a refunded one being lost; it then gathers the delivery of the 14 lessons in a single table.

Final exam

Platform Services and Integrations — Final Exam

In preparation

This course's question bank is not complete yet. The exam opens here automatically once enough questions are added.

Start typing to search.

↑↓ ↵ Esc navigate · open · close