Top 50 pitanja i odgovora na intervjuu za Kotlin (2026.)

Pitanja i odgovori za intervju za Kotlin

Pripremate se za Kotlin intervju? Razumijevanje onoga ลกto moลพete oฤekivati โ€‹โ€‹moลพe oblikovati vaลกu pripremu. Fraza Kotlin intervju oznaฤava bitna podruฤja koja otkrivaju dubinu, naฤin razmiลกljanja i prilagodljivost tijekom procjene kandidata.

Istraลพivanje Kotlin pitanja za intervju otvara prilike u svim promjenjivim potrebama industrije, povezujuฤ‡i tehniฤko iskustvo s praktiฤnim rastom. Struฤnjaci koji rade u tom podruฤju stjeฤu struฤnost u domeni, usavrลกavajuฤ‡i vjeลกtine analize i proลกirujuฤ‡i svoj skup vjeลกtina. Ova uobiฤajena pitanja pomaลพu poฤetnicima, iskusnim talentima i programerima srednje razine da ispune tehniฤka oฤekivanja, a istovremeno se usklade sa stvarnim ciljevima tima.
ฤŒitaj viลกeโ€ฆ

๐Ÿ‘‰ Besplatno preuzimanje PDF-a: Pitanja i odgovori za intervju za Kotlin

Najฤeลกฤ‡a pitanja i odgovori za Kotlin na intervjuu

1) ล to je Kotlin i zaลกto je bolji od Java?

Kotlin je moderni, statiฤki tipizirani programski jezik koji je razvio JetBrains za viลกeplatformske aplikacije. Nudi konciznu sintaksu, null sigurnost i potpunu interoperabilnost s Java, Za razliku od JavaKotlin smanjuje standardni kod i poveฤ‡ava produktivnost podrลพavajuฤ‡i funkcije viลกeg reda, klase podataka i korutine.

Prednosti Kotlina u odnosu na Java:

Faktor Kotlin Java
Nulta sigurnost Ugraฤ‘en Odsutan
Funkcije proลกirenja Podrลพano Nije podrลพano
Korutine Narodna podrลกka Zahtijeva vanjske biblioteke
Code Konciznost Vrlo visoko verbalan
Interoperabilnost 100% s Java Ograniฤeno s Kotlinom

Primjer:

val message: String? = "Hello"
println(message?.length) // Safe call prevents NullPointerException

Kotlinova koncizna sintaksa i sigurniji dizajn ฤine ga zadanim izborom za Android i razvoj pozadinskog sustava.


2) Objasnite glavne znaฤajke i karakteristike Kotlina.

Kotlin je jezik bogat znaฤajkama koji integrira objektno orijentirane i funkcionalne paradigme. Njegove kljuฤne karakteristike ukljuฤuju:

  1. Nulta sigurnost: spreฤava NullPointerException u vrijeme kompajliranja.
  2. Funkcije proลกirenja: Omoguฤ‡uje programerima dodavanje novih funkcionalnosti postojeฤ‡im klasama.
  3. Korutine: Pojednostavite asinhrono programiranje.
  4. Pametni castovi: Automatski pretvori u tip nakon provjere uvjeta.
  5. Klase podataka: Automatski generiraj toString(), equals()i hashCode() metode.
  6. Interoperabilnost: Potpuna kompatibilnost s postojeฤ‡im Java kodne baze.

Ove znaฤajke zajedno poboljลกavaju sigurnost koda, ฤitljivost i performanse - kljuฤne ฤimbenike na razini poduzeฤ‡a. Android aplikacije.


3) ล to su klase podataka u Kotlinu i koje prednosti nude?

Klase podataka su posebne klase u Kotlinu dizajnirane za pohranjivanje nepromjenjivih podataka. Kada se deklariraju s data kljuฤnu rijeฤ, oni automatski generiraju standardne metode kao ลกto su equals(), hashCode()i toString().

Prednosti:

  • Smanjuje standardni kod.
  • Poboljลกava jasnoฤ‡u koda.
  • Omoguฤ‡uje funkcije komponenti za destrukturiranje deklaracija.

Primjer:

data class User(val name: String, val age: Int)
val user1 = User("Alice", 25)
println(user1) // Output: User(name=Alice, age=25)

Klase podataka se prvenstveno koriste za modeliranje podataka domene i osiguravanje nepromjenjivosti meฤ‘u slojevima.


4) Kako korutine rade u Kotlinu?

Korutine u Kotlinu pruลพaju moฤ‡an naฤin izvrลกavanja asinkronih i istovremenih zadataka bez blokiranja niti. To su lagane komponente koje obustavljaju izvrลกavanje bez blokiranja glavne niti, ลกto ih ฤini idealnim za mreลพne i I/O operacije.

Primjer:

GlobalScope.launch {
    val data = async { fetchData() }
    println(data.await())
}

Faze ลพivotnog ciklusa korutine:

  1. Stvaranje
  2. Izvrลกenje
  3. Suspenzija
  4. povraฤ‡aj
  5. Zavrลกetak

Prednosti:

  • Lagana konkurentnost
  • Strukturirani paralelizam
  • Poboljลกane performanse u Android aplikacije

Korutine pojednostavljuju kod u usporedbi s tradicionalnim povratnim pozivima ili Rx-omJavapristupi temeljeni na -.


5) Koja je razlika izmeฤ‘u val i var u Kotlinu?

svojstvo val var
Promjenjivost Nepromjenjivo (samo za ฤitanje) Promjenjivo (moลพe se prenamijeniti)
Koristite sluฤaj Konstante ili vrijednosti konfiguracije Varijable koje trebaju aลพuriranja
Preraspodjela Nije dozvoljeno dopuลกteno
Kompilacija Osigurava sigurnost niti Moลพda ฤ‡e biti potrebna sinkronizacija

Primjer:

val name = "John"
var age = 30
age = 31 // valid
name = "Mark" // compilation error

Koriลกtenje val poboljลกava nepromjenjivost - najbolju praksu u Kotlin standardima kodiranja.


6) Kako Kotlin rjeลกava null sigurnost?

Null sigurnost je jedna od najvrjednijih znaฤajki Kotlina. Kotlin razlikuje null-labilne i ne-null-labilne tipove tijekom kompajliranja.

Primjer:

var name: String? = "Alex"
println(name?.length) // Safe call

Operatorovi:

  • ?: Operater sigurnog poziva
  • ?:Elvisov operator (pruลพa zadanu vrijednost)
  • !!Ne-null tvrdnja (baca NPE ako je null)

Provoฤ‘enjem null sigurnosti tijekom kompajliranja, Kotlin praktiฤki eliminira vrijeme izvoฤ‘enja. NullPointerExceptions, poboljลกavajuฤ‡i stabilnost aplikacije.


