Android ilovalar ishlab chiqish uchun Kotlin Javadan yaxshiroqmi?
FARHOD TOHIROV
Dasturchilar kod yozishni, yangi narsalar ixtiro qilishni va insonlarning hayotini osonlashtirishni yaxshi ko`rishadi. Hozirgi kunda zamonaviy dasturlash tillari tufayli bu yanada qiziqarli va osonlashdi.
Barchamizga ma'lumki, kundan kunga har bir texnologiyaning yangi versiyalari yaratilmoqda, eski versiyalari yangilanmoqda. Texnologiyalardan foydalanish borgansari ko'paymoqda.
Ko'plchikka ma`lumki Java, C#, Objective-C tillarida mobil qurilmalar uchun dastur yozishimiz mumkin. Ushbu tillarning yoshi 20-30 yoshdan oshganligi va zamonaviy smartfonlar 2005-yildan keyin paydo bo'lganligi sababli ushbu tillar ishlab chiqilganda ularning yaratuvchilari zamonaviy smartfonlar haqida o'ylamaganligi aniq 😉.
Bugungi kunga kelib mobil qurilmalarga dastur yozish uchun yangi tillar ishlab chiqilgan va yuqorida keltirilgan dasturlash tillaridan bir qancha ustunliklari bor. Ba`zi dasturlash tillari soddaligi va "kam yoz va ko'proq natijaga erish" yondashuvi bilan dasturchilarning hayotini osonlashtirmoqda. Ilgari kichik vazifani bajarish uchun ham ko'plab qator kod yozilishi va birtalay vaqt talab etilishi dasturchilarning "joniga tekkan" 😁.
Shuning uchun zamonaviy dasturlash tillari dasturchilar o'rtasida mashhur bo'lib bormoqda va ko'plab dasturchilar eski yondashuvini almashtirishga urinishmoqda.
Mashhur dasturlash tillaridan ba`zilari (masalan, Python, Kotlin va boshqalar) tushunish oson va murakkab ishlarga moslashgan.
Endi esa quyida berilgan mavzular haqida gaplashamiz:)
- Kotlin nima?
- Nima uchun Android qurilmalariga dastur yozish uchun Javaning o'rniga Kotlindan foydalanganimiz ma`qul?
- Kotlin yondashuvi
- Kotlin`da Login dasturi
Kotlin nima?
Kotlin bu cross - platform va general-purpose dasturlash tili
Kotlin Java bilan to`liq ishlash uchun mo'ljallangan va Kotlinning standart kutubxonasining JVM versiyasi Java Class kutubxonasiga bog'liq, lekin sintaksisini yanada ixchamlashtirishga imkon beradi.
Kotlin`ga JetBrains va Google tomonidan Kotlin Foundation orqali homiylik qilinadi
Nima uchun Android qurilmalariga dastur yozish uchun Javani o'rniga Kotlindan foydalanganimiz ma`qul?
- Java bilan o'zaro ishlash: Kotlinni ishlatishning asosiy afzalliklaridan biri shundaki, u Java bilan o'zaro bog'liqdir, ya'ni Kotlin va Java kodlari bir xil loyihada ishlatilishi mumkin, shuningdek, siz Kotlin kodidan Java metodi yoki classini osongina chaqirishingiz mumkin.
- Kotlin Javaga qaraganda ixchamroq: bu, shubhasiz, Kotlinning Javadan eng katta afzalliklaridan biri. Siz Javada hal qilinadigan muammoni Kotlindagi kamroq kod satrlari bilan hal qilishingiz mumkin.
- Kod yozishning "xavfsizroq" yo'li: xavsizroq degani, Kotlinda siz kamroq muammoga duch kelasiz. Ilova "otib yuborishining" asosiy sabablaridan biri bo'lgan NullPointerException ni Java hali hanuz yechim qidirayotganda Kotlin juda zo'r usulda hal qilgan
- Kuchli kompilyator: Kotlin - bu zamonaviy dasturlash tili va boshqa tillar qanday muammolarga duch kelayotganligini allaqachon bilgan. Shuning uchun u juda kuchli kompilyatorga ega, u xatolik holatlarining aksariyatini dastur ishlayotgan vaqtda emas, balki kompilyatsiya vaqtida aniqlay oladi.
- Ish samaradorligiga "qanot" beradi: Kotlin "kam yoz va ko'p ish qil" tamoyili asosida ishlaydi. Ishingizni bajarish uchun siz ko'pgina kod yozishingiz shart emas.
Yodda tuting: Java hech qayerga "ketmaydi", lekin Kotlin Android qurilmalariga dastur tuzuvchilar qidirayotgan til bo'lib keldi 😉.
Kotlin yondashuvi
fun main(){
val user = User(1001, "John", "john@gmail.com", "12/02/2001",
5, "Tashkent", "Uzbekistan", "Uz")
println("User ID: ${user.id}")
println("User name: ${user.name}")
println("User email: ${user.email}")
println("User dateOfBirth: ${user.dateOfBirth}")
println("User position: ${user.position}")
println("User city: ${user.city}")
println("User country: ${user.country}")
println("User countryCode: ${user.countryCode}")
user.position = 8
println("Updated user position: ${user.position}")
}
data class User(
val id: Long,
var name: String,
var email: String,
var dateOfBirth: String,
var position: Int,
var city: String,
var country: String,
var countryCode: String
)
- User nomli class yaratildi va konstruktorida o'zgarmas id va ozgaruvchan name, email, dateOfBirth, position, city, country va countryCode nomli maydonlari yaratildi.
- main functionda default konstruktor yordamida User classining nusxasi yaratildi (Yodda saqlang Kotlinda new kalit so'zi yo'q)
- id, name, email, dateOfBirht, position, city, country va coutryCode maydonlarini foydalanuvchiga ko'rsatildi
- position maydoni qiymati yangilanib, foydalanuvchiga korsatildi
Natija

