Mobile Developer Notes
49 subscribers
71 photos
11 videos
12 files
118 links
Mobile Developer Notes

Channel Admin: @mobiledeveloperr
Download Telegram
Forwarded from Mobile news (Murotxonov Anvarxon)
https://github.com/MurotxonovAnvarxon/sms_provider

Ayni damda men uchun yaxshi o'rganish bo'ldi, appda turib sms send qilishni ( sim karta ) sinab ko'rdim, faqat ba'zi kamchiliklar bor, permission masalasi biroz muammo:
https://www.youtube.com/watch?v=CkMCCeTzyUI


webSocketdan signal kelganda datani parse qilib , telefon nomerga sms send qilish, error handle oxirigacha yetmagan
Forwarded from Flutter Dev Talk
Flutter dastur iOSda yoki Androidda nativedek ko'rinishi kerak bo'lsa ushbu packagedan foydalanib ko'rilar. Package platformani automatik aniqlaydi va iOS uchun iOS26 LiquidGlass va eski iOS designi, Android uchun esa Material designdan foydalanadi. Kirib o'rganib chiqishni tavsiya beraman.
This media is not supported in your browser
VIEW IN TELEGRAM
💳 Apple Pay Özbekistonda

Apple Paydan qanday foydalaniladi?
1. Bank kartasini Wallet ilovasiga qöşaşiz.
2. Tölov qiliş vaqtida iPhonening yon tugmasini ikki marta bosasiz. Face ID yuzingizni tanib, şaxsingizni tasdiqlaydi.
3. iPhoneni tölov terminaliga yaqinlaştirasiz - tayyor! 🎉

Endi bank kartasini yoningizda olib yuriş şart emas - iPhonening özi kifoya!📱
Assalomualaykum

vibe code davrida live coding qilib swiftda MVI pattarnini qanday qilib loyihaga implement qilishni o'rgatishim kimgadur foydali yoki hech bo'lmasa qiziq deb o'ylaysizlarmi?
❤‍🔥6
Forwarded from Maniac4j
Protsedural OOP illyuziyasi: Kodimiz nima uchun aslida obyektga yo'naltirilmagan?

Batafsilroq maqolada oʻqishingiz mumkin 👇

https://publink.uz/technology/6772444-protsedural-oop-illyuziyasi-kodimiz-nima-uchun
Har bir SDK callback uchun alohida class yozishga majburmisiz? Men ham shunday deb o'ylardim.

Matrix Rust SDK bilan macOS ilova yozyapman. SDK'dagi har bir listener protokoli uchun alohida kichik class yozardim. Ularning ko'pi bitta ish qilardi: kelgan qiymatni boshqa joyga uzatish.

Keyin Element X iOS kodida SDKListener degan yechimni ko'rdim:

final class SDKListener<T>: Sendable {
private let onUpdateClosure: @Sendable (T) -> Void
init(onUpdateClosure: @Sendable @escaping (T) -> Void) {
self.onUpdateClosure = onUpdateClosure
}
}

extension SDKListener: RoomListEntriesListener
where T == [RoomListEntriesUpdate] {
func onUpdate(roomEntriesUpdate: [RoomListEntriesUpdate]) {
onUpdateClosure(roomEntriesUpdate)
}
}

Endi listener kerak bo'lgan joyda closure yozish kifoya:

list.entriesWithDynamicAdapters(pageSize: 50, listener: SDKListener<[RoomListEntriesUpdate]> { updates in
// ...
})


Buni o'rganish jarayonida 4 ta narsani tushundim:

1. where T == ... faqat cheklov emas. Shu shart bilan extension ichida T aniq turga aylanadi, noto'g'ri listener esa kompilyatsiyadan o'tmaydi.

2. Yashirin class yaratilmaydi. Class bitta, protokolga mos kelish esa kompilyatsiya paytida tekshiriladi.

3. Closure init ichida ishga tushmaydi, faqat saqlanadi. U SDK yangilanish yuborganda chaqiriladi.

4. @Sendable bezak emas. SDK callback'ni o'z thread'idan chaqiradi, kompilyator esa data race xavfini oldindan ushlaydi. Shu sabab bu closure `MainActor`'da ishlamaydi va UI'ni yangilashdan oldin unga o'tish kerak.

Bu har doim ham eng yaxshi yechim emas. Metodlari ko'p delegate'lar uchun alohida class ko'pincha tushunarliroq bo'ladi. Pattern qiymatni shunchaki uzatadigan, bitta metodli listener'larda eng foydali.

Eng katta saboq: yaxshi open source loyihalarning kodini o'qish, undan nusxa olishdan ko'ra ko'proq narsa beradi. Har bir qatorga "bu nega kerak?" deb savol bergandagina haqiqiy tushunish boshlanadi.

Siz ham shunday wrapper class'lardan qutulganmisiz? Qanday yo'l tutgansiz?

#Swift #iOSDev #macOS #Concurrency #OpenSource

@mobile_developer_notes
🔥1
Live stream started
Live stream finished (10 minutes)
Forwarded from λ
Please open Telegram to view this post
VIEW IN TELEGRAM