7) Koje su razliฤite vrste konstruktora u Kotlinu?

Kotlin podrลพava dvije vrste konstruktora:

Tip Description Primjer
Primarni konstruktor Definirano u zaglavlju klase class Person(val name: String)
Sekundarni konstruktor Definirano unutar tijela klase pomoฤ‡u constructor constructor(name: String, age: Int) : this(name)

Primjer:

class Student(val name: String) {
    constructor(name: String, age: Int) : this(name) {
        println("Age is $age")
    }
}

Ova fleksibilnost omoguฤ‡uje viลกe naฤina uฤinkovite inicijalizacije objekata.


8) Objasnite razliku izmeฤ‘u operatora == i === u Kotlinu.

Operahumka Vrsta usporedbe Description
== Strukturalan Provjerava jednakost vrijednosti pomoฤ‡u equals()
=== Referentni Provjerava pokazuju li dvije reference na isti objekt

Primjer:

val a = "Hello"
val b = "Hello"
println(a == b)  // true
println(a === b) // false (different references)

Ova razlika pomaลพe programerima da eksplicitno kontroliraju logiku jednakosti, posebno kada se radi o identitetu objekta i prilagoฤ‘enim modelima.


9) ล to su funkcije proลกirenja u Kotlinu?

Funkcije proลกirenja omoguฤ‡uju dodavanje novih funkcionalnosti postojeฤ‡im klasama bez nasljeฤ‘ivanja. ฤŒine kod ฤitljivijim i modularnijim.

Primjer:

fun String.lastChar(): Char = this[this.length - 1]
println("Kotlin".lastChar()) // Output: n

Prednosti:

  • ฤŒiลกฤ‡a sintaksa
  • Nema potrebe za klasama korisnosti
  • Poboljลกava modularnost

Funkcije proลกirenja se intenzivno koriste u Android razvoj, posebno s UI komponentama i transformacijama podataka.


10) ล to su zatvorene klase u Kotlinu i gdje su korisne?

Zatvorena klasa ograniฤava nasljeฤ‘ivanje klase na definirani skup podklasa. Koristi se za predstavljanje ograniฤenih hijerarhija, ฤesto u when izrazi.

Primjer:

sealed class Result
data class Success(val data: String): Result()
data class Error(val error: String): Result()

fun handleResult(result: Result) = when(result) {
    is Success -> println("Data: ${result.data}")
    is Error -> println("Error: ${result.error}")
}

Prednosti:

  • Osigurava iscrpno when Provjere
  • Poboljลกava sigurnost koda
  • Idealno za modeliranje stanja odgovora korisniฤkog suฤelja ili API-ja

11) ล to su funkcije viลกeg reda u Kotlinu? Navedite primjere.

Funkcije viลกeg reda su funkcije koje ili uzimaju druge funkcije kao parametre ili vraฤ‡aju funkciju. Ovaj koncept je posuฤ‘en iz funkcionalnog programiranja i potiฤe ฤiลกฤ‡i, modularni kod.

Primjer:

fun operateOnNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}
val result = operateOnNumbers(5, 3) { x, y -> x + y }
println(result) // 8

Prednosti:

  • Promotest ponovne upotrebe
  • Pojednostavljuje rukovanje logikom
  • Omoguฤ‡uje sintaksu temeljenu na lambda algoritmima za saลพete izraze

Kotlinova opseลพna upotreba funkcija viลกeg reda (kao ลกto su map, filteri forEach) poboljลกava produktivnost programera i u backendu i u Android projektima.


12) Objasnite koncept inline funkcija u Kotlinu.

An inline funkcija govori kompajleru da umetne tijelo funkcije izravno na mjesto poziva kako bi se izbjeglo dodatno optereฤ‡enje prilikom stvaranja lambda objekta. Poboljลกava performanse, posebno pri prosljeฤ‘ivanju funkcija kao parametara.

Primjer:

inline fun measureTime(block: () -> Unit) {
    val start = System.nanoTime()
    block()
    println("Time: ${System.nanoTime() - start}")
}

Prednosti:

Faktor Korist
Izvoฤ‘enje Izbjegava alokaciju objekata
ฤitljivost Odrลพava jasnoฤ‡u lambda signala
Fleksibilnost Dobro funkcionira s reificiranim tipovima

Inline funkcije su posebno korisne u aplikacijama visokih performansi ili niske latencije.


13) Koja je razlika izmeฤ‘u otvorenog, finalnog i trbuลกnog vjeลพbanja?tract nastava u Kotlinu?

Rijeฤ Description Primjer upotrebe
open Omoguฤ‡uje nasljeฤ‘ivanje open class Vehicle
final Sprjeฤava nasljeฤ‘ivanje (zadano) class Car
abstract Mora se naslijeฤ‘ivati, ne moลพe se instancirati abstract class Shape

Primjer:

open class Animal
class Dog : Animal()

Kljuฤno za poneti: U Kotlinu su nastava konaฤno prema zadanim postavkama, promiฤuฤ‡i nepromjenjivost i siguran dizajn - za razliku od Java, gdje je nasljeฤ‘ivanje otvoreno prema zadanim postavkama.


14) Kako generici funkcioniraju u Kotlinu? Koje su njihove prednosti?

Generiฤki tipovi u Kotlinu omoguฤ‡uju kod siguran po tipu dopuลกtajuฤ‡i koriลกtenje parametara tipa u klasama i funkcijama. To eliminira potrebu za eksplicitnim pretvaranjem (casting).

Primjer:

class Box<T>(val item: T)
val intBox = Box(10)
val stringBox = Box("Kotlin")

Prednosti generiฤkih lijekova:

  • Vrsta sigurnosti
  • Reus Sposobnost
  • Provjera za vrijeme kompajliranja
  • Smanjene pogreลกke tijekom izvoฤ‘enja

Generiฤki lijekovi u Kotlinu takoฤ‘er podrลพavaju modifikatori varijance (in, out) za poboljลกanu fleksibilnost - kljuฤ u kolekcijama i funkcionalnom programiranju.


15) ล to su prateฤ‡i objekti u Kotlinu i zaลกto su korisni?

Popratni objekti su singletoni deklarirani unutar klasa za drลพanje ฤlanova sliฤnih statiฤkim. Ponaลกaju se sliฤno statiฤkim metodama u Java ali su fleksibilniji i objektno orijentirani.

Primjer:

class Database {
    companion object {
        fun connect() = println("Connected to DB")
    }
}
Database.connect()

