Skip to content

Commit

Permalink
setup moko-socket-io
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex009 committed May 20, 2023
1 parent 4f645c0 commit 7439093
Show file tree
Hide file tree
Showing 8 changed files with 130 additions and 10 deletions.
2 changes: 2 additions & 0 deletions androidApp/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.INTERNET"/>

<application
android:allowBackup="false"
android:supportsRtl="true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ package ru.alex009.moko.socketio.android
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import ru.alex009.moko.socketio.Greeting
Expand All @@ -19,22 +21,29 @@ class MainActivity : ComponentActivity() {
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
GreetingView(Greeting().greet())
GreetingView(remember { Greeting() })
}
}
}
}
}

@Composable
fun GreetingView(text: String) {
Text(text = text)
fun GreetingView(greeting: Greeting) {
Column {
Button(onClick = { greeting.connect() }) {
Text(text = "Connect")
}
Button(onClick = { greeting.hello() }) {
Text(text = "Hello")
}
}
}

@Preview
@Composable
fun DefaultPreview() {
MyApplicationTheme {
GreetingView("Hello, Android!")
GreetingView(Greeting())
}
}
1 change: 1 addition & 0 deletions iosApp/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ target 'iosApp' do
use_frameworks!
platform :ios, '14.1'
pod 'shared', :path => '../shared'
pod 'mokoSocketIo', :git => 'https://github.com/icerockdev/moko-socket-io.git', :tag => 'release/0.4.0'
end
29 changes: 26 additions & 3 deletions iosApp/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,16 +1,39 @@
PODS:
- shared (1.0)
- mokoSocketIo (0.4.0):
- Socket.IO-Client-Swift (~> 15.2.0)
- shared (1.0):
- mokoSocketIo
- Socket.IO-Client-Swift (15.2.0):
- Starscream (~> 3.1)
- Starscream (3.1.1)

DEPENDENCIES:
- mokoSocketIo (from `https://github.com/icerockdev/moko-socket-io.git`, tag `release/0.4.0`)
- shared (from `../shared`)

SPEC REPOS:
trunk:
- Socket.IO-Client-Swift
- Starscream

EXTERNAL SOURCES:
mokoSocketIo:
:git: https://github.com/icerockdev/moko-socket-io.git
:tag: release/0.4.0
shared:
:path: "../shared"

CHECKOUT OPTIONS:
mokoSocketIo:
:git: https://github.com/icerockdev/moko-socket-io.git
:tag: release/0.4.0

SPEC CHECKSUMS:
shared: 2d3b24a8fe27b7d9e65b8d075a9672fbc6a1aa10
mokoSocketIo: 072c66dcab984f441fefe68db0b50f7a5215f15e
shared: ba1484a3e2c1986815f9d6fe39b1fb4bdc2f24f6
Socket.IO-Client-Swift: 1e3e3a1f09f3312a167f0d781eb2f383d477357c
Starscream: 4bb2f9942274833f7b4d296a55504dcfc7edb7b0

PODFILE CHECKSUM: f282da88f39e69507b0a255187c8a6b644477756
PODFILE CHECKSUM: 3ece4462b1c4c9413066e924450547006a2f7623

COCOAPODS: 1.12.1
10 changes: 9 additions & 1 deletion iosApp/iosApp/ContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,15 @@ struct ContentView: View {
let greeting = Greeting()

var body: some View {
Text(greeting.greet())
VStack {
Button("Connect") {
greeting.connect()
}

Button("Hello") {
greeting.hello()
}
}
}
}

Expand Down
11 changes: 11 additions & 0 deletions shared/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,23 @@ kotlin {
framework {
baseName = "shared"
}

// 11.0 minimal supported
ios.deploymentTarget = "11.0"

// add native dependency
pod(name = "mokoSocketIo") {
source = git(url = "https://github.com/icerockdev/moko-socket-io.git") {
tag = "release/0.4.0"
}
}
}

sourceSets {
val commonMain by getting {
dependencies {
//put your multiplatform dependencies here
api("dev.icerock.moko:socket-io:0.4.0")
}
}
val commonTest by getting {
Expand Down
4 changes: 2 additions & 2 deletions shared/shared.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ Pod::Spec.new do |spec|
spec.summary = 'Some description for the Shared Module'
spec.vendored_frameworks = 'build/cocoapods/framework/shared.framework'
spec.libraries = 'c++'
spec.ios.deployment_target = '14.1'
spec.ios.deployment_target = '11.0'
spec.dependency 'mokoSocketIo'

spec.pod_target_xcconfig = {
'KOTLIN_PROJECT_PATH' => ':shared',
Expand Down
66 changes: 66 additions & 0 deletions shared/src/commonMain/kotlin/ru/alex009/moko/socketio/Greeting.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,72 @@
package ru.alex009.moko.socketio

import dev.icerock.moko.socket.Socket
import dev.icerock.moko.socket.SocketEvent
import dev.icerock.moko.socket.SocketOptions

class Greeting {
val socket = Socket(
endpoint = "https://socketio-chat-h9jt.herokuapp.com",
config = SocketOptions(
queryParams = mapOf("param1" to "1", "param2" to "2"),
transport = SocketOptions.Transport.WEBSOCKET
)
) {
on(SocketEvent.Connect) {
println("connect")
}

on(SocketEvent.Connecting) {
println("connecting")
}

on(SocketEvent.Disconnect) {
println("disconnect")
}

on(SocketEvent.Error) {
println("error $it")
}

on(SocketEvent.Reconnect) {
println("reconnect")
}

on(SocketEvent.ReconnectAttempt) {
println("reconnect attempt $it")
}

on(SocketEvent.Ping) {
println("ping")
}

on(SocketEvent.Pong) {
println("pong")
}

listOf(
"input",
"login",
"new message",
"user joined",
"user left",
"typing",
"stop typing"
).forEach { eventName ->
on(eventName) { data ->
println("$eventName $data")
}
}
}

fun connect() {
socket.connect()
}

fun hello() {
socket.emit("add user", "mokoSocketIo")
}

private val platform: Platform = getPlatform()

fun greet(): String {
Expand Down

0 comments on commit 7439093

Please sign in to comment.