Skip to content

Commit c31e6a9

Browse files
authored
Merge pull request #59 from zouhir96/develop
release 2.0.0
2 parents 6f90136 + 9bcbb32 commit c31e6a9

File tree

155 files changed

+4046
-2595
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+4046
-2595
lines changed

app/build.gradle.kts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ plugins {
44
alias(libs.plugins.android.application)
55
alias(libs.plugins.android.kotlin)
66
alias(libs.plugins.compose.compiler)
7+
alias(libs.plugins.google.services)
8+
alias(libs.plugins.crashlytics)
79
}
810

911
android {
@@ -34,6 +36,12 @@ android {
3436
"proguard-rules.pro"
3537
)
3638
}
39+
40+
debug {
41+
isMinifyEnabled = false
42+
isShrinkResources = false
43+
applicationIdSuffix = ".debug"
44+
}
3745
}
3846

3947
compileOptions {
@@ -58,21 +66,24 @@ android {
5866
dependencies {
5967
implementation(project(":shared"))
6068

69+
implementation(project(":core:domain"))
6170
implementation(project(":feature:home"))
6271
implementation(project(":feature:settings"))
63-
implementation(project(":core:network"))
6472

6573
// Activity
6674
implementation(libs.androidx.core.splashscreen)
6775
implementation(libs.androidx.activity)
6876

6977
implementation(libs.androidx.compose.materialWindow)
7078

79+
implementation(project.dependencies.platform(libs.koin.bom))
7180
implementation(libs.koin.core)
7281

73-
implementation(platform(libs.com.google.firebase.bom))
74-
implementation(libs.com.google.firebase.analytics)
75-
implementation(libs.com.google.firebase.crashlytics)
82+
implementation(platform(libs.firebase.bom))
83+
implementation(libs.firebase.analytics)
84+
implementation(libs.firebase.crashlytics)
85+
86+
implementation(libs.napier)
7687
}
7788

7889
tasks.withType<Test> {

app/google-services.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,25 @@
2323
"other_platform_oauth_client": []
2424
}
2525
}
26+
},
27+
{
28+
"client_info": {
29+
"mobilesdk_app_id": "1:249160525821:android:c3b3d66c5e8efc1a42db94",
30+
"android_client_info": {
31+
"package_name": "com.zrcoding.hackertab.debug"
32+
}
33+
},
34+
"oauth_client": [],
35+
"api_key": [
36+
{
37+
"current_key": "AIzaSyBPyndiwOCpTcfo9ErZTWxyKVQoe3eJ58E"
38+
}
39+
],
40+
"services": {
41+
"appinvite_service": {
42+
"other_platform_oauth_client": []
43+
}
44+
}
2645
}
2746
],
2847
"configuration_version": "1"

app/src/debug/res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<string name="app_name">HT.debug</string>
4+
</resources>

app/src/main/kotlin/com/zrcoding/hackertab/Hackertab.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ package com.zrcoding.hackertab
22

33
import android.app.Application
44
import android.content.Context
5-
import com.zrcoding.hackertab.settings.presentation.common.AppConfig
5+
import com.google.firebase.crashlytics.FirebaseCrashlytics
6+
import com.zrcoding.hackertab.domain.common.AppConfig
67
import com.zrcoding.hackertab.shared.di.initKoin
8+
import io.github.aakira.napier.DebugAntilog
9+
import io.github.aakira.napier.Napier
710
import org.koin.core.module.dsl.singleOf
811
import org.koin.dsl.bind
912
import org.koin.dsl.module
@@ -18,10 +21,15 @@ class Hackertab : Application() {
1821
singleOf(::AppConfigImpl) bind AppConfig::class
1922
},
2023
)
24+
Napier.base(DebugAntilog())
25+
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG)
2126
}
2227
}
2328

2429
class AppConfigImpl: AppConfig {
2530
override val versionName: String
2631
get() = BuildConfig.VERSION_NAME
32+
33+
override val isDebug: Boolean
34+
get() = BuildConfig.DEBUG
2735
}

app/src/main/kotlin/com/zrcoding/hackertab/MainActivity.kt

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,32 @@
11
package com.zrcoding.hackertab
22

3+
import android.app.Activity
34
import android.os.Bundle
45
import androidx.activity.ComponentActivity
56
import androidx.activity.compose.setContent
6-
import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi
7-
import androidx.compose.material3.windowsizeclass.WindowWidthSizeClass
8-
import androidx.compose.material3.windowsizeclass.calculateWindowSizeClass
7+
import androidx.activity.enableEdgeToEdge
98
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
10-
import androidx.core.view.WindowCompat
119
import com.zrcoding.hackertab.shared.HackertabKmpApp
10+
import org.koin.core.context.loadKoinModules
11+
import org.koin.dsl.module
1212