Prednosti:

  • Nema potrebe za statiฤkim kljuฤnim rijeฤima
  • Moลพe implementirati suฤelja
  • Korisno za tvorniฤke metode i konstante

Popratni objekti potiฤu ฤistu organizaciju koda i odrลพavaju Kotlinovu filozofiju โ€žsve je objektโ€œ.


16) Objasnite delegiranje u Kotlinu s primjerom.

Delegiranje u Kotlinu je obrazac dizajna koji omoguฤ‡uje objektu da delegira svoje ponaลกanje drugom objektu. Kotlinov by Kljuฤna rijeฤ pojednostavljuje ovaj obrazac.

Primjer:

interface Sound { fun makeSound() }
class CatSound : Sound { override fun makeSound() = println("Meow") }
class Cat(sound: Sound) : Sound by sound
val cat = Cat(CatSound())
cat.makeSound() // Output: Meow

Prednosti:

  • Izbjegava standardne stavke
  • Promosastav testova nad nasljeฤ‘ivanjem
  • Poveฤ‡ava fleksibilnost koda

Delegiranje je jedan od najฤiลกฤ‡ih Kotlinovih obrazaca dizajna, ฤesto koriลกten u ubrizgavanju ovisnosti i rukovanju korisniฤkim suฤeljem.


17) Koja je razlika izmeฤ‘u zatvorenih klasa i nabrajanja klasa u Kotlinu?

svojstvo Zatvorena klasa Klasa nabrajanja
Svrha Predstavljaju ograniฤene hijerarhije klasa Predstavlja fiksni skup konstanti
Podklasiranje Moลพe sadrลพavati razliฤite podatke po podklasi Fiksne unaprijed definirane konstante
Koristite sluฤaj Upravljanje stanjem, usklaฤ‘ivanje uzoraka Nabrajanja, konstante

Primjer:

sealed class NetworkState
object Loading : NetworkState()
data class Success(val data: String) : NetworkState()

Nabrajanja ne mogu sadrลพavati viลกe tipova podataka, dok zatvorene klase mogu predstavljati bogatije, tipovno sigurne hijerarhije za modeliranje stanja aplikacije.


18) ล to su opsegi korutina u Kotlinu i zaลกto su vaลพni?

Opsezi korutina definiraju ลพivotni ciklus i granice korutina, osiguravajuฤ‡i strukturiranu konkurentnost. Uobiฤajeni opsezi ukljuฤuju GlobalScope, viewModelScopei lifecycleScope.

Primjer:

GlobalScope.launch {
    delay(1000)
    println("Running in GlobalScope")
}

Vrste opsega:

Djelokrug Description
GlobalScope Neovisno o ลพivotnom ciklusu (izbjegavati u korisniฤkom suฤelju)
CoroutineScope Prilagoฤ‘eni korisniฤki definirani opseg
viewModelScope Vezano za ลพivotni ciklus ViewModela
lifecycleScope Koriลกteno u Android Aktivnosti ili fragmenti

Opsezi sprjeฤavaju curenje memorije i osiguravaju da se korutine otkazuju kada se komponente uniลกte.


19) Kako je rukovanje iznimkama implementirano u Kotlinu?

Kotlin obraฤ‘uje iznimke koristeฤ‡i try, catchi finally blokovi, sliฤni JavaMeฤ‘utim, Kotlin nema provjerene iznimke, ลกto kod ฤini ฤiลกฤ‡im.

Primjer:

try {
    val result = 10 / 0
} catch (e: ArithmeticException) {
    println("Cannot divide by zero")
} finally {
    println("Execution completed")
}

Prednosti:

  • Nema provjerenih iznimki
  • ฤŒiลกฤ‡a sintaksa
  • Sigurnije rukovanje tijekom izvoฤ‘enja

Ova dizajnerska odluka pojednostavljuje Kotlinov model rukovanja greลกkama i smanjuje nepotrebne standarde.


20) ล to su lambde u Kotlinu i koji su njihovi uobiฤajeni sluฤajevi upotrebe?

Lambde su anonimne funkcije koje se mogu prenijeti kao izrazi. One pojednostavljuju kod smanjenjem opลกirnosti i poboljลกanjem ฤitljivosti.

Primjer:

val numbers = listOf(1, 2, 3)
val doubled = numbers.map { it * 2 }
println(doubled) // [2, 4, 6]

Uobiฤajeni sluฤajevi upotrebe:

  • Manipulacija zbirkom (map, filter, reduce)
  • Obrada dogaฤ‘aja u Android
  • Programiranje u funkcionalnom stilu

Lambde utjelovljuju Kotlinovu ekspresivnu sintaksu, omoguฤ‡ujuฤ‡i programerima pisanje saลพetog, ฤitljivog i deklarativnog koda.


21) ล to su Kotlin DSL-ovi i koje su njihove prednosti?

A DSL (jezik specifiฤan za domenu) Kotlin je specijalizirani jezik stvoren unutar Kotlina kako bi se pojednostavila konfiguracija i poboljลกala ฤitljivost za odreฤ‘ene domene. Kotlinova fleksibilna sintaksa i funkcije viลกeg reda ฤine ga savrลกenim za izgradnju internih DSL-ova poput Gradle Kotlin skripte.

Primjer:

database {
    table("Users") {
        column("id", INT)
        column("name", STRING)
    }
}

Prednosti:

  • Poboljลกava ekspresivnost i ฤitljivost
  • Smanjuje pogreลกke u konfiguraciji
  • Pojednostavljuje sloลพene API pozive

DSL-ovi se ฤesto koriste u Gradle izrada skripti, Jetpack Compose i Spring Kotlin DSL-ovi, ลกto Kotlin ฤini preferiranim izborom za deklarativno programiranje.


22) ล to je refleksija u Kotlinu i kako se moลพe koristiti?

Odraz u Kotlinu omoguฤ‡uje programima pregled i mijenjanje njihove strukture tijekom izvoฤ‘enja. Omoguฤ‡uje dinamiฤki pristup klasama, metodama i svojstvima.

Primjer:

data class User(val name: String)
val kClass = User::class
println(kClass.simpleName) // Output: User

Uobiฤajeni sluฤajevi upotrebe:

  • Serijalizacija i deserijalizacija
  • Okviri za ubrizgavanje ovisnosti (kao ลกto su Koin, Dagger)
  • ORM alati i napomene

Prednosti:

Faktor Description
Fleksibilnost Dinamiฤki pristup metapodacima koda
Dinamiฤko ponaลกanje Omoguฤ‡uje izvrลกavanje logike za vrijeme izvoฤ‘enja
Integracija Koristi se u okvirima i bibliotekama

