Skip to content

Commit

Permalink
[12] Integrate Moko Resources to share project resources between plat…
Browse files Browse the repository at this point in the history
…forms
  • Loading branch information
AVI5HEK committed Sep 14, 2023
1 parent 23f777f commit 9d544fd
Show file tree
Hide file tree
Showing 28 changed files with 333 additions and 201 deletions.
6 changes: 6 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ plugins {
kotlin(Plugins.KOTLIN_SERIALIZATION) version Versions.KOTLIN
}

buildscript {
dependencies {
classpath(Dependencies.Moko.RESOURCES_GENERATOR)
}
}

detekt {
toolVersion = Versions.DETEKT
config.setFrom("detekt.yml")
Expand Down
2 changes: 2 additions & 0 deletions buildSrc/src/main/java/Configurations.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,7 @@ object Plugins {
const val KOVER = "org.jetbrains.kotlinx.kover"
const val KSP = "com.google.devtools.ksp"

const val MOKO = "dev.icerock.mobile.multiplatform-resources"

const val MULTIPLATFORM = "multiplatform"
}
12 changes: 12 additions & 0 deletions buildSrc/src/main/java/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ object Versions {
const val MOCKATIVE = "1.3.0"
const val MOCKK = "1.13.3"

const val MOKO_RESOURCES = "0.23.0"
const val MOKO_GRAPHICS = "0.9.0"

const val NAPIER = "2.6.1"

const val ROBOLECTRIC = "4.9.1"
Expand Down Expand Up @@ -87,6 +90,13 @@ object Dependencies {
const val TIMBER = "com.jakewharton.timber:timber:${Versions.TIMBER}"
}

object Moko {
const val RESOURCES_GENERATOR = "dev.icerock.moko:resources-generator:${Versions.MOKO_RESOURCES}"
const val RESOURCES = "dev.icerock.moko:resources:${Versions.MOKO_RESOURCES}"
const val RESOURCES_COMPOSE = "dev.icerock.moko:resources-compose:${Versions.MOKO_RESOURCES}"
const val GRAPHICS = "dev.icerock.moko:graphics:${Versions.MOKO_GRAPHICS}"
}

object Test {
const val COMPOSE_UI_TEST_JUNIT = "androidx.compose.ui:ui-test-junit4:${Versions.COMPOSE}"
const val COMPOSE_UI_TEST_MANIFEST = "androidx.compose.ui:ui-test-manifest:${Versions.COMPOSE}"
Expand All @@ -102,6 +112,8 @@ object Dependencies {
const val MOCKK = "io.mockk:mockk:${Versions.MOCKK}"
const val MOCKK_ANDROID = "io.mockk:mockk-android:${Versions.MOCKK}"

const val MOKO_RESOURCES_TEST = "dev.icerock.moko:resources-test:${Versions.MOKO_RESOURCES}"

const val ROBOLECTRIC = "org.robolectric:robolectric:${Versions.ROBOLECTRIC}"

const val TURBINE = "app.cash.turbine:turbine:${Versions.TURBINE}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,20 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview
import co.nimblehq.kmm.template.Greeting
import co.nimblehq.kmm.template.Strings
import co.nimblehq.kmm.template.android.ui.theme.ComposeTheme
import co.nimblehq.kmm.template.getPlatform
import co.nimblehq.kmm.template.sharedres.SharedRes

@Composable
fun HomeScreen() {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
Text(text = Greeting().greet())
Text(text = Strings(LocalContext.current).get(id = SharedRes.strings.greeting, args = listOf(getPlatform().name)))
}
}

Expand Down
6 changes: 6 additions & 0 deletions sample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ plugins {
kotlin(Plugins.KOTLIN_SERIALIZATION) version Versions.KOTLIN
}

buildscript {
dependencies {
classpath(Dependencies.Moko.RESOURCES_GENERATOR)
}
}

detekt {
toolVersion = Versions.DETEKT
config.setFrom("detekt.yml")
Expand Down
2 changes: 2 additions & 0 deletions sample/buildSrc/src/main/java/Configurations.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,7 @@ object Plugins {
const val KOVER = "org.jetbrains.kotlinx.kover"
const val KSP = "com.google.devtools.ksp"

const val MOKO = "dev.icerock.mobile.multiplatform-resources"

const val MULTIPLATFORM = "multiplatform"
}
12 changes: 12 additions & 0 deletions sample/buildSrc/src/main/java/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ object Versions {
const val MOCKATIVE = "1.3.0"
const val MOCKK = "1.13.3"

const val MOKO_RESOURCES = "0.23.0"
const val MOKO_GRAPHICS = "0.9.0"

const val NAPIER = "2.6.1"

const val ROBOLECTRIC = "4.9.1"
Expand Down Expand Up @@ -87,6 +90,13 @@ object Dependencies {
const val TIMBER = "com.jakewharton.timber:timber:${Versions.TIMBER}"
}

object Moko {
const val RESOURCES_GENERATOR = "dev.icerock.moko:resources-generator:${Versions.MOKO_RESOURCES}"
const val RESOURCES = "dev.icerock.moko:resources:${Versions.MOKO_RESOURCES}"
const val RESOURCES_COMPOSE = "dev.icerock.moko:resources-compose:${Versions.MOKO_RESOURCES}"
const val GRAPHICS = "dev.icerock.moko:graphics:${Versions.MOKO_GRAPHICS}"
}

object Test {
const val COMPOSE_UI_TEST_JUNIT = "androidx.compose.ui:ui-test-junit4:${Versions.COMPOSE}"
const val COMPOSE_UI_TEST_MANIFEST = "androidx.compose.ui:ui-test-manifest:${Versions.COMPOSE}"
Expand All @@ -102,6 +112,8 @@ object Dependencies {
const val MOCKK = "io.mockk:mockk:${Versions.MOCKK}"
const val MOCKK_ANDROID = "io.mockk:mockk-android:${Versions.MOCKK}"

const val MOKO_RESOURCES_TEST = "dev.icerock.moko:resources-test:${Versions.MOKO_RESOURCES}"

const val ROBOLECTRIC = "org.robolectric:robolectric:${Versions.ROBOLECTRIC}"

const val TURBINE = "app.cash.turbine:turbine:${Versions.TURBINE}"
Expand Down
2 changes: 1 addition & 1 deletion sample/ios/ArkanaKeys/ArkanaKeys/Sources/ArkanaKeys.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import ArkanaKeysInterfaces
public enum ArkanaKeys {
@inline(__always)
fileprivate static let salt: [UInt8] = [
0xe1, 0x1e, 0xe3, 0x73, 0x8, 0x2, 0xc5, 0xda, 0x3, 0xc4, 0xc1, 0x22, 0x93, 0x5c, 0x77, 0xa1, 0x11, 0xb6, 0xe9, 0x84, 0xd1, 0xb, 0xc3, 0xc, 0x98, 0xfa, 0xe4, 0x9c, 0x5c, 0x23, 0x6d, 0x7, 0xe, 0x98, 0x71, 0xb4, 0x41, 0xaa, 0x94, 0x29, 0x9e, 0x88, 0x85, 0x62, 0x67, 0x7, 0xbe, 0x93, 0xf6, 0xb8, 0xd7, 0x5f, 0xb5, 0xa0, 0x7a, 0xa0, 0x80, 0x34, 0x3a, 0x54, 0xe9, 0xa5, 0x8e, 0x69
0x4c, 0x49, 0xe2, 0x40, 0xff, 0x2e, 0x42, 0xb0, 0xc4, 0x6d, 0xb6, 0x73, 0x13, 0xd0, 0x7, 0x48, 0xc6, 0x79, 0x39, 0xa8, 0x43, 0xb6, 0x4c, 0x31, 0x5f, 0x4d, 0x86, 0x4e, 0xb1, 0x2e, 0x42, 0xa0, 0xea, 0xab, 0xf1, 0x59, 0xc3, 0x32, 0xce, 0xb3, 0x7, 0x2f, 0x7a, 0x9b, 0x9e, 0x1c, 0xe3, 0xd2, 0x6, 0xdb, 0x8e, 0xc9, 0x43, 0x70, 0x3c, 0xdf, 0x87, 0x3d, 0x2c, 0xcd, 0x30, 0x60, 0x6a, 0xc0
]

static func decode(encoded: [UInt8], cipher: [UInt8]) -> String {
Expand Down
22 changes: 11 additions & 11 deletions sample/ios/ArkanaKeys/ArkanaKeys/Tests/ArkanaKeysTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ final class ArkanaKeysTests: XCTestCase {
override func setUp() {
super.setUp()
salt = [
0xe1, 0x1e, 0xe3, 0x73, 0x8, 0x2, 0xc5, 0xda, 0x3, 0xc4, 0xc1, 0x22, 0x93, 0x5c, 0x77, 0xa1, 0x11, 0xb6, 0xe9, 0x84, 0xd1, 0xb, 0xc3, 0xc, 0x98, 0xfa, 0xe4, 0x9c, 0x5c, 0x23, 0x6d, 0x7, 0xe, 0x98, 0x71, 0xb4, 0x41, 0xaa, 0x94, 0x29, 0x9e, 0x88, 0x85, 0x62, 0x67, 0x7, 0xbe, 0x93, 0xf6, 0xb8, 0xd7, 0x5f, 0xb5, 0xa0, 0x7a, 0xa0, 0x80, 0x34, 0x3a, 0x54, 0xe9, 0xa5, 0x8e, 0x69
0x4c, 0x49, 0xe2, 0x40, 0xff, 0x2e, 0x42, 0xb0, 0xc4, 0x6d, 0xb6, 0x73, 0x13, 0xd0, 0x7, 0x48, 0xc6, 0x79, 0x39, 0xa8, 0x43, 0xb6, 0x4c, 0x31, 0x5f, 0x4d, 0x86, 0x4e, 0xb1, 0x2e, 0x42, 0xa0, 0xea, 0xab, 0xf1, 0x59, 0xc3, 0x32, 0xce, 0xb3, 0x7, 0x2f, 0x7a, 0x9b, 0x9e, 0x1c, 0xe3, 0xd2, 0x6, 0xdb, 0x8e, 0xc9, 0x43, 0x70, 0x3c, 0xdf, 0x87, 0x3d, 0x2c, 0xcd, 0x30, 0x60, 0x6a, 0xc0
]
globalSecrets = ArkanaKeys.Global()
}
Expand All @@ -26,49 +26,49 @@ final class ArkanaKeysTests: XCTestCase {

func test_decodeRandomHexKey_shouldDecode() {
let encoded: [UInt8] = [
0xd6, 0x78, 0xd0, 0x11, 0x38, 0x32, 0xf5, 0xed, 0x36, 0xf2, 0xf6, 0x44, 0xf5, 0x6b, 0x43, 0xc2, 0x20, 0x87, 0xd9, 0xe5, 0xe1, 0x3c, 0xf4, 0x3a, 0xab, 0xc8, 0x82, 0xa5, 0x68, 0x46, 0x8, 0x37, 0x3e, 0xa9, 0x46, 0xd1, 0x79, 0x9e, 0xf7, 0x48, 0xfd, 0xba, 0xe1, 0x52, 0x57, 0x35, 0x8b, 0xa7, 0xcf, 0x89, 0xe4, 0x6c, 0xd3, 0xc2, 0x4b, 0x94, 0xb7, 0x2, 0x8, 0x64, 0xdb, 0x9d, 0xb6, 0x59, 0xd5, 0x29, 0x80, 0x11, 0x6b, 0x67, 0xf7, 0xec, 0x32, 0xf3, 0xf8, 0x44, 0xa6, 0x68, 0x16, 0x92, 0x27, 0x84, 0x8c, 0xb4, 0xb7, 0x69, 0xa1, 0x3e, 0xaf, 0xc3, 0xdc, 0xfa, 0x38, 0x46, 0x9, 0x34, 0x6d, 0xfc, 0x10, 0x8d, 0x24, 0xc8, 0xf5, 0x10, 0xac, 0xed, 0xb5, 0x5a, 0x1, 0x34, 0x8f, 0xa5, 0xce, 0x80, 0xe7, 0x69, 0xd1, 0x96, 0x1b, 0x94, 0xe1, 0x5, 0x59, 0x35, 0x8d, 0x94, 0xef, 0x5a
0x2f, 0x7d, 0xd4, 0x24, 0x9d, 0x1e, 0x74, 0x80, 0xa6, 0x5d, 0x83, 0x12, 0x25, 0xe4, 0x33, 0x7e, 0xf4, 0x1d, 0xc, 0x9f, 0x25, 0xd0, 0x2a, 0x55, 0x3c, 0x7e, 0xbf, 0x2d, 0x87, 0x48, 0x7b, 0x91, 0x88, 0x9f, 0xc2, 0x61, 0xf7, 0x6, 0xfc, 0xd0, 0x63, 0x17, 0x42, 0xfd, 0xae, 0x7a, 0x87, 0xeb, 0x34, 0xe3, 0xbf, 0xaa, 0x20, 0x11, 0x59, 0xee, 0xe4, 0xb, 0x4a, 0xae, 0x7, 0x59, 0x59, 0xa6, 0x7f, 0x7e, 0x81, 0x26, 0xc8, 0x16, 0x76, 0x85, 0xa6, 0x5e, 0x85, 0x17, 0x24, 0xb5, 0x66, 0x78, 0xf6, 0x1b, 0x5f, 0x98, 0x76, 0x83, 0x7a, 0x50, 0x6e, 0x7e, 0xe5, 0x79, 0x83, 0x17, 0x21, 0xc3, 0xdb, 0x98, 0xc5, 0x6f, 0xfb, 0, 0xfa, 0xd2, 0x31, 0x17, 0x4d, 0xa2, 0xaf, 0x29, 0x81, 0xe0, 0x34, 0xbe, 0xb6, 0xf8, 0x70, 0x46, 0xc, 0xea, 0xe2, 0xe, 0x1c, 0xfc, 0x54, 0x2, 0xb, 0xf0
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "7f3b0007567ff74c110a077632f94ee0017e84cac2d002549133fb147620288047cbce26179f54a362e0fbb2798fded3cda9eba92e08f3168806d6a4a1cad1a3")
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "c46db060b05a64462d57fffdc39c6f91b438442cd88f0fd9281ccae1c6fc793f37cf7845b33d7ea00bf0556a13c729cc1346824a687915b22e813605e301dba0")
}

func test_decodeRandomBase64Key_shouldDecode() {
let encoded: [UInt8] = [
0xa6, 0x73, 0x96, 0x43, 0x31, 0x60, 0xa2, 0x91, 0x6c, 0xa2, 0xb7, 0x65, 0xa3, 0x6f, 0x43, 0xcc, 0x5e, 0xdc, 0xbd, 0xfc, 0x83, 0x4c, 0x85, 0x41, 0xfb, 0x8d, 0xa0, 0xc4, 0x5, 0x8, 0xb, 0x4f, 0x7b, 0xe2, 0x28, 0xf8, 0x31, 0xc2, 0xc6, 0x7c, 0xf9, 0xe3, 0xf5, 0x25, 0x55, 0x60, 0x88, 0xab, 0x98, 0x8a, 0x9b, 0x36, 0xf3, 0x8b, 0x36, 0xd4, 0xf9, 0x65, 0x5c, 0x12, 0xb9, 0x96, 0xd8, 0x3, 0xb5, 0x2b, 0xa7, 0x1f, 0x67, 0x6c, 0x8b, 0xeb, 0x60, 0x93, 0x88, 0x5a, 0xdf, 0x65, 0x35, 0xe7, 0x27, 0x8e, 0xbe, 0xab, 0x9d, 0x6c, 0xfe, 0x31
0x2a, 0x3, 0xb8, 0x21, 0xa8, 0x44, 0x36, 0xfa, 0xa5, 0x54, 0xf0, 0x4b, 0x5c, 0x94, 0x72, 0xc, 0xfe, 0x1d, 0x5d, 0xfc, 0x28, 0xc6, 0x1f, 0x5d, 0x34, 0x14, 0xb0, 0xf, 0xe8, 0x62, 0x30, 0x97, 0xb9, 0xf8, 0xc2, 0x31, 0x96, 0x77, 0xfb, 0x80, 0x70, 0x57, 0x28, 0xf7, 0xaf, 0x2d, 0xb6, 0x84, 0x67, 0x91, 0xfd, 0x9b, 0x22, 0x23, 0x45, 0xef, 0xb7, 0x68, 0x54, 0x83, 0x51, 0x4b, 0xe, 0xb5, 0x7, 0x78, 0x8f, 0x4, 0x85, 0x76, 0x75, 0xd7, 0xb4, 0x1a, 0xe2, 0xb, 0x5e, 0xa8, 0x53, 0x79, 0xa8, 0x36, 0x8, 0xda, 0x14, 0xd1, 0x71, 0xc
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "Gmu09bgKofvG034mOjTxRGFMcwDXY+fHuzYLphRUgkpG2g68n2LiF+LtyQfFP3VjT5DlonN1cWIxL9BF68W/Lg==")
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "fJZaWjtJa9F8ODuD8ddTkpSlkY6AYLr7SS3hUE53wxRl11UVaJsRaSy00UxNa+duK1mDzX7gpwTxMxT1nO1rWg==")
}

func test_decodeUUIDKey_shouldDecode() {
let encoded: [UInt8] = [
0xd7, 0x29, 0xd5, 0x41, 0x30, 0x31, 0xfd, 0xee, 0x2e, 0xf4, 0xa7, 0x14, 0xa0, 0x71, 0x43, 0x94, 0x77, 0x87, 0xc4, 0xe6, 0xb5, 0x3f, 0xf6, 0x21, 0xfc, 0xca, 0xd3, 0xae, 0x3f, 0x17, 0x55, 0x33, 0x6f, 0xac, 0x10, 0x8d
0x7d, 0x79, 0xd3, 0x74, 0xc6, 0x18, 0x74, 0xd3, 0xe9, 0xc, 0x86, 0x47, 0x21, 0xfd, 0x33, 0x78, 0xff, 0x4c, 0x14, 0xc9, 0x7a, 0x84, 0x2f, 0x1c, 0x6a, 0x29, 0xe4, 0x2b, 0x87, 0x48, 0x76, 0x90, 0xde, 0xcd, 0xc8, 0x6c
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "67628384-0f63-45f1-bd45-d072c484a4a9")
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "1014966c-a042-4095-a92c-5dbe6f404f95")
}

func test_decodeTrueBoolValue_shouldDecode() {
let encoded: [UInt8] = [
0x95, 0x6c, 0x96, 0x16
0x38, 0x3b, 0x97, 0x25
]
XCTAssertTrue(ArkanaKeys.decode(encoded: encoded, cipher: salt))
}

func test_decodeFalseBoolValue_shouldDecode() {
let encoded: [UInt8] = [
0x87, 0x7f, 0x8f, 0, 0x6d
0x2a, 0x28, 0x8e, 0x33, 0x9a
]
XCTAssertFalse(ArkanaKeys.decode(encoded: encoded, cipher: salt))
}

func test_decodeIntValue_shouldDecode() {
let encoded: [UInt8] = [
0xd5, 0x2c
0x78, 0x7b
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), 42)
}

func test_encodeAndDecodeValueWithDollarSign_shouldDecode() {
let encoded: [UInt8] = [
0x93, 0x7b, 0x82, 0x1f, 0x57, 0x26, 0xa9, 0xb3, 0x6e, 0x9b, 0xb2, 0x4a, 0xf2, 0x38, 0xe
0x3e, 0x2c, 0x83, 0x2c, 0xa0, 0xa, 0x2e, 0xd9, 0xa9, 0x32, 0xc5, 0x1b, 0x72, 0xb4, 0x7e
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "real_$lim_shady")
}
Expand Down
16 changes: 7 additions & 9 deletions sample/ios/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ GEM
specs:
CFPropertyList (3.0.6)
rexml
activesupport (7.0.7.2)
activesupport (7.0.8)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
Expand All @@ -20,7 +20,7 @@ GEM
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.813.0)
aws-partitions (1.820.0)
aws-sdk-core (3.181.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
Expand Down Expand Up @@ -193,7 +193,7 @@ GEM
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
fastlane-plugin-firebase_app_distribution (0.7.2)
fastlane-plugin-firebase_app_distribution (0.7.3)
google-apis-firebaseappdistribution_v1 (~> 0.3.0)
ffi (1.15.5)
fourflusher (2.3.1)
Expand Down Expand Up @@ -235,10 +235,9 @@ GEM
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.7.0)
googleauth (1.8.0)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
Expand All @@ -255,10 +254,9 @@ GEM
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
memoist (0.16.2)
mini_magick (4.12.0)
mini_mime (1.1.5)
minitest (5.19.0)
minitest (5.20.0)
molinillo (0.8.0)
multi_json (1.15.0)
multipart-post (2.3.0)
Expand Down Expand Up @@ -292,7 +290,7 @@ GEM
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
security (0.1.3)
signet (0.17.0)
signet (0.18.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
Expand Down Expand Up @@ -343,7 +341,7 @@ GEM
yaml (0.2.1)

PLATFORMS
x86_64-darwin-21
x86_64-darwin-22

DEPENDENCIES
arkana
Expand Down
11 changes: 8 additions & 3 deletions sample/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,12 @@ PODS:
- RxSwift (6.5.0)
- RxTest (6.5.0):
- RxSwift (= 6.5.0)
- shared (1.0)
- SnapKit (5.6.0)
- Sourcery (2.0.2):
- Sourcery/CLI-Only (= 2.0.2)
- Sourcery/CLI-Only (2.0.2)
- SwiftFormat/CLI (0.52.2)
- SwiftFormat/CLI (0.52.3)
- SwiftLint (0.52.4)
- Wormholy (1.7.0)
- xcbeautify (0.17.0)
Expand All @@ -120,6 +121,7 @@ DEPENDENCIES:
- RxNimble/RxBlocking
- RxNimble/RxTest
- RxSwift
- shared (from `../shared`)
- SnapKit
- Sourcery
- SwiftFormat/CLI
Expand Down Expand Up @@ -172,6 +174,8 @@ EXTERNAL SOURCES:
NimbleExtension:
:branch: master
:git: https://github.com/nimblehq/NimbleExtension
shared:
:path: "../shared"

CHECKOUT OPTIONS:
NimbleExtension:
Expand Down Expand Up @@ -210,13 +214,14 @@ SPEC CHECKSUMS:
RxRelay: 1de1523e604c72b6c68feadedd1af3b1b4d0ecbd
RxSwift: 5710a9e6b17f3c3d6e40d6e559b9fa1e813b2ef8
RxTest: eb2d23adefc5a5ebf5779c7792fa3edfe6ebcc17
shared: be96e957c615a90e6b37a5fe0b691b64ce27be2a
SnapKit: e01d52ebb8ddbc333eefe2132acf85c8227d9c25
Sourcery: 9ae7eb711f830e8c3c02b98dc28fbd7e32e9d971
SwiftFormat: 7a8a87bc31cdf971d6e91712f5be72506baeb036
SwiftFormat: 5de81c42f043741a16e17ae2da012bbddc7c0b58
SwiftLint: 1cc5cd61ba9bacb2194e340aeb47a2a37fda00b3
Wormholy: ab1c8c2f02f58587a0941deb0088555ffbf039a1
xcbeautify: 6e2f57af5c3a86d490376d5758030a8dcc201c1b

PODFILE CHECKSUM: 85d4cae5e270d7a65db55a5c553c6c13b91a7b7f
PODFILE CHECKSUM: 7277af75142fd321ea9a3e2b3c64366b8d31855c

COCOAPODS: 1.12.1
Loading

0 comments on commit 9d544fd

Please sign in to comment.