BW Swift
1.75K subscribers
1.49K photos
155 videos
3 files
1.39K links
Канал створений для навчання програмування на swift та розробці програм під iOS. Мета проекту - допомогти студентам пройти шлях від розробника-початківця до оплачуваного фахівця. Тут я публікую актуальні та цікаві статті щодо iOS розробки. Адмін: @bws2007
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🎙Siri в 2025

Діалог на відео:
- call me an ambulance
- okay, I will call you an “Ambulance”

Переклад:
- виклич мені швидку
- добре, я буду називати вас «швидка»

💡Поділіться історіями як ви використовуєте Siri 👇

Я почну:
- В машині: коли за кермом прошу когось набрати, увімкнути музику та побудувати маршрут по заданій адресі чи додому. Використовую на регулярній основі, у всіх випадках гарно працює і майже не помиляється.
- Дома: активно використовую, щоб поставити будильник на потрібний час, та додати нагадування. Коли зайняті руки іноді питаю погоду та є окремий шорткат “next” який імітує свайп вгору, ти кажеш “Siri next” і воно просто свайпає по екрану, користуюсь тільки під час миття посуду чи готування їжі, щоб гортати лєнту поки руки зайняті.

ℹ️А як ви як використовуєте Siri?

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
👀5😁31👍1
📱 Ora - називний браузер для macOS написаний на SwiftUI!

Основні можливості
- Рідний інтерфейс macOS, створений за допомогою SwiftUI/AppKit
- Швидкий, адаптивний перегляд на базі WebKit
- Інкогніто мод з вбудованим блокувальником вмісту для запобігання відстеженню та блокування реклами
- Підтримка декількох пошукових систем
- Автозаповнення URL-адреси та пропозиції щодо пошуку
- Швидкий лаунчер для миттєвої навігації та пошуку
- Режим розробника

⚠️Ora в даний час знаходиться на ранніх стадіях розробки і ще не готовий до щоденного використання. Незабаром буде випущена бета-версія з основними функціями

Репозиторій:
https://github.com/the-ora/browser/

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤡1
👩‍💻 CS193P 2025 вже доступний на YouTube!

Курси Стендфорд по Swift та SwiftUI давно вже стали еталоном в світі iOS розробки, прошу до перегляду.

Посилання на першу лекцію:
https://youtu.be/kCjDulwChRQ?si=rVYKr0RZMlhAC7vc

Матеріали до курсу:
https://cs193p.stanford.edu/

🗣️ Я завжди передивляюсь кожен новий випуск курсу і всім рекомендую. Це буде корисно як новачкам так і досвідченим розробникам!

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
37🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Зацініть роботу Metal шейдерів!

І це напряму інтегровано вже в SwiftUI!

Тема шейдерів раніше вважалась доволі низькорівневою і вузько направленою але в сучасному світі Apple дуже сильно спростила їх використання, а ШІ дозволяє генерувати прості та середньою складності шейдери з першої промпти.

Тому до вас питання, що ви знаєте про шейдери та їх використання:
👍 - пару раз писав
🔥- активно використовую
🗿- що це таке

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
3🗿88👍243
💡Лайфхаки по створенню пароля від - VySecurity

Більшість паролів у відкритих зламаних базах зберігаються на окремому рядку через двокрапку «логін:пароль»

Якщо ви додасте «:» у ваш пароль, то примітивні парсери не зможуть його розпарсити і пропустять цей рядок.

Можна піти далі і зробити пароль в такому форматі
Password,[email protected]:anotherPassword


Є ще кращий варіант ось в такому формат, щоб збити з пантелику ще більшу кількість парсерів:
Zc:[email protected]@'6"peoUoR39I#Yw]/0StOXf


🗣️ Хоч це і допоможе в деяких загальних кейсах, але якщо таргетована атака буде саме на вас, то вам це не допоможе :)
8
Імплементація ScrollViewDelegate Proxy для SwiftUI.
На основі рішення з попереднього мого посту (яке доречі сильно поліпшив та оптимізував, але про це окремо) зробив прототип ScrollViewDelegate view.