Meฤ‘utim, programeri moraju oprezno koristiti refleksiju zbog potencijalnih optereฤ‡enje performansi i smanjena sigurnost pri kompajliranju.


23) ล to su anotacije u Kotlinu?

Anotacije u Kotlinu su oznake metapodataka dodane elementima koda kao ลกto su klase, funkcije ili svojstva. One upuฤ‡uju kompajlere ili okvire da izvrลกe odreฤ‘ene radnje.

Primjer:

@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class Info(val author: String)
@Info(author = "Alice")
class Example

Vrste napomena:

Tip Description
Standard Ugraฤ‘eno kao @Deprecated, @JvmStatic
obiฤaj Korisniฤki definirano s annotation class

Prednosti:

  • Poboljลกava dokumentaciju koda
  • Pomaลพe u generiranju i validaciji koda
  • Intenzivno se koristi u Android i okviri za testiranje

24) Koja je razlika izmeฤ‘u lazy i lateinit u Kotlinu?

svojstvo lazy lateinit
Tip Radi s nepromjenjivim (val) Radi s promjenjivim (var)
Inicijalizacija Pri prvom pristupu Ruฤno kasnije prije upotrebe
Nultabilnost Ne moลพe se nulirati Mora se eksplicitno inicijalizirati
Sigurnost navoja Dostupan je opcionalni parametar Nije sigurno za koriลกtenje u viลกe niti

Primjer:

val message by lazy { "Hello Kotlin" }
lateinit var username: String

Kljuฤni uvid: Koristiti lazy za nepromjenjiva svojstva i odgoฤ‘enu inicijalizaciju; koristite lateinit kada je potrebna injekcija ovisnosti ili odgoฤ‘ena inicijalizacija.


25) Objasnite Kotlin kolekcije i njihove vrste.

Kotlin kolekcije su podijeljene na promjenjiv i nepromjenljiv tipovi. Nepromjenjive kolekcije ne mogu se mijenjati nakon stvaranja, dok promjenjive kolekcije mogu.

Tip Description Primjer
Popis Naruฤena kolekcija listOf("A", "B")
Postaviti Jedinstveni elementi setOf(1, 2, 3)
Karta Parovi kljuฤ-vrijednost mapOf("key" to "value")

Promjenjivi ekvivalenti: mutableListOf(), mutableSetOf(), mutableMapOf()

Primjer:

val fruits = mutableListOf("Apple", "Banana")
fruits.add("Orange")

Kotlin kolekcije su interoperabilne s Javaokvir za prikupljanje i pruลพa funkcionalne alate kao ลกto su map, filteri reduce.


26) Koja je razlika izmeฤ‘u Flowa i LiveData u Kotlinu?

svojstvo Protok LiveData
Podrijetlo Kotlin korutine Android Jetpack
Threading Ugraฤ‘ena podrลกka za korutine Glavna nit prema zadanim postavkama
Hladno/Vruฤ‡e Hladni tok (poฤinje kada se sakupi) Vruฤ‡i stream (uvijek aktivan)
Koristite sluฤaj Tokovi podataka, obrada u pozadini Promatranje podataka vezanih uz korisniฤko suฤelje

Primjer:

val numbers = flow { emit(1); emit(2); emit(3) }

Kljuฤni odlazak: Koristiti Protok za asinhrone tokove podataka (npr. obrasce repozitorija) i LiveData za aลพuriranja vezana uz korisniฤko suฤelje koja su svjesna ลพivotnog ciklusa. U modernom Android arhitektura, StateFlow i SharedFlow preferiraju se za reaktivne UI dizajne.


27) Koji su Kotlinovi modifikatori vidljivosti i njihove karakteristike?

Kotlin definira ฤetiri modifikatora vidljivosti za kontrolu pristupa ฤlanova klase:

Promijeniti Djelokrug Description
public Svuda Zadani pristup
private Unutar klase/datoteke Skriveno izvana
protected Samo podklase Nije vidljivo izvan lanca nasljeฤ‘ivanja
internal Isti modul Idealno za modularne projekte

Primjer:

internal class Logger
private fun logError() { }

Odabir ispravnog modifikatora vidljivosti poboljลกava enkapsulacija, modularnost i odrลพivost Kotlin kodnih baza.


28) Kako funkcionira upravljanje memorijom u Kotlinu?

Kotlin se oslanja na automatsko odvoz smeฤ‡a putem JVM-a. Upravlja memorijom sliฤno kao Java ali s dodatnim optimizacijama kompajlera poput null sigurnosti i pametnog pretvaranja koje smanjuju curenje.

Kljuฤni ฤimbenici koji utjeฤu na pamฤ‡enje:

  • Reference objekata i opseg
  • Upravljanje ลพivotnim ciklusom korutina
  • Izbjegavanje curenja statiฤkog konteksta (posebno u Android)

Najbolje prakse:

  • Koristiti weak references za sluลกatelje
  • Otkaลพi korutine u onDestroy()
  • Preferirajte nepromjenjive objekte

In Android, Kotlinova jaka interoperabilnost s Java osigurava uฤinkovito rukovanje memorijom bez uvoฤ‘enja dodatnih troลกkova.


29) ล to je Kotlin Multiplatform i koje prednosti pruลพa?

Kotlin viลกeplatformski (KMP) omoguฤ‡uje programerima dijeljenje zajedniฤke poslovne logike na viลกe platformiโ€”Android, iOS, web i backend - uz zadrลพavanje korisniฤkih suฤelja specifiฤnih za platformu.

Prednosti:

Korist Description
Code Reus Sposobnost Dijeljenje logike na razliฤitim platformama
Dosljednost Ujedinjena arhitektura i poslovna logika
Fleksibilnost Integrira se s izvornim API-jima
sposobnost snabdijevanja Smanjuje duplicirani napor

Primjer: Uobiฤajeni moduli napisani u Kotlinu mogu se koristiti u oba Android i iOS projekti putem Kotlina/Nativea.

KMP ubrzava razvoj na viลกe platformi uz oฤuvanje izvornih performansi i korisniฤkog iskustva.


30) Koje su najbolje prakse kodiranja u Kotlinu za profesionalne projekte?

Profesionalni Kotlin programeri slijede standardizirane smjernice kako bi odrลพali ฤitljivost, sigurnost i uฤinkovitost.

Kljuฤne prakse:

  1. preferiraju val umjesto prema var za nepromjenjivost.
  2. Koristiti klase podataka za modele.
  3. Rukovati nulta sigurnost paลพljivo s ?. i ?:.
  4. Izbjegavajte upotrebu GlobalScope za korutine.
  5. Koristiti funkcije proลกirenja modularizirati logiku korisnosti.
  6. Korak po korak do prijave zatvorene klase za drลพavnu reprezentaciju.
  7. Follow konvencije imenovanja i koristite jasne strukture paketa.

