Act as an Android AI App Security Specialist. Implement secure configurations to protect API keys, prevent misuse, and establish a sustainable pricing model for your application.
Act as an Android AI App Security Specialist. You are responsible for implementing secure configurations to protect API keys, prevent misuse, and establish a sustainable pricing model for your application. Your tasks include: 1. **Backend Proxy Configuration:** - Set up a minimal, secure proxy backend using services like Railway.app, Render.com, Vercel, or Firebase Cloud Functions. - Create a single endpoint to receive user messages and relay them to the AI API: POST/chat. - Ensure the API key is securely stored on the backend and never exposed in the client application. 2. **Android App Updates:** - Remove all API keys from the Android app codebase. - Use Retrofit or Ktor to connect directly to the backend proxy endpoint (e.g., https://albaroka.com/chat). - Ensure no hard-coded keys exist in BuildConfig or code. 3. **Pricing Model Implementation:** - Prefer a subscription model via Google Play over one-time payments for sustainability. - Integrate with Google Play Billing Library (com.android.billingclient:billing:7.0.0). - Manage user quotas and premium memberships from the backend. 4. **Security and Play Compliance:** - Apply strict Proguard rules to obfuscate API calls, keys, and sensitive information. - Ensure compliance with Play Store data policies and testing phases (Internal Testing, Beta). 5. **Configuration Files and Code:** - Abstract API calls within a network package. - Align configurations with MainActivity or ViewModel structures. - Optimize Gradle and Proguard rule files for enhanced security and performance. This setup ensures the privacy of your API key, prevents misuse, supports a subscription-based revenue model, and adheres to Google Play's highest standards. Ensure your backend proxy is scalable and reliable.
Guide for building an e-commerce application tailored to the Bangladeshi market, with features similar to Daraz, including product listings, secure transactions, and user reviews.
1Act as an E-commerce App Developer. You are tasked with creating an application similar to Daraz tailored for the Bangladeshi market.23You will:...+17 more lines
Opinionated conventions for building modern iOS apps with SwiftUI and Swift Concurrency.
# SwiftUI iOS App taste of a senior iOS developer - Build new screens in SwiftUI and drop to UIKit only through UIViewRepresentable for gaps. Confidence: 0.85 - Use the Observation framework (@Observable) for view models on iOS 17+, not ObservableObject with @Published. Confidence: 0.85 - Keep views small and composable; extract a subview once a body passes about 50 lines. Confidence: 0.80 - Own state with @State at the lowest view that needs it and pass bindings down instead of global singletons. Confidence: 0.85 - Use Swift Concurrency (async/await, actors, structured tasks) everywhere; no new completion-handler or Combine-based APIs. Confidence: 0.85 - Start async work with the .task modifier so it is cancelled automatically when the view disappears. Confidence: 0.90 - Turn on strict concurrency checking (Swift 6 language mode) and fix Sendable warnings early. Confidence: 0.80 - Drive navigation with NavigationStack and a typed path, routed through a small coordinator or router object. Confidence: 0.80 - Inject dependencies through initializers or the Environment so previews and tests can swap in fakes. Confidence: 0.85 - Split features into local Swift packages managed by Swift Package Manager; avoid CocoaPods for new projects. Confidence: 0.85 - Give every view a #Preview with realistic sample data, including empty, loading and error states. Confidence: 0.85 - Model loading state as an enum (idle, loading, loaded, failed) rather than several booleans. Confidence: 0.90 - Use SwiftData for simple local persistence and Core Data or GRDB when you need fine-grained migrations or performance. Confidence: 0.65 - Support Dynamic Type, Dark Mode and VoiceOver labels from the first commit. Confidence: 0.90 - Use SF Symbols and semantic system colors before adding custom assets. Confidence: 0.80 - Localize with String Catalogs from day one, even for a single-language launch. Confidence: 0.75 - Unit test view models and services with Swift Testing; keep UI tests to a few critical flows. Confidence: 0.80 - Profile with Instruments before optimizing and watch for unnecessary view body recomputation. Confidence: 0.75 - Never block the main thread with networking, decoding or disk I/O. Confidence: 0.95 - Store secrets and tokens in the Keychain, never in UserDefaults or the bundle. Confidence: 0.95 - Ship through Xcode Cloud or fastlane with automatic build numbers and TestFlight for every merge to main. Confidence: 0.75 - Use a structured Logger (os.Logger) with categories instead of print statements. Confidence: 0.85
Opinionated conventions for building modern Android apps with Jetpack Compose and Kotlin.
# Jetpack Compose Android App taste of an Android engineer - Build new screens entirely in Jetpack Compose and keep Views only behind interop for legacy parts. Confidence: 0.90 - Write the whole app in Kotlin with coroutines and Flow; no new RxJava or Java code. Confidence: 0.90 - Follow unidirectional data flow: the ViewModel exposes one immutable UiState as StateFlow and receives events. Confidence: 0.90 - Collect flows in composables with collectAsStateWithLifecycle, not plain collectAsState. Confidence: 0.85 - Hoist state out of composables so most UI functions are stateless and previewable. Confidence: 0.90 - Pass a Modifier parameter as the first optional argument of every reusable composable. Confidence: 0.85 - Keep side effects in LaunchedEffect, DisposableEffect or the ViewModel, never directly in the composable body. Confidence: 0.90 - Mark UI models immutable and use stable collections so recomposition stays cheap. Confidence: 0.75 - Use Hilt for dependency injection and avoid service locators or global singletons. Confidence: 0.80 - Use the repository pattern with Room for local data and Retrofit or Ktor for the network, offline first where it matters. Confidence: 0.80 - Use type-safe Navigation Compose routes instead of string-built destinations. Confidence: 0.80 - Modularize by feature with a shared core module once the app grows past a handful of screens. Confidence: 0.70 - Manage dependencies with a Gradle version catalog and convention plugins instead of copy-pasted build files. Confidence: 0.85 - Use Material 3 with a custom theme and dynamic color, and never hardcode colors or text sizes in screens. Confidence: 0.85 - Write @Preview functions for every screen state: loading, empty, error, content, dark mode and large font. Confidence: 0.80 - Test ViewModels with Turbine and kotlinx-coroutines-test, and UI with the Compose testing APIs. Confidence: 0.85 - Add contentDescription or semantics to every meaningful image and icon button for TalkBack. Confidence: 0.90 - Use WorkManager for deferrable background work and never keep long tasks alive in a ViewModel. Confidence: 0.85 - Enable R8 with tested keep rules and ship Baseline Profiles for faster startup. Confidence: 0.80 - Run ktlint or detekt and Android Lint in CI and treat new warnings as errors. Confidence: 0.75 - Keep strings in resources from day one so localization never requires a refactor. Confidence: 0.85