BT

Experimente a nova interface visual do InfoQ! Veja o novo design do InfoQ 3.0 e nos diga o que você achou.

Kotlin Native adiciona interoperabilidade com Objective-C e suporte ao WebAssembly

| por Sergio De Simone Seguir 21 Seguidores , traduzido por Diogo Carleto Seguir 46 Seguidores em 04 jan 2018. Tempo estimado de leitura: 1 minuto |

O Kotlin/Native 0.4 torna possível a construção de apps nativas para o iOS e macOS, segundo Nikolay Igotti, líder técnico do Kotlin/Native na JetBrains. Adicionalmente, foi adicionado suporte experimental à plataforma WebAssembly.

A interoperabilidade com o Objective-C é a chave para o Kotlin/Native suportar o desenvolvimento iOS/macOS. A JetBrains chegou a publicar uma app de demonstração muito simples codificada em Kotlin na Apple Store e na Google Play.

O pedaço de código abaixo demonstra como é possível acessar os frameworks do iOS:

import kotlinx.cinterop.*
import platform.Foundation.*
import platform.objc.*
import platform.osx.*

fun readResource(resourceName: String): ByteArray {
    val filePath = NSBundle.mainBundle.pathForResource(resourceName, ofType = null)
  val fileData = NSData.dataWithContentsOfFile(filePath!!)
  ?: throw Error("failed reading resource $resourceName")
  return fileData.bytes!!.readBytes(fileData.length.toInt())
}

A mágica é fornecida através da nova plataforma. Bibliotecas que permitem acesso a interfaces do sistema operacional subjacente. Isso também possibilita usar a camada POSIX OS em uma plataforma que a fornece por exemplo chamadas para fopen, fread, e assim por diante. Anteriormente, a interoperabilidade com plataformas subjacentes exigiria a explícita geração de stubs de interoperabilidade.

Outra nova funcionalidade, destinada a simplificar o uso de objetos Kotlin com a API C, é a fixação do objeto, que pode ser usada para garantir que um objeto seja bloqueado na memória quando consumido a partir de APIs C.

O Kotlin/Native agora suporta o WebAssembly, o que significa que o Kotlin pode ser usado para apps baseadas em browsers. O suporte é experimental, devido às limitações dos browsers, diz Igotti.

A depuração agora suporta inspeção na maioria das variáveis em tempo de execução. E por último, mas não menos importante, um novo plugin fornece suporte para o Kotlin/Native no CLion.

O Kotlin/Native é um desenvolvimento recente no Kotlin que permite compilar o Kotlin, originalmente baseada na JVM, para binários nativos que são executados sem VM. Isso o torna especialmente adequado para plataformas como o iOS e outros, na qual VMs não são permitidas ou desejáveis. O Kotlin/Native atualmente suporta Windows, Linux, macOS, iOS, Android e WebAssembly.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
BT