Feature 3.5 Jose David Florez Ruiz - ISIS3510-MOBILE-T34/T34-Wiki-SpendiQ GitHub Wiki
Application Features Overview
Local Storage
SQLite
- Purpose: Stores offers and transactions in a structured database format.
- Benefit: Ensures reliable and persistent data storage for essential app functionality.
SharedPreferences
- Purpose: Saves user preferences like the
isMoneyVisible
setting in the MainActivity
.
- Benefit: Provides lightweight storage for simple key-value pairs, ensuring user preferences persist across sessions.
Internal Storage
- Purpose: Stores sensitive account data securely in internal storage.
- Benefit: Ensures that critical user data remains private and inaccessible to external apps.
Preferences DataStore
- Context: Used in
AddTransactionModal
and for the IncludeLocation
button.
- Purpose: Modern replacement for SharedPreferences, offering asynchronous and type-safe data storage.
- Benefit: Efficiently handles structured user preferences with improved performance.
Multi-Threading
Coroutines (Dispatcher=)
- Context: Used in
NotificationsService
.
- Purpose: Executes background tasks efficiently on the appropriate dispatcher thread.
- Benefit: Ensures smooth app performance by preventing the main thread from being blocked.
Worker Threads
- LocationNotificationWorker: Handles location-based notifications in the background.
- LocationBasedOfferService: Fetches and processes location-based offers.
- Benefit: Runs intensive tasks in the background, ensuring the app remains responsive and optimized for user interactions.
Caching
LruCache
- Context: Used in
AddTransactionModal
.
- Purpose: Temporarily stores frequently accessed data to reduce repeated computations or database queries.
- Benefit: Improves performance by keeping critical data in memory.
Static Strings
- Context: Used in the
SearchBar
.
- Purpose: Holds static data like recent searches or predefined queries.
- Benefit: Simplifies and speeds up access to reusable string data.
Picasso
- Purpose: Handles caching and loading of offer images.
- Benefit: Reduces image loading times and network usage by caching downloaded images locally.