Mobil
Android yoki iOS: mobil dasturchi qaysi yo‘lni tanlagani maʼqul?
Ikkala yo‘nalishda ham muvaffaqiyatli karyera qurish mumkin, har birining oʻz afzalliklari bor. Hozir ular haqida soʻz yuritamiz. Balki, qaror qabul qilishingiz uchun sizga aynan mana shu ma’lumotlar yetishmayotgandir.
Mobil dasturchi kim?
Mobil dasturchi — smartfon, planshet, aqlli soat va fitnes bilaguzuklar kabi mobil qurilmalar uchun dasturlar yozadigan kishi. Mobil ilovalar oddiy foydalanuvchilardan tortib biznes va fangacha barchaga kerak. Shuning uchun ularni ishlab chiqaradigan mutaxassislarga bo‘lgan talab keyingi 5–10 yil ichida faqat ortib boradi.
Mobil dasturchilarga ehtiyoji boʻlgan sohalar:
Biznes. Masalan, marketpleys, fitnes markazi, taksi ilovalarini ishlab chiqish uchun kerak boʻladi.
Ko‘ngilochar soha. O‘yinlar yoki musiqa va filmlar striming xizmatlari dasturchisi bo‘lish mumkin.
Ta’lim. Masalan, til o‘rganish, sport bilan shug‘ullanish dasturlarini ishlab chiqsa boʻladi.
Moliya. Bank mobil ilovalari deyarli hamyon o‘rnini egalladi. Mobil dasturchilar tufayli smartfon interfeysida xaridlar uchun to‘lovlarni amalga oshirish, bank mahsulotlaridan foydalanish va pul o‘tkazish qulaylashdi.
Ishlab chiqarish. Masalan, tibbiy preparatlarni saqlash uchun sovutish uskunalarini yetkazib beruvchi kompaniya sovutkichlarda haroratni monitoring qilish tizimini ishlab chiqishi mumkin. Operator real vaqt rejimida planshet ekranida qaysi uskunalar ishdan chiqqanini kuzatishi mumkin bo‘ladi.
Tibbiyot. Ham tijoriy klinikalar, ham davlat muassasalari tomonidan bemorlar uchun ilovalar ishlab chiqiladi.
Mobil dasturlashda ikki turdagi: nativ va kross-platforma dasturchilar mavjud. Nativ dasturchilar muayyan operatsion tizim (OT) uchun dasturlar yozadi. Ko‘pincha bu iOS yoki Android uchun boʻladi. Odatda dizaynerlar bunday ilovalar uchun har xil maketlar yaratadi, shuning uchun ular vizual jihatdan farq qiladi. Masalan, tugmalar joylashuvi, ranglar va menyuda farqlar boʻlishi mumkin. Ba’zi funksiyalar faqat muayyan platformada mavjud bo‘ladi.
Kross-platforma dasturchilar bir vaqtning o‘zida ikki operatsion tizimda ishlaydigan bitta ilovani yaratish imkonini beruvchi maxsus freymvorklardan foydalanadi. Bu mahsulotning dastlabki versiyasini tezda ishlab chiqish va sinovdan o‘tkazish, sodda ilova yaratish yoki ikkita dasturchilar jamoasi uchun mablag‘ yetmagan hollarda qulay hisoblanadi. Biroq bank uchun mo‘ljallangan murakkab ilova bo‘lgan taqdirda kross-platforma varianti foydalanuvchi talablariga mos ravishda samarali ishlamasligi yoki uning ba’zi elementlari xatolar bilan aks ettirilishi mumkin. Buning sababi shundaki, freymvork doim ham ma’lum bir operatsion tizimning o‘ziga xos xususiyatlarini to‘liq hisobga olmaydi. Shu bois ko‘p bo‘lim va nostandart funksiyalarga ega yuqori yuklamali ilovalar uchun nativ dasturlash maqsadida alohida mablagʻ ajratiladi.
Mixail Vasser, AGIMAʼning mobil dasturlash bo‘yicha rahbari, “Android dasturchi” kursi muallifi va oʻqituvchisi
Rossiya bozoridagi kross-platforma dasturlashda ko‘pincha Flutter freymvorki qo‘llanadi. Menimcha, vaqt o‘tishi bilan buyurtma asosidagi dasturlash bozori butunlay Flutter dasturlashga o‘tadi. Bunday ilovalarni yaratish va qo‘llab-quvvatlash arzonga tushadi. Ammo mahsulot ishlab chiqaruvchi kompaniyalar ilovalarning sifat darajasini saqlab qolish uchun nativ dasturlashda qoladi. Shuning uchun mobil dasturlashni nativ ilovalardan boshlagan ma’qul: bu bir yoki ikkala platformaning ham xususiyatlarini chuqur o‘rganish imkonini beradi. Xohish tugʻilgan taqdirda keyinchalik kross-platforma texnologiyalarini ham o‘zlashtirish mumkin. Nativ bazaga ega bo‘lgan holda buni tezroq amalga oshirish mumkin bo‘ladi.
Sayt yoki ilovani dasturlashda veb-dasturchi foydalanuvchi ko‘radigan mijoz qismi bilan ham, xizmatning barqaror ishlashi va sekinlashmasligiga yordam beradigan server qismi bilan ham shug‘ullanishi mumkin.
Mobil dasturlashda ilovaning server qismi bilan deyarli har doim alohida mutaxassis — bekend dasturchi shug‘ullanadi. Mobil dasturchi esa interfeysning funksionalligi: tugmalar va matnning to‘g‘ri joylashishi, animatsiya, videoni ijro etilishi, ilova bo‘limlari bo‘ylab o‘tish, interfeysdan ma’lumotlar bazasiga yuboriladigan so‘rovlarning qayta ishlanishi uchun masʼul boʻladi. iOS va Android dasturchilar kurslarida shu narsalar o‘rgatiladi. Talabalar ishni dasturlash asoslari, mobil sahifalash tillari va ilovalarni dasturlash vositalari bilan tanishishdan boshlaydi. Kurs oxiriga kelib, to‘laqonli loyiha — iOS uchun o‘yin yoki Android uchun bo‘sh ish o‘rinlari roʻyxatini ishlab chiqish uchun yetarli bilimlar bo‘ladi.
Android va iOS’ni solishtirish
Foydalanuvchi uchun iOS – Apple mobil qurilmalari: iPhone, iPad, Apple Watch ishlaydigan operatsion tizim. Platformaning texnik xususiyatlarini ko‘rib chiqamiz.
Tillar. iOS uchun moʻljallangan ilovalarda ikkita dasturlash tili qo‘llanadi. 2014-yilgacha Objective-C, keyin Apple o‘z ilovalari uchun maxsus ishlab chiqqan yanada qulay va zamonaviy Swiftʼdan foydalaniladi. U Objective-Cʼga mos, shuning uchun loyihada ikkala tildan ham foydalanish: birida eski funksiyalarni qo‘llab-quvvatlash, ikkinchisida esa yangilarini yozish mumkin.
Dasturlash muhiti. iOSʼga ilovalar yaratish uchun maxsus dasturlash muhiti — Xcode mavjud. Unda kodni yozish va tayyor mahsulotda qanday ishlashini darhol tekshirish juda qulay.
Test o‘tkazish uchun cheklangan qurilmalar tanlovi. iOS’ning asosiy xususiyati shundaki, bu platforma faqat Apple qurilmalarida ishlaydi. Bir tomondan, bu dasturchi uchun qimmatga tushadi: ilovani yaratish va testdan o‘tkazish uchun iPhone va Macbook sotib olish zarur. Muqobil variant sifatida Apple texnikasi interfeyslariga taqlid qiluvchi dasturlardan foydalanish mumkin. Ammo dasturchilar ularning noqulayligi va beqaror ishlashidan shikoyat qiladi. Boshqa tomondan, Android dasturlashda bo‘lgani kabi dasturni ko‘plab turli xil qurilmalarda testdan o‘tkazish shart emas.
Ilovalar do‘konida chiqishi uzoq muddatni olishi. Ilovani App Store’da chiqarish uchun qat’iy tekshiruv jarayonidan o‘tish kerak. Bu vaqt va sa’y-harakat talab qiladi, ammo do‘konda sifati past ilovalar soni kam.
Endi Androidning oʻziga xos xususiyatlarini ko‘rib chiqamiz.
Tillar. Android dasturlashda ham ikkita til: Java va Kotlin ishlatiladi. Kotlin ilovasidagi kod iOS’dagi Swift kabi ixchamroq va tushunarli, shuning uchun yangi ilovalar aynan Kotlinʼda yoziladi. Ammo eski loyihalarni qo‘llab-quvvatlash uchun Java’ni bilish zarur.
Androidʼda turli xil ekran, protsessor va operatsion tizim versiyalariga ega ko‘plab qurilmalar ishlaydi. Bu dasturlash va testdan oʻtkazishni murakkablashtiradi: iOSʼdagiga qaraganda ko‘proq variantlarni hisobga olish kerak boʻladi.
Tajribalar o‘tkazish uchun imkoniyatlar. Android uchun kutubxonalar yanada moslashuvchan interfeyslarni yaratish imkonini beradi. Bu dasturchi uchun ko‘proq tajriba o‘tkazish imkoniyatini yaratadi.
Google Play’da chiqarish App Store’dagiga qaraganda osonroq va tezroq. Ilovalar sifatiga qo‘yiladigan talablar unchalik jiddiy emas, lekin bu foydalanuvchilar bagli ilovalarga ko‘proq duch kelishi mumkinligini anglatadi.
Android dasturchi boʻling!
Platformamizdagi Android & Kotlin dasturlash kursini oʻqish orqali yangi kasb egallang. Kurs davomida Kotlin dasturlashni oʻrganasiz va telefondan tortib avtomobilgacha boʻlgan texnologiyalar uchun dastur ishlab chiqishni boshlaysiz.
Karyerani boshlash uchun qaysi birini tanlagan ma’qul?
Bu savolga aniq javob yo‘q. Ammo platformani tanlashda tajriba yoki qiziqishlarga tayanish mumkin. Masalan, Java dasturlash tilidagi tajriba bilan Android dasturlashga kirish osonroq, chunki Kotlin shu til asosida yaratilgan. Objective-Cʼga oid bilimlar iOSʼda dasturlashni boshlashni osonlashtiradi.
Kimgadir Apple texnikasi yoqadi va bu ham iOS dasturchi bo‘lishga sabab bo‘lishi mumkin. Ayrimlar uchun esa foydalanuvchilar soni ko‘p bo‘lgan ilovani ishlab chiqish muhimroq – dunyodagi gadjetlarning 70 foizi Androidʼda ishlaydi.
Android va iOS dasturchilarning birinchi loyihasidagi vazifalari taxminan bir xil bo‘ladi. Ularning murakkabligi esa dasturchining loyihaga tobora kirib borishi bilan ortib boradi. Masalan, katta kompaniyada quyidagi vazifalar bo‘lishi mumkin:
Boshqa dasturchilar ulgurmagan kichik xatolarni tuzatish. Bir tomondan, bunday masalalarda xato qilish qo‘rqinchli emas, chunki ular ilova ishiga unchalik ta’sir qilmaydi. Boshqa tomondan, mahsulotni: uning modullari, sinflari va obyektlari, arxitekturasi, ilova ma’lumotlardan qanday foydalanishini o‘rganish mumkin.
Ilovaning turli qismlariga taalluqli masalalar. Masalan, tugma qo‘shish, matnni tahrirlash.
Junior ilovaning ishlashini tushunib olganidan so‘ng unga ekranning ishlash mantigʻini o‘zgartirish, ekranni noldan yaratish, flow — foydalanuvchining bir nechta ekran orqali bosib oʻtadigan foydalanish yo‘lini ishlab chiqish topshirilishi mumkin.
Startapda loyihani uzoq vaqt chuqur o‘rganish imkoni yo‘q: biznes uchun mahsulotni tezroq bozorga chiqarish muhim. Ba’zan jamoada atigi bir-ikkita dasturchi bo‘lishi mumkin, shuning uchun yo‘l-yo‘lakay o‘rganish, mukammal bo‘lmasa-da, tez ishlash kerak bo‘ladi.
Mixail Vasser
Biror yo‘nalishni tanlaganingiz butun umr shu bilan shug‘ullanishingiz shart degani emas. Masalan, men Android dasturchi sifatida ish boshlaganman, keyin esa iOS’ni o‘rganganman va hozir mobil dasturlash yo‘nalishini boshqaryapman. Boshqa platformaga o‘tish uchun birinchi operatsion tizimni o‘zlashtirayotganda qilgan ishlaringizni bajarishingiz kerak: til va vositalarni o‘rganish, pet loyihalar yaratish. Asta-sekin bilimlar toʻplanadi. Agar bu yo‘lni bir bor bosib o‘tgan bo‘lsangiz, ikkinchi safar osonroq bo‘ladi.
Mobil dasturlash sohasiga kirish bo‘sag‘asi: nimalarni bilish zarur?
Hozir dasturchi bo‘lish 7–10 yil oldingiga nisbatan qiyinroq. Bozorda mutaxassislar ko‘paygan, demak, raqobat ham yuqori. Buning ustiga texnologiyalar tez rivojlanmoqda va dasturchilar yanada ko‘proq bilimga ega bo‘lishi talab etilmoqda. Ammo onlayn maktablar tufayli o‘qish osonlashdi: barcha ma’lumotlar tizimlashtirilgan, haqiqiy loyihalar misolida faqat dolzarb bilimlar beriladi.
iOS va Android dasturlash uchun bazaviy hard skillar ro‘yxatini ko‘rib chiqamiz:
Mixail Vasser
Dasturlash faqat texnik koʻnikmalardan iborat emas. Odamlar jamoalarda ishlab, boshqa mutaxassislar bilan muloqot qiladi. Shuning uchun o‘z fikrlaringizni texnik bo‘lmagan mutaxassislar: dizayner va tahlilchilarga tushunarli tarzda yetkazib bera olish muhimdir. Zaharxanda dasturchilarning, hatto ular kuchli texnik ko‘nikmalarga ega bo‘lgan taqdirda ham loyiha uchun tanlanishi dargumon. Bunday mutaxassislar jamoada salbiy muhit yaratadi: odamlar tezda toliqib, mahsulotga boʻlgan qiziqishini yo‘qotadi.
Suhbatda aynan soft skillar hal qiluvchi omil bo‘lishi mumkin. Texnik ko‘nikmalarni oshirish unchalik qiyin emas va kompaniyalar bu borada yordam berishga tayyor. Insonni hurmat bilan muloqot qilish va o‘z pozitsiyasini asoslashga o‘rgatish esa ancha mushkul.
Soft skillar birinchi bosqichda – HR va texnik mutaxassis bilan suhbatda tekshiriladi. Mobil dasturchilar uchun barcha texnik suhbatlarni ikki tur: nazariya va layvkodingga ajratish mumkin.
iOS dasturlashni Mohirdevʼda oʻrganing!
Bizdagi iOS & Swift dasturlash kursini oʻqish orqali iPhone, iPad va boshqa iOS qurilmalar uchun dastur yaratishni boshlang. Kurs ustozi – Payme kompaniyasi iOS dasturchisi.
Nazariy intervyu
Nima haqida so‘rashlari mumkin:
ilovalar arxitekturasi;
dasturlash tillari;
kutubxonalarning xususiyatlari;
muayyan freymvork yoki texnologiyaga oid tajriba.
Maqsad — dasturchining nafaqat o‘zlashtirgan bilimlarini, balki amalda nima bilan shug‘ullanganini ham tekshirish
Layvkoding — real vaqt rejimida vazifani yechish
Vazifa algoritmik yoki ma’lum bir operatsion tizim – iOS yoki Android bilan bog‘liq bo‘lishi mumkin.
Nomzod va intervyu oluvchi o‘zlarini bir loyihada ishlayotgandek tutadi. Intervyu beruvchi xuddi dasturchining rahbari sifatida unga topshiriq beradi. Dasturchi esa vazifani bajaradi va parallel ravishda o‘z fikrlarini izohlaydi
Suhbatning vazifasi quyidagilarni aniqlash: nomzod bilan ishlash mumkinmi, muammolarni hal qilishga qanday yondashadi, ma’lumotni qayerdan qidiradi, darhol vazifani bajarishga tushadimi yoki avval uni tahlil qilib, samarali yechimni tanlaydimi?
Yana qanday qo‘shimcha savollar bo‘lishi kompaniyaga bog‘liq. Masalan, onlayn kinoteatr uchun ilova ishlab chiqayotgan jamoada pleyerning ishlashi haqida so‘raladi. Ijtimoiy tarmoq yoki messenjer yaratish loyihasi uchun esa ko‘p oqimlilik bo‘yicha bilimlar muhim, chunki postlar tasmasi tez yangilanishi, xabarlar esa kechikishlarsiz kelishi kerak. Savollarning bir qismi oldingi tajribaga taalluqli bo‘lishi mumkin: dasturchi qanday loyihalarda ishtirok etgani, qaysi sohadan kelgani, jamoada ish qanday tashkil etilgani haqida soʻraladi.
Ekspert maslahati
Mixail Vasser
Dasturlash sohasidagi o‘sish motivatsiyaga bog‘liq. Dasturchi kasbi uchun yaxshi haq to‘lanadi, lekin loyiha va vazifalarga qiziqish boʻlmasa, juniorda uzoq vaqt qolib ketishingiz mumkin. Yoki, aksincha, agar interfeyslar yaratish, algoritmlar yozish va qo‘shimcha narsalarni o‘rganish uchun vaqt bo‘lsa, kasbiy o‘sish tezlashadi. Bunday sur’at bilan 1,5 yil ichida midlga qadar oʻsib, daromadni oshirish mumkin.
Android uchun dasturlashni boshlaganimda ko‘plab qo‘shimcha ma’lumotlarni o‘rgandim va pet loyihalar yaratdim. Shu tarzda notanish texnologiyalarni o‘zlashtirib oldim. Shartnomada ko‘rsatilganidan ko‘proq ishladim. Doimo ortiqcha ishlashga undamayman, lekin yangi narsalarni o‘rganish uchun ko‘proq vaqt talab etiladi. Boshlang‘ich davrda bir-ikki soat ortiqcha ishlash mavzuga chuqurroq kirish va tezroq ishlay boshlashga yordam beradi. Natijada yanada murakkab vazifalarni bajarish va yangi bosqichga ko‘tarilish imkoniyati paydo bo‘ladi.
Manba: Android или iOS: какой путь выбрать мобильному разработчику