
Dil 🇹🇷 Türkçe
Dokümantasyon
Başlarken
Kullanım
Kimlik Doğrulama
Yapılandırma
FastComments Android Library
Bu, FastComments için resmi Android Kütüphanesidir.
Android için FastComments yorum widget'ları
Depo
Özellikler 
- 🔄 Gerçek zamanlı güncellemelerle canlı yorum yapma
- 📱 Yerel Android UI bileşenleri
- 🧵 Yanıtlarla dizili tartışmalar
- 👤 Güvenli SSO kimlik doğrulaması
- 👍 Özelleştirilebilir stillere sahip oylama sistemi
- 🔔 Kullanıcı bildirimleri ve çevrimiçi durumu
- 🔍 Yorum denetleme özellikleri
- 📱 Sosyal akış entegrasyonu
- ♾️ Sonsuz kaydırmalı sayfalandırma
- 🎨 Kapsamlı tema özelleştirmesi
Kurulum 
Uygulamanızın build.gradle.kts dosyasına FastComments SDK'sını ekleyin:
dependencies {
implementation("com.fastcomments:sdk:0.0.1")
}
Projenizin settings.gradle.kts dosyasında Repsy deposunun bulunduğundan emin olun:
dependencyResolutionManagement {
repositories {
maven {
url = uri("https://repo.repsy.io/mvn/winrid/fastcomments")
}
// diğer depolar...
}
}
Temel Kullanım 
1. Düzeninize FastCommentsView ekleyin
<com.fastcomments.sdk.FastCommentsView
android:id="@+id/commentsView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2. SDK'yı başlatın ve yapılandırın
// SDK'yı yapılandırın
val config = CommentWidgetConfig(
"your-tenant-id",
"page-url-id",
"Page Title",
"yourdomain.com",
"Site Name"
)
// Ek yapılandırma seçenekleri
config.voteStyle = VoteStyle.UpDown // veya VoteStyle.Heart
config.enableInfiniteScrolling = true
config.hasDarkBackground = true // koyu mod desteği için
// SDK'yı başlatın
val sdk = FastCommentsSDK(config)
// Düzeninizdeki yorumlar görünümünü bulun
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)
// Görünüm için SDK örneğini ayarlayın
commentsView.setSDK(sdk)
// Yorumları yükleyin
commentsView.load()
Güvenli SSO Kimlik Doğrulama 
Kullanıcılarınız için güvenli kimlik doğrulaması uygulayın:
// Kullanıcı verisini oluşturun (tercihen sunucunuzda)
val userData = SecureSSOUserData(
"user-id",
"user@example.com",
"User Name",
"https://path-to-avatar.jpg"
)
// SSO jetonu oluşturun (sunucu tarafında yapılmalıdır!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()
// Yapılandırmaya ekle
config.sso = token
Akış Entegrasyonu 
Yorumlarla birlikte sosyal medya tarzı bir akışı görüntüleyin:
// SDK'yı yapılandır
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenantId = "your-tenant-id";
config.urlId = "page-url-id";
// Feed SDK'sını başlat
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);
// Akış görünümünü ayarla
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);
// Etkileşim dinleyicisini ayarla
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
@Override
public void onFeedLoaded(List<FeedPost> posts) {
// Akış başarıyla yüklendi
}
@Override
public void onFeedError(String errorMessage) {
// Hataları işle
}
@Override
public void onPostSelected(FeedPost post) {
// Kullanıcı bir gönderi seçti
}
@Override
public void onCommentsRequested(FeedPost post) {
// Gönderi için yorumları göster
CommentsDialog dialog = new CommentsDialog(context, post, feedSDK);
dialog.show();
}
});
// Akışı yükle
feedView.load();
Canlı Sohbet Entegrasyonu 
Uygulamanıza gerçek zamanlı bir sohbet arayüzü ekleyin:
// Düzen XML'inize LiveChatView ekleyin
// <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()
// Yaşam döngüsü işlemlerini unutmayın
override fun onResume() {
super.onResume()
sdk.refreshLiveEvents()
}
override fun onDestroy() {
super.onDestroy()
sdk.cleanup()
}
Örnek Projeler 
Bu demo uygulamalarını inceleyin:
- Temel Yorumlar Örneği
- Güvenli SSO Uygulaması
- Besleme Entegrasyonu Örneği
- Canlı Sohbet Örneği
- Yorumlar Diyaloğu Örneği
Yapılandırma Seçenekleri 
SDK, CommentWidgetConfig sınıfı aracılığıyla birçok yapılandırma seçeneği sunar:
| Option | Description |
|---|---|
tenantId |
FastComments hesap kimliğiniz |
urlId |
Mevcut sayfayı temsil eden ID |
sso |
Kimlik doğrulama için SSO belirteci |
allowAnon |
Anonim yorumlara izin ver |
voteStyle |
UpDown veya Heart oylama stili |
hideAvatars |
Kullanıcı avatarlarını gizle |
hasDarkBackground |
Karanlık modu gösterir |
customCSS |
Özel CSS stilleri |
enableInfiniteScrolling |
Sonsuz kaydırma sayfalandırmasını etkinleştir |
readonly |
Yorum yapmayı devre dışı bırakır ancak yorumları gösterir |
disableVoting |
Oy verme işlevini devre dışı bırakır |
disableLiveCommenting |
Gerçek zamanlı güncellemeleri devre dışı bırakır |
| --- |
Kapsamlı Tema Özelleştirme 
FastComments SDK'deki tüm düğmeler ve kullanıcı arayüzü öğeleri temalandırılabilir. Uygulamanızın markalaması üzerinde tam kontrol için FastCommentsTheme.Builder kullanın.
Programatik Temalandırma (Önerilir)
val theme = FastCommentsTheme.Builder()
// Eylem düğmeleri: Gönder, oy, menü, beğen/paylaş düğmeleri
.setActionButtonColor(Color.parseColor("#FF1976D2"))
// Yanıt düğmeleri: Yorum yanıt düğmeleri
.setReplyButtonColor(Color.parseColor("#FF4CAF50"))
// Aç/Kapa düğmeleri: Yanıtları göster/gizle düğmeleri
.setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))
// Daha fazla yükle düğmeleri: Sayfalandırma düğmeleri
.setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))
.setPrimaryColor(Color.parseColor("#FF6200EE"))
.setLinkColor(Color.parseColor("#FF1976D2"))
.setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
.build()
// Temayı uygula
sdk.setTheme(theme)
Hızlı Renk Geçersiz Kılma
Override color resources in your colors.xml for simple branding:
<!-- Uygulamanızın res/values/colors.xml dosyasında -->
<resources>
<!-- Tüm birincil kullanıcı arayüzü öğelerini değiştirin -->
<color name="primary">#FF1976D2</color>
<!-- Veya belirli düğme türlerini özelleştirin -->
<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>
Temalandırılmış Düğme Kapsamı
SDK'deki her düğme temalandırılabilir:
- Gönder düğmeleri, oy düğmeleri, menü düğmeleri, yanıt düğmeleri
- Yanıtları göster/gizle düğmeleri, daha fazla yükle düğmeleri
- Akış eylem düğmeleri (beğen, yorum, paylaş)
- Diyalog düğmeleri (gönder, iptal, kaydet)
- Akış gönderilerindeki dinamik görev düğmeleri
Detaylı temalandırma dokümantasyonu için THEMING.md dosyasına bakın.
Bellek Yönetimi 
Bellek Sızıntılarını Önleme
Activity'lerde veya Fragment'larda FastComments görünümlerini kullanırken bellek sızıntılarını önlemek için, görünüm artık ihtiyaç kalmadığında her zaman cleanup() çağırın:
Activity'lerde:
@Override
protected void onDestroy() {
super.onDestroy();
// Bellek sızıntılarını önlemek için FastComments görünümlerini temizleyin
if (feedView != null) {
feedView.cleanup();
}
if (commentsView != null) {
commentsView.cleanup();
}
}
Fragment'larda:
@Override
public void onDestroyView() {
super.onDestroyView();
// Fragment görünümü yok edildiğinde FastComments görünümlerini temizleyin
if (feedView != null) {
feedView.cleanup();
feedView = null;
}
}
@Override
public void onDestroy() {
super.onDestroy();
// Fragment yok edildiğinde ek temizleme
if (feedSDK != null) {
feedSDK.cleanup();
feedSDK = null;
}
}
Fragment'ler Arasında Geçiş Yaparken:
// FastComments görünümleri içeren bir fragment'i değiştirmeden veya kaldırmadan önce
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}
// Ardından fragment işlemiyle devam edin
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newFragment)
.commit();
Önemli: Bellek sızıntılarını önlemek için her zaman cleanup() metodlarını çağırın, özellikle:
- Activity'ler yok edildiğinde
- Fragment görünümleri yok edildiğinde
- Fragment'ler arasında geçiş yapıldığında
- FastComments bileşenleri içeren ekranlardan ayrıldığınızda
Yardıma mı ihtiyacınız var?
Android Kütüphanesi ile ilgili herhangi bir sorunla karşılaşırsanız veya sorularınız varsa, lütfen:
Katkıda Bulunma
Katkılar memnuniyetle karşılanır! Katkı yönergeleri için lütfen GitHub deposunu ziyaret edin.