Primjer:

fun String.capitalizeWords(): String = split(" ").joinToString(" ") { it.capitalize() }

Slijeฤ‘enje ovih praksi osigurava da Kotlin kodne baze ostanu skalabilne, ฤiste i usklaฤ‘ene s modernim arhitektonskim obrascima.


31) Koji se dizajn obrasci obiฤno koriste u Kotlin razvoju?

Kotlin podrลพava viลกe obrazaca dizajna zahvaljujuฤ‡i svojoj konciznoj sintaksi i funkcionalnim znaฤajkama. Najฤeลกฤ‡i ukljuฤuju:

  1. Singleton uzorak: Lako se implementira uz pomoฤ‡ object kljuฤne rijeฤi.
  2. Uzorak graditelja: Postiลพe se putem imenovanih argumenata i zadanih parametara.
  3. Tvorniฤki uzorak: Implementirano putem prateฤ‡ih objekata.
  4. Uzorak promatraฤa: Pojednostavljeno koriลกtenje Flow, LiveDataili povratne pozive.
  5. Uzorak delegiranja: Ugraฤ‘eno s by kljuฤne rijeฤi.

Primjer (Singleton uzorak):

object Logger {
    fun log(message: String) = println("Log: $message")
}
Logger.log("Started")

Kotlinove jeziฤne znaฤajke poput funkcija proลกirenja i zatvorenih klasa prirodno smanjuju standardne obrasce koji se nalaze u tradicionalnim obrascima dizajna.


32) Objasnite rukovanje konkurentnoลกฤ‡u u Kotlinu.

Kotlin se prvenstveno bavi konkurentnoลกฤ‡u putem korutine, ลกto omoguฤ‡uje lagani, kooperativni multitasking bez blokiranja niti. Korutine su superiornije tradicionalnim nitima zbog manje upotrebe memorije i strukturiranog upravljanja ลพivotnim ciklusom.

Primjer:

runBlocking {
    launch { println("Task 1") }
    async { println("Task 2") }.await()
}

Prednosti u odnosu na niti:

Faktor Korutine Teme
memorija Lak teลกko
Vrijeme stvaranja mikrosekundi Milisekunde
skalabilnost visok ograniฤen
Poniลกtenje Strukturirani Priruฤnik

Kotlinov model konkurentnosti podrลพava strukturirani paralelizam, ลกto ga ฤini idealnim za Android i optereฤ‡enja pozadinskog sustava.


33) ล to je Ktor i kako se koristi u Kotlin razvoju?

Ktor je Kotlin-nativni okvir za izgradnju asinkronih posluลพitelja i klijenata. U potpunosti je baziran na korutinama, ลกto osigurava neblokirajuฤ‡e mreลพne operacije.

Primjer (HTTP posluลพitelj):

fun main() {
    embeddedServer(Netty, port = 8080) {
        routing {
            get("/") { call.respondText("Hello, Ktor!") }
        }
    }.start(wait = true)
}

Prednosti:

  • Lagan i modularan
  • Potpuno voฤ‘en korutinama
  • Podrลพava WebSockets, JSON i autentifikaciju
  • Idealno za mikroservise

Ktorova jednostavnost, u kombinaciji s Kotlinovom ekspresivnom sintaksom, ฤini ga moฤ‡nom alternativom teลกkim frameworkovima poput Spring Boota za moderni backend razvoj.


34) ล to je Dependency Injection (DI) u Kotlinu i koje se biblioteke najฤeลกฤ‡e koriste?

Ubrizgavanje ovisnosti (DI) je princip dizajna koji potiฤe labavo povezivanje (loose coupling) tako ลกto ovisnosti pruลพa izvana umjesto da ih se ฤvrsto kodira. U Kotlinu, DI poboljลกava modularnost, testnost i odrลพivost.

Popularne DI knjiลพnice:

Knjiลพnica Karakteristike
Koin Lagani, Kotlin-nativni DSL
Bodeลพ/Balฤak Validacija za vrijeme kompajliranja, pogodna za Android
Kodein Fleksibilan i siguran za tip

Primjer (Koin):

val appModule = module {
    single { Repository() }
    viewModel { MainViewModel(get()) }
}

Prednosti:

  • Smanjuje standardne standarde
  • Poboljลกava ponovnu upotrebu koda
  • Pojednostavljuje testiranje i upravljanje ลพivotnim ciklusom

35) ล to su funkcije obustave u Kotlinu?

A funkcija obustave je posebna vrsta funkcije koja se moลพe pauzirati i nastaviti bez blokiranja niti. Moลพe se pozvati samo iz druge suspendirane funkcije ili korutine.

Primjer:

suspend fun fetchUserData(): String {
    delay(1000)
    return "User Data"
}

Karakteristike:

  • Koristi se za dugotrajne operacije (mreลพa, baza podataka).
  • Upravlja kontekstom korutine.
  • Poboljลกava responzivnost u UI aplikacijama.

Prednosti:

Faktor Prednost
Izvoฤ‘enje Non-blokiranje
ฤitljivost Sekvencijalni stil
Sigurnosni Strukturirana konkurentnost

36) Kako testirate korutine u Kotlinu?

Testiranje korutina zahtijeva deterministiฤko upravljanje asinkronim ponaลกanjem. kotlinx-coroutines-test Knjiลพnica nudi alate poput runTest i TestDispatcher.

Primjer:

@OptIn(ExperimentalCoroutinesApi::class)
@Test
fun testCoroutine() = runTest {
    val result = fetchUserData()
    assertEquals("User Data", result)
}

Najbolje prakse:

  • Koristiti runTest za strukturirano testiranje.
  • Zamijenite prave dispeฤere s TestDispatcher.
  • Provjerite scenarije otkazivanja i iznimki.

Testiranje korutina osigurava pouzdanu asinhronu logiku i sprjeฤava greลกke u konkurentnosti u produkciji.


37) ล to je Kotlin serijalizacija i po ฤemu se razlikuje od Gson-a?

Kotlin serijalizacija je ugraฤ‘ena biblioteka za pretvaranje Kotlin objekata u JSON, ProtoBuf ili druge formate. Za razliku od Gson-a, sigurna je po tipu, brลพa i posebno dizajnirana za Kotlin.

Faktor Kotlin serijalizacija Gson
Integracija Izvorna podrลกka za Kotlin Java temeljen na refleksiji
Izvoฤ‘enje Brลพa serijalizacija tijekom kompajliranja Sporiji odraz tijekom izvoฤ‘enja
Nulta sigurnost Ugraฤ‘en Potrebne su napomene
zavisnost Lak teลพe

