- Published on
SwiftUI crypto app — MVVM, Core Data va API requestlar bilan ilova qurish (kirish)
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
SwiftUI crypto app — kirish
Bu seriyada biz SwiftUI-da real loyiha ustida ishlaymiz. Jonli ma'lumotlar bilan ishlaydigan, foydalanuvchi portfelini saqlab boradigan va chiroyli interfeysga ega bo'lgan Cryptocurrency Tracker ilovasini quramiz.
Ilovada ishlatiladigan barcha ma'lumotlar bepul va oson integratsiya qilinadigan API (CoinGecko API) orqali olinadi. Darslarda kriptovalyutalarning ishlash prinsipi yoki savdo qilish haqida gapirilmaydi, balki ushbu ma'lumotlar orqali real ilovalarda tarmoq va ma'lumotlar bilan qanday ishlash o'rgatiladi.
Loyiha arxitekturasi va ishlatiladigan texnologiyalar
Ilova o'z ichiga iOS dasturlashda juda ko'p ishlatiladigan va muhim bo'lgan quyidagi texnologiyalarni oladi:
- MVVM Arxitekturasi (Model-View-ViewModel): Loyihani toza va samarali saqlash uchun MVVM arxitekturasini qo'llaymiz hamda unga qo'shimcha ma'lumotlarni boshqarish qatlamlarini (Data Services) qo'shamiz.
- Combine Framework: Tarmoqdan (API) keladigan ma'lumotlarni boshqarish va ekranlarga tarqatish uchun Combine-ning
PublishervaSubscribermexanizmlaridan keng foydalanamiz. - Core Data: Foydalanuvchining portfelidagi ma'lumotlarni (qaysi tangadan qancha borligini) telefon xotirasida doimiy saqlash uchun ishlatiladi.
- FileManager (Fayllar Tizimi): Internetdan yuklangan tanga piktogrammalarini (image caching) fayl menejeri yordamida keshlaymiz, bu ilova tezligini oshiradi.
- Maxsus Animatsiyalangan Grafik (Custom Chart): Kriptovalyuta narxlari grafigini 100% noldan SwiftUI yordamida o'zimiz chizamiz.
- Xavfsiz Kod Yozish (Safe Coding):
guardvaif-letyordamida xavfsiz va toza kod yozish amaliyotini o'rganamiz.
Ilova nimadan iborat
1. Yuklanish Animatsiyasi (Launch Screen)
Ilova ochilayotganda qora va pushti ranglar uyg'unligidagi logotip va matn yozilish animatsiyasi ko'rsatiladi. Bu animatsiya vaqtida fonda birinchi API so'rovi amalga oshiriladi va ma'lumotlar yuklab olinadi.
2. Asosiy Ekran (Home Screen)
- Bozor Ma'lumotlari (Market Data): Global kriptovalyuta bozorining holati (umumiy bozor qiymati, BTC ulushi, o'zgarish foizlari) yuqori qismda ko'rsatiladi.
- Jonli Tanga Ro'yxati (Coin List): Live narxlar va 24 soatlik o'zgarish foizlari bilan tangalar ro'yxati.
- Qidiruv va Saralash (Search & Sorting): Tangalarni nomi yoki ramzi bo'yicha tezkor qidirish, shuningdek, narx yoki bozor qiymati (Market Cap) bo'yicha o'sish/kamayish tartibida saralash.
3. Portfel Ekrani (Portfolio View)
- Foydalanuvchi o'z portfeliga tangalarni qo'shishi, ularning miqdorini tahrirlashi mumkin.
- Qo'shilgan ma'lumotlar Core Data orqali saqlab qolinadi, ya'ni ilovani yopib ochganda ham ma'lumotlar yo'qolmaydi.
- Portfelning umumiy dollar qiymati va 24 soatlik o'zgarishi real vaqtdagi narxlar yordamida avtomatik hisoblab boriladi.
4. Batafsil Ma'lumot Ekrani (Detail View)
- Har bir tanga uchun alohida batafsil ma'lumot ekrani.
- Custom Interactive Chart: Narxlar o'zgarishini ko'rsatuvchi interaktiv grafik.
- Expandable Description: Tanga haqida ingliz tilidagi batafsil ma'lumot, o'qish qulay bo'lishi uchun yopiladigan/ochiladigan blok ko'rinishida.
- Havolalar: Loyihaning rasmiy veb-sayti va Reddit sahifalari kabi foydali havolalar.
Bu dars kimlar uchun?
Ushbu kurs Intermediate (O'rta daraja) uchun mo'ljallangan. Darslarni muvaffaqiyatli o'zlashtirish uchun avval quyidagi darsliklarni tugatgan bo'lishingiz tavsiya etiladi:
- SwiftUI Bootcamp (Boshlang'ich darslar)
- SwiftUI Continued Learning (Fon oqimlari, Combine, Core Data va boshqalar)
Agar siz ushbu mavzularda boshlang'ich tushunchalarga ega bo'lsangiz, bu seriya siz o'rgangan barcha alohida vositalarni birlashtirib, bitta katta va professional ilova yaratish tajribasini taqdim etadi.
Keyingi darsdan ilovani noldan yaratishni va loyiha papkalarini sozlashni boshlaymiz! 🚀