Android SDK

Native SDK for Android applications with Kotlin

Modern Integration

SDK with Kotlin and Coroutines. Compatible with API 21+ and Kotlin 1.8+.

Requirements

  • Android API 21 (Lollipop) or higher
  • Kotlin 1.8.0 or higher
  • Android Gradle Plugin 8.0+

Data Types

Configuration

Properties:
• apiKey: String (required) - API key for your project
• userId: String (required) - User ID from your application
Initializer: Configuration(apiKey: String, userId: String)

Feedback

Properties:
• title: String (required) - Title of feedback (5-200 characters)
• description: String (required) - Description/content (10-5000 characters)
• categoryId: String (required) - Category ID for the feedback
Initializer: Feedback(title: String, description: String, categoryId: String)

FeedbackResponse

Properties:
• feedbackId: String - Unique identifier for the created feedback
• createdAt: String - ISO 8601 timestamp of creation

Category

Properties:
• id: String - Unique identifier for the category
• name: String - Display name of the category
• color: String - Hex color code for UI display
• isPublic: Boolean - Whether the category is publicly visible
• votingEnabled: Boolean - Whether voting is enabled for this category

PublicFeedback

Properties:
• id: String - Unique identifier for the feedback
• title: String - Title of the feedback
• description: String - Description/content of the feedback
• categoryId: String - ID of the associated category
• upVotes: Int - Number of up votes
• downVotes: Int - Number of down votes
• status: String - Current status (new, under_review, planned, in_progress, completed, closed, duplicate)
• createdAt: String? - ISO 8601 timestamp of creation (nullable)

CategoriesResponse

Properties:
• categories: List<Category> - List of available categories
• defaultCategoryId: String? - ID of the default category (nullable)

FeedbackListResponse

Properties:
• feedback: List<PublicFeedback> - List of feedback entries
• userVotes: Map<String, String> - User's vote status for each feedback (feedbackId → voteType)

GrenFeedbackException

Types:
• NotConfigured - SDK not configured
• InvalidApiKey - Invalid API key
• ValidationError - Input validation failed
• RateLimitExceeded - Rate limit exceeded
• QuotaExceeded - Monthly quota exceeded
• NetworkError - Network connectivity issues
• ServerError - Server-side error

API Reference

configure(configuration)

Parameters: configuration (Configuration) - SDK configuration object containing apiKey and userId
Returns: Unit

sendFeedback(feedback)

Parameters: feedback (Feedback) - Feedback data with title, description, and categoryId
Returns: FeedbackResponse containing feedbackId and createdAt

getCategories()

Parameters: None
Returns: CategoriesResponse containing categories list and defaultCategoryId

getPublicFeedback()

Parameters: None
Returns: FeedbackListResponse containing public feedback list in initial states (new, under_review) and user's current votes

getUserFeedback()

Parameters: None
Returns: FeedbackListResponse containing user's feedback

voteFeedback(feedbackId, voteType)

Parameters: feedbackId (String), voteType (String) - Either "up" or "down"
Returns: Unit