PremiumCardViews is a powerful extension for creating interactive modal dialogs with cards based on any JSON data. Designed for MIT App Inventor developers, Kodular who want to quickly display catalogs, media content, or lists with a clean and modern UI.
- Key Features:
Universal JSON Parser: Automatically handles any complex structures (nested objects, arrays, items,videos,medialists).
Multimedia Cards: Built-in video player, photo viewer, and support for previews/posters.
Flexible Grid: Ability to switch between a single-column list and a 2-column grid directly inside the dialog.
File Downloads: Built-in support for downloading media files and documents via the system DownloadManager.
Ad Filtering: Automatically hides ad blocks (type: adoryandex_rtb).
- How the
keysParameter Works (Hiding Fields):- The
keysparameter accepts a comma-separated list of keys (e.g.,url, title). - During JSON processing, the extension checks each field key. If a key matches any entry in the string (case-insensitive), that field is completely removed from the card and hidden from the user, leaving the core parsing logic and other data intact.
- The
- Handling Objects and Arrays:
- Objects (JSONObject): Recursively scanned for nested keys and values, flattening them into structured card attributes.
- Arrays (JSONArray): Array items are either joined by line breaks or intelligently split into separate cards (e.g., when multiple media items are present).
Root Array
A standard format where the root element is an array ([…]) containing a set of objects with arbitrary keys. The extension sequentially processes each item.
JSON
[
{
"title": "Card Title 1",
"description": "Text description of the first item",
"photo": "https://example.com/img1.jpg"
},
{
"title": "Card Title 2",
"video": "https://example.com/video.mp4"
}
]`
Wrapped Array
A format where the root element is an object ({…}) containing a data array inside keys like items, videos, media, cards, output, or data.
JSON
{
"status": "success",
"items": [
{
"title": "Catalog Product",
"price": "99$",
"image": "https://example.com/item.jpg"
}
]
}
API Envelope (Wrapped Response)
The extension automatically handles API responses where useful data is wrapped inside a service envelope containing statuses, metadata, or nested objects.
How it works: If the root object contains a data field as a nested object, the parser automatically dives into it. It then scans for keys (items, videos, media, cards, output) or finds the first available JSONArray.
Example structure:
JSON
{
"status": "success",
"code": 200,
"message": "OK",
"data": {
"items": [
{
"title": "Item inside envelope",
"description": "Data successfully extracted from wrapper",
"photo": "https://example.com/image.jpg"
}
]
}
}
Single Object (Flat Card)
If the JSON is a single object without nested lists, the extension automatically recognizes it and forms a single modal card.
JSON
{
"title": "Profile Information",
"bio": "App Developer",
"avatar": "https://example.com/avatar.png"
}
Primitive Array
If the array consists of simple text elements instead of objects, each element is automatically converted into a basic text card.
JSON
[
"First line of text data",
"Second line of text data"
]
com.premiumcardciews.premiumcardviews.aix (31.3 KB)
Created with: FAST
====================================
Paid version
•
Integrated Audio Player: built-in player for listening to music and podcasts directly from cards with a progress SeekBar and play/pause controls.
•
Text & Color Customization: full UI styling — easily change card backgrounds, headers, body text, and button colors, as well as modify button labels (e.g., custom text for “Close” and “Download”).
•
New Blocks & Functions:
CreateCardView(jsonString, keys)— the core function that accepts any complex JSON, parses it into cards, and hides comma-separated keys.CardClicked(title, url)— event triggered when tapping a card; returns the card title and direct media URL.DownloadStarted(url)— event fired when a file download begins via the systemDownloadManager.- Color Properties (
CardBackgroundColor,ButtonColor,TitleTextColor,NormalTextColor) — blocks for full palette control. - •
Pagination (Lazy Loading): loads items in batches of 15 during scrolling to prevent UI lag and OutOfMemoryerrors when handling large JSON arrays. - •
Performance: optimized list rendering and overall stability. - •
Bug Fixes: resolved Android compilation errors and compatibility issues. - •
Improved overall app performance and stability.
•
Fixed compilation errors and critical Android compatibility bugs.
•
Optimized card views and user interface elements.
Live Search: built-in search bar with instant real-time filtering of cards across any text field.
Price: $5.
To purchase, message me in this thread or via private message.





