├── wearOS ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values-round │ │ │ └── strings.xml │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.webp │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.webp │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.webp │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.webp │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.webp │ │ ├── values │ │ │ ├── themes.xml │ │ │ ├── strings.xml │ │ │ └── dimens.xml │ │ └── layout │ │ │ └── activity_main.xml │ │ ├── java │ │ └── com │ │ │ └── baseio │ │ │ └── wearos │ │ │ ├── ui │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Type.kt │ │ │ │ └── Theme.kt │ │ │ ├── PraxisApp.kt │ │ │ ├── TrendingReposUI.kt │ │ │ ├── TrendingReposVM.kt │ │ │ └── TrendingReposListScreen.kt │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle.kts ├── iosApp ├── .gitignore ├── iosApp │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ ├── iOSApp.swift │ ├── AppDelegate.swift │ ├── Info.plist │ └── CalendarView.swift ├── Podfile ├── iosApp.xcworkspace │ ├── xcuserdata │ │ └── anmolverma.xcuserdatad │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ └── WorkspaceSettings.xcsettings │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── WorkspaceSettings.xcsettings │ │ └── IDEWorkspaceChecks.plist └── iosApp.xcodeproj │ ├── xcuserdata │ └── anmolverma.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist │ └── project.pbxproj ├── macOS ├── .gitignore ├── Podfile ├── macOS │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ ├── macOSApp.swift │ ├── ContentView.swift │ └── macOS.entitlements ├── macOS.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcuserdata │ │ │ └── anmolverma.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── xcuserdata │ │ └── anmolverma.xcuserdatad │ │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ └── project.pbxproj ├── macOS.xcworkspace │ ├── xcuserdata │ │ └── anmolverma.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── macOSUITests │ ├── macOSUITestsLaunchTests.swift │ └── macOSUITests.swift └── macOSTests │ └── macOSTests.swift ├── watchApp ├── .gitignore ├── Podfile ├── watchApp WatchKit App │ └── Assets.xcassets │ │ ├── Contents.json │ │ ├── AccentColor.colorset │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ └── Contents.json ├── watchApp WatchKit Extension │ ├── Assets.xcassets │ │ ├── Contents.json │ │ └── Complication.complicationset │ │ │ ├── Graphic Bezel.imageset │ │ │ └── Contents.json │ │ │ ├── Graphic Corner.imageset │ │ │ └── Contents.json │ │ │ ├── Graphic Circular.imageset │ │ │ └── Contents.json │ │ │ ├── Graphic Large Rectangular.imageset │ │ │ └── Contents.json │ │ │ ├── Circular.imageset │ │ │ └── Contents.json │ │ │ ├── Modular.imageset │ │ │ └── Contents.json │ │ │ ├── Extra Large.imageset │ │ │ └── Contents.json │ │ │ ├── Utilitarian.imageset │ │ │ └── Contents.json │ │ │ ├── Graphic Extra Large.imageset │ │ │ └── Contents.json │ │ │ └── Contents.json │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ ├── NotificationView.swift │ ├── Info.plist │ ├── githubtrending │ │ ├── UiRepo.swift │ │ ├── GithubTrendingVM.swift │ │ └── GithubTrendingUI.swift │ ├── watchAppApp.swift │ ├── PushNotificationPayload.apns │ ├── NotificationController.swift │ └── ComplicationController.swift ├── watchApp.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcuserdata │ │ │ └── anmolverma.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── anmolverma.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── watchApp.xcworkspace │ ├── xcuserdata │ │ └── anmolverma.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── watchAppUITests │ ├── watchAppUITestsLaunchTests.swift │ └── watchAppUITests.swift └── watchAppTests │ └── watchAppTests.swift ├── art ├── art1.png ├── art2.png ├── art3.png ├── art4.png ├── art5.png └── art6.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── shared ├── src │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── baseio │ │ │ └── kmm │ │ │ ├── di │ │ │ └── platformActual.kt │ │ │ └── db │ │ │ └── DriverFactory.kt │ ├── commonMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── baseio │ │ │ │ └── kmm │ │ │ │ ├── calendar │ │ │ │ ├── JetCalendarType.kt │ │ │ │ ├── JetDay.kt │ │ │ │ ├── JetYear.kt │ │ │ │ ├── JetWeek.kt │ │ │ │ └── JetMonth.kt │ │ │ │ ├── db │ │ │ │ └── DriverFactory.kt │ │ │ │ ├── di │ │ │ │ └── Koin.kt │ │ │ │ └── mvm │ │ │ │ └── PraxisDataModel.kt │ │ └── sqldelight │ │ │ └── db │ │ │ └── BaseIoDB.sq │ ├── macosArm64Main │ │ └── kotlin │ │ │ └── com │ │ │ └── baseio │ │ │ └── kmm │ │ │ ├── di │ │ │ └── Koin.kt │ │ │ └── db │ │ │ └── DriverFactory.kt │ ├── jsMain │ │ └── kotlin │ │ │ └── com │ │ │ └── baseio │ │ │ └── kmm │ │ │ ├── di │ │ │ └── Koin.kt │ │ │ └── db │ │ │ └── DriverFactory.kt │ ├── iosMain │ │ └── kotlin │ │ │ └── com │ │ │ └── baseio │ │ │ └── kmm │ │ │ ├── di │ │ │ └── Koin.kt │ │ │ └── db │ │ │ └── DriverFactory.kt │ └── macosX64Main │ │ └── kotlin │ │ └── com │ │ └── baseio │ │ └── kmm │ │ ├── di │ │ └── Koin.kt │ │ └── db │ │ └── DriverFactory.kt ├── shared.podspec └── build.gradle.kts ├── androidApp ├── src │ └── main │ │ ├── res │ │ ├── drawable │ │ │ ├── app_widget_preview.png │ │ │ ├── ic_arrow_right.xml │ │ │ └── ic_refresh.xml │ │ ├── values │ │ │ ├── strings.xml │ │ │ ├── colors.xml │ │ │ ├── styles.xml │ │ │ └── themes.xml │ │ ├── layout │ │ │ ├── widget_loading.xml │ │ │ └── activity_main.xml │ │ └── xml │ │ │ └── trending_repos_widget_info.xml │ │ ├── java │ │ └── com │ │ │ └── baseio │ │ │ └── kmm │ │ │ └── android │ │ │ ├── ui │ │ │ └── theme │ │ │ │ ├── Shape.kt │ │ │ │ ├── Type.kt │ │ │ │ ├── Color.kt │ │ │ │ ├── PraxisSurface.kt │ │ │ │ ├── SystemUiController.kt │ │ │ │ └── Theme.kt │ │ │ ├── MainActivity.kt │ │ │ └── YearView.kt │ │ └── AndroidManifest.xml └── build.gradle.kts ├── .gitignore ├── webApp ├── src │ └── jsMain │ │ ├── kotlin │ │ ├── calendar │ │ │ └── JsJodaTimeZoneModule.kt │ │ ├── Client.kt │ │ └── TrendingUI.kt │ │ └── resources │ │ └── index.html ├── webpack.config.d │ └── sqljs.js └── build.gradle.kts ├── settings.gradle.kts ├── gradle.properties ├── README.md ├── gradlew.bat └── gradlew /wearOS/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /iosApp/.gitignore: -------------------------------------------------------------------------------- 1 | Pods 2 | Podfile.lock -------------------------------------------------------------------------------- /macOS/.gitignore: -------------------------------------------------------------------------------- 1 | Pods 2 | Podfile.lock -------------------------------------------------------------------------------- /watchApp/.gitignore: -------------------------------------------------------------------------------- 1 | Pods 2 | Podfile.lock -------------------------------------------------------------------------------- /art/art1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/art/art1.png -------------------------------------------------------------------------------- /art/art2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/art/art2.png -------------------------------------------------------------------------------- /art/art3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/art/art3.png -------------------------------------------------------------------------------- /art/art4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/art/art4.png -------------------------------------------------------------------------------- /art/art5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/art/art5.png -------------------------------------------------------------------------------- /art/art6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/art/art6.png -------------------------------------------------------------------------------- /macOS/Podfile: -------------------------------------------------------------------------------- 1 | target 'macOS' do 2 | use_modular_headers! 3 | pod 'shared', :path => '../shared' 4 | end 5 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /shared/src/androidMain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /iosApp/iosApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } -------------------------------------------------------------------------------- /macOS/macOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/baseio/kmm/calendar/JetCalendarType.kt: -------------------------------------------------------------------------------- 1 | package com.baseio.kmm.calendar 2 | 3 | open class JetCalendarType -------------------------------------------------------------------------------- /watchApp/Podfile: -------------------------------------------------------------------------------- 1 | target 'watchApp WatchKit Extension' do 2 | use_modular_headers! 3 | pod 'shared', :path => '../shared' 4 | end 5 | -------------------------------------------------------------------------------- /wearOS/src/main/res/values-round/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Hello Round World! 3 | -------------------------------------------------------------------------------- /watchApp/watchApp WatchKit App/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } -------------------------------------------------------------------------------- /macOS/macOS/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /watchApp/watchApp WatchKit Extension/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /wearOS/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/wearOS/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /wearOS/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/wearOS/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /wearOS/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/wearOS/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /wearOS/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/wearOS/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /wearOS/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/wearOS/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /androidApp/src/main/res/drawable/app_widget_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/androidApp/src/main/res/drawable/app_widget_preview.png -------------------------------------------------------------------------------- /watchApp/watchApp WatchKit Extension/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | .idea 5 | .DS_Store 6 | /build 7 | */build 8 | /captures 9 | .externalNativeBuild 10 | .cxx 11 | local.properties 12 | kotlin-js-store -------------------------------------------------------------------------------- /iosApp/Podfile: -------------------------------------------------------------------------------- 1 | target 'iosApp' do 2 | use_frameworks! 3 | platform :ios, '14.1' 4 | pod 'shared', :path => '../shared' 5 | pod 'KMPNativeCoroutinesCombine' 6 | pod 'SDWebImageSwiftUI' 7 | end 8 | -------------------------------------------------------------------------------- /androidApp/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | TrendingReposUI 3 | Trending Github Repos 4 | -------------------------------------------------------------------------------- /webApp/src/jsMain/kotlin/calendar/JsJodaTimeZoneModule.kt: -------------------------------------------------------------------------------- 1 | package calendar 2 | 3 | @JsModule("@js-joda/timezone") 4 | @JsNonModule 5 | external object JsJodaTimeZoneModule 6 | 7 | private val jsJodaTz = JsJodaTimeZoneModule -------------------------------------------------------------------------------- /macOS/macOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /macOS/macOS.xcworkspace/xcuserdata/anmolverma.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/macOS/macOS.xcworkspace/xcuserdata/anmolverma.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/baseio/kmm/calendar/JetDay.kt: -------------------------------------------------------------------------------- 1 | package com.baseio.kmm.calendar 2 | 3 | import kotlinx.datetime.LocalDate 4 | 5 | data class JetDay(val date: LocalDate, val isPartOfMonth: Boolean) : JetCalendarType() -------------------------------------------------------------------------------- /iosApp/iosApp.xcworkspace/xcuserdata/anmolverma.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oianmol/kmpcalendar/master/iosApp/iosApp.xcworkspace/xcuserdata/anmolverma.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } -------------------------------------------------------------------------------- /watchApp/watchApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /wearOS/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /shared/src/macosArm64Main/kotlin/com/baseio/kmm/di/Koin.kt: -------------------------------------------------------------------------------- 1 | package com.baseio.kmm.di 2 | 3 | import com.baseio.kmm.db.DriverFactory 4 | import org.koin.dsl.module 5 | import io.ktor.client.engine.ios.* 6 | 7 | actual fun platformModule() = module { 8 | single { Ios.create() } 9 | single { 10 | DriverFactory().createDriver() 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /shared/src/androidMain/kotlin/com/baseio/kmm/di/platformActual.kt: -------------------------------------------------------------------------------- 1 | package com.baseio.kmm.di 2 | 3 | import com.baseio.kmm.db.DriverFactory 4 | import org.koin.dsl.module 5 | import io.ktor.client.engine.android.* 6 | 7 | actual fun platformModule() = module { 8 | single { Android.create() } 9 | single { 10 | DriverFactory(get()).createDriver() 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /wearOS/src/main/java/com/baseio/wearos/ui/theme/Shape.kt: -------------------------------------------------------------------------------- 1 | package com.baseio.wearos.ui.theme 2 | 3 | import androidx.compose.foundation.shape.RoundedCornerShape 4 | import androidx.compose.material.Shapes 5 | import androidx.compose.ui.unit.dp 6 | 7 | val Shapes = Shapes( 8 | small = RoundedCornerShape(4.dp), 9 | medium = RoundedCornerShape(4.dp), 10 | large = RoundedCornerShape(0.dp) 11 | ) -------------------------------------------------------------------------------- /androidApp/src/main/java/com/baseio/kmm/android/ui/theme/Shape.kt: -------------------------------------------------------------------------------- 1 | package com.baseio.kmm.android.ui.theme 2 | 3 | import androidx.compose.foundation.shape.RoundedCornerShape 4 | import androidx.compose.material.Shapes 5 | import androidx.compose.ui.unit.dp 6 | 7 | val Shapes = Shapes( 8 | small = RoundedCornerShape(4.dp), 9 | medium = RoundedCornerShape(4.dp), 10 | large = RoundedCornerShape(0.dp) 11 | ) -------------------------------------------------------------------------------- /wearOS/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | KMPCalendarView 3 | 7 | Hello Square World! 8 | TrendingReposUI 9 | -------------------------------------------------------------------------------- /macOS/macOS/macOSApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // macOSApp.swift 3 | // macOS 4 | // 5 | // Created by Anmol Verma on 27/12/21. 6 | // 7 | 8 | import SwiftUI 9 | import shared 10 | 11 | @main 12 | struct macOSApp: App { 13 | init() { 14 | KoinKt.doInitSharedDependencies() 15 | } 16 | 17 | var body: some Scene { 18 | WindowGroup { 19 | Text("") 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /androidApp/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 |