Section 11: Lab: Bluetooth Low Energy (BLE)
- BLE and GATT: services, characteristics and descriptors
- BLUETOOTH_SCAN and BLUETOOTH_CONNECT permissions on recent Android versions
- Scan for devices and connect to the ones found
- Read, write and subscribe to notifications from a device
- Lab: read values from a BLE device and show them in real time
Section 12: Lab: Maps and Location with Maps Compose
- Get an API key from Google Maps Platform and restrict its use
- Show a map with the GoogleMap composable, with markers and camera control
- Get the current location with the Fused Location Provider
- Geocoding and reverse geocoding
- Lab: draw a polygon from coordinates and show nearby branches
Section 13: Lab: Push Notifications with Firebase Cloud Messaging
- Connect the app to a Firebase project and get the FCM registration token
- Receive messages with FirebaseMessagingService and onMessageReceived
- Notification channels and the POST_NOTIFICATIONS permission
- Open the related screen when the user taps a notification
- Lab: send a promotion notification from the Firebase Console
Section 14: Testing, Performance and Publishing on Google Play
- Unit tests for view models and Compose UI tests
- Cut unnecessary recomposition and use Baseline Profiles
- Shrink and protect code with R8 and check the app size
- Create a keystore, build an Android App Bundle and use Play App Signing
- Test through internal testing in the Play Console, with a security checklist before release
Section 15: Workshop: An End-to-End Inventory App Capstone
- Design an app for the brief with Compose, MVVM and Hilt
- Connect a REST API, Room and QR code scanning
- Add maps or BLE and push notifications as the brief requires
- Present your work, review the code together and plan next steps