
Језик 🇷🇸 Српски
Документација
Започните
Употреба
Аутентификација
Конфигурација
Додајте коментаре у вашу Android апликацију
Ово је званична Android библиотека за FastComments.
Коментарски видгети FastComments за Android
Репозиторијум
AI агенти за кодирање 
Дајте вашем агенту за кодирање FastComments контекст који му је потребан – виџети, конфигурација, Secure SSO, REST API и SDK‑ови:
npx skills add fastcomments/skills
Ради са Claude Code, Codex, Cursor, Copilot, Gemini и свим осталим агентима које подржава skills CLI.
Функције 
- 🔄 Коментарисање уживо са ажурирањима у реалном времену
- 📱 Нативни Android UI компоненти
- 🧵 Дискусије у нитама са одговорима
- 👤 Безбедна SSO аутентификација
- 👍 Систем гласања са прилагодљивим стиловима
- 🔔 Корисничка обавештења и присуство
- 🔍 Могућности модерације коментара
- 📱 Интеграција друштвеног фида
- ♾️ Пагинација са бесконачним скроловањем
- 🎨 Свеобухватно прилагођавање тема
Инсталација 
Додајте FastComments SDK у вашој апликацији у датотеку build.gradle.kts:
dependencies {
implementation("com.fastcomments:sdk:2.0.0")
}
Уверите се да имате Repsy репозиторијум у вашој пројектној датотеци settings.gradle.kts:
dependencyResolutionManagement {
repositories {
maven {
url = uri("https://repo.repsy.io/mvn/winrid/fastcomments")
}
// other repositories...
}
}
Основна употреба 
1. Додајте FastCommentsView у ваш изглед
<com.fastcomments.sdk.FastCommentsView
android:id="@+id/commentsView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2. Иницијализујте и конфигуришите SDK
// Конфигуришите SDK
val config = CommentWidgetConfig(
"your-tenant-id",
"page-url-id",
"Page Title",
"yourdomain.com",
"Site Name"
)
// Додатне опције конфигурације
config.voteStyle = VoteStyle.UpDown // или VoteStyle.Heart
config.enableInfiniteScrolling = true
config.hasDarkBackground = true // за подршку тамном режиму
// Иницијализујте SDK
val sdk = FastCommentsSDK(config)
// Пронађите View за коментаре у вашем изгледу
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)
// Поставите инстанцу SDK-а за View
commentsView.setSDK(sdk)
// Учитајте коментаре
commentsView.load()
Безбедна SSO аутентификација 
Омогућите сигурну аутентификацију за ваше кориснике:
// Креирајте податке корисника (најбоље на вашем серверу)
val userData = SecureSSOUserData(
"user-id",
"user@example.com",
"User Name",
"https://path-to-avatar.jpg"
)
// Генеришите SSO токен (то треба урадити на серверу!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()
// Додајте у конфигурацију
config.sso = token
Интеграција фида 
Прикажите фид у стилу друштвених мрежа са коментарима:
// Конфигуришите SDK
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenantId = "your-tenant-id";
config.urlId = "page-url-id";
// Иницијализујте Feed SDK
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);
// Подесите приказ фида
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);
// Поставите слушач интеракције
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
@Override
public void onFeedLoaded(List<FeedPost> posts) {
// Фид је успешно учитан
}
@Override
public void onFeedError(String errorMessage) {
// Обрадите грешке
}
@Override
public void onPostSelected(FeedPost post) {
// Корисник је изабрао пост
}
@Override
public void onCommentsRequested(FeedPost post) {
// Прикажите коментаре за пост
CommentsDialog dialog = new CommentsDialog(context, post, feedSDK);
dialog.show();
}
});
// Учитајте фид
feedView.load();
Интеграција живог ћаскања 
Додајте интерфејс за ћаскање у реалном времену у вашу апликацију:
// Add LiveChatView to your layout XML
// <com.fastcomments.sdk.LiveChatView
// android:id="@+id/liveChatView"
// android:layout_width="match_parent"
// android:layout_height="match_parent" />
// Create a configuration for the SDK
val config = CommentWidgetConfig().apply {
tenantId = "your-tenant-id"
urlId = "chat-room-identifier"
pageTitle = "Chat Room Name"
}
LiveChatView.setupLiveChatConfig(config)
// Optional: Add user authentication
val userData = SimpleSSOUserData(
"User Name",
"user@example.com",
"https://path-to-avatar.jpg"
)
val sso = FastCommentsSSO(userData)
config.sso = sso.prepareToSend()
// Initialize the SDK
val sdk = FastCommentsSDK().configure(config)
// Set up the live chat view
val liveChatView = findViewById<LiveChatView>(R.id.liveChatView)
liveChatView.setSDK(sdk)
liveChatView.load()
// Don't forget lifecycle handling
override fun onResume() {
super.onResume()
sdk.refreshLiveEvents()
}
override fun onDestroy() {
super.onDestroy()
sdk.cleanup()
}
Пример пројеката 
Погледајте ове демо имплементације:
- Пример основних коментара
- Сигурна SSO имплементација
- Пример интеграције фида
- Пример живог ћаскања
- Пример дијалога коментара
Опције конфигурације 
SDK пружа многе опције конфигурације преко класе CommentWidgetConfig:
| Опција | Опис |
|---|---|
tenantId | ID вашег FastComments налога |
urlId | ID који представља тренутну страницу |
sso | SSO токен за аутентификацију |
allowAnon | Дозволи анонимно коментарисање |
voteStyle | Стил гласања: UpDown или Heart |
hideAvatars | Сакриј аватаре корисника |
hasDarkBackground | Означава тамни режим |
customCSS | Прилагођени CSS стилови |
enableInfiniteScrolling | Омогући бесконачно скроловање |
readonly | Онемогући коментарисање али прикажи коментаре |
disableVoting | Онемогући гласање |
disableLiveCommenting | Онемогући ажурирања у реалном времену |
Свеобухватно прилагођавање теме 
Сви дугмад и елементи корисничког интерфејса у FastComments SDK-у су прилагодљиви темом. Користите FastCommentsTheme.Builder за потпуну контролу над брендирањем ваше апликације.
Програмирано темење (Препоручено)
val theme = FastCommentsTheme.Builder()
// Акциона дугмад: Пошаљи, дугмад за гласање, мени, дугмад за лајк/дељење
.setActionButtonColor(Color.parseColor("#FF1976D2"))
// Дугмад за одговор: дугмад за одговор на коментаре
.setReplyButtonColor(Color.parseColor("#FF4CAF50"))
// Дугмад за пребацивање: дугмад за приказ/скривање одговора
.setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))
// Дугмад 'Учитај више': дугмад за пагинацију
.setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))
.setPrimaryColor(Color.parseColor("#FF6200EE"))
.setLinkColor(Color.parseColor("#FF1976D2"))
.setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
.build()
// Примени тему
sdk.setTheme(theme)
Брза промена боја
Замените ресурсе боја у вашем colors.xml ради једноставног брендирања:
<!-- У res/values/colors.xml ваше апликације -->
<resources>
<!-- Промените све примарне UI елементе -->
<color name="primary">#FF1976D2</color>
<!-- Или прилагодите специфичне типове дугмади -->
<color name="fastcomments_action_button_color">#FF1976D2</color>
<color name="fastcomments_reply_button_color">#FF4CAF50</color>
<color name="fastcomments_toggle_replies_button_color">#FFFF5722</color>
<color name="fastcomments_load_more_button_text_color">#FF9C27B0</color>
</resources>
Покривеност дугмади у теми
Сва дугмад у SDK-у подржавају теме:
- Дугмад за слање, дугмад за гласање, дугмад менија, дугмад за одговор
- Дугмад за приказ/скривање одговора, дугмад 'Учитај више'
- Дугмад радњи у фиду (лајк, коментар, дељење)
- Дугмад у дијалозима (пошаљи, откажи, сачувај)
- Динамичка дугмад за задатке у постовима фида
За детаљну документацију о темама, погледајте THEMING.md.
Управљање меморијом 
Спречавање цурења меморије
Да бисте спречили цурење меморије при коришћењу FastComments приказа у Activities или Fragments, увек позовите cleanup() када приказ више није потребан:
У Activities:
@Override
protected void onDestroy() {
super.onDestroy();
// Очистите FastComments приказе да бисте спречили цурење меморије
if (feedView != null) {
feedView.cleanup();
}
if (commentsView != null) {
commentsView.cleanup();
}
}
У Fragments:
@Override
public void onDestroyView() {
super.onDestroyView();
// Очистите FastComments приказе када се view фрагмента уништи
if (feedView != null) {
feedView.cleanup();
feedView = null;
}
}
@Override
public void onDestroy() {
super.onDestroy();
// Додатно чишћење када се фрагмент уништи
if (feedSDK != null) {
feedSDK.cleanup();
feedSDK = null;
}
}
При пребацивању фрагмената:
// Пре него што замените или уклоните фрагмент који садржи FastComments приказе
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id/container);
if (currentFragment instanceof YourFragmentWithFeedView) {
((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}
// Then proceed with fragment transaction
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newFragment)
.commit();
Важно: Увек позивајте методе cleanup() да бисте спречили цурење меморије, посебно када:
- Activities се уништавају
- Fragment views се уништавају
- Пребацивање између fragments
- Напуштање екрана са FastComments компонентама
Потребна помоћ?
Ако наиђете на било какве проблеме или имате питања у вези са Android библиотеком, молимо вас:
Како допринети
Допринеси су добродошли! Молимо посетите репозиторијум на GitHub-у за смернице о доприносу.