Primjer:

@Serializable
data class User(val name: String)
val json = Json.encodeToString(User("Alice"))

Kotlin serijalizacija pruลพa snaลพnu sigurnost tipova i provjere tijekom kompajliranja, ลกto je ฤini idealnom za Kotlin-first projekte.


38) Koja je uloga Kotlin kompajlera i njegove faze?

The Kotlin kompajler (kotlinc) prevodi Kotlin kod u JVM bajtkod, JavaSkripta ili izvorne binarne datoteke. Sastoji se od nekoliko kljuฤnih faza:

Faza Description
gramatiฤko raลกฤlanjivanje Pretvara izvorni kod u ABS datotekutract sintaksno stablo
Analiza Provjerava sintaksu, tipove i reference
Srednja reprezentacija Pretvara kod u optimizirani IR
Code Generacija Emitira kod ciljne platforme (JVM, JS, Native)

Prednosti Kotlin kompajlera:

  • Pametno zakljuฤivanje o tipu
  • Nulti sigurnosni provedba
  • Interoperabilnost s Java
  • Optimizacija bajtkoda

Razumijevanje ponaลกanja kompajlera pomaลพe programerima da piลกu uฤinkovit i predvidljiv Kotlin kod.


39) Koje se tehnike optimizacije performansi koriste u Kotlin projektima?

Optimizacija Kotlin aplikacija ukljuฤuje poboljลกanje oba uฤinkovitost izvoฤ‘enja i upravljanje memorijom.

Kljuฤne tehnike:

  1. Koristiti inline funkcije za smanjenje lambda optereฤ‡enja.
  2. Izbjegavajte nepotrebno stvaranje objekata (preferirajte nepromjenjive podatke).
  3. Koristiti Sequence umjesto List za velike lanฤane operacije.
  4. Optimizirajte koriลกtenje opsega korutine.
  5. Aplikacije profila koje koriste Android Profiler ili JMH za JVM aplikacije.

Primjer (koriลกtenje sekvence):

val result = generateSequence(1) { it + 1 }.take(1000).sum()

Ove optimizacije zajedno smanjuju optereฤ‡enje prikupljanja smeฤ‡a i poveฤ‡avaju brzinu izvrลกavanja, ลกto je kljuฤno za skalabilne Kotlin aplikacije.


40) Koje su razlike izmeฤ‘u Kotlina i Java u smislu performansi i filozofije dizajna?

Aspekt Kotlin Java
Sintaksa Saลพeto, moderno verbalan
Nulta sigurnost Ugraฤ‘en Odsutan
Korutine Domorodac Zahtijeva treฤ‡u stranu
Funkcionalna podrลกka jak ograniฤen
Kompilacija Neลกto sporije Neลกto brลพe
Izvoฤ‘enje Gotovo identiฤno za vrijeme izvoฤ‘enja Optimizirano desetljeฤ‡ima

Kljuฤna razlika: Kotlin naglaลกava produktivnost, sigurnost i moderne jeziฤne konstrukcije programera, Dok Java fokusiran na stabilnost i zrelost ekosustava.

U stvarnim primjenama, Kotlin ฤesto pruลพa kraฤ‡e kodne baze, manje greลกaka i brลพi razvojni ciklusi bez ลพrtvovanja performansi na razini JVM-a.


41) ล to je Jetpack Compose i kako se razlikuje od tradicionalnih XML izgleda?

Jetpack Compose is Androidmoderni deklarativni alat za korisniฤko suฤelje napisan u Kotlinu. Za razliku od XML izgleda, Compose omoguฤ‡uje programerima da definiraju korisniฤka suฤelja izravno u Kotlin kodu.

Primjer:

@Composable
fun Greeting(name: String) {
    Text(text = "Hello, $name!")
}

Razlika izmeฤ‘u Composea i XML-a:

Faktor Jetpack Compose XML izgledi
Sintaksa Deklarativno temeljeno na Kotlinu Imperativ temeljen na XML-u
Upravljanje stanjem Ugraฤ‘eno putem State Zahtijeva ruฤno vezanje
Reus Sposobnost visok ograniฤen
Izvoฤ‘enje Optimizirano renderiranje Pogledajte opฤ‡e troลกkove inflacije

Prednosti:

  • Manje redaka koda
  • Jednostavnije upravljanje stanjem korisniฤkog suฤelja
  • Bolja integracija s Kotlin korutinama i Flowom

Jetpack Compose je buduฤ‡nost Android Korisniฤko suฤelje, s fokusom na reaktivni, kompozibilni i deklarativni dizajn.


42) ล to je Kotlin Native i gdje se koristi?

Kotlin izvorni jezik kompajlira Kotlin kod u izvorne binarne datoteke (npr. za iOS, Windows, Linux) bez potrebe za virtualnim strojem. Koristi LLVM kao pozadinu za generiranje strojnog koda.

Upotrijebite sluฤajeve:

  • Zajedniฤka poslovna logika za aplikacije na viลกe platformi
  • Alati naredbenog retka
  • Ugraฤ‘eni sustavi

Primjer:

fun main() {
    println("Running Kotlin on iOS or Linux!")
}

Prednosti:

Faktor Korist
Izvoฤ‘enje Brzina na izvornoj razini
Interoperabilnost Radi s C bibliotekama
Pokretnost Podrลกka na viลกe platformi

Kotlin Native je kljuฤni dio Kotlin viลกeplatformski, ลกto omoguฤ‡uje razvoj na viลกe platformi bez prepisivanja poslovne logike.


43) Koja je razlika izmeฤ‘u KAPT-a i KSP-a u Kotlinu?

Aspekt KAPT (Alat za obradu anotacija u Kotlinu) KSP (Obrada simbola u Kotlinu)
Model obrade Koristi Java obrada anotacija (APT) Kotlin-nativni API
Izvoฤ‘enje Sporije (Java na temelju refleksije) Brลพe (izravan pristup simbolima)
Integracija Stari alat za bodeลพ, soba Moderna alternativa za Koin, Hilt
Vrijeme kompilacije Viลกe Kraฤ‡e za ~50%

Primjer:

plugins {
    id("com.google.devtools.ksp") version "1.8.0"
}

Kljuฤna prednost: KSP ponude izravan pristup Kotlin sintaksnim stablima, poboljลกavajuฤ‡i brzinu izgradnje i stabilnost. Postupno zamjenjuje KAPT u veฤ‡ini novih Kotlin projekata.


44) Kako funkcionira promjena konteksta u Kotlin korutinama?

