├── .gitignore ├── 01-introduction ├── assets │ └── .keep └── projects │ └── final │ ├── .gitignore │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── findtime │ │ │ └── android │ │ │ ├── MainActivity.kt │ │ │ └── MyApplicationTheme.kt │ │ └── res │ │ └── values │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ └── project.pbxproj │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── ContentView.swift │ │ ├── Info.plist │ │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── findtime │ │ └── Platform.android.kt │ ├── commonMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── findtime │ │ ├── Greeting.kt │ │ └── Platform.kt │ └── iosMain │ └── kotlin │ └── com │ └── kodeco │ └── findtime │ └── Platform.ios.kt ├── 02-getting-started ├── assets │ └── .keep └── projects │ ├── challenge │ └── ContentView.swift │ ├── final │ ├── .gitignore │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── findtime │ │ │ │ └── android │ │ │ │ ├── MainActivity.kt │ │ │ │ └── MyApplicationTheme.kt │ │ │ └── res │ │ │ └── values │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ └── project.pbxproj │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── ContentView.swift │ │ │ ├── Info.plist │ │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ └── commonMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── findtime │ │ ├── TimeZoneHelper.kt │ │ └── TimeZoneHelperImpl.kt │ └── starter │ ├── .gitignore │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── findtime │ │ │ └── android │ │ │ ├── MainActivity.kt │ │ │ └── MyApplicationTheme.kt │ │ └── res │ │ └── values │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ └── project.pbxproj │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── ContentView.swift │ │ ├── Info.plist │ │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── findtime │ │ └── Platform.android.kt │ ├── commonMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── findtime │ │ ├── Greeting.kt │ │ └── Platform.kt │ └── iosMain │ └── kotlin │ └── com │ └── kodeco │ └── findtime │ └── Platform.ios.kt ├── 03-developing-ui-android-jetpack-compose ├── assets │ └── .keep └── projects │ ├── files │ ├── AddTimezoneDialog.kt │ ├── AnimatedSwipeDismiss.kt │ ├── MeetingDialog.kt │ └── NumberPicker.kt │ ├── final │ ├── .gitignore │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── findtime │ │ │ │ └── android │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MyApplicationTheme.kt │ │ │ │ └── ui │ │ │ │ ├── AddTimezoneDialog.kt │ │ │ │ ├── AnimatedSwipeDismiss.kt │ │ │ │ ├── FindMeetingScreen.kt │ │ │ │ ├── LocalTimeCard.kt │ │ │ │ ├── MainView.kt │ │ │ │ ├── MeetingDialog.kt │ │ │ │ ├── NumberPicker.kt │ │ │ │ ├── NumberTimeCard.kt │ │ │ │ ├── TimeCard.kt │ │ │ │ ├── TimeZoneScreen.kt │ │ │ │ └── Types.kt │ │ │ └── res │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ └── project.pbxproj │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── ContentView.swift │ │ │ ├── Info.plist │ │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ └── commonMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── findtime │ │ ├── TimeZoneHelper.kt │ │ └── TimeZoneHelperImpl.kt │ └── starter │ ├── .gitignore │ ├── .kotlin │ └── metadata │ │ └── kotlinTransformedMetadataLibraries │ │ ├── io.github.aakira-napier-2.6.1-commonMain-ByPc-A.klib │ │ ├── io.github.aakira-napier-2.6.1-darwinMain-yhJCHg.klib │ │ ├── org.jetbrains.kotlin-kotlin-stdlib-2.1.0-commonMain-ITmP6A.klib │ │ ├── org.jetbrains.kotlin-kotlin-test-2.1.0-annotationsCommonMain-D3q3YQ.klib │ │ ├── org.jetbrains.kotlin-kotlin-test-2.1.0-assertionsCommonMain-D3q3YQ.klib │ │ ├── org.jetbrains.kotlinx-kotlinx-datetime-0.6.1-commonMain-ilTmRA.klib │ │ ├── org.jetbrains.kotlinx-kotlinx-datetime-0.6.1-darwinMain-O4UcJA.klib │ │ ├── org.jetbrains.kotlinx-kotlinx-datetime-0.6.1-nativeMain-ilTmRA.klib │ │ ├── org.jetbrains.kotlinx-kotlinx-datetime-0.6.1-tzdbOnFilesystemMain-ilTmRA.klib │ │ ├── org.jetbrains.kotlinx-kotlinx-datetime-0.6.1-tzfileMain-ilTmRA.klib │ │ ├── org.jetbrains.kotlinx-kotlinx-serialization-core-1.6.2-commonMain-0z2eOA.klib │ │ └── org.jetbrains.kotlinx-kotlinx-serialization-core-1.6.2-nativeMain-0z2eOA.klib │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── findtime │ │ │ └── android │ │ │ ├── MainActivity.kt │ │ │ └── MyApplicationTheme.kt │ │ └── res │ │ └── values │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ └── project.pbxproj │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── ContentView.swift │ │ ├── Info.plist │ │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ └── commonMain │ └── kotlin │ └── com │ └── kodeco │ └── findtime │ ├── TimeZoneHelper.kt │ └── TimeZoneHelperImpl.kt ├── 04-developing-ui-ios-swiftui ├── assets │ └── .keep ├── files │ ├── CardModifier.swift │ ├── ListModifier.swift │ ├── NumberTimeCard.swift │ ├── PresentationSettings.swift │ ├── Searchbar.swift │ ├── TimeCard.swift │ ├── TimezoneDialog.swift │ ├── TimezoneItems.swift │ └── Utils.swift └── projects │ ├── final │ ├── .gitignore │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── findtime │ │ │ │ └── android │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MyApplicationTheme.kt │ │ │ │ └── ui │ │ │ │ ├── AddTimezoneDialog.kt │ │ │ │ ├── AnimatedSwipeDismiss.kt │ │ │ │ ├── FindMeetingScreen.kt │ │ │ │ ├── LocalTimeCard.kt │ │ │ │ ├── MainView.kt │ │ │ │ ├── MeetingDialog.kt │ │ │ │ ├── NumberPicker.kt │ │ │ │ ├── NumberTimeCard.kt │ │ │ │ ├── TimeCard.kt │ │ │ │ ├── TimeZoneScreen.kt │ │ │ │ └── Types.kt │ │ │ └── res │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ └── project.pbxproj │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── CardModifier.swift │ │ │ ├── ContentView.swift │ │ │ ├── FindMeeting.swift │ │ │ ├── HourSheet.swift │ │ │ ├── Info.plist │ │ │ ├── ListModifier.swift │ │ │ ├── NumberTimeCard.swift │ │ │ ├── PresentationSettings.swift │ │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ │ ├── Searchbar.swift │ │ │ ├── TimeCard.swift │ │ │ ├── TimezoneApp.swift │ │ │ ├── TimezoneDialog.swift │ │ │ ├── TimezoneItems.swift │ │ │ ├── TimezoneView.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ └── commonMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── findtime │ │ ├── TimeZoneHelper.kt │ │ └── TimeZoneHelperImpl.kt │ └── starter │ ├── .gitignore │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── findtime │ │ │ └── android │ │ │ ├── MainActivity.kt │ │ │ ├── MyApplicationTheme.kt │ │ │ └── ui │ │ │ ├── AddTimezoneDialog.kt │ │ │ ├── AnimatedSwipeDismiss.kt │ │ │ ├── FindMeetingScreen.kt │ │ │ ├── LocalTimeCard.kt │ │ │ ├── MainView.kt │ │ │ ├── MeetingDialog.kt │ │ │ ├── NumberPicker.kt │ │ │ ├── NumberTimeCard.kt │ │ │ ├── TimeCard.kt │ │ │ ├── TimeZoneScreen.kt │ │ │ └── Types.kt │ │ └── res │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ └── project.pbxproj │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── ContentView.swift │ │ ├── Info.plist │ │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ └── commonMain │ └── kotlin │ └── com │ └── kodeco │ └── findtime │ ├── TimeZoneHelper.kt │ └── TimeZoneHelperImpl.kt ├── 05-developing-ui-compose-desktop ├── assets │ └── .keep └── projects │ ├── final │ ├── .gitignore │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── findtime │ │ │ │ └── android │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktop │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── Main.kt │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── CardModifier.swift │ │ │ ├── ContentView.swift │ │ │ ├── FindMeeting.swift │ │ │ ├── HourSheet.swift │ │ │ ├── Info.plist │ │ │ ├── ListModifier.swift │ │ │ ├── NumberTimeCard.swift │ │ │ ├── PresentationSettings.swift │ │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ │ ├── Searchbar.swift │ │ │ ├── TimeCard.swift │ │ │ ├── TimezoneApp.swift │ │ │ ├── TimezoneDialog.swift │ │ │ ├── TimezoneItems.swift │ │ │ ├── TimezoneView.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-ui │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── compose │ │ │ │ └── ui │ │ │ │ ├── AddTimeDialogWrapper.kt │ │ │ │ └── MeetingDialogWrapper.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── compose │ │ │ │ └── ui │ │ │ │ ├── AddTimezoneDialog.kt │ │ │ │ ├── AnimatedSwipeDismiss.kt │ │ │ │ ├── FindMeetingScreen.kt │ │ │ │ ├── LocalTimeCard.kt │ │ │ │ ├── MainView.kt │ │ │ │ ├── MeetingDialog.kt │ │ │ │ ├── MyApplicationTheme.kt │ │ │ │ ├── NumberPicker.kt │ │ │ │ ├── NumberTimeCard.kt │ │ │ │ ├── TimeCard.kt │ │ │ │ ├── TimeZoneScreen.kt │ │ │ │ └── Types.kt │ │ │ └── desktopMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── compose │ │ │ └── ui │ │ │ ├── AddTimeDialogWrapper.kt │ │ │ └── MeetingDialogWrapper.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ └── commonMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── findtime │ │ ├── TimeZoneHelper.kt │ │ └── TimeZoneHelperImpl.kt │ └── starter │ ├── .gitignore │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── findtime │ │ │ └── android │ │ │ ├── MainActivity.kt │ │ │ ├── MyApplicationTheme.kt │ │ │ └── ui │ │ │ ├── AddTimezoneDialog.kt │ │ │ ├── AnimatedSwipeDismiss.kt │ │ │ ├── FindMeetingScreen.kt │ │ │ ├── LocalTimeCard.kt │ │ │ ├── MainView.kt │ │ │ ├── MeetingDialog.kt │ │ │ ├── NumberPicker.kt │ │ │ ├── NumberTimeCard.kt │ │ │ ├── TimeCard.kt │ │ │ ├── TimeZoneScreen.kt │ │ │ └── Types.kt │ │ └── res │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── CardModifier.swift │ │ ├── ContentView.swift │ │ ├── FindMeeting.swift │ │ ├── HourSheet.swift │ │ ├── Info.plist │ │ ├── ListModifier.swift │ │ ├── NumberTimeCard.swift │ │ ├── PresentationSettings.swift │ │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ │ ├── Searchbar.swift │ │ ├── TimeCard.swift │ │ ├── TimezoneApp.swift │ │ ├── TimezoneDialog.swift │ │ ├── TimezoneItems.swift │ │ ├── TimezoneView.swift │ │ └── Utils.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ └── commonMain │ └── kotlin │ └── com │ └── kodeco │ └── findtime │ ├── TimeZoneHelper.kt │ └── TimeZoneHelperImpl.kt ├── 06-connect-to-platform-specific-apis ├── assets │ └── .keep └── projects │ ├── challenge │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── codeStyles │ │ │ ├── Project.xml │ │ │ └── codeStyleConfig.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ ├── deploymentTargetDropDown.xml │ │ └── kotlinc.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── desktopMain │ │ │ ├── kotlin │ │ │ ├── Main.kt │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Supporting Files │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ ├── Contents.json │ │ │ │ └── launch-assets │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── White.svg │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ ├── About │ │ │ │ ├── AboutListView.swift │ │ │ │ └── AboutView.swift │ │ │ ├── ContentView.swift │ │ │ └── Reminders │ │ │ │ └── RemindersView.swift │ │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Logger.kt │ │ │ └── Platform.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Logger.kt │ │ │ ├── Platform.kt │ │ │ └── presentation │ │ │ └── Screen.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Logger.kt │ │ │ └── Platform.kt │ │ └── iosMain │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Logger.kt │ │ └── Platform.kt │ ├── final │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── codeStyles │ │ │ ├── Project.xml │ │ │ └── codeStyleConfig.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ ├── deploymentTargetDropDown.xml │ │ ├── kotlinc.xml │ │ └── migrations.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── desktopMain │ │ │ ├── kotlin │ │ │ ├── Main.kt │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Supporting Files │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ ├── Contents.json │ │ │ │ └── launch-assets │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── White.svg │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ ├── About │ │ │ │ ├── AboutListView.swift │ │ │ │ └── AboutView.swift │ │ │ ├── ContentView.swift │ │ │ └── Reminders │ │ │ │ └── RemindersView.swift │ │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── Platform.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ └── presentation │ │ │ └── Screen.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── Platform.kt │ │ └── iosMain │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── Platform.kt │ └── starter │ ├── .gitignore │ ├── .idea │ ├── .gitignore │ ├── codeStyles │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── copyright │ │ └── kodeco.xml │ ├── deploymentTargetDropDown.xml │ ├── inspectionProfiles │ │ └── Project_Default.xml │ ├── kotlinc.xml │ └── migrations.xml │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── androidMain │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── kotlin │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── android │ │ │ ├── OrganizeApp.kt │ │ │ └── ui │ │ │ ├── about │ │ │ └── AboutView.kt │ │ │ ├── reminders │ │ │ └── RemindersView.kt │ │ │ ├── root │ │ │ ├── AppNavHost.kt │ │ │ ├── AppScaffold.kt │ │ │ └── MainActivity.kt │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-mdpi │ │ └── splash_icon.png │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ └── desktopMain │ │ ├── kotlin │ │ ├── Main.kt │ │ └── ui │ │ │ ├── about │ │ │ └── AboutView.kt │ │ │ ├── reminders │ │ │ └── RemindersView.kt │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── resources │ │ ├── linux-icon.png │ │ ├── macos-icon.icns │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Supporting Files │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ └── LaunchScreen.storyboard │ │ ├── UI │ │ ├── About │ │ │ └── AboutView.swift │ │ ├── ContentView.swift │ │ └── Reminders │ │ │ └── RemindersView.swift │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── Platform.kt │ ├── commonMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ └── presentation │ │ └── Screen.kt │ ├── desktopMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── Platform.kt │ └── iosMain │ └── kotlin │ └── com │ └── yourcompany │ └── organize │ └── Platform.kt ├── 07-app-architecture ├── assets │ └── .keep └── projects │ ├── challenge │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── codeStyles │ │ │ └── Project.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ └── kotlinc.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── desktopMain │ │ │ ├── kotlin │ │ │ ├── Main.kt │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ ├── AboutView.kt │ │ │ │ └── AboutWindow.kt │ │ │ │ ├── reminders │ │ │ │ ├── RemindersView.kt │ │ │ │ └── RemindersWindow.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Supporting Files │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ ├── Contents.json │ │ │ │ └── launch-assets │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── White.svg │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ ├── About │ │ │ │ ├── AboutListView.swift │ │ │ │ └── AboutView.swift │ │ │ ├── ContentView.swift │ │ │ └── Reminders │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ ├── ReminderItem.swift │ │ │ │ ├── RemindersView.swift │ │ │ │ └── RemindersViewModelWrapper.swift │ │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── data │ │ │ └── RemindersRepository.kt │ │ │ ├── domain │ │ │ ├── Reminder.kt │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ ├── AboutViewModel.kt │ │ │ ├── BaseViewModel.kt │ │ │ ├── RemindersViewModel.kt │ │ │ └── Screen.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ └── iosMain │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ ├── final │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── codeStyles │ │ │ ├── Project.xml │ │ │ └── codeStyleConfig.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ ├── deploymentTargetDropDown.xml │ │ └── kotlinc.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── desktopMain │ │ │ ├── kotlin │ │ │ ├── Main.kt │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Supporting Files │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ ├── Contents.json │ │ │ │ └── launch-assets │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── White.svg │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ ├── About │ │ │ │ ├── AboutListView.swift │ │ │ │ └── AboutView.swift │ │ │ ├── ContentView.swift │ │ │ └── Reminders │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ ├── ReminderItem.swift │ │ │ │ ├── RemindersView.swift │ │ │ │ └── RemindersViewModelWrapper.swift │ │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── data │ │ │ └── RemindersRepository.kt │ │ │ ├── domain │ │ │ ├── Reminder.kt │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ ├── AboutViewModel.kt │ │ │ ├── BaseViewModel.kt │ │ │ ├── RemindersViewModel.kt │ │ │ └── Screen.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ └── iosMain │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ └── starter │ ├── .gitignore │ ├── .idea │ ├── .gitignore │ ├── codeStyles │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── copyright │ │ └── kodeco.xml │ ├── deploymentTargetDropDown.xml │ └── kotlinc.xml │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── androidMain │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── kotlin │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── android │ │ │ ├── OrganizeApp.kt │ │ │ └── ui │ │ │ ├── about │ │ │ └── AboutView.kt │ │ │ ├── reminders │ │ │ └── RemindersView.kt │ │ │ ├── root │ │ │ ├── AppNavHost.kt │ │ │ ├── AppScaffold.kt │ │ │ └── MainActivity.kt │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-mdpi │ │ └── splash_icon.png │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ └── desktopMain │ │ ├── kotlin │ │ ├── Main.kt │ │ └── ui │ │ │ ├── about │ │ │ └── AboutView.kt │ │ │ ├── reminders │ │ │ └── RemindersView.kt │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── resources │ │ ├── linux-icon.png │ │ ├── macos-icon.icns │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ ├── IDETemplateMacros.plist │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Supporting Files │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ └── LaunchScreen.storyboard │ │ ├── UI │ │ ├── About │ │ │ ├── AboutListView.swift │ │ │ └── AboutView.swift │ │ ├── ContentView.swift │ │ └── Reminders │ │ │ ├── NewReminderTextField.swift │ │ │ ├── ReminderItem.swift │ │ │ └── RemindersView.swift │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ └── domain │ │ └── UUID.kt │ ├── commonMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── Screen.kt │ ├── desktopMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ └── domain │ │ └── UUID.kt │ └── iosMain │ └── kotlin │ └── com │ └── yourcompany │ └── organize │ ├── Platform.kt │ └── domain │ └── UUID.kt ├── 08-testing ├── assets │ └── .keep └── projects │ ├── challenge │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── codeStyles │ │ │ ├── Project.xml │ │ │ └── codeStyleConfig.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ └── kotlinc.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidInstrumentedTest │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ └── AppUITest.kt │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── desktopMain │ │ │ ├── kotlin │ │ │ │ ├── Main.kt │ │ │ │ └── ui │ │ │ │ │ ├── about │ │ │ │ │ └── AboutView.kt │ │ │ │ │ ├── reminders │ │ │ │ │ └── RemindersView.kt │ │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ │ ├── linux-icon.png │ │ │ │ ├── macos-icon.icns │ │ │ │ └── windows-icon.ico │ │ │ └── desktopTest │ │ │ └── kotlin │ │ │ └── AppUITest.kt │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ ├── iosApp │ │ │ ├── Supporting Files │ │ │ │ ├── Assets.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── launch-assets │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── White.svg │ │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ │ ├── About │ │ │ │ │ ├── AboutListView.swift │ │ │ │ │ └── AboutView.swift │ │ │ │ ├── ContentView.swift │ │ │ │ └── Reminders │ │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ │ ├── ReminderItem.swift │ │ │ │ │ ├── RemindersView.swift │ │ │ │ │ └── RemindersViewModelWrapper.swift │ │ │ └── iOSApp.swift │ │ └── iosAppUITests │ │ │ └── iosAppUITests.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── androidUnitTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── data │ │ │ └── RemindersRepository.kt │ │ │ ├── domain │ │ │ ├── Reminder.kt │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ ├── AboutViewModel.kt │ │ │ ├── BaseViewModel.kt │ │ │ ├── RemindersViewModel.kt │ │ │ └── Screen.kt │ │ ├── commonTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── PlatformTest.kt │ │ │ ├── data │ │ │ └── RemindersRepositoryTest.kt │ │ │ └── presentation │ │ │ └── RemindersViewModelTest.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── desktopTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ └── iosTest │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ ├── final │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── androidTestResultsUserPreferences.xml │ │ ├── codeStyles │ │ │ ├── Project.xml │ │ │ └── codeStyleConfig.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ └── kotlinc.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidInstrumentedTest │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ └── AppUITest.kt │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── desktopMain │ │ │ ├── kotlin │ │ │ │ ├── Main.kt │ │ │ │ └── ui │ │ │ │ │ ├── about │ │ │ │ │ └── AboutView.kt │ │ │ │ │ ├── reminders │ │ │ │ │ └── RemindersView.kt │ │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ │ ├── linux-icon.png │ │ │ │ ├── macos-icon.icns │ │ │ │ └── windows-icon.ico │ │ │ └── desktopTest │ │ │ └── kotlin │ │ │ └── AppUITest.kt │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ ├── iosApp │ │ │ ├── Supporting Files │ │ │ │ ├── Assets.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── launch-assets │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── White.svg │ │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ │ ├── About │ │ │ │ │ ├── AboutListView.swift │ │ │ │ │ └── AboutView.swift │ │ │ │ ├── ContentView.swift │ │ │ │ └── Reminders │ │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ │ ├── ReminderItem.swift │ │ │ │ │ ├── RemindersView.swift │ │ │ │ │ └── RemindersViewModelWrapper.swift │ │ │ └── iOSApp.swift │ │ └── iosAppUITests │ │ │ └── iosAppUITests.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── androidUnitTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── data │ │ │ └── RemindersRepository.kt │ │ │ ├── domain │ │ │ ├── Reminder.kt │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ ├── AboutViewModel.kt │ │ │ ├── BaseViewModel.kt │ │ │ ├── RemindersViewModel.kt │ │ │ └── Screen.kt │ │ ├── commonTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── PlatformTest.kt │ │ │ └── presentation │ │ │ └── RemindersViewModelTest.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── desktopTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ └── iosTest │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ └── starter │ ├── .gitignore │ ├── .idea │ ├── .gitignore │ ├── codeStyles │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── copyright │ │ └── kodeco.xml │ ├── deploymentTargetDropDown.xml │ └── kotlinc.xml │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── androidMain │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── kotlin │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── android │ │ │ ├── OrganizeApp.kt │ │ │ └── ui │ │ │ ├── about │ │ │ └── AboutView.kt │ │ │ ├── reminders │ │ │ └── RemindersView.kt │ │ │ ├── root │ │ │ ├── AppNavHost.kt │ │ │ ├── AppScaffold.kt │ │ │ └── MainActivity.kt │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-mdpi │ │ └── splash_icon.png │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── desktopMain │ │ ├── kotlin │ │ │ ├── Main.kt │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ │ └── desktopTest │ │ └── kotlin │ │ └── AppUITest.kt │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ ├── IDETemplateMacros.plist │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Supporting Files │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ └── LaunchScreen.storyboard │ │ ├── UI │ │ ├── About │ │ │ ├── AboutListView.swift │ │ │ └── AboutView.swift │ │ ├── ContentView.swift │ │ └── Reminders │ │ │ ├── NewReminderTextField.swift │ │ │ ├── ReminderItem.swift │ │ │ ├── RemindersView.swift │ │ │ └── RemindersViewModelWrapper.swift │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ ├── commonMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── data │ │ └── RemindersRepository.kt │ │ ├── domain │ │ ├── Reminder.kt │ │ └── UUID.kt │ │ └── presentation │ │ ├── AboutViewModel.kt │ │ ├── BaseViewModel.kt │ │ ├── RemindersViewModel.kt │ │ └── Screen.kt │ ├── desktopMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ └── iosMain │ └── kotlin │ └── com │ └── yourcompany │ └── organize │ ├── Platform.kt │ ├── domain │ └── UUID.kt │ └── presentation │ └── BaseViewModel.kt ├── 09-dependency-injection ├── assets │ └── .keep └── projects │ ├── final │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── codeStyles │ │ │ ├── Project.xml │ │ │ └── codeStyleConfig.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ └── kotlinc.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidInstrumentedTest │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ └── AppUITest.kt │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── desktopMain │ │ │ ├── kotlin │ │ │ │ ├── Main.kt │ │ │ │ └── ui │ │ │ │ │ ├── about │ │ │ │ │ └── AboutView.kt │ │ │ │ │ ├── reminders │ │ │ │ │ └── RemindersView.kt │ │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ │ ├── linux-icon.png │ │ │ │ ├── macos-icon.icns │ │ │ │ └── windows-icon.ico │ │ │ └── desktopTest │ │ │ └── kotlin │ │ │ └── AppUITest.kt │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ ├── iosApp │ │ │ ├── Supporting Files │ │ │ │ ├── Assets.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── launch-assets │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── White.svg │ │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ ├── Koin.swift │ │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ │ ├── About │ │ │ │ │ ├── AboutListView.swift │ │ │ │ │ └── AboutView.swift │ │ │ │ ├── ContentView.swift │ │ │ │ └── Reminders │ │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ │ ├── ReminderItem.swift │ │ │ │ │ ├── RemindersView.swift │ │ │ │ │ └── RemindersViewModelWrapper.swift │ │ │ └── iOSApp.swift │ │ └── iosAppUITests │ │ │ └── iosAppUITests.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── androidUnitTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── KoinCommon.kt │ │ │ ├── Platform.kt │ │ │ ├── data │ │ │ └── RemindersRepository.kt │ │ │ ├── domain │ │ │ ├── Reminder.kt │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ ├── AboutViewModel.kt │ │ │ ├── BaseViewModel.kt │ │ │ ├── RemindersViewModel.kt │ │ │ └── Screen.kt │ │ ├── commonTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DITest.kt │ │ │ ├── PlatformTest.kt │ │ │ └── presentation │ │ │ └── RemindersViewModelTest.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── desktopTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── KoinIOS.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ └── iosTest │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ └── starter │ ├── .gitignore │ ├── .idea │ ├── .gitignore │ ├── androidTestResultsUserPreferences.xml │ ├── codeStyles │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── copyright │ │ └── kodeco.xml │ └── kotlinc.xml │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ ├── androidInstrumentedTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── android │ │ │ └── AppUITest.kt │ │ └── androidMain │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── kotlin │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── android │ │ │ ├── OrganizeApp.kt │ │ │ └── ui │ │ │ ├── about │ │ │ └── AboutView.kt │ │ │ ├── reminders │ │ │ └── RemindersView.kt │ │ │ ├── root │ │ │ ├── AppNavHost.kt │ │ │ ├── AppScaffold.kt │ │ │ └── MainActivity.kt │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-mdpi │ │ └── splash_icon.png │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── desktopMain │ │ ├── kotlin │ │ │ ├── Main.kt │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ │ └── desktopTest │ │ └── kotlin │ │ └── AppUITest.kt │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ ├── IDETemplateMacros.plist │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ ├── iosApp │ │ ├── Supporting Files │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ ├── Contents.json │ │ │ │ └── launch-assets │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── White.svg │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ └── LaunchScreen.storyboard │ │ ├── UI │ │ │ ├── About │ │ │ │ ├── AboutListView.swift │ │ │ │ └── AboutView.swift │ │ │ ├── ContentView.swift │ │ │ └── Reminders │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ ├── ReminderItem.swift │ │ │ │ ├── RemindersView.swift │ │ │ │ └── RemindersViewModelWrapper.swift │ │ └── iOSApp.swift │ └── iosAppUITests │ │ └── iosAppUITests.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ ├── androidUnitTest │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ ├── commonMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── data │ │ └── RemindersRepository.kt │ │ ├── domain │ │ ├── Reminder.kt │ │ └── UUID.kt │ │ └── presentation │ │ ├── AboutViewModel.kt │ │ ├── BaseViewModel.kt │ │ ├── RemindersViewModel.kt │ │ └── Screen.kt │ ├── commonTest │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── PlatformTest.kt │ │ └── presentation │ │ └── RemindersViewModelTest.kt │ ├── desktopMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ ├── desktopTest │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ ├── iosMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ └── iosTest │ └── kotlin │ └── com │ └── yourcompany │ └── organize │ └── PlatformTest.kt ├── 10-data-persistence ├── assets │ └── .keep └── projects │ ├── challenge │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── codeStyles │ │ │ ├── Project.xml │ │ │ └── codeStyleConfig.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ ├── inspectionProfiles │ │ │ └── Project_Default.xml │ │ └── kotlinc.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidInstrumentedTest │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ └── AppUITest.kt │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── desktopMain │ │ │ ├── kotlin │ │ │ │ ├── Main.kt │ │ │ │ └── ui │ │ │ │ │ ├── about │ │ │ │ │ └── AboutView.kt │ │ │ │ │ ├── reminders │ │ │ │ │ └── RemindersView.kt │ │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ │ ├── linux-icon.png │ │ │ │ ├── macos-icon.icns │ │ │ │ └── windows-icon.ico │ │ │ └── desktopTest │ │ │ └── kotlin │ │ │ └── AppUITest.kt │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ ├── iosApp │ │ │ ├── Supporting Files │ │ │ │ ├── Assets.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── launch-assets │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── White.svg │ │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ ├── Koin.swift │ │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ │ ├── About │ │ │ │ │ ├── AboutListView.swift │ │ │ │ │ └── AboutView.swift │ │ │ │ ├── ContentView.swift │ │ │ │ └── Reminders │ │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ │ ├── ReminderItem.swift │ │ │ │ │ ├── RemindersView.swift │ │ │ │ │ └── RemindersViewModelWrapper.swift │ │ │ └── iOSApp.swift │ │ └── iosAppUITests │ │ │ └── iosAppUITests.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DateFormatter.kt │ │ │ ├── KoinAndroid.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── androidUnitTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ ├── DateFormatter.kt │ │ │ │ ├── KoinCommon.kt │ │ │ │ ├── Platform.kt │ │ │ │ ├── data │ │ │ │ ├── DatabaseHelper.kt │ │ │ │ └── RemindersRepository.kt │ │ │ │ ├── domain │ │ │ │ ├── Reminder.kt │ │ │ │ └── UUID.kt │ │ │ │ └── presentation │ │ │ │ ├── AboutViewModel.kt │ │ │ │ ├── BaseViewModel.kt │ │ │ │ ├── RemindersViewModel.kt │ │ │ │ └── Screen.kt │ │ └── sqldelight │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── db │ │ │ ├── 1.db │ │ │ ├── 1.sqm │ │ │ ├── 2.db │ │ │ └── Table.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DITest.kt │ │ │ ├── PlatformTest.kt │ │ │ └── presentation │ │ │ └── RemindersViewModelTest.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DateFormatter.kt │ │ │ ├── KoinDesktop.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── desktopTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DateFormatter.kt │ │ │ ├── KoinIOS.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ └── iosTest │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ ├── final │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── codeStyles │ │ │ ├── Project.xml │ │ │ └── codeStyleConfig.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ ├── inspectionProfiles │ │ │ └── Project_Default.xml │ │ └── kotlinc.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidInstrumentedTest │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ └── AppUITest.kt │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── desktopMain │ │ │ ├── kotlin │ │ │ │ ├── Main.kt │ │ │ │ └── ui │ │ │ │ │ ├── about │ │ │ │ │ └── AboutView.kt │ │ │ │ │ ├── reminders │ │ │ │ │ └── RemindersView.kt │ │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ │ ├── linux-icon.png │ │ │ │ ├── macos-icon.icns │ │ │ │ └── windows-icon.ico │ │ │ └── desktopTest │ │ │ └── kotlin │ │ │ └── AppUITest.kt │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ ├── iosApp │ │ │ ├── Supporting Files │ │ │ │ ├── Assets.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── launch-assets │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── White.svg │ │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ ├── Koin.swift │ │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ │ ├── About │ │ │ │ │ ├── AboutListView.swift │ │ │ │ │ └── AboutView.swift │ │ │ │ ├── ContentView.swift │ │ │ │ └── Reminders │ │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ │ ├── ReminderItem.swift │ │ │ │ │ ├── RemindersView.swift │ │ │ │ │ └── RemindersViewModelWrapper.swift │ │ │ └── iOSApp.swift │ │ └── iosAppUITests │ │ │ └── iosAppUITests.swift │ ├── settings.gradle.kts │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DateFormatter.kt │ │ │ ├── KoinAndroid.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── androidUnitTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ ├── DateFormatter.kt │ │ │ │ ├── KoinCommon.kt │ │ │ │ ├── Platform.kt │ │ │ │ ├── data │ │ │ │ ├── DatabaseHelper.kt │ │ │ │ └── RemindersRepository.kt │ │ │ │ ├── domain │ │ │ │ ├── Reminder.kt │ │ │ │ └── UUID.kt │ │ │ │ └── presentation │ │ │ │ ├── AboutViewModel.kt │ │ │ │ ├── BaseViewModel.kt │ │ │ │ ├── RemindersViewModel.kt │ │ │ │ └── Screen.kt │ │ └── sqldelight │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── db │ │ │ ├── 1.db │ │ │ ├── 1.sqm │ │ │ ├── 2.db │ │ │ └── Table.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DITest.kt │ │ │ ├── PlatformTest.kt │ │ │ └── presentation │ │ │ └── RemindersViewModelTest.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DateFormatter.kt │ │ │ ├── KoinDesktop.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── desktopTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DateFormatter.kt │ │ │ ├── KoinIOS.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ └── iosTest │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ └── starter │ ├── .gitignore │ ├── .idea │ ├── .gitignore │ ├── codeStyles │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── copyright │ │ └── kodeco.xml │ └── kotlinc.xml │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ ├── androidInstrumentedTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── android │ │ │ └── AppUITest.kt │ │ └── androidMain │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── kotlin │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── android │ │ │ ├── OrganizeApp.kt │ │ │ └── ui │ │ │ ├── about │ │ │ └── AboutView.kt │ │ │ ├── reminders │ │ │ └── RemindersView.kt │ │ │ ├── root │ │ │ ├── AppNavHost.kt │ │ │ ├── AppScaffold.kt │ │ │ └── MainActivity.kt │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable-mdpi │ │ └── splash_icon.png │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── desktopMain │ │ ├── kotlin │ │ │ ├── Main.kt │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ │ └── desktopTest │ │ └── kotlin │ │ └── AppUITest.kt │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ ├── IDETemplateMacros.plist │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ ├── iosApp │ │ ├── Supporting Files │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ ├── Contents.json │ │ │ │ └── launch-assets │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── White.svg │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ ├── Koin.swift │ │ │ └── LaunchScreen.storyboard │ │ ├── UI │ │ │ ├── About │ │ │ │ ├── AboutListView.swift │ │ │ │ └── AboutView.swift │ │ │ ├── ContentView.swift │ │ │ └── Reminders │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ ├── ReminderItem.swift │ │ │ │ ├── RemindersView.swift │ │ │ │ └── RemindersViewModelWrapper.swift │ │ └── iOSApp.swift │ └── iosAppUITests │ │ └── iosAppUITests.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── DateFormatter.kt │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ ├── androidUnitTest │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ ├── commonMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── DateFormatter.kt │ │ ├── KoinCommon.kt │ │ ├── Platform.kt │ │ ├── data │ │ └── RemindersRepository.kt │ │ ├── domain │ │ ├── Reminder.kt │ │ └── UUID.kt │ │ └── presentation │ │ ├── AboutViewModel.kt │ │ ├── BaseViewModel.kt │ │ ├── RemindersViewModel.kt │ │ └── Screen.kt │ ├── commonTest │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── DITest.kt │ │ ├── PlatformTest.kt │ │ └── presentation │ │ └── RemindersViewModelTest.kt │ ├── desktopMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── DateFormatter.kt │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ ├── desktopTest │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ ├── iosMain │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ ├── DateFormatter.kt │ │ ├── KoinIOS.kt │ │ ├── Platform.kt │ │ ├── domain │ │ └── UUID.kt │ │ └── presentation │ │ └── BaseViewModel.kt │ └── iosTest │ └── kotlin │ └── com │ └── yourcompany │ └── organize │ └── PlatformTest.kt ├── 11-serialization ├── assets │ └── .keep └── projects │ ├── challenge │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Logger.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Logger.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Logger.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Logger.jvm.kt │ │ └── Test.jvm.kt │ ├── final │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Logger.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Logger.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Logger.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Logger.jvm.kt │ │ └── Test.jvm.kt │ └── starter │ ├── .gitignore │ ├── .keep │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── KodecoApplication.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainBottomBar.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_bookmarks.xml │ │ ├── ic_brand.xml │ │ ├── ic_home.xml │ │ ├── ic_latest.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_more.xml │ │ └── ic_search.xml │ │ ├── font │ │ ├── opensans_bold.ttf │ │ ├── opensans_extrabold.ttf │ │ ├── opensans_light.ttf │ │ ├── opensans_regular.ttf │ │ └── opensans_semibold.ttf │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── commonMain │ │ └── composeResources │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ └── values │ │ │ └── strings.xml │ │ └── jvmMain │ │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── Main.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── resources │ │ ├── linux-icon.png │ │ ├── macos-icon.icns │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── swiftpm │ │ │ │ └── Package.resolved │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── app-icon-white-FF5A00-bg.png │ │ ├── Contents.json │ │ ├── colors │ │ │ ├── Contents.json │ │ │ ├── black-night.colorset │ │ │ │ └── Contents.json │ │ │ ├── grey-thought.colorset │ │ │ │ └── Contents.json │ │ │ └── orange-glow.colorset │ │ │ │ └── Contents.json │ │ ├── ic_bookmark.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_bookmark_1x.png │ │ │ ├── ic_bookmark_2x.png │ │ │ └── ic_bookmark_3x.png │ │ ├── ic_home.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_home_1x.png │ │ │ ├── ic_home_2x.png │ │ │ └── ic_home_3x.png │ │ ├── ic_latest.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_latest_1x.png │ │ │ ├── ic_latest_2x.png │ │ │ └── ic_latest_3x.png │ │ ├── ic_more.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_more_1x.png │ │ │ ├── ic_more_2x.png │ │ │ └── ic_more_3x.png │ │ ├── ic_person.symbolset │ │ │ ├── Contents.json │ │ │ └── ic_person.svg │ │ ├── ic_search.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_search_1x.png │ │ │ ├── ic_search_2x.png │ │ │ └── ic_search_3x.png │ │ ├── kodeco.imageset │ │ │ ├── Contents.json │ │ │ └── appstore.png │ │ └── launch-assets │ │ │ ├── Contents.json │ │ │ ├── logo-white.imageset │ │ │ ├── Contents.json │ │ │ └── White.svg │ │ │ └── orange FF5A00.colorset │ │ │ └── Contents.json │ │ ├── BookmarkView.swift │ │ ├── ContentView.swift │ │ ├── HomeView.swift │ │ ├── Info.plist │ │ ├── KodecoEntryViewModel.swift │ │ ├── LatestView.swift │ │ ├── LaunchScreen.storyboard │ │ ├── MainToolbarContent.swift │ │ ├── SearchView.swift │ │ ├── common │ │ └── KodecoEntryRow.swift │ │ ├── extensions │ │ ├── BookmarkClient.swift │ │ └── FeedClient.swift │ │ ├── fonts │ │ ├── OpenSansBold.ttf │ │ ├── OpenSansExtraBold.ttf │ │ ├── OpenSansLight.ttf │ │ ├── OpenSansRegular.ttf │ │ └── OpenSansSemiBold.ttf │ │ ├── iOSApp.swift │ │ └── utils │ │ ├── Actions.swift │ │ └── Utils.swift │ ├── settings.gradle.kts │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ ├── AndroidManifest.xml │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.android.kt │ │ ├── Logger.android.kt │ │ └── Test.android.kt │ ├── commonMain │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── ServiceLocator.kt │ │ │ ├── data │ │ │ └── model │ │ │ │ ├── GravatarContent.kt │ │ │ │ ├── KodecoContent.kt │ │ │ │ └── KodecoEntry.kt │ │ │ ├── domain │ │ │ ├── GetFeedData.kt │ │ │ ├── cb │ │ │ │ ├── BookmarkData.kt │ │ │ │ └── FeedData.kt │ │ │ └── dao │ │ │ │ └── KodecoEntryDAO.kt │ │ │ ├── platform │ │ │ ├── Database.common.kt │ │ │ ├── Logger.common.kt │ │ │ └── Test.common.kt │ │ │ └── presentation │ │ │ ├── BookmarkPresenter.kt │ │ │ └── FeedPresenter.kt │ └── sqldelight │ │ └── data │ │ └── KodecoEntryModel.sq │ ├── iosMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.ios.kt │ │ ├── Logger.ios.kt │ │ └── Test.ios.kt │ └── jvmMain │ └── kotlin │ └── com │ └── kodeco │ └── learn │ └── platform │ ├── Database.jvm.kt │ ├── Logger.jvm.kt │ └── Test.jvm.kt ├── 12-networking ├── assets │ └── .keep └── projects │ ├── challenge │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Identifier.android.kt │ │ │ ├── Logger.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── Values.kt │ │ │ │ ├── data │ │ │ │ ├── FeedAPI.kt │ │ │ │ └── HttpClientLogger.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Identifier.common.kt │ │ │ │ ├── Logger.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ ├── NetworkTests.kt │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Identifier.ios.kt │ │ │ ├── Logger.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Identifier.jvm.kt │ │ ├── Logger.jvm.kt │ │ └── Test.jvm.kt │ ├── final │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Logger.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── Values.kt │ │ │ │ ├── data │ │ │ │ ├── FeedAPI.kt │ │ │ │ └── HttpClientLogger.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Logger.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ ├── NetworkTests.kt │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Logger.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Logger.jvm.kt │ │ └── Test.jvm.kt │ └── starter │ ├── .gitignore │ ├── .idea │ ├── artifacts │ │ ├── desktopApp_jvm.xml │ │ ├── shared_desktop_2_0.xml │ │ └── shared_dto_jvm.xml │ ├── gradle.xml │ ├── kotlinc.xml │ ├── migrations.xml │ └── misc.xml │ ├── .keep │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── KodecoApplication.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainBottomBar.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_bookmarks.xml │ │ ├── ic_brand.xml │ │ ├── ic_home.xml │ │ ├── ic_latest.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_more.xml │ │ └── ic_search.xml │ │ ├── font │ │ ├── opensans_bold.ttf │ │ ├── opensans_extrabold.ttf │ │ ├── opensans_light.ttf │ │ ├── opensans_regular.ttf │ │ └── opensans_semibold.ttf │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── commonMain │ │ └── composeResources │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ └── values │ │ │ └── strings.xml │ │ └── jvmMain │ │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── Main.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── resources │ │ ├── linux-icon.png │ │ ├── macos-icon.icns │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── swiftpm │ │ │ │ └── Package.resolved │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── app-icon-white-FF5A00-bg.png │ │ ├── Contents.json │ │ ├── colors │ │ │ ├── Contents.json │ │ │ ├── black-night.colorset │ │ │ │ └── Contents.json │ │ │ ├── grey-thought.colorset │ │ │ │ └── Contents.json │ │ │ └── orange-glow.colorset │ │ │ │ └── Contents.json │ │ ├── ic_bookmark.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_bookmark_1x.png │ │ │ ├── ic_bookmark_2x.png │ │ │ └── ic_bookmark_3x.png │ │ ├── ic_home.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_home_1x.png │ │ │ ├── ic_home_2x.png │ │ │ └── ic_home_3x.png │ │ ├── ic_latest.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_latest_1x.png │ │ │ ├── ic_latest_2x.png │ │ │ └── ic_latest_3x.png │ │ ├── ic_more.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_more_1x.png │ │ │ ├── ic_more_2x.png │ │ │ └── ic_more_3x.png │ │ ├── ic_person.symbolset │ │ │ ├── Contents.json │ │ │ └── ic_person.svg │ │ ├── ic_search.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_search_1x.png │ │ │ ├── ic_search_2x.png │ │ │ └── ic_search_3x.png │ │ ├── kodeco.imageset │ │ │ ├── Contents.json │ │ │ └── appstore.png │ │ └── launch-assets │ │ │ ├── Contents.json │ │ │ ├── logo-white.imageset │ │ │ ├── Contents.json │ │ │ └── White.svg │ │ │ └── orange FF5A00.colorset │ │ │ └── Contents.json │ │ ├── BookmarkView.swift │ │ ├── ContentView.swift │ │ ├── HomeView.swift │ │ ├── Info.plist │ │ ├── KodecoEntryViewModel.swift │ │ ├── LatestView.swift │ │ ├── LaunchScreen.storyboard │ │ ├── MainToolbarContent.swift │ │ ├── SearchView.swift │ │ ├── common │ │ └── KodecoEntryRow.swift │ │ ├── extensions │ │ ├── BookmarkClient.swift │ │ └── FeedClient.swift │ │ ├── fonts │ │ ├── OpenSansBold.ttf │ │ ├── OpenSansExtraBold.ttf │ │ ├── OpenSansLight.ttf │ │ ├── OpenSansRegular.ttf │ │ └── OpenSansSemiBold.ttf │ │ ├── iOSApp.swift │ │ └── utils │ │ ├── Actions.swift │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-dto │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── data │ │ │ ├── KodecoSerializer.kt │ │ │ └── model │ │ │ │ ├── GravatarContent.kt │ │ │ │ ├── KodecoContent.kt │ │ │ │ └── KodecoEntry.kt │ │ │ └── platform │ │ │ └── Parcelable.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ └── Parcelable.jvm.kt │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ ├── AndroidManifest.xml │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.android.kt │ │ ├── Logger.android.kt │ │ └── Test.android.kt │ ├── commonMain │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── ServiceLocator.kt │ │ │ ├── domain │ │ │ ├── GetFeedData.kt │ │ │ ├── cb │ │ │ │ ├── BookmarkData.kt │ │ │ │ └── FeedData.kt │ │ │ └── dao │ │ │ │ └── KodecoEntryDAO.kt │ │ │ ├── platform │ │ │ ├── Database.common.kt │ │ │ ├── Logger.common.kt │ │ │ └── Test.common.kt │ │ │ └── presentation │ │ │ ├── BookmarkPresenter.kt │ │ │ └── FeedPresenter.kt │ └── sqldelight │ │ └── data │ │ └── KodecoEntryModel.sq │ ├── commonTest │ └── kotlin │ │ └── SerializationTests.kt │ ├── iosMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.ios.kt │ │ ├── Logger.ios.kt │ │ └── Test.ios.kt │ └── jvmMain │ └── kotlin │ └── com │ └── kodeco │ └── learn │ └── platform │ ├── Database.jvm.kt │ ├── Logger.jvm.kt │ └── Test.jvm.kt ├── 13-concurrency ├── assets │ └── .keep └── projects │ ├── challenge │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Identifier.android.kt │ │ │ ├── Logger.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── Values.kt │ │ │ │ ├── data │ │ │ │ ├── FeedAPI.kt │ │ │ │ └── HttpClientLogger.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Identifier.common.kt │ │ │ │ ├── Logger.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ ├── NetworkTests.kt │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Identifier.ios.kt │ │ │ ├── Logger.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Identifier.jvm.kt │ │ ├── Logger.jvm.kt │ │ └── Test.jvm.kt │ ├── final │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Identifier.android.kt │ │ │ ├── Logger.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── Values.kt │ │ │ │ ├── data │ │ │ │ ├── FeedAPI.kt │ │ │ │ └── HttpClientLogger.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Identifier.common.kt │ │ │ │ ├── Logger.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ ├── NetworkTests.kt │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Identifier.ios.kt │ │ │ ├── Logger.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Identifier.jvm.kt │ │ ├── Logger.jvm.kt │ │ └── Test.jvm.kt │ └── starter │ ├── .gitignore │ ├── .keep │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── KodecoApplication.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainBottomBar.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_bookmarks.xml │ │ ├── ic_brand.xml │ │ ├── ic_home.xml │ │ ├── ic_latest.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_more.xml │ │ └── ic_search.xml │ │ ├── font │ │ ├── opensans_bold.ttf │ │ ├── opensans_extrabold.ttf │ │ ├── opensans_light.ttf │ │ ├── opensans_regular.ttf │ │ └── opensans_semibold.ttf │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── commonMain │ │ └── composeResources │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ └── values │ │ │ └── strings.xml │ │ └── jvmMain │ │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── Main.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── resources │ │ ├── linux-icon.png │ │ ├── macos-icon.icns │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── swiftpm │ │ │ │ └── Package.resolved │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── app-icon-white-FF5A00-bg.png │ │ ├── Contents.json │ │ ├── colors │ │ │ ├── Contents.json │ │ │ ├── black-night.colorset │ │ │ │ └── Contents.json │ │ │ ├── grey-thought.colorset │ │ │ │ └── Contents.json │ │ │ └── orange-glow.colorset │ │ │ │ └── Contents.json │ │ ├── ic_bookmark.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_bookmark_1x.png │ │ │ ├── ic_bookmark_2x.png │ │ │ └── ic_bookmark_3x.png │ │ ├── ic_home.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_home_1x.png │ │ │ ├── ic_home_2x.png │ │ │ └── ic_home_3x.png │ │ ├── ic_latest.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_latest_1x.png │ │ │ ├── ic_latest_2x.png │ │ │ └── ic_latest_3x.png │ │ ├── ic_more.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_more_1x.png │ │ │ ├── ic_more_2x.png │ │ │ └── ic_more_3x.png │ │ ├── ic_person.symbolset │ │ │ ├── Contents.json │ │ │ └── ic_person.svg │ │ ├── ic_search.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_search_1x.png │ │ │ ├── ic_search_2x.png │ │ │ └── ic_search_3x.png │ │ ├── kodeco.imageset │ │ │ ├── Contents.json │ │ │ └── appstore.png │ │ └── launch-assets │ │ │ ├── Contents.json │ │ │ ├── logo-white.imageset │ │ │ ├── Contents.json │ │ │ └── White.svg │ │ │ └── orange FF5A00.colorset │ │ │ └── Contents.json │ │ ├── BookmarkView.swift │ │ ├── ContentView.swift │ │ ├── HomeView.swift │ │ ├── Info.plist │ │ ├── KodecoEntryViewModel.swift │ │ ├── LatestView.swift │ │ ├── LaunchScreen.storyboard │ │ ├── MainToolbarContent.swift │ │ ├── SearchView.swift │ │ ├── common │ │ └── KodecoEntryRow.swift │ │ ├── extensions │ │ ├── BookmarkClient.swift │ │ └── FeedClient.swift │ │ ├── fonts │ │ ├── OpenSansBold.ttf │ │ ├── OpenSansExtraBold.ttf │ │ ├── OpenSansLight.ttf │ │ ├── OpenSansRegular.ttf │ │ └── OpenSansSemiBold.ttf │ │ ├── iOSApp.swift │ │ └── utils │ │ ├── Actions.swift │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-dto │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── data │ │ │ ├── KodecoSerializer.kt │ │ │ └── model │ │ │ │ ├── GravatarContent.kt │ │ │ │ ├── KodecoContent.kt │ │ │ │ └── KodecoEntry.kt │ │ │ └── platform │ │ │ └── Parcelable.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ └── Parcelable.jvm.kt │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ ├── AndroidManifest.xml │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.android.kt │ │ ├── Identifier.android.kt │ │ ├── Logger.android.kt │ │ └── Test.android.kt │ ├── commonMain │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── ServiceLocator.kt │ │ │ ├── Values.kt │ │ │ ├── data │ │ │ ├── FeedAPI.kt │ │ │ └── HttpClientLogger.kt │ │ │ ├── domain │ │ │ ├── GetFeedData.kt │ │ │ ├── cb │ │ │ │ ├── BookmarkData.kt │ │ │ │ └── FeedData.kt │ │ │ └── dao │ │ │ │ └── KodecoEntryDAO.kt │ │ │ ├── platform │ │ │ ├── Database.common.kt │ │ │ ├── Identifier.common.kt │ │ │ ├── Logger.common.kt │ │ │ └── Test.common.kt │ │ │ └── presentation │ │ │ ├── BookmarkPresenter.kt │ │ │ └── FeedPresenter.kt │ └── sqldelight │ │ └── data │ │ └── KodecoEntryModel.sq │ ├── commonTest │ └── kotlin │ │ ├── NetworkTests.kt │ │ └── SerializationTests.kt │ ├── iosMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.ios.kt │ │ ├── Identifier.ios.kt │ │ ├── Logger.ios.kt │ │ └── Test.ios.kt │ └── jvmMain │ └── kotlin │ └── com │ └── kodeco │ └── learn │ └── platform │ ├── Database.jvm.kt │ ├── Identifier.jvm.kt │ ├── Logger.jvm.kt │ └── Test.jvm.kt ├── 14-creating-your-kmp-library ├── assets │ ├── .keep │ └── shared-action │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidDeviceTest │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── androidHostTest │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── ExampleUnitTest.kt │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Platform.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Platform.kt │ │ └── iosMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── action │ │ └── Platform.ios.kt └── projects │ ├── challenge-1 │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-action │ │ ├── build.gradle.kts │ │ ├── sharedaction │ │ │ ├── Package.swift │ │ │ ├── SharedAction-1.0.zip │ │ │ ├── SharedAction-unspecified.zip │ │ │ └── SharedAction.xcframework │ │ │ │ ├── Info.plist │ │ │ │ ├── ios-arm64 │ │ │ │ ├── SharedAction.framework │ │ │ │ │ ├── Headers │ │ │ │ │ │ └── SharedAction.h │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── Modules │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ │ └── Contents │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Resources │ │ │ │ │ ├── DWARF │ │ │ │ │ └── SharedAction │ │ │ │ │ └── Relocations │ │ │ │ │ └── aarch64 │ │ │ │ │ └── SharedAction.yml │ │ │ │ └── ios-arm64_x86_64-simulator │ │ │ │ ├── SharedAction.framework │ │ │ │ ├── Headers │ │ │ │ │ └── SharedAction.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ └── DWARF │ │ │ │ └── SharedAction │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.jvm.kt │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ ├── shared-logger │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Identifier.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── Values.kt │ │ │ │ ├── data │ │ │ │ ├── FeedAPI.kt │ │ │ │ └── HttpClientLogger.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Identifier.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ ├── NetworkTests.kt │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Identifier.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Identifier.jvm.kt │ │ └── Test.jvm.kt │ ├── challenge-2-find-time │ ├── .gitignore │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── findtime │ │ │ │ └── android │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktop │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── Main.kt │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── CardModifier.swift │ │ │ ├── ContentView.swift │ │ │ ├── FindMeeting.swift │ │ │ ├── HourSheet.swift │ │ │ ├── Info.plist │ │ │ ├── ListModifier.swift │ │ │ ├── NumberTimeCard.swift │ │ │ ├── PresentationSettings.swift │ │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ │ ├── Searchbar.swift │ │ │ ├── TimeCard.swift │ │ │ ├── TimezoneApp.swift │ │ │ ├── TimezoneDialog.swift │ │ │ ├── TimezoneItems.swift │ │ │ ├── TimezoneView.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-logger │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.jvm.kt │ ├── shared-ui │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── compose │ │ │ │ └── ui │ │ │ │ ├── AddTimeDialogWrapper.kt │ │ │ │ └── MeetingDialogWrapper.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── compose │ │ │ │ └── ui │ │ │ │ ├── AddTimezoneDialog.kt │ │ │ │ ├── AnimatedSwipeDismiss.kt │ │ │ │ ├── FindMeetingScreen.kt │ │ │ │ ├── LocalTimeCard.kt │ │ │ │ ├── MainView.kt │ │ │ │ ├── MeetingDialog.kt │ │ │ │ ├── MyApplicationTheme.kt │ │ │ │ ├── NumberPicker.kt │ │ │ │ ├── NumberTimeCard.kt │ │ │ │ ├── TimeCard.kt │ │ │ │ ├── TimeZoneScreen.kt │ │ │ │ └── Types.kt │ │ │ └── desktopMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── compose │ │ │ └── ui │ │ │ ├── AddTimeDialogWrapper.kt │ │ │ └── MeetingDialogWrapper.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ └── commonMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── findtime │ │ ├── TimeZoneHelper.kt │ │ └── TimeZoneHelperImpl.kt │ ├── challenge-2-learn │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-action │ │ ├── build.gradle.kts │ │ ├── sharedaction │ │ │ ├── Package.swift │ │ │ ├── SharedAction-1.0.zip │ │ │ ├── SharedAction-unspecified.zip │ │ │ └── SharedAction.xcframework │ │ │ │ ├── Info.plist │ │ │ │ ├── ios-arm64 │ │ │ │ ├── SharedAction.framework │ │ │ │ │ ├── Headers │ │ │ │ │ │ └── SharedAction.h │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── Modules │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ │ └── Contents │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Resources │ │ │ │ │ ├── DWARF │ │ │ │ │ └── SharedAction │ │ │ │ │ └── Relocations │ │ │ │ │ └── aarch64 │ │ │ │ │ └── SharedAction.yml │ │ │ │ └── ios-arm64_x86_64-simulator │ │ │ │ ├── SharedAction.framework │ │ │ │ ├── Headers │ │ │ │ │ └── SharedAction.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ └── DWARF │ │ │ │ └── SharedAction │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.jvm.kt │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ ├── shared-logger │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Identifier.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── Values.kt │ │ │ │ ├── data │ │ │ │ ├── FeedAPI.kt │ │ │ │ └── HttpClientLogger.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Identifier.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ ├── NetworkTests.kt │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Identifier.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Identifier.jvm.kt │ │ └── Test.jvm.kt │ ├── challenge-2-todo │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── codeStyles │ │ │ ├── Project.xml │ │ │ └── codeStyleConfig.xml │ │ ├── copyright │ │ │ └── kodeco.xml │ │ ├── deploymentTargetDropDown.xml │ │ ├── inspectionProfiles │ │ │ └── Project_Default.xml │ │ └── kotlinc.xml │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidInstrumentedTest │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ └── AppUITest.kt │ │ │ └── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ └── android │ │ │ │ ├── OrganizeApp.kt │ │ │ │ └── ui │ │ │ │ ├── about │ │ │ │ └── AboutView.kt │ │ │ │ ├── reminders │ │ │ │ └── RemindersView.kt │ │ │ │ ├── root │ │ │ │ ├── AppNavHost.kt │ │ │ │ ├── AppScaffold.kt │ │ │ │ └── MainActivity.kt │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── res │ │ │ ├── drawable-mdpi │ │ │ └── splash_icon.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── desktopMain │ │ │ ├── kotlin │ │ │ │ ├── Main.kt │ │ │ │ └── ui │ │ │ │ │ ├── about │ │ │ │ │ └── AboutView.kt │ │ │ │ │ ├── reminders │ │ │ │ │ └── RemindersView.kt │ │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ └── resources │ │ │ │ ├── linux-icon.png │ │ │ │ ├── macos-icon.icns │ │ │ │ └── windows-icon.ico │ │ │ └── desktopTest │ │ │ └── kotlin │ │ │ └── AppUITest.kt │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ ├── IDETemplateMacros.plist │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ ├── iosApp │ │ │ ├── Supporting Files │ │ │ │ ├── Assets.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── launch-assets │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── logo-white.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── White.svg │ │ │ │ │ │ └── orange FF5A00.colorset │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ ├── Koin.swift │ │ │ │ └── LaunchScreen.storyboard │ │ │ ├── UI │ │ │ │ ├── About │ │ │ │ │ ├── AboutListView.swift │ │ │ │ │ └── AboutView.swift │ │ │ │ ├── ContentView.swift │ │ │ │ └── Reminders │ │ │ │ │ ├── NewReminderTextField.swift │ │ │ │ │ ├── ReminderItem.swift │ │ │ │ │ ├── RemindersView.swift │ │ │ │ │ └── RemindersViewModelWrapper.swift │ │ │ └── iOSApp.swift │ │ └── iosAppUITests │ │ │ └── iosAppUITests.swift │ ├── settings.gradle.kts │ ├── shared-logger │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DateFormatter.kt │ │ │ ├── KoinAndroid.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── androidUnitTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── yourcompany │ │ │ │ └── organize │ │ │ │ ├── DateFormatter.kt │ │ │ │ ├── KoinCommon.kt │ │ │ │ ├── Platform.kt │ │ │ │ ├── data │ │ │ │ ├── DatabaseHelper.kt │ │ │ │ └── RemindersRepository.kt │ │ │ │ ├── domain │ │ │ │ ├── Reminder.kt │ │ │ │ └── UUID.kt │ │ │ │ └── presentation │ │ │ │ ├── AboutViewModel.kt │ │ │ │ ├── BaseViewModel.kt │ │ │ │ ├── RemindersViewModel.kt │ │ │ │ └── Screen.kt │ │ └── sqldelight │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── db │ │ │ ├── 1.db │ │ │ ├── 1.sqm │ │ │ ├── 2.db │ │ │ └── Table.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DITest.kt │ │ │ ├── PlatformTest.kt │ │ │ └── presentation │ │ │ └── RemindersViewModelTest.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DateFormatter.kt │ │ │ ├── KoinDesktop.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ ├── desktopTest │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ └── PlatformTest.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── yourcompany │ │ │ └── organize │ │ │ ├── DateFormatter.kt │ │ │ ├── KoinIOS.kt │ │ │ ├── Platform.kt │ │ │ ├── domain │ │ │ └── UUID.kt │ │ │ └── presentation │ │ │ └── BaseViewModel.kt │ │ └── iosTest │ │ └── kotlin │ │ └── com │ │ └── yourcompany │ │ └── organize │ │ └── PlatformTest.kt │ ├── challenge-3 │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-action │ │ ├── build.gradle.kts │ │ ├── sharedaction │ │ │ ├── Package.swift │ │ │ ├── SharedAction-1.0.zip │ │ │ ├── SharedAction-unspecified.zip │ │ │ └── SharedAction.xcframework │ │ │ │ ├── Info.plist │ │ │ │ ├── ios-arm64 │ │ │ │ ├── SharedAction.framework │ │ │ │ │ ├── Headers │ │ │ │ │ │ └── SharedAction.h │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── Modules │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ │ └── Contents │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Resources │ │ │ │ │ ├── DWARF │ │ │ │ │ └── SharedAction │ │ │ │ │ └── Relocations │ │ │ │ │ └── aarch64 │ │ │ │ │ └── SharedAction.yml │ │ │ │ └── ios-arm64_x86_64-simulator │ │ │ │ ├── SharedAction.framework │ │ │ │ ├── Headers │ │ │ │ │ └── SharedAction.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ └── DWARF │ │ │ │ └── SharedAction │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.jvm.kt │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ ├── shared-logger │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Identifier.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── Values.kt │ │ │ │ ├── data │ │ │ │ ├── FeedAPI.kt │ │ │ │ └── HttpClientLogger.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Identifier.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ ├── NetworkTests.kt │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Identifier.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Identifier.jvm.kt │ │ └── Test.jvm.kt │ ├── final │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainBottomBar.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── composeResources │ │ │ │ ├── drawable │ │ │ │ ├── ic_bookmarks.xml │ │ │ │ ├── ic_brand.xml │ │ │ │ ├── ic_home.xml │ │ │ │ ├── ic_latest.xml │ │ │ │ ├── ic_more.xml │ │ │ │ └── ic_search.xml │ │ │ │ ├── font │ │ │ │ ├── opensans_bold.ttf │ │ │ │ ├── opensans_extrabold.ttf │ │ │ │ ├── opensans_light.ttf │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Main.kt │ │ │ │ ├── components │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ ├── ImagePreview.kt │ │ │ │ └── PagerTab.kt │ │ │ │ ├── ui │ │ │ │ ├── bookmark │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ ├── common │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ └── EntryContent.kt │ │ │ │ ├── home │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ ├── latest │ │ │ │ │ └── LatestContent.kt │ │ │ │ ├── main │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ ├── search │ │ │ │ │ └── SearchContent.kt │ │ │ │ └── theme │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── utils │ │ │ │ └── Utils.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-action │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── sharedaction │ │ │ ├── Package.swift │ │ │ ├── SharedAction-1.0.zip │ │ │ ├── SharedAction-unspecified.zip │ │ │ └── SharedAction.xcframework │ │ │ │ ├── Info.plist │ │ │ │ ├── ios-arm64 │ │ │ │ ├── SharedAction.framework │ │ │ │ │ ├── Headers │ │ │ │ │ │ └── SharedAction.h │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── Modules │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ │ └── Contents │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Resources │ │ │ │ │ ├── DWARF │ │ │ │ │ └── SharedAction │ │ │ │ │ └── Relocations │ │ │ │ │ └── aarch64 │ │ │ │ │ └── SharedAction.yml │ │ │ │ └── ios-arm64_x86_64-simulator │ │ │ │ ├── SharedAction.framework │ │ │ │ ├── Headers │ │ │ │ │ └── SharedAction.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ └── DWARF │ │ │ │ └── SharedAction │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.jvm.kt │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Identifier.android.kt │ │ │ ├── Logger.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── Values.kt │ │ │ │ ├── data │ │ │ │ ├── FeedAPI.kt │ │ │ │ └── HttpClientLogger.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Identifier.common.kt │ │ │ │ ├── Logger.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ ├── NetworkTests.kt │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Identifier.ios.kt │ │ │ ├── Logger.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Identifier.jvm.kt │ │ ├── Logger.jvm.kt │ │ └── Test.jvm.kt │ └── starter │ ├── .gitignore │ ├── .keep │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── KodecoApplication.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainBottomBar.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_bookmarks.xml │ │ ├── ic_brand.xml │ │ ├── ic_home.xml │ │ ├── ic_latest.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_more.xml │ │ └── ic_search.xml │ │ ├── font │ │ ├── opensans_bold.ttf │ │ ├── opensans_extrabold.ttf │ │ ├── opensans_light.ttf │ │ ├── opensans_regular.ttf │ │ └── opensans_semibold.ttf │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── commonMain │ │ └── composeResources │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ └── values │ │ │ └── strings.xml │ │ └── jvmMain │ │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── Main.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── resources │ │ ├── linux-icon.png │ │ ├── macos-icon.icns │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── swiftpm │ │ │ │ └── Package.resolved │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── app-icon-white-FF5A00-bg.png │ │ ├── Contents.json │ │ ├── colors │ │ │ ├── Contents.json │ │ │ ├── black-night.colorset │ │ │ │ └── Contents.json │ │ │ ├── grey-thought.colorset │ │ │ │ └── Contents.json │ │ │ └── orange-glow.colorset │ │ │ │ └── Contents.json │ │ ├── ic_bookmark.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_bookmark_1x.png │ │ │ ├── ic_bookmark_2x.png │ │ │ └── ic_bookmark_3x.png │ │ ├── ic_home.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_home_1x.png │ │ │ ├── ic_home_2x.png │ │ │ └── ic_home_3x.png │ │ ├── ic_latest.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_latest_1x.png │ │ │ ├── ic_latest_2x.png │ │ │ └── ic_latest_3x.png │ │ ├── ic_more.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_more_1x.png │ │ │ ├── ic_more_2x.png │ │ │ └── ic_more_3x.png │ │ ├── ic_person.symbolset │ │ │ ├── Contents.json │ │ │ └── ic_person.svg │ │ ├── ic_search.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_search_1x.png │ │ │ ├── ic_search_2x.png │ │ │ └── ic_search_3x.png │ │ ├── kodeco.imageset │ │ │ ├── Contents.json │ │ │ └── appstore.png │ │ └── launch-assets │ │ │ ├── Contents.json │ │ │ ├── logo-white.imageset │ │ │ ├── Contents.json │ │ │ └── White.svg │ │ │ └── orange FF5A00.colorset │ │ │ └── Contents.json │ │ ├── BookmarkView.swift │ │ ├── ContentView.swift │ │ ├── HomeView.swift │ │ ├── Info.plist │ │ ├── KodecoEntryViewModel.swift │ │ ├── LatestView.swift │ │ ├── LaunchScreen.storyboard │ │ ├── MainToolbarContent.swift │ │ ├── SearchView.swift │ │ ├── common │ │ └── KodecoEntryRow.swift │ │ ├── extensions │ │ ├── BookmarkClient.swift │ │ └── FeedClient.swift │ │ ├── fonts │ │ ├── OpenSansBold.ttf │ │ ├── OpenSansExtraBold.ttf │ │ ├── OpenSansLight.ttf │ │ ├── OpenSansRegular.ttf │ │ └── OpenSansSemiBold.ttf │ │ ├── iOSApp.swift │ │ └── utils │ │ ├── Actions.swift │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-dto │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── data │ │ │ ├── KodecoSerializer.kt │ │ │ └── model │ │ │ │ ├── GravatarContent.kt │ │ │ │ ├── KodecoContent.kt │ │ │ │ └── KodecoEntry.kt │ │ │ └── platform │ │ │ └── Parcelable.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ └── Parcelable.jvm.kt │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ ├── AndroidManifest.xml │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.android.kt │ │ ├── Identifier.android.kt │ │ ├── Logger.android.kt │ │ └── Test.android.kt │ ├── commonMain │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── ServiceLocator.kt │ │ │ ├── Values.kt │ │ │ ├── data │ │ │ ├── FeedAPI.kt │ │ │ └── HttpClientLogger.kt │ │ │ ├── domain │ │ │ ├── GetFeedData.kt │ │ │ ├── cb │ │ │ │ ├── BookmarkData.kt │ │ │ │ └── FeedData.kt │ │ │ └── dao │ │ │ │ └── KodecoEntryDAO.kt │ │ │ ├── platform │ │ │ ├── Database.common.kt │ │ │ ├── Identifier.common.kt │ │ │ ├── Logger.common.kt │ │ │ └── Test.common.kt │ │ │ └── presentation │ │ │ ├── BookmarkPresenter.kt │ │ │ └── FeedPresenter.kt │ └── sqldelight │ │ └── data │ │ └── KodecoEntryModel.sq │ ├── commonTest │ └── kotlin │ │ ├── NetworkTests.kt │ │ └── SerializationTests.kt │ ├── iosMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.ios.kt │ │ ├── Identifier.ios.kt │ │ ├── Logger.ios.kt │ │ └── Test.ios.kt │ └── jvmMain │ └── kotlin │ └── com │ └── kodeco │ └── learn │ └── platform │ ├── Database.jvm.kt │ ├── Identifier.jvm.kt │ ├── Logger.jvm.kt │ └── Test.jvm.kt ├── 15-appendix-a-kotlin-a-primer-for-swift-developers ├── README.md ├── assets │ └── .keep └── projects │ ├── .gitignore │ ├── .keep │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── KodecoApplication.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainBottomBar.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_bookmarks.xml │ │ ├── ic_brand.xml │ │ ├── ic_home.xml │ │ ├── ic_latest.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_more.xml │ │ └── ic_search.xml │ │ ├── font │ │ ├── opensans_bold.ttf │ │ ├── opensans_extrabold.ttf │ │ ├── opensans_light.ttf │ │ ├── opensans_regular.ttf │ │ └── opensans_semibold.ttf │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── commonMain │ │ └── composeResources │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ └── values │ │ │ └── strings.xml │ │ └── jvmMain │ │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── Main.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── resources │ │ ├── linux-icon.png │ │ ├── macos-icon.icns │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── swiftpm │ │ │ │ └── Package.resolved │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── app-icon-white-FF5A00-bg.png │ │ ├── Contents.json │ │ ├── colors │ │ │ ├── Contents.json │ │ │ ├── black-night.colorset │ │ │ │ └── Contents.json │ │ │ ├── grey-thought.colorset │ │ │ │ └── Contents.json │ │ │ └── orange-glow.colorset │ │ │ │ └── Contents.json │ │ ├── ic_bookmark.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_bookmark_1x.png │ │ │ ├── ic_bookmark_2x.png │ │ │ └── ic_bookmark_3x.png │ │ ├── ic_home.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_home_1x.png │ │ │ ├── ic_home_2x.png │ │ │ └── ic_home_3x.png │ │ ├── ic_latest.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_latest_1x.png │ │ │ ├── ic_latest_2x.png │ │ │ └── ic_latest_3x.png │ │ ├── ic_more.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_more_1x.png │ │ │ ├── ic_more_2x.png │ │ │ └── ic_more_3x.png │ │ ├── ic_person.symbolset │ │ │ ├── Contents.json │ │ │ └── ic_person.svg │ │ ├── ic_search.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_search_1x.png │ │ │ ├── ic_search_2x.png │ │ │ └── ic_search_3x.png │ │ ├── kodeco.imageset │ │ │ ├── Contents.json │ │ │ └── appstore.png │ │ └── launch-assets │ │ │ ├── Contents.json │ │ │ ├── logo-white.imageset │ │ │ ├── Contents.json │ │ │ └── White.svg │ │ │ └── orange FF5A00.colorset │ │ │ └── Contents.json │ │ ├── BookmarkView.swift │ │ ├── ContentView.swift │ │ ├── HomeView.swift │ │ ├── Info.plist │ │ ├── KodecoEntryViewModel.swift │ │ ├── LatestView.swift │ │ ├── LaunchScreen.storyboard │ │ ├── MainToolbarContent.swift │ │ ├── SearchView.swift │ │ ├── common │ │ └── KodecoEntryRow.swift │ │ ├── extensions │ │ ├── BookmarkClient.swift │ │ └── FeedClient.swift │ │ ├── fonts │ │ ├── OpenSansBold.ttf │ │ ├── OpenSansExtraBold.ttf │ │ ├── OpenSansLight.ttf │ │ ├── OpenSansRegular.ttf │ │ └── OpenSansSemiBold.ttf │ │ ├── iOSApp.swift │ │ └── utils │ │ ├── Actions.swift │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-action │ ├── build.gradle.kts │ ├── sharedaction │ │ ├── Package.swift │ │ ├── SharedAction-1.0.zip │ │ ├── SharedAction-unspecified.zip │ │ └── SharedAction.xcframework │ │ │ ├── Info.plist │ │ │ ├── ios-arm64 │ │ │ ├── SharedAction.framework │ │ │ │ ├── Headers │ │ │ │ │ └── SharedAction.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ └── SharedAction │ │ │ └── dSYMs │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── SharedAction │ │ │ │ └── Relocations │ │ │ │ └── aarch64 │ │ │ │ └── SharedAction.yml │ │ │ └── ios-arm64_x86_64-simulator │ │ │ ├── SharedAction.framework │ │ │ ├── Headers │ │ │ │ └── SharedAction.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ └── SharedAction │ │ │ └── dSYMs │ │ │ └── SharedAction.framework.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ └── DWARF │ │ │ └── SharedAction │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── action │ │ └── Action.jvm.kt │ ├── shared-dto │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── data │ │ │ ├── KodecoSerializer.kt │ │ │ └── model │ │ │ │ ├── GravatarContent.kt │ │ │ │ ├── KodecoContent.kt │ │ │ │ └── KodecoEntry.kt │ │ │ └── platform │ │ │ └── Parcelable.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ └── Parcelable.jvm.kt │ ├── shared-logger │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── logger │ │ └── Logger.jvm.kt │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ ├── AndroidManifest.xml │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.android.kt │ │ ├── Identifier.android.kt │ │ └── Test.android.kt │ ├── commonMain │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── ServiceLocator.kt │ │ │ ├── Values.kt │ │ │ ├── data │ │ │ ├── FeedAPI.kt │ │ │ └── HttpClientLogger.kt │ │ │ ├── domain │ │ │ ├── GetFeedData.kt │ │ │ ├── cb │ │ │ │ ├── BookmarkData.kt │ │ │ │ └── FeedData.kt │ │ │ └── dao │ │ │ │ └── KodecoEntryDAO.kt │ │ │ ├── platform │ │ │ ├── Database.common.kt │ │ │ ├── Identifier.common.kt │ │ │ └── Test.common.kt │ │ │ └── presentation │ │ │ ├── BookmarkPresenter.kt │ │ │ └── FeedPresenter.kt │ └── sqldelight │ │ └── data │ │ └── KodecoEntryModel.sq │ ├── commonTest │ └── kotlin │ │ ├── NetworkTests.kt │ │ └── SerializationTests.kt │ ├── iosMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.ios.kt │ │ ├── Identifier.ios.kt │ │ └── Test.ios.kt │ └── jvmMain │ └── kotlin │ └── com │ └── kodeco │ └── learn │ └── platform │ ├── Database.jvm.kt │ ├── Identifier.jvm.kt │ └── Test.jvm.kt ├── 16-appendix-b-debugging-your-shared-code-from-xcode ├── assets │ └── .keep └── projects │ ├── plugin │ └── xcode-kotlin-main │ │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ │ ├── .gitignore │ │ ├── .run │ │ ├── info.run.xml │ │ ├── install.run.xml │ │ ├── repair.run.xml │ │ └── uninstall.run.xml │ │ ├── ABOUT.md │ │ ├── BUILDING.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE.txt │ │ ├── LLDBPlugin │ │ ├── lldb │ │ │ └── __init__.pyi │ │ ├── run.py │ │ ├── test_project │ │ │ ├── build.gradle.kts │ │ │ ├── gradle.properties │ │ │ ├── gradle │ │ │ │ ├── libs.versions.toml │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── main.swift │ │ │ ├── settings.gradle.kts │ │ │ └── src │ │ │ │ └── commonMain │ │ │ │ └── kotlin │ │ │ │ └── main.kt │ │ └── touchlab_kotlin_lldb │ │ │ ├── __init__.py │ │ │ ├── cache │ │ │ └── __init__.py │ │ │ ├── commands │ │ │ ├── FieldTypeCommand.py │ │ │ ├── GCCollectCommand.py │ │ │ ├── KonanGlobalsCommand.py │ │ │ ├── SymbolByNameCommand.py │ │ │ ├── TypeByAddressCommand.py │ │ │ └── __init__.py │ │ │ ├── stepping │ │ │ ├── KonanHook.py │ │ │ ├── KonanStep.py │ │ │ ├── KonanStepIn.py │ │ │ ├── KonanStepOut.py │ │ │ └── KonanStepOver.py │ │ │ ├── types │ │ │ ├── KonanArraySyntheticProvider.py │ │ │ ├── KonanBaseSyntheticProvider.py │ │ │ ├── KonanListSyntheticProvider.py │ │ │ ├── KonanMapSyntheticProvider.py │ │ │ ├── KonanNotInitializedObjectSyntheticProvider.py │ │ │ ├── KonanNullSyntheticProvider.py │ │ │ ├── KonanObjectSyntheticProvider.py │ │ │ ├── KonanStringSyntheticProvider.py │ │ │ ├── KonanZerroSyntheticProvider.py │ │ │ ├── base.py │ │ │ ├── proxy.py │ │ │ ├── select_provider.py │ │ │ └── summary.py │ │ │ └── util │ │ │ ├── DebuggerException.py │ │ │ ├── __init__.py │ │ │ ├── expression.py │ │ │ ├── konan_debug.h │ │ │ ├── kotlin_object_to_cstring.py │ │ │ └── log.py │ │ ├── MANUAL_INSTALL.md │ │ ├── README.md │ │ ├── build.gradle.kts │ │ ├── data │ │ ├── Kotlin.ideplugin │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Kotlin.xcplugindata │ │ │ │ └── lldbinit │ │ └── Kotlin.xclangspec │ │ ├── docs │ │ └── images │ │ │ ├── XcodeKotlinFileReferencesSteps.png │ │ │ ├── final.png │ │ │ └── package_back2.png │ │ ├── gradle.properties │ │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── settings.gradle.kts │ │ └── src │ │ └── macosMain │ │ └── kotlin │ │ └── co │ │ └── touchlab │ │ └── xcode │ │ └── cli │ │ ├── EchoWriter.kt │ │ ├── InstallationFacade.kt │ │ ├── LLDBInitManager.kt │ │ ├── LangSpecManager.kt │ │ ├── PluginManager.kt │ │ ├── XcodeHelper.kt │ │ ├── command │ │ ├── BaseXcodeListSubcommand.kt │ │ ├── Disable.kt │ │ ├── Enable.kt │ │ ├── FixXcode15.kt │ │ ├── Info.kt │ │ ├── Install.kt │ │ ├── Sync.kt │ │ └── Uninstall.kt │ │ ├── main.kt │ │ └── util │ │ ├── BackupHelper.kt │ │ ├── Console.kt │ │ ├── CrashHelper.kt │ │ ├── File.kt │ │ ├── Path.kt │ │ ├── PropertyList.kt │ │ ├── SemVer.kt │ │ ├── Shell.kt │ │ └── StringBridge.kt │ └── project │ ├── .gitignore │ ├── .keep │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── KodecoApplication.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainBottomBar.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_bookmarks.xml │ │ ├── ic_brand.xml │ │ ├── ic_home.xml │ │ ├── ic_latest.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_more.xml │ │ └── ic_search.xml │ │ ├── font │ │ ├── opensans_bold.ttf │ │ ├── opensans_extrabold.ttf │ │ ├── opensans_light.ttf │ │ ├── opensans_regular.ttf │ │ └── opensans_semibold.ttf │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── commonMain │ │ └── composeResources │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ └── values │ │ │ └── strings.xml │ │ └── jvmMain │ │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── Main.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── resources │ │ ├── linux-icon.png │ │ ├── macos-icon.icns │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── swiftpm │ │ │ │ └── Package.resolved │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── app-icon-white-FF5A00-bg.png │ │ ├── Contents.json │ │ ├── colors │ │ │ ├── Contents.json │ │ │ ├── black-night.colorset │ │ │ │ └── Contents.json │ │ │ ├── grey-thought.colorset │ │ │ │ └── Contents.json │ │ │ └── orange-glow.colorset │ │ │ │ └── Contents.json │ │ ├── ic_bookmark.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_bookmark_1x.png │ │ │ ├── ic_bookmark_2x.png │ │ │ └── ic_bookmark_3x.png │ │ ├── ic_home.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_home_1x.png │ │ │ ├── ic_home_2x.png │ │ │ └── ic_home_3x.png │ │ ├── ic_latest.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_latest_1x.png │ │ │ ├── ic_latest_2x.png │ │ │ └── ic_latest_3x.png │ │ ├── ic_more.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_more_1x.png │ │ │ ├── ic_more_2x.png │ │ │ └── ic_more_3x.png │ │ ├── ic_person.symbolset │ │ │ ├── Contents.json │ │ │ └── ic_person.svg │ │ ├── ic_search.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_search_1x.png │ │ │ ├── ic_search_2x.png │ │ │ └── ic_search_3x.png │ │ ├── kodeco.imageset │ │ │ ├── Contents.json │ │ │ └── appstore.png │ │ └── launch-assets │ │ │ ├── Contents.json │ │ │ ├── logo-white.imageset │ │ │ ├── Contents.json │ │ │ └── White.svg │ │ │ └── orange FF5A00.colorset │ │ │ └── Contents.json │ │ ├── BookmarkView.swift │ │ ├── ContentView.swift │ │ ├── HomeView.swift │ │ ├── Info.plist │ │ ├── KodecoEntryViewModel.swift │ │ ├── LatestView.swift │ │ ├── LaunchScreen.storyboard │ │ ├── MainToolbarContent.swift │ │ ├── SearchView.swift │ │ ├── common │ │ └── KodecoEntryRow.swift │ │ ├── extensions │ │ ├── BookmarkClient.swift │ │ └── FeedClient.swift │ │ ├── fonts │ │ ├── OpenSansBold.ttf │ │ ├── OpenSansExtraBold.ttf │ │ ├── OpenSansLight.ttf │ │ ├── OpenSansRegular.ttf │ │ └── OpenSansSemiBold.ttf │ │ ├── iOSApp.swift │ │ └── utils │ │ ├── Actions.swift │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-action │ ├── build.gradle.kts │ ├── sharedaction │ │ ├── Package.swift │ │ ├── SharedAction-1.0.zip │ │ ├── SharedAction-unspecified.zip │ │ └── SharedAction.xcframework │ │ │ ├── Info.plist │ │ │ ├── ios-arm64 │ │ │ ├── SharedAction.framework │ │ │ │ ├── Headers │ │ │ │ │ └── SharedAction.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ └── SharedAction │ │ │ └── dSYMs │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── SharedAction │ │ │ │ └── Relocations │ │ │ │ └── aarch64 │ │ │ │ └── SharedAction.yml │ │ │ └── ios-arm64_x86_64-simulator │ │ │ ├── SharedAction.framework │ │ │ ├── Headers │ │ │ │ └── SharedAction.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ └── SharedAction │ │ │ └── dSYMs │ │ │ └── SharedAction.framework.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ └── DWARF │ │ │ └── SharedAction │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── action │ │ └── Action.jvm.kt │ ├── shared-dto │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── data │ │ │ ├── KodecoSerializer.kt │ │ │ └── model │ │ │ │ ├── GravatarContent.kt │ │ │ │ ├── KodecoContent.kt │ │ │ │ └── KodecoEntry.kt │ │ │ └── platform │ │ │ └── Parcelable.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ └── Parcelable.jvm.kt │ ├── shared-logger │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── logger │ │ └── Logger.jvm.kt │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ ├── AndroidManifest.xml │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.android.kt │ │ ├── Identifier.android.kt │ │ └── Test.android.kt │ ├── commonMain │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── ServiceLocator.kt │ │ │ ├── Values.kt │ │ │ ├── data │ │ │ ├── FeedAPI.kt │ │ │ └── HttpClientLogger.kt │ │ │ ├── domain │ │ │ ├── GetFeedData.kt │ │ │ ├── cb │ │ │ │ ├── BookmarkData.kt │ │ │ │ └── FeedData.kt │ │ │ └── dao │ │ │ │ └── KodecoEntryDAO.kt │ │ │ ├── platform │ │ │ ├── Database.common.kt │ │ │ ├── Identifier.common.kt │ │ │ └── Test.common.kt │ │ │ └── presentation │ │ │ ├── BookmarkPresenter.kt │ │ │ └── FeedPresenter.kt │ └── sqldelight │ │ └── data │ │ └── KodecoEntryModel.sq │ ├── commonTest │ └── kotlin │ │ ├── NetworkTests.kt │ │ └── SerializationTests.kt │ ├── iosMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.ios.kt │ │ ├── Identifier.ios.kt │ │ └── Test.ios.kt │ └── jvmMain │ └── kotlin │ └── com │ └── kodeco │ └── learn │ └── platform │ ├── Database.jvm.kt │ ├── Identifier.jvm.kt │ └── Test.jvm.kt ├── 17-appendix-c-sharing-your-compose-ui-across-multiple-platforms ├── assets │ ├── .keep │ ├── ic_bookmarks.svg │ ├── ic_brand.svg │ ├── ic_home.svg │ ├── ic_latest.svg │ ├── ic_more.svg │ └── ic_search.svg └── projects │ ├── compose-multiplatform-template │ ├── .gitignore │ ├── README.md │ ├── build.gradle.kts │ ├── composeApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── kodeco │ │ │ │ │ └── learn │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ └── Platform.android.kt │ │ │ └── res │ │ │ │ ├── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ ├── drawable │ │ │ │ └── ic_launcher_background.xml │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ ├── commonMain │ │ │ ├── composeResources │ │ │ │ └── drawable │ │ │ │ │ └── compose-multiplatform.xml │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── App.kt │ │ │ │ ├── Greeting.kt │ │ │ │ └── Platform.kt │ │ │ ├── desktopMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── Platform.jvm.kt │ │ │ │ └── main.kt │ │ │ └── iosMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── MainViewController.kt │ │ │ └── Platform.ios.kt │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── Configuration │ │ │ └── Config.xcconfig │ │ ├── iosApp.xcodeproj │ │ │ └── project.pbxproj │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-1024.png │ │ │ └── Contents.json │ │ │ ├── ContentView.swift │ │ │ ├── Info.plist │ │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ │ └── iOSApp.swift │ └── settings.gradle.kts │ ├── final │ ├── .gitignore │ ├── .keep │ ├── androidApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── KodecoApplication.kt │ │ │ │ └── ui │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_foreground.webp │ │ │ └── ic_launcher_round.webp │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── jvmMain │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── Main.kt │ │ │ └── resources │ │ │ ├── linux-icon.png │ │ │ ├── macos-icon.icns │ │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ │ ├── libs.versions.toml │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── iosApp.xcscheme │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ ├── Contents.json │ │ │ ├── colors │ │ │ │ ├── Contents.json │ │ │ │ ├── black-night.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── grey-thought.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── orange-glow.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── ic_bookmark.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_bookmark_1x.png │ │ │ │ ├── ic_bookmark_2x.png │ │ │ │ └── ic_bookmark_3x.png │ │ │ ├── ic_home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_home_1x.png │ │ │ │ ├── ic_home_2x.png │ │ │ │ └── ic_home_3x.png │ │ │ ├── ic_latest.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_latest_1x.png │ │ │ │ ├── ic_latest_2x.png │ │ │ │ └── ic_latest_3x.png │ │ │ ├── ic_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_more_1x.png │ │ │ │ ├── ic_more_2x.png │ │ │ │ └── ic_more_3x.png │ │ │ ├── ic_person.symbolset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_person.svg │ │ │ ├── ic_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── ic_search_1x.png │ │ │ │ ├── ic_search_2x.png │ │ │ │ └── ic_search_3x.png │ │ │ ├── kodeco.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── appstore.png │ │ │ └── launch-assets │ │ │ │ ├── Contents.json │ │ │ │ ├── logo-white.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── White.svg │ │ │ │ └── orange FF5A00.colorset │ │ │ │ └── Contents.json │ │ │ ├── BookmarkView.swift │ │ │ ├── ContentView.swift │ │ │ ├── HomeView.swift │ │ │ ├── Info.plist │ │ │ ├── KodecoEntryViewModel.swift │ │ │ ├── LatestView.swift │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MainToolbarContent.swift │ │ │ ├── SearchView.swift │ │ │ ├── common │ │ │ └── KodecoEntryRow.swift │ │ │ ├── extensions │ │ │ ├── BookmarkClient.swift │ │ │ └── FeedClient.swift │ │ │ ├── fonts │ │ │ ├── OpenSansBold.ttf │ │ │ ├── OpenSansExtraBold.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── OpenSansRegular.ttf │ │ │ └── OpenSansSemiBold.ttf │ │ │ ├── iOSApp.swift │ │ │ └── utils │ │ │ ├── Actions.swift │ │ │ └── Utils.swift │ ├── iosAppCompose │ │ ├── Configuration │ │ │ └── Config.xcconfig │ │ ├── iosApp.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ └── contents.xcworkspacedata │ │ └── iosApp │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ └── app-icon-white-FF5A00-bg.png │ │ │ └── Contents.json │ │ │ ├── ContentView.swift │ │ │ ├── Info.plist │ │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ │ └── iOSApp.swift │ ├── settings.gradle.kts │ ├── shared-action │ │ ├── build.gradle.kts │ │ ├── sharedaction │ │ │ ├── Package.swift │ │ │ ├── SharedAction-1.0.zip │ │ │ ├── SharedAction-unspecified.zip │ │ │ └── SharedAction.xcframework │ │ │ │ ├── Info.plist │ │ │ │ ├── ios-arm64 │ │ │ │ ├── SharedAction.framework │ │ │ │ │ ├── Headers │ │ │ │ │ │ └── SharedAction.h │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── Modules │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ │ └── Contents │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Resources │ │ │ │ │ ├── DWARF │ │ │ │ │ └── SharedAction │ │ │ │ │ └── Relocations │ │ │ │ │ └── aarch64 │ │ │ │ │ └── SharedAction.yml │ │ │ │ └── ios-arm64_x86_64-simulator │ │ │ │ ├── SharedAction.framework │ │ │ │ ├── Headers │ │ │ │ │ └── SharedAction.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ └── SharedAction │ │ │ │ └── dSYMs │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ └── DWARF │ │ │ │ └── SharedAction │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── action │ │ │ │ └── Action.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.jvm.kt │ ├── shared-dto │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── data │ │ │ │ ├── KodecoSerializer.kt │ │ │ │ └── model │ │ │ │ │ ├── GravatarContent.kt │ │ │ │ │ ├── KodecoContent.kt │ │ │ │ │ └── KodecoEntry.kt │ │ │ │ └── platform │ │ │ │ └── Parcelable.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── platform │ │ │ │ └── Parcelable.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.jvm.kt │ ├── shared-logger │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.android.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.common.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── logger │ │ │ │ └── Logger.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.jvm.kt │ ├── shared-ui │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ └── utils │ │ │ │ └── Utils.android.kt │ │ │ ├── commonMain │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── kodeco │ │ │ │ │ └── learn │ │ │ │ │ ├── components │ │ │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ │ │ ├── ImagePreview.kt │ │ │ │ │ └── PagerTab.kt │ │ │ │ │ ├── ui │ │ │ │ │ ├── bookmark │ │ │ │ │ │ ├── BookmarkContent.kt │ │ │ │ │ │ └── BookmarkViewModel.kt │ │ │ │ │ ├── common │ │ │ │ │ │ ├── EmptyContent.kt │ │ │ │ │ │ └── EntryContent.kt │ │ │ │ │ ├── home │ │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ │ ├── HomeContent.kt │ │ │ │ │ │ └── HomeSheetContent.kt │ │ │ │ │ ├── latest │ │ │ │ │ │ └── LatestContent.kt │ │ │ │ │ ├── main │ │ │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ │ │ ├── MainContent.kt │ │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ │ └── MainTopAppBar.kt │ │ │ │ │ ├── search │ │ │ │ │ │ └── SearchContent.kt │ │ │ │ │ └── theme │ │ │ │ │ │ ├── Color.kt │ │ │ │ │ │ ├── Shape.kt │ │ │ │ │ │ ├── Theme.kt │ │ │ │ │ │ └── Type.kt │ │ │ │ │ └── utils │ │ │ │ │ └── Utils.common.kt │ │ │ └── moko-resources │ │ │ │ ├── base │ │ │ │ └── strings.xml │ │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ ├── OpenSans-ExtraBold.ttf │ │ │ │ ├── OpenSans-Light.ttf │ │ │ │ ├── OpenSans-Regular.ttf │ │ │ │ └── OpenSans-SemiBold.ttf │ │ │ │ └── images │ │ │ │ ├── ic_bookmarks.svg │ │ │ │ ├── ic_brand.svg │ │ │ │ ├── ic_home.svg │ │ │ │ ├── ic_latest.svg │ │ │ │ ├── ic_more.svg │ │ │ │ └── ic_search.svg │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ui │ │ │ │ └── main.ios.kt │ │ │ │ └── utils │ │ │ │ └── Utils.ios.kt │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── utils │ │ │ └── Utils.desktop.kt │ └── shared │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.android.kt │ │ │ ├── Identifier.android.kt │ │ │ └── Test.android.kt │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── kodeco │ │ │ │ └── learn │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── Values.kt │ │ │ │ ├── data │ │ │ │ ├── FeedAPI.kt │ │ │ │ └── HttpClientLogger.kt │ │ │ │ ├── domain │ │ │ │ ├── GetFeedData.kt │ │ │ │ ├── cb │ │ │ │ │ ├── BookmarkData.kt │ │ │ │ │ └── FeedData.kt │ │ │ │ └── dao │ │ │ │ │ └── KodecoEntryDAO.kt │ │ │ │ ├── platform │ │ │ │ ├── Database.common.kt │ │ │ │ ├── Identifier.common.kt │ │ │ │ └── Test.common.kt │ │ │ │ └── presentation │ │ │ │ ├── BookmarkPresenter.kt │ │ │ │ └── FeedPresenter.kt │ │ └── sqldelight │ │ │ └── data │ │ │ └── KodecoEntryModel.sq │ │ ├── commonTest │ │ └── kotlin │ │ │ ├── NetworkTests.kt │ │ │ └── SerializationTests.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ ├── Database.ios.kt │ │ │ ├── Identifier.ios.kt │ │ │ └── Test.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.jvm.kt │ │ ├── Identifier.jvm.kt │ │ └── Test.jvm.kt │ └── starter │ ├── .gitignore │ ├── .keep │ ├── androidApp │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── KodecoApplication.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainBottomBar.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_bookmarks.xml │ │ ├── ic_brand.xml │ │ ├── ic_home.xml │ │ ├── ic_latest.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_more.xml │ │ └── ic_search.xml │ │ ├── font │ │ ├── opensans_bold.ttf │ │ ├── opensans_extrabold.ttf │ │ ├── opensans_light.ttf │ │ ├── opensans_regular.ttf │ │ └── opensans_semibold.ttf │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── build.gradle.kts │ ├── desktopApp │ ├── build.gradle.kts │ └── src │ │ ├── commonMain │ │ └── composeResources │ │ │ ├── drawable │ │ │ ├── ic_bookmarks.xml │ │ │ ├── ic_brand.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_latest.xml │ │ │ ├── ic_more.xml │ │ │ └── ic_search.xml │ │ │ ├── font │ │ │ ├── opensans_bold.ttf │ │ │ ├── opensans_extrabold.ttf │ │ │ ├── opensans_light.ttf │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ └── values │ │ │ └── strings.xml │ │ └── jvmMain │ │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── Main.kt │ │ │ ├── components │ │ │ ├── HorizontalPagerIndicator.kt │ │ │ ├── ImagePreview.kt │ │ │ └── PagerTab.kt │ │ │ ├── ui │ │ │ ├── bookmark │ │ │ │ ├── BookmarkContent.kt │ │ │ │ └── BookmarkViewModel.kt │ │ │ ├── common │ │ │ │ ├── EmptyContent.kt │ │ │ │ └── EntryContent.kt │ │ │ ├── home │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── HomeContent.kt │ │ │ │ └── HomeSheetContent.kt │ │ │ ├── latest │ │ │ │ └── LatestContent.kt │ │ │ ├── main │ │ │ │ ├── BottomNavigationScreens.kt │ │ │ │ ├── MainContent.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ └── MainTopAppBar.kt │ │ │ ├── search │ │ │ │ └── SearchContent.kt │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ │ └── utils │ │ │ └── Utils.kt │ │ └── resources │ │ ├── linux-icon.png │ │ ├── macos-icon.icns │ │ └── windows-icon.ico │ ├── gradle.properties │ ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── iosApp │ ├── iosApp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── swiftpm │ │ │ │ └── Package.resolved │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── iosApp.xcscheme │ └── iosApp │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── app-icon-white-FF5A00-bg.png │ │ ├── Contents.json │ │ ├── colors │ │ │ ├── Contents.json │ │ │ ├── black-night.colorset │ │ │ │ └── Contents.json │ │ │ ├── grey-thought.colorset │ │ │ │ └── Contents.json │ │ │ └── orange-glow.colorset │ │ │ │ └── Contents.json │ │ ├── ic_bookmark.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_bookmark_1x.png │ │ │ ├── ic_bookmark_2x.png │ │ │ └── ic_bookmark_3x.png │ │ ├── ic_home.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_home_1x.png │ │ │ ├── ic_home_2x.png │ │ │ └── ic_home_3x.png │ │ ├── ic_latest.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_latest_1x.png │ │ │ ├── ic_latest_2x.png │ │ │ └── ic_latest_3x.png │ │ ├── ic_more.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_more_1x.png │ │ │ ├── ic_more_2x.png │ │ │ └── ic_more_3x.png │ │ ├── ic_person.symbolset │ │ │ ├── Contents.json │ │ │ └── ic_person.svg │ │ ├── ic_search.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_search_1x.png │ │ │ ├── ic_search_2x.png │ │ │ └── ic_search_3x.png │ │ ├── kodeco.imageset │ │ │ ├── Contents.json │ │ │ └── appstore.png │ │ └── launch-assets │ │ │ ├── Contents.json │ │ │ ├── logo-white.imageset │ │ │ ├── Contents.json │ │ │ └── White.svg │ │ │ └── orange FF5A00.colorset │ │ │ └── Contents.json │ │ ├── BookmarkView.swift │ │ ├── ContentView.swift │ │ ├── HomeView.swift │ │ ├── Info.plist │ │ ├── KodecoEntryViewModel.swift │ │ ├── LatestView.swift │ │ ├── LaunchScreen.storyboard │ │ ├── MainToolbarContent.swift │ │ ├── SearchView.swift │ │ ├── common │ │ └── KodecoEntryRow.swift │ │ ├── extensions │ │ ├── BookmarkClient.swift │ │ └── FeedClient.swift │ │ ├── fonts │ │ ├── OpenSansBold.ttf │ │ ├── OpenSansExtraBold.ttf │ │ ├── OpenSansLight.ttf │ │ ├── OpenSansRegular.ttf │ │ └── OpenSansSemiBold.ttf │ │ ├── iOSApp.swift │ │ └── utils │ │ ├── Actions.swift │ │ └── Utils.swift │ ├── settings.gradle.kts │ ├── shared-action │ ├── build.gradle.kts │ ├── sharedaction │ │ ├── Package.swift │ │ ├── SharedAction-1.0.zip │ │ ├── SharedAction-unspecified.zip │ │ └── SharedAction.xcframework │ │ │ ├── Info.plist │ │ │ ├── ios-arm64 │ │ │ ├── SharedAction.framework │ │ │ │ ├── Headers │ │ │ │ │ └── SharedAction.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ └── SharedAction │ │ │ └── dSYMs │ │ │ │ └── SharedAction.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── SharedAction │ │ │ │ └── Relocations │ │ │ │ └── aarch64 │ │ │ │ └── SharedAction.yml │ │ │ └── ios-arm64_x86_64-simulator │ │ │ ├── SharedAction.framework │ │ │ ├── Headers │ │ │ │ └── SharedAction.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ └── SharedAction │ │ │ └── dSYMs │ │ │ └── SharedAction.framework.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ └── DWARF │ │ │ └── SharedAction │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── action │ │ │ └── Action.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── action │ │ └── Action.jvm.kt │ ├── shared-dto │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── data │ │ │ ├── KodecoSerializer.kt │ │ │ └── model │ │ │ │ ├── GravatarContent.kt │ │ │ │ ├── KodecoContent.kt │ │ │ │ └── KodecoEntry.kt │ │ │ └── platform │ │ │ └── Parcelable.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── platform │ │ │ └── Parcelable.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ └── Parcelable.jvm.kt │ ├── shared-logger │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.android.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.common.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ └── logger │ │ │ └── Logger.ios.kt │ │ └── jvmMain │ │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── logger │ │ └── Logger.jvm.kt │ └── shared │ ├── build.gradle.kts │ └── src │ ├── androidMain │ ├── AndroidManifest.xml │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.android.kt │ │ ├── Identifier.android.kt │ │ └── Test.android.kt │ ├── commonMain │ ├── kotlin │ │ └── com │ │ │ └── kodeco │ │ │ └── learn │ │ │ ├── ServiceLocator.kt │ │ │ ├── Values.kt │ │ │ ├── data │ │ │ ├── FeedAPI.kt │ │ │ └── HttpClientLogger.kt │ │ │ ├── domain │ │ │ ├── GetFeedData.kt │ │ │ ├── cb │ │ │ │ ├── BookmarkData.kt │ │ │ │ └── FeedData.kt │ │ │ └── dao │ │ │ │ └── KodecoEntryDAO.kt │ │ │ ├── platform │ │ │ ├── Database.common.kt │ │ │ ├── Identifier.common.kt │ │ │ └── Test.common.kt │ │ │ └── presentation │ │ │ ├── BookmarkPresenter.kt │ │ │ └── FeedPresenter.kt │ └── sqldelight │ │ └── data │ │ └── KodecoEntryModel.sq │ ├── commonTest │ └── kotlin │ │ ├── NetworkTests.kt │ │ └── SerializationTests.kt │ ├── iosMain │ └── kotlin │ │ └── com │ │ └── kodeco │ │ └── learn │ │ └── platform │ │ ├── Database.ios.kt │ │ ├── Identifier.ios.kt │ │ └── Test.ios.kt │ └── jvmMain │ └── kotlin │ └── com │ └── kodeco │ └── learn │ └── platform │ ├── Database.jvm.kt │ ├── Identifier.jvm.kt │ └── Test.jvm.kt ├── LICENSE ├── README.md └── scripts ├── make-codex-branch.sh └── make-codex-subdirectory.sh /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/.gitignore -------------------------------------------------------------------------------- /01-introduction/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /01-introduction/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/.gitignore -------------------------------------------------------------------------------- /01-introduction/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /01-introduction/projects/final/androidApp/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/androidApp/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /01-introduction/projects/final/androidApp/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/androidApp/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /01-introduction/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /01-introduction/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/gradle.properties -------------------------------------------------------------------------------- /01-introduction/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /01-introduction/projects/final/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /01-introduction/projects/final/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /01-introduction/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/gradlew -------------------------------------------------------------------------------- /01-introduction/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/gradlew.bat -------------------------------------------------------------------------------- /01-introduction/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /01-introduction/projects/final/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /01-introduction/projects/final/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /01-introduction/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /01-introduction/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /01-introduction/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/01-introduction/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /02-getting-started/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /02-getting-started/projects/challenge/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/challenge/ContentView.swift -------------------------------------------------------------------------------- /02-getting-started/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/.gitignore -------------------------------------------------------------------------------- /02-getting-started/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /02-getting-started/projects/final/androidApp/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/androidApp/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /02-getting-started/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /02-getting-started/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/gradle.properties -------------------------------------------------------------------------------- /02-getting-started/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /02-getting-started/projects/final/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /02-getting-started/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/gradlew -------------------------------------------------------------------------------- /02-getting-started/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/gradlew.bat -------------------------------------------------------------------------------- /02-getting-started/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /02-getting-started/projects/final/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /02-getting-started/projects/final/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /02-getting-started/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /02-getting-started/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /02-getting-started/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /02-getting-started/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/.gitignore -------------------------------------------------------------------------------- /02-getting-started/projects/starter/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /02-getting-started/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /02-getting-started/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/gradle.properties -------------------------------------------------------------------------------- /02-getting-started/projects/starter/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/gradle/libs.versions.toml -------------------------------------------------------------------------------- /02-getting-started/projects/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /02-getting-started/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/gradlew -------------------------------------------------------------------------------- /02-getting-started/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /02-getting-started/projects/starter/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /02-getting-started/projects/starter/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /02-getting-started/projects/starter/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /02-getting-started/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /02-getting-started/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/02-getting-started/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/files/MeetingDialog.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/files/MeetingDialog.kt -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/files/NumberPicker.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/files/NumberPicker.kt -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/final/.gitignore -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/final/gradle.properties -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/final/gradlew -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/final/gradlew.bat -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/starter/.gitignore -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/starter/gradlew -------------------------------------------------------------------------------- /03-developing-ui-android-jetpack-compose/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/03-developing-ui-android-jetpack-compose/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/files/CardModifier.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/files/CardModifier.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/files/ListModifier.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/files/ListModifier.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/files/NumberTimeCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/files/NumberTimeCard.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/files/PresentationSettings.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/files/PresentationSettings.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/files/Searchbar.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/files/Searchbar.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/files/TimeCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/files/TimeCard.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/files/TimezoneDialog.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/files/TimezoneDialog.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/files/TimezoneItems.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/files/TimezoneItems.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/files/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/files/Utils.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/.gitignore -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/gradle.properties -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/gradlew -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/gradlew.bat -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/HourSheet.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/HourSheet.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/Searchbar.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/Searchbar.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/TimeCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/TimeCard.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/iosApp/iosApp/Utils.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/.gitignore -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/gradle.properties -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/gradle/libs.versions.toml -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/gradlew -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /04-developing-ui-ios-swiftui/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/04-developing-ui-ios-swiftui/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/.gitignore -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/desktop/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/desktop/build.gradle.kts -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/gradle.properties -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/gradlew -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/gradlew.bat -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/iosApp/iosApp/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/iosApp/iosApp/Utils.swift -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/starter/.gitignore -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/starter/gradle.properties -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/starter/gradlew -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /05-developing-ui-compose-desktop/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/05-developing-ui-compose-desktop/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/challenge/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/challenge/.gitignore -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/challenge/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/challenge/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/challenge/.idea/kotlinc.xml -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/challenge/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/challenge/build.gradle.kts -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/challenge/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/challenge/gradle.properties -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/challenge/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/challenge/gradlew -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/challenge/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/challenge/gradlew.bat -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/final/.gitignore -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/final/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/final/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/final/.idea/kotlinc.xml -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/final/.idea/migrations.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/final/.idea/migrations.xml -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/final/gradle.properties -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/final/gradlew -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/final/gradlew.bat -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/starter/.gitignore -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/starter/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/starter/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/starter/.idea/kotlinc.xml -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/starter/gradle.properties -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/starter/gradlew -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /06-connect-to-platform-specific-apis/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/06-connect-to-platform-specific-apis/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/.gitignore -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/.idea/kotlinc.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/gradle.properties -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/gradle/libs.versions.toml -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/gradlew -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/gradlew.bat -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/settings.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/challenge/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/challenge/shared/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/.gitignore -------------------------------------------------------------------------------- /07-app-architecture/projects/final/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /07-app-architecture/projects/final/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/final/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/.idea/codeStyles/codeStyleConfig.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/final/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/final/.idea/deploymentTargetDropDown.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/.idea/deploymentTargetDropDown.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/final/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/.idea/kotlinc.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/final/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/gradle.properties -------------------------------------------------------------------------------- /07-app-architecture/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /07-app-architecture/projects/final/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /07-app-architecture/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/gradlew -------------------------------------------------------------------------------- /07-app-architecture/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/gradlew.bat -------------------------------------------------------------------------------- /07-app-architecture/projects/final/iosApp/iosApp/UI/About/AboutView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/iosApp/iosApp/UI/About/AboutView.swift -------------------------------------------------------------------------------- /07-app-architecture/projects/final/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /07-app-architecture/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /07-app-architecture/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/.gitignore -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/.idea/codeStyles/codeStyleConfig.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/.idea/deploymentTargetDropDown.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/.idea/deploymentTargetDropDown.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/.idea/kotlinc.xml -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/gradle.properties -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/gradle/libs.versions.toml -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/gradlew -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /07-app-architecture/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/07-app-architecture/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /08-testing/projects/challenge/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/.gitignore -------------------------------------------------------------------------------- /08-testing/projects/challenge/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /08-testing/projects/challenge/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /08-testing/projects/challenge/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/.idea/codeStyles/codeStyleConfig.xml -------------------------------------------------------------------------------- /08-testing/projects/challenge/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /08-testing/projects/challenge/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/.idea/kotlinc.xml -------------------------------------------------------------------------------- /08-testing/projects/challenge/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/challenge/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/challenge/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/challenge/desktopApp/src/desktopMain/kotlin/Main.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/desktopApp/src/desktopMain/kotlin/Main.kt -------------------------------------------------------------------------------- /08-testing/projects/challenge/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/gradle.properties -------------------------------------------------------------------------------- /08-testing/projects/challenge/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/gradle/libs.versions.toml -------------------------------------------------------------------------------- /08-testing/projects/challenge/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /08-testing/projects/challenge/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /08-testing/projects/challenge/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/gradlew -------------------------------------------------------------------------------- /08-testing/projects/challenge/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/gradlew.bat -------------------------------------------------------------------------------- /08-testing/projects/challenge/iosApp/iosApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/iosApp/iosApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /08-testing/projects/challenge/iosApp/iosApp/Supporting Files/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/iosApp/iosApp/Supporting Files/Info.plist -------------------------------------------------------------------------------- /08-testing/projects/challenge/iosApp/iosApp/UI/About/AboutListView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/iosApp/iosApp/UI/About/AboutListView.swift -------------------------------------------------------------------------------- /08-testing/projects/challenge/iosApp/iosApp/UI/About/AboutView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/iosApp/iosApp/UI/About/AboutView.swift -------------------------------------------------------------------------------- /08-testing/projects/challenge/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /08-testing/projects/challenge/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /08-testing/projects/challenge/iosApp/iosAppUITests/iosAppUITests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/iosApp/iosAppUITests/iosAppUITests.swift -------------------------------------------------------------------------------- /08-testing/projects/challenge/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/settings.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/challenge/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/challenge/shared/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/.gitignore -------------------------------------------------------------------------------- /08-testing/projects/final/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /08-testing/projects/final/.idea/androidTestResultsUserPreferences.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/.idea/androidTestResultsUserPreferences.xml -------------------------------------------------------------------------------- /08-testing/projects/final/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /08-testing/projects/final/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/.idea/codeStyles/codeStyleConfig.xml -------------------------------------------------------------------------------- /08-testing/projects/final/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /08-testing/projects/final/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/.idea/kotlinc.xml -------------------------------------------------------------------------------- /08-testing/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/final/androidApp/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/androidApp/src/androidMain/AndroidManifest.xml -------------------------------------------------------------------------------- /08-testing/projects/final/androidApp/src/androidMain/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/androidApp/src/androidMain/ic_launcher-web.png -------------------------------------------------------------------------------- /08-testing/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/final/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/final/desktopApp/src/desktopMain/kotlin/Main.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/desktopApp/src/desktopMain/kotlin/Main.kt -------------------------------------------------------------------------------- /08-testing/projects/final/desktopApp/src/desktopTest/kotlin/AppUITest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/desktopApp/src/desktopTest/kotlin/AppUITest.kt -------------------------------------------------------------------------------- /08-testing/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/gradle.properties -------------------------------------------------------------------------------- /08-testing/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /08-testing/projects/final/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /08-testing/projects/final/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /08-testing/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/gradlew -------------------------------------------------------------------------------- /08-testing/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/gradlew.bat -------------------------------------------------------------------------------- /08-testing/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /08-testing/projects/final/iosApp/iosApp/Supporting Files/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/iosApp/iosApp/Supporting Files/Info.plist -------------------------------------------------------------------------------- /08-testing/projects/final/iosApp/iosApp/UI/About/AboutListView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/iosApp/iosApp/UI/About/AboutListView.swift -------------------------------------------------------------------------------- /08-testing/projects/final/iosApp/iosApp/UI/About/AboutView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/iosApp/iosApp/UI/About/AboutView.swift -------------------------------------------------------------------------------- /08-testing/projects/final/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /08-testing/projects/final/iosApp/iosApp/UI/Reminders/ReminderItem.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/iosApp/iosApp/UI/Reminders/ReminderItem.swift -------------------------------------------------------------------------------- /08-testing/projects/final/iosApp/iosApp/UI/Reminders/RemindersView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/iosApp/iosApp/UI/Reminders/RemindersView.swift -------------------------------------------------------------------------------- /08-testing/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /08-testing/projects/final/iosApp/iosAppUITests/iosAppUITests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/iosApp/iosAppUITests/iosAppUITests.swift -------------------------------------------------------------------------------- /08-testing/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/.gitignore -------------------------------------------------------------------------------- /08-testing/projects/starter/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /08-testing/projects/starter/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /08-testing/projects/starter/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/.idea/codeStyles/codeStyleConfig.xml -------------------------------------------------------------------------------- /08-testing/projects/starter/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /08-testing/projects/starter/.idea/deploymentTargetDropDown.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/.idea/deploymentTargetDropDown.xml -------------------------------------------------------------------------------- /08-testing/projects/starter/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/.idea/kotlinc.xml -------------------------------------------------------------------------------- /08-testing/projects/starter/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/starter/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/starter/desktopApp/src/desktopMain/kotlin/Main.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/desktopApp/src/desktopMain/kotlin/Main.kt -------------------------------------------------------------------------------- /08-testing/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/gradle.properties -------------------------------------------------------------------------------- /08-testing/projects/starter/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/gradle/libs.versions.toml -------------------------------------------------------------------------------- /08-testing/projects/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /08-testing/projects/starter/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /08-testing/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/gradlew -------------------------------------------------------------------------------- /08-testing/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /08-testing/projects/starter/iosApp/iosApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/iosApp/iosApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /08-testing/projects/starter/iosApp/iosApp/Supporting Files/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/iosApp/iosApp/Supporting Files/Info.plist -------------------------------------------------------------------------------- /08-testing/projects/starter/iosApp/iosApp/UI/About/AboutListView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/iosApp/iosApp/UI/About/AboutListView.swift -------------------------------------------------------------------------------- /08-testing/projects/starter/iosApp/iosApp/UI/About/AboutView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/iosApp/iosApp/UI/About/AboutView.swift -------------------------------------------------------------------------------- /08-testing/projects/starter/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /08-testing/projects/starter/iosApp/iosApp/UI/Reminders/ReminderItem.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/iosApp/iosApp/UI/Reminders/ReminderItem.swift -------------------------------------------------------------------------------- /08-testing/projects/starter/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /08-testing/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /08-testing/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/08-testing/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/.gitignore -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/.idea/kotlinc.xml -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/gradle.properties -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/gradlew -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/gradlew.bat -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/.gitignore -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/.idea/kotlinc.xml -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/gradle.properties -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/gradle/libs.versions.toml -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/gradlew -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /09-dependency-injection/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/09-dependency-injection/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/.gitignore -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/.idea/kotlinc.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/gradle.properties -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/gradle/libs.versions.toml -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/gradlew -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/gradlew.bat -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/settings.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/challenge/shared/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/challenge/shared/src/commonMain/sqldelight/com/yourcompany/organize/db/1.sqm: -------------------------------------------------------------------------------- 1 | ALTER TABLE ReminderDb ADD COLUMN dueDate INTEGER; -------------------------------------------------------------------------------- /10-data-persistence/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/.gitignore -------------------------------------------------------------------------------- /10-data-persistence/projects/final/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /10-data-persistence/projects/final/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/final/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/.idea/codeStyles/codeStyleConfig.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/final/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/final/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/.idea/kotlinc.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/final/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/gradle.properties -------------------------------------------------------------------------------- /10-data-persistence/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /10-data-persistence/projects/final/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /10-data-persistence/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/gradlew -------------------------------------------------------------------------------- /10-data-persistence/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/gradlew.bat -------------------------------------------------------------------------------- /10-data-persistence/projects/final/iosApp/iosApp/UI/About/AboutView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/iosApp/iosApp/UI/About/AboutView.swift -------------------------------------------------------------------------------- /10-data-persistence/projects/final/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /10-data-persistence/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /10-data-persistence/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/final/shared/src/commonMain/sqldelight/com/yourcompany/organize/db/1.sqm: -------------------------------------------------------------------------------- 1 | ALTER TABLE ReminderDb ADD COLUMN dueDate INTEGER; -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/.gitignore -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/.idea/codeStyles/codeStyleConfig.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/.idea/copyright/kodeco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/.idea/copyright/kodeco.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/.idea/kotlinc.xml -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/gradle.properties -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/gradle/libs.versions.toml -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/gradlew -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/iosApp/iosApp/UI/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/iosApp/iosApp/UI/ContentView.swift -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /10-data-persistence/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/10-data-persistence/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /11-serialization/projects/challenge/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/.gitignore -------------------------------------------------------------------------------- /11-serialization/projects/challenge/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /11-serialization/projects/challenge/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/challenge/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/challenge/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/challenge/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/gradle.properties -------------------------------------------------------------------------------- /11-serialization/projects/challenge/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/gradle/libs.versions.toml -------------------------------------------------------------------------------- /11-serialization/projects/challenge/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /11-serialization/projects/challenge/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/gradlew -------------------------------------------------------------------------------- /11-serialization/projects/challenge/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/gradlew.bat -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/BookmarkView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/BookmarkView.swift -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/HomeView.swift -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/LatestView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/LatestView.swift -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/LaunchScreen.storyboard -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/SearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/SearchView.swift -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/fonts/OpenSansLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/fonts/OpenSansLight.ttf -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/utils/Actions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/utils/Actions.swift -------------------------------------------------------------------------------- /11-serialization/projects/challenge/iosApp/iosApp/utils/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/iosApp/iosApp/utils/Utils.swift -------------------------------------------------------------------------------- /11-serialization/projects/challenge/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/settings.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/challenge/shared-dto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/shared-dto/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/challenge/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/challenge/shared/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/challenge/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /11-serialization/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/.gitignore -------------------------------------------------------------------------------- /11-serialization/projects/final/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /11-serialization/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/final/androidApp/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/androidApp/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /11-serialization/projects/final/androidApp/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/androidApp/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /11-serialization/projects/final/androidApp/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/androidApp/src/main/res/values/themes.xml -------------------------------------------------------------------------------- /11-serialization/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/final/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/gradle.properties -------------------------------------------------------------------------------- /11-serialization/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /11-serialization/projects/final/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /11-serialization/projects/final/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /11-serialization/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/gradlew -------------------------------------------------------------------------------- /11-serialization/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/gradlew.bat -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/BookmarkView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/BookmarkView.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/HomeView.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/KodecoEntryViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/KodecoEntryViewModel.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/LatestView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/LatestView.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/LaunchScreen.storyboard -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/MainToolbarContent.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/MainToolbarContent.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/SearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/SearchView.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/common/KodecoEntryRow.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/common/KodecoEntryRow.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/fonts/OpenSansLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/fonts/OpenSansLight.ttf -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/utils/Actions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/utils/Actions.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/iosApp/iosApp/utils/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/iosApp/iosApp/utils/Utils.swift -------------------------------------------------------------------------------- /11-serialization/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/final/shared-dto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/shared-dto/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/final/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /11-serialization/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/.gitignore -------------------------------------------------------------------------------- /11-serialization/projects/starter/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /11-serialization/projects/starter/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/starter/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/gradle.properties -------------------------------------------------------------------------------- /11-serialization/projects/starter/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/gradle/libs.versions.toml -------------------------------------------------------------------------------- /11-serialization/projects/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /11-serialization/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/gradlew -------------------------------------------------------------------------------- /11-serialization/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/BookmarkView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/BookmarkView.swift -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/HomeView.swift -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/LatestView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/LatestView.swift -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/SearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/SearchView.swift -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/utils/Actions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/utils/Actions.swift -------------------------------------------------------------------------------- /11-serialization/projects/starter/iosApp/iosApp/utils/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/iosApp/iosApp/utils/Utils.swift -------------------------------------------------------------------------------- /11-serialization/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/11-serialization/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /11-serialization/projects/starter/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /12-networking/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /12-networking/projects/challenge/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/.gitignore -------------------------------------------------------------------------------- /12-networking/projects/challenge/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /12-networking/projects/challenge/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/challenge/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/challenge/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/challenge/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/gradle.properties -------------------------------------------------------------------------------- /12-networking/projects/challenge/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/gradle/libs.versions.toml -------------------------------------------------------------------------------- /12-networking/projects/challenge/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /12-networking/projects/challenge/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/gradlew -------------------------------------------------------------------------------- /12-networking/projects/challenge/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/gradlew.bat -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/BookmarkView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/BookmarkView.swift -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/HomeView.swift -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/LatestView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/LatestView.swift -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/LaunchScreen.storyboard -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/SearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/SearchView.swift -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/fonts/OpenSansLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/fonts/OpenSansLight.ttf -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/utils/Actions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/utils/Actions.swift -------------------------------------------------------------------------------- /12-networking/projects/challenge/iosApp/iosApp/utils/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/iosApp/iosApp/utils/Utils.swift -------------------------------------------------------------------------------- /12-networking/projects/challenge/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/settings.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/challenge/shared-dto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/shared-dto/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/challenge/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/challenge/shared/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/challenge/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /12-networking/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/.gitignore -------------------------------------------------------------------------------- /12-networking/projects/final/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /12-networking/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/final/androidApp/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/androidApp/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /12-networking/projects/final/androidApp/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/androidApp/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /12-networking/projects/final/androidApp/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/androidApp/src/main/res/values/themes.xml -------------------------------------------------------------------------------- /12-networking/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/final/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/gradle.properties -------------------------------------------------------------------------------- /12-networking/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /12-networking/projects/final/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /12-networking/projects/final/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /12-networking/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/gradlew -------------------------------------------------------------------------------- /12-networking/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/gradlew.bat -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/BookmarkView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/BookmarkView.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/HomeView.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/KodecoEntryViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/KodecoEntryViewModel.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/LatestView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/LatestView.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/LaunchScreen.storyboard -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/MainToolbarContent.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/MainToolbarContent.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/SearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/SearchView.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/common/KodecoEntryRow.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/common/KodecoEntryRow.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/extensions/FeedClient.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/extensions/FeedClient.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/fonts/OpenSansExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/fonts/OpenSansExtraBold.ttf -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/fonts/OpenSansLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/fonts/OpenSansLight.ttf -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/fonts/OpenSansRegular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/fonts/OpenSansRegular.ttf -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/fonts/OpenSansSemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/fonts/OpenSansSemiBold.ttf -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/utils/Actions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/utils/Actions.swift -------------------------------------------------------------------------------- /12-networking/projects/final/iosApp/iosApp/utils/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/iosApp/iosApp/utils/Utils.swift -------------------------------------------------------------------------------- /12-networking/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/final/shared-dto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/shared-dto/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/final/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /12-networking/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/.gitignore -------------------------------------------------------------------------------- /12-networking/projects/starter/.idea/artifacts/desktopApp_jvm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/.idea/artifacts/desktopApp_jvm.xml -------------------------------------------------------------------------------- /12-networking/projects/starter/.idea/artifacts/shared_desktop_2_0.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/.idea/artifacts/shared_desktop_2_0.xml -------------------------------------------------------------------------------- /12-networking/projects/starter/.idea/artifacts/shared_dto_jvm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/.idea/artifacts/shared_dto_jvm.xml -------------------------------------------------------------------------------- /12-networking/projects/starter/.idea/gradle.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/.idea/gradle.xml -------------------------------------------------------------------------------- /12-networking/projects/starter/.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/.idea/kotlinc.xml -------------------------------------------------------------------------------- /12-networking/projects/starter/.idea/migrations.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/.idea/migrations.xml -------------------------------------------------------------------------------- /12-networking/projects/starter/.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/.idea/misc.xml -------------------------------------------------------------------------------- /12-networking/projects/starter/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /12-networking/projects/starter/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/starter/androidApp/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/androidApp/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /12-networking/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/starter/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/gradle.properties -------------------------------------------------------------------------------- /12-networking/projects/starter/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/gradle/libs.versions.toml -------------------------------------------------------------------------------- /12-networking/projects/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /12-networking/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/gradlew -------------------------------------------------------------------------------- /12-networking/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/BookmarkView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/BookmarkView.swift -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/HomeView.swift -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/LatestView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/LatestView.swift -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/LaunchScreen.storyboard -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/MainToolbarContent.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/MainToolbarContent.swift -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/SearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/SearchView.swift -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/fonts/OpenSansLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/fonts/OpenSansLight.ttf -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/fonts/OpenSansRegular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/fonts/OpenSansRegular.ttf -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/utils/Actions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/utils/Actions.swift -------------------------------------------------------------------------------- /12-networking/projects/starter/iosApp/iosApp/utils/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/iosApp/iosApp/utils/Utils.swift -------------------------------------------------------------------------------- /12-networking/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/starter/shared-dto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/shared-dto/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/12-networking/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /12-networking/projects/starter/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /13-concurrency/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/.gitignore -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/gradle.properties -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/gradle/libs.versions.toml -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/gradlew -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/gradlew.bat -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/BookmarkView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/BookmarkView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/HomeView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/LatestView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/LatestView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/SearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/SearchView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/utils/Actions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/utils/Actions.swift -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/iosApp/iosApp/utils/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/iosApp/iosApp/utils/Utils.swift -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/settings.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/shared-dto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/shared-dto/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/challenge/shared/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/challenge/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /13-concurrency/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/.gitignore -------------------------------------------------------------------------------- /13-concurrency/projects/final/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /13-concurrency/projects/final/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/final/androidApp/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/androidApp/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /13-concurrency/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/final/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/gradle.properties -------------------------------------------------------------------------------- /13-concurrency/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /13-concurrency/projects/final/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /13-concurrency/projects/final/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /13-concurrency/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/gradlew -------------------------------------------------------------------------------- /13-concurrency/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/gradlew.bat -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/BookmarkView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/BookmarkView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/HomeView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/KodecoEntryViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/KodecoEntryViewModel.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/LatestView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/LatestView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/LaunchScreen.storyboard -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/MainToolbarContent.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/MainToolbarContent.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/SearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/SearchView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/fonts/OpenSansLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/fonts/OpenSansLight.ttf -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/fonts/OpenSansRegular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/fonts/OpenSansRegular.ttf -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/fonts/OpenSansSemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/fonts/OpenSansSemiBold.ttf -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/utils/Actions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/utils/Actions.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/iosApp/iosApp/utils/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/iosApp/iosApp/utils/Utils.swift -------------------------------------------------------------------------------- /13-concurrency/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/final/shared-dto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/shared-dto/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/final/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /13-concurrency/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/.gitignore -------------------------------------------------------------------------------- /13-concurrency/projects/starter/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /13-concurrency/projects/starter/androidApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/androidApp/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/starter/desktopApp/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/desktopApp/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/gradle.properties -------------------------------------------------------------------------------- /13-concurrency/projects/starter/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/gradle/libs.versions.toml -------------------------------------------------------------------------------- /13-concurrency/projects/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /13-concurrency/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/gradlew -------------------------------------------------------------------------------- /13-concurrency/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/BookmarkView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/BookmarkView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/ContentView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/HomeView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/LatestView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/LatestView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/LaunchScreen.storyboard -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/MainToolbarContent.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/MainToolbarContent.swift -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/SearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/SearchView.swift -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/fonts/OpenSansLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/fonts/OpenSansLight.ttf -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/utils/Actions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/utils/Actions.swift -------------------------------------------------------------------------------- /13-concurrency/projects/starter/iosApp/iosApp/utils/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/iosApp/iosApp/utils/Utils.swift -------------------------------------------------------------------------------- /13-concurrency/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/starter/shared-dto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/shared-dto/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/13-concurrency/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /13-concurrency/projects/starter/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/assets/shared-action/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /14-creating-your-kmp-library/assets/shared-action/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/assets/shared-action/build.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/assets/shared-action/src/androidMain/kotlin/com/kodeco/learn/action/Platform.android.kt: -------------------------------------------------------------------------------- 1 | package com.kodeco.learn.action 2 | 3 | actual fun platform() = "Android" -------------------------------------------------------------------------------- /14-creating-your-kmp-library/assets/shared-action/src/commonMain/kotlin/com/kodeco/learn/action/Platform.kt: -------------------------------------------------------------------------------- 1 | package com.kodeco.learn.action 2 | 3 | expect fun platform(): String -------------------------------------------------------------------------------- /14-creating-your-kmp-library/assets/shared-action/src/iosMain/kotlin/com/kodeco/learn/action/Platform.ios.kt: -------------------------------------------------------------------------------- 1 | package com.kodeco.learn.action 2 | 3 | actual fun platform() = "iOS" -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-1/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-1/.gitignore -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-1/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-1/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-1/build.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-1/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-1/gradle.properties -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-1/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-1/gradlew -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-1/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-1/gradlew.bat -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-1/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-1/settings.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-1/shared-logger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-1/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-find-time/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-2-find-time/.gitignore -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-find-time/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-2-find-time/gradlew -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-find-time/shared-logger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-learn/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-2-learn/.gitignore -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-learn/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-learn/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-2-learn/gradlew -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-learn/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-2-learn/gradlew.bat -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-learn/shared-logger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-learn/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-todo/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-2-todo/.gitignore -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-todo/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-todo/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-2-todo/gradlew -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-todo/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-2-todo/gradlew.bat -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-todo/shared-logger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-2-todo/shared/src/commonMain/sqldelight/com/yourcompany/organize/db/1.sqm: -------------------------------------------------------------------------------- 1 | ALTER TABLE ReminderDb ADD COLUMN dueDate INTEGER; -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-3/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-3/.gitignore -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-3/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-3/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-3/build.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-3/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-3/gradle.properties -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-3/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-3/gradlew -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-3/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-3/gradlew.bat -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-3/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/challenge-3/settings.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-3/shared-logger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/challenge-3/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/.gitignore -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/build.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/gradle.properties -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/gradle/libs.versions.toml -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/gradlew -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/gradlew.bat -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/iosApp/iosApp/iOSApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/iosApp/iosApp/iOSApp.swift -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/settings.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/shared-action/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/final/shared/build.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/final/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/starter/.gitignore -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/starter/build.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/starter/gradle.properties -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/starter/gradlew -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/starter/gradlew.bat -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/iosApp/iosApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/starter/iosApp/iosApp/Info.plist -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/starter/settings.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/shared/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/14-creating-your-kmp-library/projects/starter/shared/build.gradle.kts -------------------------------------------------------------------------------- /14-creating-your-kmp-library/projects/starter/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /15-appendix-a-kotlin-a-primer-for-swift-developers/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/15-appendix-a-kotlin-a-primer-for-swift-developers/README.md -------------------------------------------------------------------------------- /15-appendix-a-kotlin-a-primer-for-swift-developers/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /15-appendix-a-kotlin-a-primer-for-swift-developers/projects/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/15-appendix-a-kotlin-a-primer-for-swift-developers/projects/.gitignore -------------------------------------------------------------------------------- /15-appendix-a-kotlin-a-primer-for-swift-developers/projects/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /15-appendix-a-kotlin-a-primer-for-swift-developers/projects/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/15-appendix-a-kotlin-a-primer-for-swift-developers/projects/gradlew -------------------------------------------------------------------------------- /15-appendix-a-kotlin-a-primer-for-swift-developers/projects/shared-logger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /15-appendix-a-kotlin-a-primer-for-swift-developers/projects/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /16-appendix-b-debugging-your-shared-code-from-xcode/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /16-appendix-b-debugging-your-shared-code-from-xcode/projects/project/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /16-appendix-b-debugging-your-shared-code-from-xcode/projects/project/shared-logger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /16-appendix-b-debugging-your-shared-code-from-xcode/projects/project/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /17-appendix-c-sharing-your-compose-ui-across-multiple-platforms/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /17-appendix-c-sharing-your-compose-ui-across-multiple-platforms/projects/final/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /17-appendix-c-sharing-your-compose-ui-across-multiple-platforms/projects/final/shared-logger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /17-appendix-c-sharing-your-compose-ui-across-multiple-platforms/projects/final/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /17-appendix-c-sharing-your-compose-ui-across-multiple-platforms/projects/starter/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /17-appendix-c-sharing-your-compose-ui-across-multiple-platforms/projects/starter/shared-logger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /17-appendix-c-sharing-your-compose-ui-across-multiple-platforms/projects/starter/shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/README.md -------------------------------------------------------------------------------- /scripts/make-codex-branch.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/scripts/make-codex-branch.sh -------------------------------------------------------------------------------- /scripts/make-codex-subdirectory.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kodecocodes/kmpf-materials/HEAD/scripts/make-codex-subdirectory.sh --------------------------------------------------------------------------------