Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove workaround for plugin resolution #1

Open
wants to merge 43 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
f55acca
- iOS 'First Contact', Person object serialized to & from!
chris-hatton Jun 16, 2019
490e1ab
- Fix namespaces
chris-hatton Jun 16, 2019
20a0db3
- Remove unwanted example files from TV target
chris-hatton Jun 16, 2019
6ef4f24
- Fixed client-android-common library importing.
chris-hatton Jun 17, 2019
7abf45c
- Android progress.
chris-hatton Jun 21, 2019
eeeef98
- Good K/MP progress.
chris-hatton Jun 23, 2019
28674e4
- K/MP progress
chris-hatton Jun 24, 2019
5997dba
- iOS Running OK! :-D
chris-hatton Jun 26, 2019
c4f8b58
- Introduced processScope for Coroutines
chris-hatton Jun 26, 2019
121ef4f
- Move files to Android compatible locations
chris-hatton Jun 29, 2019
7e718b0
- Overhauled dependency resolution for multi-project ease
chris-hatton Jul 3, 2019
e1888b7
- Tidied up and commented the common.properties loading code
chris-hatton Jul 3, 2019
9355733
- Fix server dependency resolution
chris-hatton Jul 3, 2019
a1a7dfe
- Fix up JavaFX Desktop dependencies
chris-hatton Jul 4, 2019
d75ebab
- Progress with JavaFX Desktop
chris-hatton Jul 7, 2019
b72c967
- Parking Java 11 efffort here after discovering Ktor limitation:
chris-hatton Jul 8, 2019
73fb8fa
- JavaFX client launching in JDK 1.8 :-)
chris-hatton Jul 8, 2019
2ea24f1
- JavaFX client working :-D
chris-hatton Jul 8, 2019
e580835
- Aligned Android SDK & Build tools versions using common.properties
chris-hatton Jul 9, 2019
96b78ed
- Disable lint :-(
chris-hatton Jul 11, 2019
fa3707d
- Harder disable lint :-(
chris-hatton Jul 12, 2019
2b7acfc
- Update GitLab CI config
chris-hatton Jul 13, 2019
28152de
- Update GitLab CI config
chris-hatton Jul 13, 2019
10f7594
- Update GitLab CI config
chris-hatton Jul 13, 2019
2b9472b
- Update GitLab CI config
chris-hatton Jul 13, 2019
6d36d26
Add README.md
chris-hatton Jul 14, 2019
1156399
- Update GitLab CI config
chris-hatton Jul 14, 2019
1bb5b7c
- Fix iOS Gradle
chris-hatton Jul 14, 2019
fcff7ff
- Fix iOS!
chris-hatton Jul 14, 2019
11e10d1
- Update config
chris-hatton Jul 14, 2019
0e150c8
- Update config
chris-hatton Jul 14, 2019
cf76168
- Update config
chris-hatton Jul 14, 2019
4b4fc00
- Update config
chris-hatton Jul 14, 2019
f0b5771
- Update GitLab config
chris-hatton Jul 15, 2019
39c9ac0
- Clean unwanted additions
chris-hatton Jul 15, 2019
4e26d4a
Update README.md
chris-hatton Jul 15, 2019
cc5bae2
Add LICENSE
chris-hatton Jul 15, 2019
4038208
Tidied iOS Coroutines definition
chris-hatton Jul 15, 2019
6a2ff2f
Update README.md
chris-hatton Jul 15, 2019
15383c1
- Add title block to build.gradle.kts files to more easily identify them
chris-hatton Jul 15, 2019
7b7a726
Merge remote-tracking branch 'origin/master'
chris-hatton Jul 15, 2019
53bca0b
ignore .idea files
martinbonnin Jul 21, 2019
4820423
remove workaround for plugin resolution
martinbonnin Jul 21, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
- Fix iOS Gradle
  • Loading branch information
chris-hatton committed Jul 14, 2019
commit 1bb5b7c6966efcd33b7537bd5516333a0f5ba727
Original file line number Diff line number Diff line change
@@ -24,13 +24,10 @@ class FirstPresenter(

override fun onAttach() {

println("Hey")

setNameChannel = Channel()
peopleChannel = Channel()

netScope.launch {
println("Hi! N")
for (name in setNameChannel) {
val person = Person(names = name.split(" "))
val otherPerson = try {
6 changes: 4 additions & 2 deletions Code/Client/iOS/Example.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
@@ -9,18 +9,19 @@
/* Begin PBXBuildFile section */
3E126776CCE2F2CAFDC4A210 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3E126FF65199B795AF3C8052 /* Assets.xcassets */; };
3E1267A1BA33895D24DBD071 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3E126706756782E8F17EC3D0 /* Main.storyboard */; };
3E1269E301B9C47217F0232E /* build.gradle.kts in Resources */ = {isa = PBXBuildFile; fileRef = 3E126C3F17558046BB67F60D /* build.gradle.kts */; };
3E126B5C7B4D85CDFC23C0FE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3E126A5056763FEB8F1500A6 /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
3E1261D372335123B6E041A4 /* build.gradle.kts */ = {isa = PBXFileReference; lastKnownFileType = file.kts; path = build.gradle.kts; sourceTree = "<group>"; };
3E126320BD9D7B493DCFA1C4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.info; path = Info.plist; sourceTree = "<group>"; };
3E12638C6B9D79AA36D99C8A /* gradle-wrapper.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "gradle-wrapper.jar"; sourceTree = "<group>"; };
3E1263E6C4392BF67FCFE02A /* BaseViewAdapter.kt */ = {isa = PBXFileReference; lastKnownFileType = file.kt; path = BaseViewAdapter.kt; sourceTree = "<group>"; };
3E12653A338B45B178CCB663 /* gradle-wrapper.properties */ = {isa = PBXFileReference; lastKnownFileType = file.properties; path = "gradle-wrapper.properties"; sourceTree = "<group>"; };
3E126598A8A1C7A7AC251475 /* gradlew */ = {isa = PBXFileReference; lastKnownFileType = text; path = gradlew; sourceTree = "<group>"; };
3E126A27A3879302B80D9D34 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
3E126C2686028C2C12CF89C3 /* settings.gradle.kts */ = {isa = PBXFileReference; lastKnownFileType = file.gradle; path = settings.gradle.kts; sourceTree = "<group>"; };
3E126C3F17558046BB67F60D /* build.gradle.kts */ = {isa = PBXFileReference; lastKnownFileType = file.kts; name = build.gradle.kts; path = Example/build.gradle.kts; sourceTree = "<group>"; };
3E126DDFB11E5A0EC643207B /* BaseViewController.kt */ = {isa = PBXFileReference; lastKnownFileType = file.kt; path = BaseViewController.kt; sourceTree = "<group>"; };
3E126EBACFE3FFB12FCDB06D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
3E126F6C47E14C2E6203A2A2 /* build.gradle.kts */ = {isa = PBXFileReference; lastKnownFileType = file.gradle; path = build.gradle.kts; sourceTree = "<group>"; };
@@ -56,6 +57,7 @@
3E1269B247506B5E9A0EE5DA /* Products */,
3E126D8C1D412638B67D4739 /* Example */,
3E1267430025E8297A085BA8 /* Supporting Files */,
3E126C3F17558046BB67F60D /* build.gradle.kts */,
);
sourceTree = "<group>";
};
@@ -98,7 +100,6 @@
3E126A0305764B8AD4FDA7DA /* Supporting Files */ = {
isa = PBXGroup;
children = (
3E1261D372335123B6E041A4 /* build.gradle.kts */,
);
name = "Supporting Files";
sourceTree = "<group>";
@@ -218,6 +219,7 @@
3E126776CCE2F2CAFDC4A210 /* Assets.xcassets in Resources */,
3E126B5C7B4D85CDFC23C0FE /* LaunchScreen.storyboard in Resources */,
3E1267A1BA33895D24DBD071 /* Main.storyboard in Resources */,
3E1269E301B9C47217F0232E /* build.gradle.kts in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
37 changes: 23 additions & 14 deletions Code/Client/iOS/Example/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -3,10 +3,19 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.Framework
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetPreset

val kotlin_version : String = extra["kotlin_version"].toString()
val kotlin_coroutines_version : String = extra["kotlin_coroutines_version"].toString()
val ktor_version : String = extra["ktor_version"].toString()
val kotlin_serialization_version : String = extra["kotlin_serialization_version"].toString()
apply( from = "../../../common.gradle.kts")

val kotlinXCoroutinesIosX64 : String by extra
val ktorClientIos : String by extra
val kotlinXSerializationRuntimeNative : String by extra
val kotlinXSerializationRuntimeCommon : String by extra
val ktorClientCore : String by extra
val ktorClientJson : String by extra
val ktorClientJsonNative : String by extra
val ktorClientSerializationNative : String by extra

val clientCommonProject : ()->ProjectDependency by extra
val sharedProject : ()->ProjectDependency by extra

plugins {
kotlin("multiplatform")
@@ -35,24 +44,24 @@ kotlin {

val commonMain by getting {
dependencies {
implementation(project(":client-common"))
implementation(project(":shared"))
implementation(clientCommonProject())
implementation(sharedProject())

implementation("io.ktor:ktor-client-core:$ktor_version")
implementation("io.ktor:ktor-client-json:$ktor_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$kotlin_serialization_version")
implementation(ktorClientCore)
implementation(ktorClientJson)
implementation(kotlinXSerializationRuntimeCommon)
}
}

val iosMain by getting {

dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-iosx64:$kotlin_coroutines_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$kotlin_serialization_version")
implementation(kotlinXCoroutinesIosX64)
implementation(kotlinXSerializationRuntimeNative)

implementation("io.ktor:ktor-client-ios:${ktor_version}")
implementation("io.ktor:ktor-client-json-native:${ktor_version}")
implementation("io.ktor:ktor-client-serialization-native:${ktor_version}")
implementation(ktorClientIos)
implementation(ktorClientJsonNative)
implementation(ktorClientSerializationNative)
}
}
}
Original file line number Diff line number Diff line change
@@ -8,14 +8,14 @@

package example

import example.model.Person
import io.ktor.client.HttpClient
import io.ktor.client.features.json.JsonFeature
import io.ktor.client.features.json.serializer.KotlinxSerializer
import kotlinx.cinterop.initBy
import kotlinx.coroutines.CoroutineScope
import kotlinx.serialization.ImplicitReflectionSerializer
import kotlinx.serialization.UnstableDefault
import org.chrishatton.example.client
import platform.UIKit.*

class AppDelegate : UIResponder, UIApplicationDelegateProtocol {
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package example

import example.ui.PresenterContract
import example.ui.ViewContract
import org.chrishatton.example.ui.PresenterContract
import org.chrishatton.example.ui.ViewContract

/**
* We would prefer to use a BaseViewController but 'Non-final Kotlin subclasses of Objective-C classes are not yet supported'
@@ -10,8 +10,8 @@ import example.ui.ViewContract
*/
abstract class BaseViewAdapter<
Self:BaseViewAdapter<Self,VC,PC>,
VC: ViewContract<PC,VC>,
PC: PresenterContract<VC,PC>
VC: ViewContract<PC, VC>,
PC: PresenterContract<VC, PC>
> : ViewContract<PC, VC> {

fun viewWillAppear(animated: Boolean) {
Original file line number Diff line number Diff line change
@@ -4,16 +4,20 @@ package example
import kotlinx.cinterop.ExportObjCClass
import kotlinx.cinterop.ObjCAction
import kotlinx.cinterop.ObjCOutlet
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.InternalCoroutinesApi
import org.chrishatton.example.ui.FirstPresenter
import org.chrishatton.example.ui.contract.FirstPresenterContract
import org.chrishatton.example.ui.contract.FirstViewContract
import platform.Foundation.NSCoder
import platform.UIKit.UIButton
import platform.UIKit.UILabel
import platform.UIKit.UITextField
import platform.UIKit.UIViewController
import example.ui.contract.FirstViewContract
import example.ui.contract.FirstPresenterContract
import example.ui.FirstPresenter

@ExperimentalCoroutinesApi
@ExportObjCClass
@InternalCoroutinesApi
class FirstViewController : UIViewController {

@OverrideInit
@@ -40,7 +44,7 @@ class FirstViewController : UIViewController {

private val viewAdapter = FirstViewAdapter()

inner class FirstViewAdapter : BaseViewAdapter<FirstViewAdapter,FirstViewContract,FirstPresenterContract>(), FirstViewContract {
inner class FirstViewAdapter : BaseViewAdapter<FirstViewAdapter, FirstViewContract, FirstPresenterContract>(), FirstViewContract {
override fun displayGreeting(text: String) {
label.text = text
}
22 changes: 6 additions & 16 deletions Code/Client/iOS/Example/src/iosMain/kotlin/main.kt
Original file line number Diff line number Diff line change
@@ -1,26 +1,16 @@
//
// main.kt
// Example
//
// Created by Christopher Hatton on 2019-05-04.
// Copyright © 2019 Arvis. All rights reserved.
//

import kotlinx.cinterop.*
import platform.Foundation.*
import platform.UIKit.*
import example.*
import kotlinx.coroutines.runBlocking

fun main(args: Array<String>) {
//runBlocking {
memScoped {
val argc = args.size + 1
val argv = (arrayOf("konan") + args).map { it.cstr.ptr }.toCValues()
memScoped {
val argc = args.size + 1
val argv = (arrayOf("konan") + args).map { it.cstr.ptr }.toCValues()

autoreleasepool {
UIApplicationMain(argc, argv, null, NSStringFromClass(AppDelegate))
}
autoreleasepool {
UIApplicationMain(argc, argv, null, NSStringFromClass(AppDelegate))
}
//}
}
}
7 changes: 4 additions & 3 deletions Code/Client/iOS/Supporting Files/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -3,7 +3,8 @@ buildscript {

apply( from = "common.gradle.kts")

val kotlin_version : String by extra
val kotlinSerializationPlugin : String by extra
val kotlinGradlePlugin : String by extra

repositories {
google()
@@ -13,8 +14,8 @@ buildscript {
}

dependencies {
classpath(kotlin("gradle-plugin", version = kotlin_version ))
classpath("org.jetbrains.kotlin:kotlin-serialization:$kotlin_version")
classpath(kotlinGradlePlugin)
classpath(kotlinSerializationPlugin)
}
}

7 changes: 5 additions & 2 deletions Code/Server/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -18,6 +18,9 @@ buildscript {

apply(from = "$rootDir/common.gradle.kts")

val androidGradlePlugin : String by extra
val kotlinSerializationPlugin : String by extra

repositories {
google()
jcenter()
@@ -26,8 +29,8 @@ buildscript {
dependencies {
// This should not be required as this is *not* an Android project.
// Seems to be a current limitation of dependency on MPP project?
classpath("com.android.tools.build:gradle:3.4.1")
classpath("org.jetbrains.kotlin:kotlin-serialization:1.3.40")
classpath(androidGradlePlugin)
classpath(kotlinSerializationPlugin)
}
}

3 changes: 1 addition & 2 deletions Code/Server/src/main/kotlin/example/Application.kt
Original file line number Diff line number Diff line change
@@ -74,7 +74,7 @@ fun Application.module(testing: Boolean = false) {

routing {
get("/") {
call.respondText("HELLO WORLD!", contentType = ContentType.Text.Plain)
call.respondText("HELLO WORLD!")
}

get<MyLocation> {
@@ -102,7 +102,6 @@ fun Application.module(testing: Boolean = false) {
send(Frame.Text("Client said: " + frame.readText()))
}
}

}

//===========
Original file line number Diff line number Diff line change
@@ -2,4 +2,4 @@ package org.chrishatton.example.ui

interface ViewContract<P: PresenterContract<Self, P>,Self: ViewContract<P, Self>> {
val presenter : P
}
}