Це обгортка над ScrollView (яка також спрацює з List). Ця обгортка надає API, що має проксі функції делегату UIScrollViewDelegate.
1. ScrollView у якості контенту потрапляє в ScrollViewDelegate
2. Всередині ScrollViewDelegate відбувається пошук UIKit UIScrollView в контенті. І коли його знайдено - налаштовую ScrollViewDelegateProxy з ним.
3. ScrollViewDelegateProxy тримає в собі UIScrollViewDelegateProxy - по суті, той самий UIKit делегат для скролл вʼю.
4. UIScrollViewDelegateProxy імплементує необхідні методі, і що ВАЖЛИВО - треба зберегти оригінальний делегат, який використовував SwiftUI, щоб не поламати нативні реалізації.

Таким чином, викликаємо метод у ScrollViewDelegate, він передає кложур у ScrollViewDelegateProxy, який передає його у UIScrollViewDelegateProxy, де цей кложур викликається у відповідному методі делегату.

А оскільки оригінальний UIScrollView повертати назовні - небезпечно та недоцільно, я створив ScrollContext - структура, яка тримає тільки необхідні параметри UIScrollView, накшталт contentOffset.

ВАЖЛИВО: це не prod-ready код і не заклик до дії =) Це - прототип з playground-ідеями. Тому запрошую до обговорення, ідей та пропозицій =)

------------------------------
Я часто пишу і писав різні здебільшого технічні цікавинки на моєму Linkedin. Можеш підписатися, якщо було цікаво =)
11👍9🔥4
🍎Apple планує співпрацювати з Intel для виробництва своїх процесорів серії M з використанням вдосконаленого технологічного вузла Intel 18A, починаючи з середини 2027 року, і аналітик Мін-Чі Куо прогнозує щорічні поставки 15-20 мільйонів одиниць для таких пристроїв, як MacBook Air та iPad Pro.

Цей крок Apple спрямований на диверсифікацію свого ланцюга поставок за межами TSMC. В даний час Apple покладається на TSMC для виробництва всіх своїх чіпів. Однак TSMC базується на Тайвані, що підвищує геополітичні ризики. Щоб пом’якшити ці ризики, Apple демонструє підтримку вітчизняного виробництва в США.

Після звіту акції Intel зазнали значного сплеску більш ніж на 10%. Цей сплеск може стати поворотним моментом для бізнесу Intel, якому складно. Мати Apple як клієнта потенційно може залучити інших клієнтів такого ж рівня. Однак важливо зазначити, що TSMC продовжить виробляти високопродуктивні чіпи Apple Pro, Max та Ultra.

🗣️Готуються до війни на Тайвані?

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53💯2👀2
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Різниця в швидкості роботи Foundation моделі на 15 Pro та 17 Pro

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡7🗿3👍1
👩‍💻 Apple випустила функціональність яка доступна лише на iOS 26 і лише в Японії!

Це Capability додається в налаштування проекту в Xcode і дозволяє запустити голосового помічника у вашому застосунку з бокової кнопки на iPhone.

https://developer.apple.com/documentation/bundleresources/entitlements/com.apple.developer.side-button-access.allow

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
🤨13👍3
Ihor Malovanyi
Простий спосіб витягти UIView, що обслуговує SwiftUI компоненти. Іноді (часто) SUI не здатен надати такої гнучкості, яку надає UIKit. І тоді найпоширішеним рішенням стає створити свій UIKit компонент, та прокинути його через UIViewRepresentable. Але зазвичай…
Продовжую гратися з нутрощами SwiftUI.

Оновив підхід, про який писав раніше. Тепер пошук UIKit компонента відбувається не від Window через всю ієрархію (це і справді було тупо, хоча і не навантажувало), а від компоненту, через локальне розширення пошуку. Таким чином, тепер пошук UIKit-компонента починається зсередини, та рухається по принципу зацикленого перебору superview-subviews. Перевірку геометрії залишив.

Кода хоч і не багато, але я його опенсорснув, бо на його основі планую будувати декільки опенсорс-проєктів далі.

Також суттєво оновив-спростив код ще одного мого опенсорсу: SUI-InputModifier - модифікатор, який дозволяє бахнути кастомний InputView для будь-яких SUI-View.

Але SwiftUI може робити викрутаси накшталт підміни цілого компоненту без зміни його контейнеру (як це відбуваєтсья при заміні TextField axis).

Чому це проблема? Бо finder не викликає оновлення в updateView, тому що для нього айдентика не поміняється, бо finder є частиною контейнеру, а не його контенту, хоча по факту ми втратили цілий компонент.