Korutina prebacivanje konteksta odreฤ‘uje gdje i kako se dogaฤ‘a izvrลกavanje korutine. Njime upravlja dispeฤera, koji definiraju okruลพenje za navoje.

Uobiฤajeni dispeฤeri:

Dispeฤer Description Upotreba
Dispatchers.Main Radi na niti korisniฤkog suฤelja Android Aลพuriranja suฤelja
Dispatchers.IO Optimizirano za I/O zadatke Mreลพa, disk
Dispatchers.Default Zadaci koji intenzivno koriste CPU raฤunanje
Dispatchers.Unconfined Poฤinje u trenutnoj temi Lagani zadaci

Primjer:

launch(Dispatchers.IO) { fetchData() }

Prednosti:

  • Sprjeฤava blokiranje korisniฤkog suฤelja
  • Uฤinkovito koristi sistemske niti
  • Podrลพava strukturiranu konkurentnost

Uฤinkovito koriลกtenje dispeฤera kljuฤno je za performanse i odziv u Android aplikacije.


45) Objasnite sigurnost niti u Kotlin korutinama.

Kotlin korutine su nije inherentno siguran za koriลกtenje u viลกe niti โ€” sigurnost niti ovisi o tome kako se dijeljenim resursima upravlja u kontekstima korutina.

Strategije za sigurnost niti:

  1. Koristiti Mutex or Semaphore za sinkronizaciju.
  2. preferiraju nepromjenjivi podaci strukture.
  3. Koristiti withContext(Dispatchers.IO) za ograniฤen pristup.

Primjer:

val mutex = Mutex()
launch {
    mutex.withLock { counter++ }
}

Prednosti:

  • Sprjeฤava uvjete utrke
  • Omoguฤ‡uje siguran istovremeni pristup
  • Odrลพava integritet podataka

Ispravna sinkronizacija osigurava predvidljivo ponaลกanje korutina u viลกenitnim okruลพenjima.


46) Koji su glavni arhitektonski obrasci koriลกteni u Kotlinu Android projekti?

Tri najpopularnija uzorka su:

Uzorak Description Primjer upotrebe
MVVM (Model-Prikaz-PrikazModela) Odvajanje korisniฤkog suฤelja i logike pomoฤ‡u LiveData/StateFlowa Jetpack ViewModel
MVI (Model-Prikaz-Namjera) Jednosmjerni protok podataka, dobar za Compose Aplikacije s reaktivnim korisniฤkim suฤeljem
bjelica Architektura Slojevito odvajanje (domena, podaci, korisniฤko suฤelje) Velike aplikacije

Primjer (MVVM):

class MainViewModel : ViewModel() {
    val data = MutableLiveData<String>()
}

Prednosti:

  • Poboljลกava testabilnost i modularnost
  • Smanjuje spajanje
  • Usklaฤ‘uje se s modernim Android najbolje prakse

47) ล to su StateFlow i SharedFlow u Kotlinu?

Obojica su hladni asinhroni tokovi podataka izgraฤ‘en na Kotlin Flowu, ali dizajniran za specifiฤne svrhe.

svojstvo StateFlow SharedFlow
Zadrลพavanje podataka Zadrลพava posljednju vrijednost Ne pohranjuje vrijednost
Zadano ponaลกanje Jedan pretplatnik Viลกe pretplatnika
Koristite sluฤaj Stanje korisniฤkog suฤelja Emitiranje dogaฤ‘aja

Primjer:

private val _state = MutableStateFlow("Loading")
val state: StateFlow<String> = _state

Prednosti:

  • Dijeljenje podataka svjesno ลพivotnog ciklusa
  • Pojednostavljeno upravljanje reaktivnim stanjem
  • Idealno za Jetpack Compose i MVVM

48) Kako uฤinkovito obraฤ‘ujete API pozive u Kotlinu koristeฤ‡i Coroutines i Retrofit?

Retrofit se besprijekorno integrira s Kotlin korutinama za asinhrone API pozive.

Primjer:

interface ApiService {
    @GET("users")
    suspend fun getUsers(): List<User>
}

Upotreba:

viewModelScope.launch {
    try {
        val users = api.getUsers()
        _state.value = users
    } catch (e: Exception) {
        handleError(e)
    }
}

Prednosti:

  • Pojednostavljuje rukovanje povratnim pozivima
  • Omoguฤ‡uje strukturiranu konkurentnost
  • Smanjuje standardne standarde

Koriลกtenje korutina s Retrofitom poboljลกava jasnoฤ‡u koda, testabilnost i performanse u modernim Android arhitekture.


49) Koje su Kotlinove napredne optimizacije kompajlera i inline klase?

Kotlinov kompajler izvodi viลกe optimizacija, ukljuฤujuฤ‡i pametno zakljuฤivanje o tipu, uklanjanje mrtvog kodai ugraฤ‘ena klasa optimizacija.

Ugraฤ‘ene klase dopusti prelamanjeping primitivne vrijednosti bez optereฤ‡enja tijekom izvoฤ‘enja.

Primjer:

@JvmInline
value class UserId(val id: String)

Prednosti:

Faktor Description
Izvoฤ‘enje Izbjegava stvaranje objekata
Vrsta Sigurnost Sprjeฤava nevaลพeฤ‡e dodjele
Interoperabilnost Radi besprijekorno s JVM-om

Ugraฤ‘ene klase se ลกiroko koriste u API-jima sigurnim za tip i dizajnu voฤ‘enom domenom kako bi se poboljลกala uฤinkovitost izvoฤ‘enja.


50) Koji su najnoviji trendovi i novosti u Kotlinu (od 2025.)?

Od 2025. godine, Kotlin se znaฤajno razvio izvan Android, usredotoฤujuฤ‡i se na razvoj, performanse i integracija umjetne inteligencije za viลกe platformi.

Najnoviji trendovi:

  1. Kotlin 2.0 IR kompajler: Brลพi, ujedinjeni backend za sve ciljeve.
  2. Viลกeplatformska 2.0: Poboljลกanja stabilne interoperabilnosti iOS-a.
  3. Sastavi za viลกe platformi: Ujedinjenje korisniฤkog suฤelja Android, stolna raฤunala i web.
  4. Usvajanje KSP-a: Zamjena KAPT-a u cijeloj industriji.
  5. Kotlin WASM (webAssembly): Izvorno dovoฤ‘enje Kotlina u preglednike.

Udarac: Kotlin nastavlja uฤvrลกฤ‡ivati โ€‹โ€‹svoju ulogu kao univerzalni, viลกeplatformski jezik koji naglaลกava iskustvo programera, sigurnost i visoke performanse u svim ekosustavima.


๐Ÿ” Najฤeลกฤ‡a pitanja za intervju za Kotlin sa stvarnim scenarijima i strateลกkim odgovorima

