FastComments.com

FastComments Android Library


Bu, FastComments için resmi Android Kütüphanesidir.

Android için FastComments yorum widget'ları

Depo

GitHub'da görüntüle


Özellikler Internal Link

  • 🔄 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

Gereksinimler Internal Link

  • Android SDK 26+ (Android 8.0 Oreo veya daha yeni)
  • Java 8+

Kurulum Internal Link


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 Internal Link

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 Internal Link

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 Internal Link

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 Internal Link

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 Internal Link


Bu demo uygulamalarını inceleyin:


Yapılandırma Seçenekleri Internal Link

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 Internal Link

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 Internal Link

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.