Обійти це просто: прописати руками id для компоненту, який так себе поводить. У якості ідентифікатора ВАРТО використати причину втрати айдентики. Для TextField це Axis.

Але кейс мінімально розповсюджений =)

------------------------------
Я часто пишу і писав різні здебільшого технічні цікавинки на моєму Linkedin. Можеш підписатися, якщо було цікаво =)

------------------------------
І годі запитувати "Чому б не використати SwiftUI Introspect" - я знаю про його існування 😂 Але вважаю недалекоглядним прийняти це за даність та почати робити ніфіга 🗿Памʼятайте, догматизм шкодить розвитку!
👍105🔥2
💡Зацініть мапу 10000 українських YouTube каналів

https://daodemo.tech/y-map

Антон Демченко створив власну онлайн-мапу, що складається з 10 000 українських каналів на різні теми — від оглядів ігор, музики чи книг до освітнього контенту, медичних проєктів та каналів на мілітарну тему.

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122
👩‍💻 Вчора пройшло 10 років з того моменту як Swift став Open Source і зʼявився swift.org 🎉

https://www.swift.org/blog/welcome/

З того часу Swift дуже змінився.

Які фічі Swift вам подобаються найбільше?

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
👩‍💻 Tiimo - застосунок року на iPhone 2025!

Apple опублікувала усіх переможців в різних категоріях.

Гра року на iPhone:
Pokemon TCG Pocket

Застосунок року на iPad:
Detail: AI Video Editor

Гра року на айпад:
Симулятор рибалки DREDGE

Застосунок року для Mac:
Essayist: Academy writing app

Гра року на Mac:
Cyberpank 2077: Ultimate

Strava забрала нагороду на Apple Watch.

Детальніше тут:
https://apps.apple.com/ca/story/id1849728503

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Протягом останніх 72 годин:

- Керівник Apple зі штучного інтелекту йде у відставку
- Head of UI Design at Apple йде до Meta
- Policy Chief йде у відставку
- Head of General Counsel йде у відставу

🗣️Щось дуже потужне відбувається. Доречі, голова дизайну, це та сама людина яка керувала переходом на iOS 7, та Liquid Glass.

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔13😁21
📱 На фоні новин про купівлю Warner Bros компанією Netflix розкажу я вам історію як я отримав офер на Staff Mobile від WB і відхилив його.

Найскладніше було пройти фільтр по резюме і попасти на саму співбесіду. Мене зареферили люди яких я сам знайшов і попросив зареферити.

Виявилося, що найм іде в три команди, дві команди зареджектили по резюме (в цих командах працювали етнічні індуси і історично вони наймали собі лише індусів 🚩), а ось третя команда сказала, що такі хлопці потрібні і стартанули усі раунди:
- скрінінг
- лайв кодінг
- інтервью по платформі iOS + Swift
- софт скіл інтервью
- систем дизайн
- знайомство з командою

Протягом півтора місяці та 8 годин інтервью я отримав оффер, всі наступні деталі вони не розголошували і прямо відповідали «дізнаєшся в офері».

👇Прислали:
- 3 дні на тиждень треба бути в офісі
- базова зарплатня на 48% нижче ринковою, якщо з усіма бонусами, яких може не бути, то на 28% нижче ринкової
- працювати в таймзоні британії

🗣️Було дивно, що всі ці пункти вони не розголошували до останнього. На мої питання, чому зп нижче ринку і навіщо я вам в офісі, якщо майже вся команда буде в Британії, відповіли, що вони лідери ринку барабашово і пропонують найкращі умови з 35 вихідними на рік.
Також потім зʼясувалося, що вакансії на Senior iOS та Staff висіли відкритими протягом 4-х останніх років. Причини я не зрозумів.
Проект був дійсно цікавий і команда класна, але…

І судячи з останніми новинами, ця команда перестане існувати в найближчому майбутньому.

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18😱10😁73🤡3🤩1
💡Питання: Чи знаєте ви, чому метод tick() повинен викликатися з await, навіть якщо його оголошення не є асинхронним?

Пояснення автора:
TimerManager is protected by MainActor (using Approchable Configuration), and timer's closure runs in a different executor, which force tick to await the call to protect its isolation to Main Thread.

BWSwift 📱 YouTube 📱 Patreon
Please open Telegram to view this post
VIEW IN TELEGRAM
💩171