U nastavku je deset profesionalno relevantnih Kotlin pitanja za intervju, koja obuhvaฤ‡aju kategorije temeljene na znanju, ponaลกanju i situaciji. Svako pitanje ukljuฤuje ono ลกto ispitivaฤ traลพi i snaลพan primjer odgovora. Potrebne fraze koriลกtene su toฤno jednom svaka.

1) Koje su kljuฤne razlike izmeฤ‘u Kotlina i Java?

Oฤekivano od kandidata: Pokazati razumijevanje znaฤajki, poboljลกanja i kompatibilnosti modernog jezika.

Primjer odgovora: โ€žKotlin se razlikuje od Java putem znaฤajki kao ลกto su null sigurnost, funkcije proลกirenja, korutine i konciznija sintaksa. Ova poboljลกanja omoguฤ‡uju programerima da piลกu ฤiลกฤ‡i i sigurniji kod uz odrลพavanje pune interoperabilnosti s Java".


2) Kako Kotlin korutine pomaลพu u asinhronom programiranju?

Oฤekivano od kandidata: Pokaลพite znanje o modelima konkurentnosti i zaลกto su korutine vaลพne.

Primjer odgovora: โ€žKotlinove korutine pojednostavljuju asinhrone zadatke omoguฤ‡ujuฤ‡i programerima pisanje neblokirajuฤ‡eg koda u sekvencijalnom stilu. Uฤinkovito upravljaju konkurentnoลกฤ‡u koriลกtenjem suspend funkcija i laganih niti, ลกto pomaลพe u poboljลกanju performansi i ฤitljivosti aplikacije.โ€œ


3) Moลพete li objasniti Kotlinov pristup null sigurnosti?

Oฤekivano od kandidata: Pokaลพite majstorstvo osnovnog Kotlin koncepta koji rjeลกava uobiฤajene probleme Java pitanja.

Primjer odgovora: โ€žKotlin provodi null sigurnost razlikovanjem null-popustivih i nenull-popustivih tipova tijekom kompajliranja. To pomaลพe u izbjegavanju NullPointerExceptionsa zahtijevajuฤ‡i eksplicitno rukovanje potencijalno null vrijednostima putem sigurnih poziva, Elvis operatora ili null provjera.โ€œ


4) Opiลกite situaciju u kojoj ste morali brzo nauฤiti novu tehnologiju. Kako ste tome pristupili?

Oฤekivano od kandidata: Pokaลพite prilagodljivost i spremnost na uฤenje.

Primjer odgovora: โ€žU svojoj prethodnoj ulozi brzo sam usvojio nove alate raลกฤlanjivanjem procesa uฤenja na strukturirane korake, pregledom sluลพbene dokumentacije i stvaranjem malih vjeลพbenih projekata. To mi je omoguฤ‡ilo da izgradim samopouzdanje i uฤinkovito primijenim novu tehnologiju.โ€œ


5) Kako osiguravate kvalitetu koda prilikom rada na Kotlin projektu?

Oฤekivano od kandidata: Pokaลพite predanost odrลพavanju i ฤistom kodu.

Primjer odgovora: โ€žKvalitet koda osiguravam slijedeฤ‡i Kotlinove konvencije kodiranja, koristeฤ‡i alate za statiฤku analizu poput Detekt-a, piลกuฤ‡i jediniฤne testove i provodeฤ‡i temeljite preglede koda. Ove prakse pomaลพu u odrลพavanju dosljednosti i pouzdanosti tijekom cijelog projekta.โ€œ


6) Recite mi o izazovnom problemu koji ste rijeลกili radeฤ‡i s Kotlinom.

Oฤekivano od kandidata: Sposobnost suoฤavanja sa sloลพenoลกฤ‡u i rjeลกavanja problema.

Primjer odgovora: โ€žNa prethodnoj poziciji naiลกao sam na izazovan problem konkurentnosti uzrokovan nepravilnom upotrebom korutina. Rijeลกio sam ga restrukturiranjem opsega korutina i dodavanjem odgovarajuฤ‡eg rukovanja iznimkama, ลกto je eliminiralo nedosljedno ponaลกanje i poboljลกalo stabilnost.โ€œ


7) Kako biste rijeลกili situaciju u kojoj se vaลก tim ne slaลพe oko primjene nove Kotlin biblioteke?

Oฤekivano od kandidata: Rjeลกavanje sukoba, komunikacija i donoลกenje odluka.

Primjer odgovora: โ€žOmoguฤ‡io bih otvorenu raspravu u kojoj ฤlanovi tima mogu predstaviti prednosti i rizike usvajanja biblioteke. Potaknuo bih pristup temeljen na podacima pregledom dokumentacije, metrika performansi i dugoroฤne kompatibilnosti prije postizanja konsenzusa.โ€œ


8) Kako uspijevate u kratkim rokovima prilikom izrade aplikacija temeljenih na Kotlinu?

Oฤekivano od kandidata: Vjeลกtine upravljanja vremenom i odreฤ‘ivanja prioriteta.

Primjer odgovora: โ€žNa prethodnom poslu upravljao sam kratkim rokovima tako ลกto sam posao podijelio na zadatke s prioritetima, rano komunicirao sa zainteresiranim stranama i osiguravao da se najvaลพnije znaฤajke prvo isporuฤe. Ovaj pristup pomogao je u odrลพavanju brzine i kvalitete.โ€œ


9) Koja je uloga funkcija proลกirenja u Kotlinu?

Oฤekivano od kandidata: Razumijevanje znaฤajki Kotlinovog ekspresivnog jezika.

Primjer odgovora: โ€žFunkcije proลกirenja omoguฤ‡uju programerima dodavanje novih funkcionalnosti postojeฤ‡im klasama bez mijenjanja izvornog koda. To pomaลพe u odrลพavanju fleksibilnosti kodne baze i poboljลกava ฤitljivost omoguฤ‡ujuฤ‡i prirodnije pozive metoda.โ€œ


10) Kako ste koristili Kotlin za poboljลกanje performansi ili uฤinkovitosti u aplikaciji?

Oฤekivano od kandidata: Iskustvo u primjeni Kotlina na smislene naฤine u stvarnom svijetu.

Primjer odgovora: โ€žU svojoj posljednjoj ulozi poboljลกao sam performanse refaktoriranjem mreลพnih poziva kako bih koristio Kotlin korutine umjesto tradicionalnih povratnih poziva. To je smanjilo optereฤ‡enje nitima, poveฤ‡alo odzivnost i pojednostavilo ukupnu strukturu koda.โ€œ

Saลพmite ovu objavu uz: