در کنار آموزش کاتلین، در این مقاله به بررسی آموزش کامل خروجی ios از کاتلین به زبان ساده پرداخته شده است. با دانشجویار همراه باشید.

خروجی ios از کاتلین

ایا می دانستید که می شود از برنامه ای که با کاتلین ساخته شده است خروجی ios گرفت؟ در این آموزش یاد میگیرد که چطور از برنامه ای که با زبان برنامه نویسی کاتلین ساخته شده است خروجی ios بگیرید.

این کار در سه مرحله انجام می گیرد که به ترتیب زیر است:

  • ساخت پروژه ios در xcode
  • اتصال فریمورک به پروژه ios
  • استفاده از ماژول sharedدر swift برای خروجی گرفتن ios از کاتلین

خروجی گرفتن ios از کاتلین

نکته
پشنهاد مقاله مکمل: آموزش Coroutines در کاتلین

ساخت پروژه  ios در xcode

اولین کاری که لازم است برای خروجی گرفتن ios  انجام دهید این است که یک پروژه درxcode  ایجاد کنید. شما می توانید از قسمت File | New | Project یک پروژه جدید برای ios بسازید. پس از آن باید قالب پروژه را انتخاب کنید که طبق تصویر زیر ما قالب app را انتخاب کرده ایم.

خروجی گرفتن ios از کاتلین

پس از آن باید یک نام برای پروژه انتخاب کنید مانند simpleLoginIOS و بعد تایید کنید تا پروژه ساخته شود.

خروجی گرفتن ios از کاتلین

اتصال فریمورک به پروژه ios

در مرحله بعد نیاز است مکان پروژه را در یک دایکتوری مشخص کنید که در اندروید استودیو ساختار به شکل زیر است.

خروجی گرفتن ios از کاتلین

شما می توانید نام دایکتوری simpleLoginIOS را به نام دایکتوری iosApp نیز تغییر دهید. این کار برای سازگاری با سایر فهرست های سطح بالا پروژه شما می باشد و ضروری نیست.

استفاده از ماژول shared در swift برای خروجی گرفتن ios از کاتلین

در مرحله اخر xcode را بازکنید و در فایل ContentView.swift  ماژول shared را با استفاده از دستور زیر وارد کنید.

import shared

برای بررسی درستی اتصال آن می توانید از تابع زیر در ماژول KMM استفاده کنید.

import SwiftUI
import shared

struct ContentView: View {
    var body: some View {
        Text(Greeting().greeting())
        .padding()
    }
}

و نمایش به صورت زیر است.

خروجی گرفتن ios از کاتلین

ارتباط بین کاتلین و سوفیت

در کاتلین/ نیتیو (Kotlin/Native) این قابلیت وجود دارد که با کتابخانه های  (Objective-C/Swift) ارتباط دو طرفه بر قرار کند. مثلا شما می توانید از کتابخانه های برنامه نویسی Objective-C در پروژه کاتلین خود استفاده کنید و همچنین می توان از ماژول ها و کتابخانه های کاتلین در کد های سوفیت و ابجکت سی (Objective-C/Swift) استفاده کرد. علاوه بر این ویژگی، کاتلین دارای C Interop است . در این مطلب می خواهیم نحوه استفاده از کد های کاتلین/ نیتیو را توضیح دهیم تا بتوانید کدهای کاتلین را در برنامه های ios و macos به کار ببرید.

در مرحبه اول لازم است یک کتابخانه کاتلین در پروژه خود بسازید. کامپایلر کاتلین/ نیتیو (Kotlin/Native) می تواند فریم ورکی برای ios باشد. فریم ورکی که با کاتلین ایجاد می کنید شامل تمامی اطلاعات باینری مورد نیاز برای استفاده آن در Objective-C و Swift را داراست. برای شروع یک کتابخانه کوچک با استفاده از زبان برنامه نویسی کاتلین در پروژه ایجاد می کنیم. ما در اینجا در یک برنامه Objective-C استفاده کرده ایم.

نکته
پشنهاد مقاله مکمل: معرفی کتاب آموزش کاتلین(Kotlin)

یک فایل با نام hello.kt در پروژه ios خود ایجاد کنید و در آن کدهای زیر را قرار دهید.

package example

object Object {
  val field = "A"
}

interface Interface {
  fun iMember() {}
}

class Clazz : Interface {
  fun member(p: Int): ULong? = 42UL
}

fun forIntegers(b: Byte, s: UShort, i: Int, l: ULong?) { }
fun forFloats(f: Float, d: Double?) { }

fun strings(str: String?) : String {
  return "That is '$str' from C"
}

fun acceptFun(f: (String) -> String?) = f("Kotlin/Native rocks!")
fun supplyFun() : (String) -> String? = { "$it is cool!" }

فریم ورکی که با Kotlin/Native ساختید دارای ویژگی های دیگری است و با استفاده از سوفیت اسان تر می شود و شما می توانید با استفاده از کد زیر در main.swift داشته باشید.

import Foundation
import Demo

let kotlinObject = Object()
assert(kotlinObject === Object(), "Kotlin object has only one instance")

let field = Object().field

let clazz = Clazz()
clazz.member(p: 42)

LibKt.forIntegers(b: 1, s: 2, i: 3, l: 4)
LibKt.forFloats(f: 2.71, d: nil)

let ret = LibKt.acceptFun { "\($0) Kotlin is fun" }
if (ret != nil) {
  print(ret!)
}

کد کاتلین در سوفیت به یک کد مشابه تبدیل شده است هرچند تفاوت هایی دارند حتی رشته های کاتلین به سوفیت تبدیل شده است و در سوفیت توابع کاتلین را فراخوانی کنیم مثلا Kotlin lambda را فراخوانی کنیم.

در نتیجه یاد گرفتیم که چطور برنامه ios از یک پلتفرم کاتلین بسازیم.