Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
09294ee
Rename :compose-app -> :compose-android-app Gradle module
vitaliystoyanov Feb 23, 2024
ce07055
Configured basic multiplatform project ios, android, desktop-jvm and …
vitaliystoyanov Feb 24, 2024
b64fef0
Configured shared Koin modules for desktop & android + created Koin a…
vitaliystoyanov Feb 24, 2024
70c210f
Configured :core:runtime:configuration module as multiplatform
vitaliystoyanov Feb 24, 2024
8a9bd31
Removed unused .gitignore
vitaliystoyanov Feb 24, 2024
0f5b7e7
Declared AndroidLibraryConventionPlugin to remove android {} duplicat…
vitaliystoyanov Feb 25, 2024
b92e15a
Configure compileOptions in modules. Was mismatch
vitaliystoyanov Feb 25, 2024
0ca5db3
Apply default hierarchy template for hierarchical nultiplatform proje…
vitaliystoyanov Feb 25, 2024
ea4c109
Migrated jvm-targeted :core:common, :core:model and :core:runtime:log…
vitaliystoyanov Feb 25, 2024
cf9507b
Migrated jvm-targeted :core:data, :core:database/datasource:api and :…
vitaliystoyanov Feb 25, 2024
6ce5c72
Migrated other jvm-targeted :core:* to multiplatform modules, removed…
vitaliystoyanov Feb 25, 2024
a862f4b
Disabled wasmJs target due to bugs in ktorVersion = "3.0.0-wasm1", re…
vitaliystoyanov Feb 26, 2024
34f344c
Renamed module: :core:compose-web-app -> :core:compose-web-wasm-app
vitaliystoyanov Feb 26, 2024
b799bfc
Migration of composable funs: Jetpack Compose -> Compose Multiplatform
vitaliystoyanov Feb 26, 2024
6340d56
Added :compose-web-app (js) target. Coroutine DI module per target, d…
vitaliystoyanov Feb 26, 2024
ae2103c
Basic cross-platform ComposeApplication.kt with launched coroutines (…
vitaliystoyanov Feb 26, 2024
9044feb
Revert :compose-web-wasm-app module
vitaliystoyanov Feb 27, 2024
dddd266
Ktor version 3.0.0-wasm1 -> 3.0.0-wasm2 (experimental), Multiplatform…
vitaliystoyanov Feb 27, 2024
6a82c54
Speed up dependency resolution by reorder repositories, removed unuse…
vitaliystoyanov Feb 27, 2024
da3cabe
Extracted :shared module per targets, each target has own responsibil…
vitaliystoyanov Feb 27, 2024
d8a9cd3
Mapbox Compose HTML for jsMain target, composite Gradle build setting…
vitaliystoyanov Feb 27, 2024
68ed975
Revert LICENSE of Derek Ellis compose-web-mapbox
vitaliystoyanov Feb 27, 2024
843b05d
Setup basic multiplatform library template for :compose-mapbox-library
vitaliystoyanov Feb 28, 2024
3b694d5
Configuration compose_mapbox_library and compose-ios-app to have MapB…
vitaliystoyanov Feb 29, 2024
3d49fa6
Combine :compose-ios-app and :shared to have all-related codebase in …
vitaliystoyanov Feb 29, 2024
302df0a
Moved libs.mapbox-library.versions.toml to own Gradle module
vitaliystoyanov Feb 29, 2024
72bb9da
Added notice to README.md
vitaliystoyanov Feb 29, 2024
0354a4b
Reorganize :feature:map composeables to have MapComposable per platform
vitaliystoyanov Mar 2, 2024
f95e798
Introduced inMemoryLocalDatasourceModule instead of emptyMockLocalDat…
vitaliystoyanov Mar 2, 2024
d919db2
Cross-platform fonts typography and theme in :core:designsystem
vitaliystoyanov Mar 2, 2024
8849e23
Publish ignored classes
vitaliystoyanov Mar 3, 2024
3507bdd
Added /docs/demo/ per platform, project configuration without arm64
vitaliystoyanov Mar 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
56 changes: 50 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@
.idea
.gradle/
app/build/
.gradle
**/build/

# Local configuration file (sdk path, etc)
local.properties

# Log/OS Files
*.log
.DS_Store

# Android Studio generated files and folders
captures/
Expand All @@ -33,14 +36,55 @@ google-services.json
# Android Profiling
*.hprof

# Diagram backups
*.drawio.bkp
.DS_Store

server/
ktor-server/build/
/docs/*.drawio.bkp

build/

app/src/main/res/values/developer-config.xml
# Android
**/developer-config.xml

# Internal
/TODO.md
/docs/.$design.drawio.bkp


# Xcode
## Obj-C/Swift specific
*.hmap
## App packaging
*.ipa
*.dSYM.zip
*.dSYM
# Swift Package Manager
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
Packages/
Package.pins
Package.resolved

# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
.swiftpm
# CocoaPods - Only use to conserve bandwidth / Save time on Pushing
# - Also handy if you have a large number of dependant pods
# - AS PER https://guides.cocoapods.org/using/using-cocoapods.html NEVER IGNORE THE LOCK FILE
Pods/
.build/
/compose-ios-app/Podfile.lock

## Xcode 8 and earlier

### Xcode Patch ###
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddata/
!*.xcodeproj/project.xcworkspace/
!*.xcworkspace/contents.xcworkspacedata
/*.gcno
**/xcshareddata/WorkspaceSettings.xcsettings

xcuserdata
!src/**/build/
captures
.externalNativeBuild
.cxx
24 changes: 24 additions & 0 deletions .run/Desktop app.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Desktop app" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value=":compose-desktop-app:run" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<ForceTestExec>false</ForceTestExec>
<method v="2" />
</configuration>
</component>
7 changes: 7 additions & 0 deletions .run/IOS app.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="IOS app" type="KmmRunConfiguration" factoryName="iOS Application" CONFIG_VERSION="1" EXEC_TARGET_ID="90E2B698-5866-4ADA-8DB5-4B07AB652589" XCODE_PROJECT="$PROJECT_DIR$/compose-ios-app/compose-ios-app.xcworkspace" XCODE_CONFIGURATION="Debug" XCODE_SCHEME="compose-ios-app">
<method v="2">
<option name="com.jetbrains.kmm.ios.BuildIOSAppTask" enabled="true" />
</method>
</configuration>
</component>
File renamed without changes.
24 changes: 24 additions & 0 deletions .run/Web app (Wasm + JS).run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Web app (Wasm + JS)" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="compose-web-js-wasm-app:jsBrowserDevelopmentRun" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<ForceTestExec>false</ForceTestExec>
<method v="2" />
</configuration>
</component>
24 changes: 24 additions & 0 deletions .run/Web app (Wasm).run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Web app (Wasm)" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/compose-web-wasm-app" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="wasmJsBrowserDevelopmentRun" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# PoC of design implementation for processing large GPS node trace data effectively

> [!WARNING]
> This branch in development. Project setup guide will be later. This has XCode projects, CocoaPods tool, different AndroidStudio plugins and run configuration that should be guided with instructions.

[![.github/workflows/main.yml](https://github.com/vitaliystoyanov/trace-node-tracking-playground/actions/workflows/main.yml/badge.svg?branch=gitworkflow)](https://github.com/vitaliystoyanov/trace-node-tracking-playground/actions/workflows/main.yml)
![API](https://img.shields.io/badge/API-23%2B-brightgreen.svg?style=flat)

Expand Down
47 changes: 47 additions & 0 deletions build-logic/convention/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
`kotlin-dsl`
}

group = "io.architecture.plugin.convention"

// Configure the build-logic plugins to target JDK 17
// This matches the JDK used to build the project, and is not related to what is running on device.
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
tasks.withType<KotlinCompile>().configureEach {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
}

dependencies {
compileOnly(libs.android.gradlePlugin)
compileOnly(libs.android.tools.common)
compileOnly(libs.kotlin.gradlePlugin)
}

tasks {
validatePlugins {
enableStricterValidation = true
failOnWarning = true
}
}

gradlePlugin {
plugins {
register("androidLibrary") {
id = "io.architecture.android.library"
implementationClass = "AndroidLibraryConventionPlugin"
}
}
plugins {
register("multiplatformDefaultTargetPreset") {
id = "io.architecture.multiplatform.target.preset.default"
implementationClass = "MultiplatformTargetPresetConventionPlugin"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import com.android.build.api.variant.LibraryAndroidComponentsExtension
import com.android.build.gradle.LibraryExtension
import io.architecture.build.logic.configureKotlinAndroid
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.kotlin

class AndroidLibraryConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.android.library")
}
extensions.configure<LibraryExtension> {
configureKotlinAndroid(this)
}
extensions.configure<LibraryAndroidComponentsExtension> {
}
dependencies {
add("testImplementation", kotlin("test"))
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl

class MultiplatformTargetPresetConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("org.jetbrains.kotlin.multiplatform")
}
extensions.configure<KotlinMultiplatformExtension> {
applyDefaultHierarchyTemplate()
@OptIn(ExperimentalWasmDsl::class)
wasmJs { browser() }
js(IR) { browser() }
androidTarget()
iosX64()
// iosArm64()
// iosSimulatorArm64()
jvm()
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package io.architecture.build.logic

import com.android.build.api.dsl.CommonExtension
import org.gradle.api.JavaVersion
import org.gradle.api.Project
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

internal fun Project.configureKotlinAndroid(
commonExtension: CommonExtension<*, *, *, *, *>,
) {
commonExtension.apply {
namespace = "io.architecture.playground" + path.replace(":", ".")
compileSdk = libs.findVersion("compileSdk").get().requiredVersion.toInt()

defaultConfig {
minSdk = libs.findVersion("minSdk").get().requiredVersion.toInt()
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
}

configureKotlin()

dependencies {
}
}

private fun Project.configureKotlin() {
tasks.withType<KotlinCompile>().configureEach {
kotlinOptions {
jvmTarget = libs.findVersion("jvmTarget").get().requiredVersion
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package io.architecture.build.logic

import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalog
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.getByType


val Project.libs
get(): VersionCatalog = extensions
.getByType<VersionCatalogsExtension>()
.named("libs")
14 changes: 14 additions & 0 deletions build-logic/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
}
}

rootProject.name = "build-logic"
include(":convention")
2 changes: 2 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ import dev.iurysouza.modulegraph.Theme
plugins {
alias(libs.plugins.androidApplication) apply false
alias(libs.plugins.androidLibrary) apply false
alias(libs.plugins.kotlinCocoapods) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.androidx.benchmark) apply false
alias(libs.plugins.kotlinJvm) apply false
alias(libs.plugins.kotlinMultiplatform) apply false
alias(libs.plugins.jetbrainsCompose) apply false
alias(libs.plugins.modulegraph)
alias(libs.plugins.ksp)
}
Expand Down
Loading