Java yondashuvi
Endi esa xuddi shu bajarilgan ishni Javada qilib ko'ramiz.
import java.io.Serializable;
public class Main {
public static void main(String[] args) {
User user = new User(1001, "John", "john@gmail.com", "12/02/2001",
5, "Tashkent", "Uzbekistan", "Uz");
System.out.println("User id: " + user.getId());
System.out.println("User name: " + user.getName());
System.out.println("User email: " + user.getEmail());
System.out.println("User dateOfBirth: " + user.getDateOfBirth());
System.out.println("User position: " + user.getPosition());
System.out.println("User city: " + user.getCity());
System.out.println("User country: " + user.getCountry());
System.out.println("User countryCode: " + user.getCountryCode());
user.setEmail("updatedemail@gmail.com");
System.out.println("Updated email: " + user.getEmail());
}
}
class User implements Serializable{
private int id;
private String name;
private String email;
private String dateOfBirth;
private int position;
private String city;
private String country;
private String countryCode;
public User(int id, String name, String email, String dateOfBirth, int position, String city, String country, String countryCode) {
this.id = id;
this.name = name;
this.email = email;
this.dateOfBirth = dateOfBirth;
this.position = position;
this.city = city;
this.country = country;
this.countryCode = countryCode;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(String dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
}
- User nomli class yaratildi va maydonlarining qiymatlari constructor orqali olindi. Javada class maydonlariga getter va setter metodlari yordamida murojaat qilinadi
- Userning malumotlari foydalanuvchiga ko'rsatildi
- Userning emaili setEmail() metodi yordami yangilandi va foydalanuvchiga ko'rsatildi
Natija

Ko'rinib turibdiki, bir xil ishni bajarish uchun Kotlinda bitta kod satri yetarli.
Kotlinda Login dasturi
Kotlindagi narsalar qanday o'zgarishini sizga ko'rsatish uchun juda oddiy Login dasturini yaratmoqchiman.
package uz.star.loginappforarticle
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.google.android.material.snackbar.Snackbar
import uz.star.loginappforarticle.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.apply {
enterButton.setOnClickListener{
if (email.text.toString().isEmpty()){
showMessage("Email bo'sh bo'la olmaydi")
return@setOnClickListener
}
if (password.text.toString().isEmpty()){
showMessage("Parol bo'sh bo'la olmaydi")
return@setOnClickListener
}
if (email.text.toString() == "salom@gmail.com" && password.text.toString() == "password"){
showMessage("Tizimga muvaffaqiyatli kirildi")
} else {
showMessage("Email yoki parol xato")
}
}
}
}
private fun showMessage(text: String){
Snackbar.make(binding.root, text, Snackbar.LENGTH_SHORT).show()
}
}
Men foydalanuvchiga email va parolini dasturga kiritish uchun 2 ta kiritish maydoni va bitta tugma oldim. Agar foydalanuvchi email va parolni to'g'ri kiritsa "Tizimga muvaffaqiyatlli kirildi" degan xabar ko'rinadi.
Xulosa
Biz Kotlinni nima uchun Java o'rniga ishlatishimiz kerakligi va uning qanchalik kuchli ekanligini muhokama qildik.
Qanday qilib ko'p kod yozishdan osonlikcha qochishimiz mumkinligini ko'rdik.
Va nihoyat, biz Kotlin qanday ishlashini ko'rsatish uchun juda oddiy Login dasturini yaratdik.
Dasturchilar akademiyasiga bog'lanish
Telefon: +998999884031
Telegram: @Gitaadmin
Bizni ijtimoiy tarmoqlarda kuzating