iOS — Apple tomonidan iPhone qurilmalari uchun ishlab chiqilgan mobil operatsion tizim va application platforma. U kernel, security model, system framework, UI tizimi, application lifecycle va App Store orqali tarqatish infratuzilmasini birlashtiradi. iOS applicationlar asosan Swift yoki Objective-C tilida yaratiladi.
iPad uchun platforma iPadOS nomi bilan alohida rivojlansa ham ko‘p framework va development modeli iOS bilan umumiy.
Platforma qatlamlari
iOS developerga yuqori darajadagi frameworklar beradi:
Past darajadagi kernel va driver applicationga to‘g‘ridan-to‘g‘ri ochilmaydi.
XNU kernel
iOS Darwin asosidagi XNU kernelidan foydalanadi.
vazifalarini boshqaradi.
Application sandbox va code signing bilan birga platforma isolationini ta’minlaydi.
Sandbox
Har application o‘z container directory’sida ishlaydi.
Boshqa application data’siga bevosita access yo‘q.
Photos, Contacts, Location va boshqa user data framework va permission orqali olinadi.
Shared data App Groupga o‘xshash capability bilan cheklangan tarzda ishlatilishi mumkin.
Code signing
iOS executable code digital signature bilan tasdiqlanadi.
Signature application kim tomonidan build qilinganini va code o‘zgarmaganini tekshirishga yordam beradi.
Provisioning profile, certificate va entitlement development hamda distributionda muhim.
Unsigned arbitrary application odatiy qurilmada erkin ishlamaydi.
IPA
IPA iOS application package formatidir.
U compiled executable, resource, framework, metadata va signaturega oid ma’lumotlarni saqlaydi.
App Store yoki tashkilot distributioni orqali o‘rnatilishi mumkin.
IPA oddiy ZIPga yaqin container bo‘lsa ham ichidagi code platforma tomonidan tekshiriladi.
App Store
Public application App Store review va distribution jarayonidan o‘tadi.
bilan bog‘liq xizmatlarni beradi.
Enterprise va test distribution uchun boshqa usullar mavjud.
Swift
Swift Apple platformalari uchun zamonaviy programming language.
U:
- type safety;
- optionals;
- protocol;
- value type;
- concurrency;
- memory safetyga oid imkoniyatlar
beradi.
Swift native codega compile qilinadi.
Objective-C
Objective-C iOS va macOSning tarixiy asosiy tillaridan biri.
U C tiliga object-oriented runtime qo‘shadi.
Ko‘p eski library va application Objective-Cda yozilgan.
Swift bilan bridging orqali bitta projectda birga ishlashi mumkin.
UIKit
UIKit imperative UI framework.
Asosiy tushunchalar:
- UIView;
- UIViewController;
- navigation;
- table;
- collection;
- Auto Layout;
- responder chain.
Interface Builder yoki code bilan UI yaratilishi mumkin.
SwiftUI
SwiftUI declarative UI framework.
UI state asosida view tree sifatida yoziladi.
State o‘zgarsa framework kerakli qismlarni yangilaydi.
Platforma versioniga qarab API mavjudligi tekshiriladi.
UIKit bilan integration mumkin.
Application lifecycle
Application foreground, inactive, background yoki suspended holatlarga o‘tishi mumkin.
Scene-based lifecycle bir applicationda bir nechta UI scene’ni qo‘llashi mumkin.
Background time cheklangan.
Muhim task platforma ruxsat bergan background mode bilan ishlaydi.
View controller
UIKitda ViewController screen content va lifecycle’ni boshqaradi.
Navigation controller screen stackni saqlaydi.
Presentation modal flow yaratadi.
Juda katta controller business logic va data qatlamiga bo‘linadi.
Permission
Camera, microphone, location, contacts va photos uchun user ruxsati talab qilinadi.
Application Info.plist ichida ruxsat nima uchun kerakligini tushuntiruvchi matn beradi.
User ruxsatni keyin Settings orqali o‘zgartirishi mumkin.
Denied holat normal UI bilan boshqariladi.
Entitlement
Entitlement applicationga maxsus capability beradi:
U signing va provisioning bilan bog‘liq.
Faqat code ichida API chaqirish capability bermaydi.
Keychain
Keychain parol, token va kichik cryptographic secretni himoyalangan storage’da saqlash uchun ishlatiladi.
Access group va device-lock policy bilan boshqariladi.
Oddiy UserDefaults secret saqlash uchun mos emas.
Backup va synchronization atributlari aniq tanlanadi.
Data storage
Keng variantlar:
Har storage boshqa vazifaga mos.
Application Documents va Library directorylarining backup policy’si farq qiladi.
Background execution
iOS battery va privacy uchun background ishni qat’iy cheklaydi.
Variantlar:
Application backgroundda cheksiz service saqlay olmaydi.
Push notification
Remote notification Apple Push Notification service orqali yuboriladi.
Qurilma tokeni application instance’ga bog‘liq va o‘zgarishi mumkin.
Payload hajmi cheklangan.
Sensitive to‘liq data notification body’da yuborilmasligi mumkin.
API availability
Yangi framework eski iOS versionda mavjud bo‘lmasligi mumkin.
Swift availability check ishlatiladi.
Deployment target minimal qo‘llanadigan versionni belgilaydi.
Fallback yoki feature disable qilinadi.
Privacy
iOS application user data accessi va tracking uchun platforma policy’lariga bo‘ysunadi.
Privacy manifest, permission description va tracking consentga oid talablar mavjud bo‘lishi mumkin.
SDKlar yig‘adigan ma’lumot ham application javobgarligiga kiradi.
Memory warning
iOS application memory pressure olganda cache va qayta yaratiladigan resourcelarni bo‘shatishi kerak. System limit oshsa processni to‘xtatishi mumkin. View ko‘rinmay qolishi object avtomatik memorydan chiqdi degani emas; reference cycle va cache lifecycle nazorat qilinadi.
Concurrency
Swift concurrency async/await, task va actor orqali asynchronous ishni boshqaradi. UI update MainActor’da bajariladi. Cancellation signalini network va uzoq operation tekshiradi. Task screen yopilgandan keyin keraksiz natija bilan UI’ni yangilamasligi kerak.
Universal link
Associated Domains orqali HTTPS link applicationdagi aniq route’ni ochishi mumkin. Domain fayli va entitlement bir-biriga mos bo‘ladi.
Bog‘liq tushunchalar
iOS, iPhone, Swift, Objective-C, UIKit, SwiftUI, XNU, IPA, App Store, Code signing, Keychain