1313
class MainActivity : ComponentActivity() {
1414

15-
@OptIn(ExperimentalMaterial3WindowSizeClassApi::class)
1615
override fun onCreate(savedInstanceState: Bundle?) {
1716
installSplashScreen()
17+
enableEdgeToEdge()
1818
super.onCreate(savedInstanceState)
19-
WindowCompat.setDecorFitsSystemWindows(window, false)
19+
20+
loadKoinModules(
21+
module {
22+
// We add Activity to DI because there are places
23+
// where we need to show AlertDialogs in androidMain like [AndroidAccountMasterScreenIntentsTrigger]
24+
single<Activity> { this@MainActivity }
25+
}
26+
)
2027

2128
setContent {
22-
val widthSizeClass = calculateWindowSizeClass(this).widthSizeClass
23-
HackertabKmpApp(widthSizeClass == WindowWidthSizeClass.Expanded)
29+
HackertabKmpApp()
2430
}
2531
}
2632
}

build-logic/convention/build.gradle.kts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
12
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
23

34
plugins {
@@ -12,8 +13,8 @@ java {
1213
targetCompatibility = JavaVersion.VERSION_17
1314
}
1415
tasks.withType<KotlinCompile>().configureEach {
15-
kotlinOptions {
16-
jvmTarget = JavaVersion.VERSION_17.toString()
16+
compilerOptions {
17+
jvmTarget.set(JvmTarget.JVM_17)
1718
}
1819
}
1920

build-logic/convention/src/main/kotlin/ComposeMultiplatformConventionPlugin.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,11 @@ class ComposeMultiplatformConventionPlugin : Plugin<Project> {
2525
implementation(composeDeps.materialIconsExtended)
2626

2727
implementation(versionCatalog().findLibrary("kamel-image").get())
28-
implementation(versionCatalog().findLibrary("moko-mvvm-core").get())
29-
implementation(versionCatalog().findLibrary("moko-mvvm-compose").get())
28+
implementation(versionCatalog().findLibrary("kamel-animated").get())
29+
implementation(versionCatalog().findLibrary("kamel-bitmap").get())
30+
implementation(versionCatalog().findLibrary("androidx-viewmodel").get())
31+
implementation(versionCatalog().findLibrary("androidx-navigation").get())
32+
implementation(versionCatalog().findLibrary("kotlinx.collections.immutable").get())
3033
}
3134
}
3235
}

build-logic/convention/src/main/kotlin/KotlinMultiplatformFeatureConventionPlugin.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@ class KotlinMultiplatformFeatureConventionPlugin : Plugin<Project> {
1515
sourceSets.commonMain.dependencies {
1616
implementation(project(":core:design"))
1717
implementation(project(":core:domain"))
18-
implementation(project(":core:network"))
19-
implementation(project(":core:di"))
18+
implementation(project(":core:analytics"))
2019

20+
implementation(project.dependencies.platform(versionCatalog().findLibrary("koin.bom").get()))
2121
implementation(versionCatalog().findLibrary("koin.compose").get())
22+
implementation(versionCatalog().findLibrary("koin.compose.viewmodel").get())
2223
}
2324
}
2425
}

build-logic/convention/src/main/kotlin/KotlinMultiplatformLibraryConventionPlugin.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class KotlinMultiplatformLibraryConventionPlugin : Plugin<Project> {
1212
with(pluginManager) {
1313
apply(versionCatalog().findPlugin("kotlin-multiplatform").get().get().pluginId)
1414
apply(versionCatalog().findPlugin("android-library").get().get().pluginId)
15+
apply(versionCatalog().findPlugin("jetbrains-kotlinx-serialization").get().get().pluginId)
1516
}
1617
extensions.configure(
1718
KotlinMultiplatformExtension::class.java,

build-logic/convention/src/main/kotlin/com/zrcoding/convention/KmpExtensions.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ fun KotlinMultiplatformExtension.setFrameworkBaseName(name: String) {
1515
).forEach {
1616
it.binaries.framework {
1717
baseName = name
18+
isStatic = true
19+
binaryOption("bundleId", "com.zrcoding.$name")
1820
}
1921
}
2022
}

0 commit comments

Comments
 (0)