├── .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
--------------------------------------------------------------------------------