📖 PrzeglądOverview
ADict to główny obiekt singleton biblioteki, zapewniający dostęp do wszystkich
modułów oraz funkcję inicjalizacji. Wystarczy wywołać ADict.init() w klasie
Application, a wszystkie moduły zostaną automatycznie zainicjalizowane.Just call ADict.init() in your Application class and all modules will be automatically initialized.ADict is the main singleton object of the library, providing access to all modules and the initialization function. Just call ADict.init() in your Application class and all modules will be automatically initialized.
object ADict {
// Moduły Core
val ADS: ADS // Moduł reklam
val Config: Config // Remote Config
val GDPR: GDPR // Zgody użytkownika
val InApp: InApp // In-App Billing
val ReviewTrap // Prośba o ocenę
// Moduły zaangażowania
val Features // Feature flags
val SmartTiming // Inteligentne momenty na reklamy
val Segments // Segmentacja użytkowników
val RatingManager // Zarządzanie ocenami
val Onboarding // System onboardingu
val Triggers // Wyzwalacze zaangażowania
// Moduły pomocnicze
val Analytics // Agregator analityki
val EventBus // System eventów
val DeepLinks // Deep linking
val Paywall // Kreator paywall'i
val Notifications // Powiadomienia lokalne
val Network // Monitor sieci
val Achievements // System osiągnięć
val SecureStorage // Szyfrowane przechowywanie
val Performance // Monitor wydajności
val Feedback // Zbieranie opinii
// Stan
val initPhase: StateFlow<InitPhase> // Stan inicjalizacji
val RC: RemoteConfigRepo? // Skrót do Remote Config
fun init(...) // Główna inicjalizacja
}
🚀 Inicjalizacja
init(context, debuggable, initProviders, providerMediators, initModules, initTimeoutMs, scope)
Główna funkcja inicjalizująca bibliotekę i wszystkie modułyMain function initializing the library and all modules.
| ParametrParameter | TypType | DomyślnieDefault | OpisDescription |
|---|---|---|---|
context | Context | - | Kontekst aplikacjiApplication context |
debuggable | Boolean | - | Tryb debug (logi, testowe reklamy)Debug mode (logs, test ads) |
initProviders | List<String> | [ADMOB] | Providery reklam do initAd providers to init |
providerMediators | Map | {} | Mediatorzy per providerMediators per provider |
initModules | Map<String, Boolean> | ALL_ENABLED | Które moduły włączyćWhich modules to enable |
initTimeoutMs | Long | 12000 | Timeout inicjalizacjiInitialization timeout |
scope | CoroutineScope | Main | Scope dla coroutinesScope for coroutines |
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
ADict.init(
context = this,
debuggable = BuildConfig.DEBUG
)
}
}
ADict.init(
context = this,
debuggable = BuildConfig.DEBUG,
initProviders = listOf(Providers.ADMOB, Providers.HOMEADS),
providerMediators = mapOf(
Providers.ADMOB to listOf("facebook", "unity")
),
initModules = mapOf(
ADict.Modules.ADS to true,
ADict.Modules.SMART_TIMING to true,
ADict.Modules.SEGMENTS to true,
ADict.Modules.ANALYTICS to true,
ADict.Modules.IN_APP to true,
ADict.Modules.NOTIFICATIONS to false, // wyłączony
ADict.Modules.PERFORMANCE to false // wyłączony
),
initTimeoutMs = 15_000L
)
📦 Stałe modułówModule Constants
Obiekt ADict.Modules zawiera stałe nazw modułówcontains module name constants:
| StałaConstant | WartośćValue | OpisDescription |
|---|---|---|
ADS | "ads" | Moduł reklamAds module |
SMART_TIMING | "smart_timing" | Inteligentne momentySmart timing |
SEGMENTS | "segments" | SegmentacjaSegmentation |
RATING_MANAGER | "rating_manager" | Zarządzanie ocenamiRating management |
ONBOARDING | "onboarding" | Onboarding |
TRIGGERS | "triggers" | WyzwalaczeTriggers |
ANALYTICS | "analytics" | AnalitykaAnalytics |
IN_APP | "in_app" | BillingBilling |
EVENT_BUS | "event_bus" | EventBus |
NOTIFICATIONS | "notifications" | PowiadomieniaNotifications |
NETWORK | "network" | Monitor sieciNetwork monitor |
ACHIEVEMENTS | "achievements" | OsiągnięciaAchievements |
SECURE_STORAGE | "secure_storage" | Szyfrowane daneEncrypted data |
PERFORMANCE | "performance" | WydajnośćPerformance |
FEEDBACK | "feedback" | Feedback |
PresetyPresets
ADict.Modules.ALL_ENABLED- Wszystkie moduły włączone (domyślnie)ADict.Modules.ALL_ENABLED- All modules enabled (default)ADict.Modules.ALL_DISABLED- Wszystkie moduły wyłączoneADict.Modules.ALL_DISABLED- All modules disabled
📡 Obserwacja inicjalizacjiObserving Initialization
lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.STARTED) {
ADict.initPhase.collect { phase ->
when (phase) {
is InitPhase.NotStarted -> {
// Jeszcze nie rozpoczęto
}
is InitPhase.InProgress -> {
// Trwa inicjalizacja
showLoadingIndicator()
}
is InitPhase.Done -> {
// Gotowe!
hideLoadingIndicator()
phase.results.forEach { (provider, result) ->
Log.d("ADict", "$provider: success=${result.success}, took=${result.tookMs}ms")
}
}
}
}
}
}