A modern Android application for managing and sharing sticker packs with WhatsApp. Built with Material Design principles and optimized for seamless user experience.
- Multiple Sticker Packs: Browse and manage multiple sticker collections
- WhatsApp Integration: Seamlessly add sticker packs to WhatsApp
- Animated Stickers: Support for animated WebP sticker packs
- Publisher Information: View publisher details, website, and contact information
- Multilingual Support: 50+ language translations
- Optimized Performance: Efficient image loading with Fresco library
- Content Provider: Secure sticker pack distribution via ContentProvider
- Language: Java
- Minimum SDK: Android 5.0 (API 21)
- Target SDK: Android 14 (API 34)
- Build System: Gradle 9.1.1
- Architecture: MVP with AsyncTask for background operations
- AndroidX: AppCompat, RecyclerView, ConstraintLayout
- Fresco: Advanced image loading and caching (v2.5.0)
- Material Design: Material Components library
app/
├── src/main/
│ ├── java/com/example/samplestickerapp/
│ │ ├── EntryActivity.java # App entry point
│ │ ├── StickerPackListActivity.java # Pack list view
│ │ ├── StickerPackDetailsActivity.java # Pack details view
│ │ ├── StickerPackInfoActivity.java # Publisher info
│ │ ├── StickerPack.java # Data model
│ │ ├── Sticker.java # Individual sticker model
│ │ ├── StickerPackLoader.java # Asset loading
│ │ ├── StickerPackValidator.java # Pack validation
│ │ ├── StickerContentProvider.java # Content provider
│ │ └── WhitelistCheck.java # WhatsApp integration
│ ├── assets/
│ │ ├── 1/, 2/, 3/ # Sticker pack folders
│ │ └── contents.json # Pack metadata
│ └── res/
│ ├── layout/ # UI layouts
│ ├── drawable/ # Vector drawables
│ ├── values/ # Strings & resources
│ └── mipmap/ # App icons
- Android Studio (latest version)
- JDK 1.8 or higher
- Android SDK 34
- Clone the repository
- Open in Android Studio
- Update
applicationIdinapp/build.gradle(line 10) - Build and run on emulator or device
The app includes build-time validation:
- Debug builds: Require custom
applicationId(notcom.example.samplestickerapp) - Release builds: Require
applicationIdnot starting withcom.example
To skip validation, add to local.properties:
ignoreApplicationIdCheck=trueSticker packs are organized in assets/ with the following structure:
assets/
├── 1/
│ ├── sticker_001.webp
│ ├── sticker_002.webp
│ └── tray_1.png
├── 2/
│ └── ...
└── contents.json
{
"sticker_packs": [
{
"identifier": "pack_id",
"name": "Pack Name",
"author": "Author Name",
"tray_image_file": "tray_1.png",
"publish_email": "<email>",
"publish_website": "<website>",
"privacy_policy_website": "<url>",
"license_agreement_website": "<url>",
"image_data_version": "1",
"avoid_cache": false,
"animated_sticker_pack": false,
"stickers": [
{
"image_file": "sticker_001.webp",
"emojis": ["😀"]
}
]
}
]
}Entry point that loads sticker packs asynchronously and routes to appropriate view (list or details).
Displays all available sticker packs in a RecyclerView with add-to-WhatsApp functionality.
Shows individual pack details with sticker preview grid and pack information.
Provides secure access to sticker pack data for WhatsApp integration.
Validates sticker pack integrity and WhatsApp compatibility.
The app requires WhatsApp to be installed for full functionality:
com.whatsapp- Standard WhatsAppcom.whatsapp.w4b- WhatsApp Business
./gradlew assembleDebug./gradlew assembleReleaseEnsure applicationId is updated before release builds.
The app supports 50+ languages with translations in res/values-[locale]/strings.xml.
Licensed under the BSD-style license. See LICENSE file for details.
Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved.
Note: This is a sample sticker app template. Customize the sticker packs, publisher information, and branding before publishing to app stores.