Dlaczego potrzebna jest abstrakcja ustawień
Jedno API nad SharedPreferences i NSUserDefaults
Dlaczego potrzebna jest abstrakcja ustawień to bezpłatna lekcja Kotlin Multiplatform Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Multiplatform Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Multiplatform Academy zawiera 4 lekcji w sumie.
Brakująca warstwa przechowywania
Android i iOS mają własne sposoby zapisywania niewielkich wartości. Bez współdzielonej warstwy trzeba byłoby napisać ten kod dwa razy. Naprawmy to. 🔑
Dwa natywne magazyny
Android przechowuje małe dane klucz-wartość w SharedPreferences, a iOS używa NSUserDefaults. Ta sama idea, ale dwa zupełnie różne interfejsy API.
Jeden interfejs dla obu magazynów
Abstrakcja ustawień ukrywa oba natywne magazyny za jednym interfejsem Kotlin, dzięki czemu współdzielony kod wszędzie wywołuje tę samą metodę.
Poznaj Multiplatform Settings
Biblioteka społecznościowa multiplatform-settings zapewnia dokładnie to: jeden typ Settings, korzystający z właściwego natywnego magazynu na każdej platformie.
Dodaj zależność
Dodajesz artefakt multiplatform-settings do commonMain współdzielonego modułu, aby każdy cel mógł z niego korzystać.
commonMain.dependencies {
implementation("com.russhwolf:multiplatform-settings:1.1.1")
}Interfejs Settings
Jego podstawą jest interfejs Settings. Współdzielony kod zależy od tego typu, nigdy bezpośrednio od magazynu platformy.
interface Settings {
fun putString(key: String, value: String)
fun getString(key: String, defaultValue: String): String
}Po co w ogóle abstrakcja
Abstrakcja sprawia, że współdzielona logika jest przenośna. Można zmienić magazyn bazowy lub dodać platformę, a kod wywołujący pozostanie bez zmian.
Idealne rozwiązanie dla małych danych
Settings służy do przechowywania małych wartości: flag, nazwy użytkownika czy wyboru motywu. W przypadku dużych lub relacyjnych danych użyj SQLDelight.
Wstrzykuj, nie twórz
Każda platforma tworzy własną instancję Settings i przekazuje ją do współdzielonego kodu, dzięki czemu commonMain pozostaje wolny od platformowych zależności.
Wywołuj ze współdzielonego kodu
Po wstrzyknięciu współdzielony kod po prostu wywołuje metody Settings. Ta sama linia działa na Androidzie i iOS bez żadnych zmian.
fun saveTheme(settings: Settings, theme: String) {
settings.putString("theme", theme)
}Zaprojektowane z myślą o testowaniu
Ponieważ jest to interfejs, podczas testów można podstawić atrapę Settings działającą w pamięci — bez urządzenia ani emulatora. 🧪
Szybkie sprawdzenie
Upewnijmy się, że cel abstrakcji jest jasny.
Podsumowanie
Dowiedziano się, dlaczego KMP ukrywa natywne magazyny klucz-wartość za jednym interfejsem Settings: rozwiązanie jest przenośne, testowalne i napisane tylko raz. Następnie pora na rzeczywisty odczyt i zapis. 🎉
Ucz się Kotlin dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Dlaczego potrzebna jest abstrakcja ustawień” jest bezpłatna?
Tak — pełny tekst „Dlaczego potrzebna jest abstrakcja ustawień” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Multiplatform Academy, przejdź na CoddyKit PRO. Kurs Kotlin Multiplatform Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Dlaczego potrzebna jest abstrakcja ustawień”?
Jedno API nad SharedPreferences i NSUserDefaults Ćwiczysz Kotlin Multiplatform Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Kotlin Multiplatform Academy?
Nie wymagamy żadnego doświadczenia. Kotlin Multiplatform Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Dlaczego potrzebna jest abstrakcja ustawień”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Multiplatform Academy?
Tak. Każda lekcja Kotlin Multiplatform Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dlaczego potrzebna jest abstrakcja ustawień
- Odczyt i zapis wartości określonych typów
- Wartości domyślne i czyszczenie kluczy
- Bezpieczne przechowywanie tokenu uwierzytelniania