Вводная статья в использование DI фреймворка Needle: ключевые отличия от других фреймворков, интеграция в приложение и часто встречающиеся проблемы.
Holy Swift
Dependency Injection with Needle - Holy Swift
Check this tutorial guide on how to use Dependency Injection with Needle in Swift. Improve your iOS code with Needle framework.
💩10❤7👍2
Залетайте сегодня в 19 часов в голосовой чат @iosgt. Мы пробуем новый формат – периодические посиделки с обсуждением разных тем про это ваше программирование. Сегодня, например, поговорим про то, какой язык программирования – самый лучший, и почему!
Записи не будет, залетайте в онлайн!
https://t.me/iosgt?videochat
Записи не будет, залетайте в онлайн!
https://t.me/iosgt?videochat
Telegram
iOS Good Talks – главный форум про айос разработку
Чат русскоязычного iOS комьюнити. Обсуждение новостей, холивары. Правила: https://t.me/iosgt/8904
Про рекламу: @tatiana_2209
Открытый чат вахты: https://t.me/+S0x2Ujxl5yHlNSqU
Про рекламу: @tatiana_2209
Открытый чат вахты: https://t.me/+S0x2Ujxl5yHlNSqU
🔥5👍2💩1
Универсальный подход к обработке ошибок и отображению их в алертах в SwiftUI, в том числе из асинхронных функций.
Daniel Saidi
A flexible way to handle async errors in SwiftUI
In this post, let’s take a look at how to handle async errors in a flexible and scalable way in SwiftUI. We’ll cover both completion bloc...
👍13💩7
Большинство из вас представляют, как работают клиентские SDK сервисов логирования крешей и перфоманса. Ничего особенно сложного – повесить хук в нужном месте, сохранить информацию локально, а при наборе полного батча отправить на сервер. Но в этом месте начинается все самое интересное! Держите статью про то, как работает процессинг данных сервиса Instabug на бэкенде.
ClickHouse
10x improved response times, cheaper to operate, and 30% storage reduction: why Instabug chose ClickHouse for APM
🔥12👍4👎2❤1
Если вы едете на оффлайн-день WWDC в этом году и готовы помочь сообществу, пишите мне в личку (@etolstoy). В прошлые годы у нас была замечательная традиция – кто-нибудь из посетителей заводил канал и стримил туда в лайве про все интересное, происходящее на конференции!
🔥43💩10😢2
Все сессии прошлогоднего Мобиуса выложили в открытый доступ!
Вот несколько кайфовых на первый взгляд:
🧱Модульность на SPM от Рената Гафарова из ВТБ
🔀Отладка многопоточных приложений от Дмитрия Куркина из Spark Networks
🏎Ускорение сетевого слоя с HTTP/3 от Андрея Чупина из ВК
Вот несколько кайфовых на первый взгляд:
🧱Модульность на SPM от Рената Гафарова из ВТБ
🔀Отладка многопоточных приложений от Дмитрия Куркина из Spark Networks
🏎Ускорение сетевого слоя с HTTP/3 от Андрея Чупина из ВК
YouTube
Mobius 2021 Moscow - YouTube
🔥19👍1
Причина использовать Interface Builder #139:
Если вы скопируете любой UI элемент из IB и вставите его в графический редактор – Figma или Photoshop, то он полностью перенесется, в том числе со всеми настройками прозрачности.
Если вы скопируете любой UI элемент из IB и вставите его в графический редактор – Figma или Photoshop, то он полностью перенесется, в том числе со всеми настройками прозрачности.
Twitter
Martin Pilkington
So yesterday I learned something that blew my mind. If you're in Interface Builder and you copy a UI element, you can paste it into an image editor like Photoshop and you get just the UI element with full transparency! 🤯
💩60🤔10😱6👍4🤯4
Сразу после установки Xcode занимает 42 гига. Держите статью с обзором нескольких способов по освобождению этого места. Самым полезным выглядит приложение DevCleaner, которое специализируется ровно на этой задаче. Попробуйте и расскажите, сколько места сэкономили!
Medium
Squeezing Xcode for hard drive space
When your mac’s hard drive is full, as an Xcode developer, what can you do?
👍21
Уже в июне нас ожидает новая волна хайпа по SwiftUI. Apple со сцены будут рассказывать про amazing developer experience и stunning UI, а вдогонку за ними курсы по вкатыванию в профессию начнут закапывать UIKit.
Но не забывайте, что SwiftUI еще довольно далек от того, чтобы полностью заменить UIKit и считаться production ready. Автор статьи приводит несколько причин:
🛁В Xcode при работе со SwiftUI течет память, а Apple сильно тянет с фиксами
🍏Apple не спешат адоптить фреймворк в своих приложениях, кроме самых простых
🗺Нет нормальных решений для навигации и диплинков
🆕Несмотря на поддержку SwiftUI в iOS 14, много жизненно важных изменений докатилось только в iOS 15. Какой процент аудитории сидит на ней?
Но не забывайте, что SwiftUI еще довольно далек от того, чтобы полностью заменить UIKit и считаться production ready. Автор статьи приводит несколько причин:
🛁В Xcode при работе со SwiftUI течет память, а Apple сильно тянет с фиксами
🍏Apple не спешат адоптить фреймворк в своих приложениях, кроме самых простых
🗺Нет нормальных решений для навигации и диплинков
🆕Несмотря на поддержку SwiftUI в iOS 14, много жизненно важных изменений докатилось только в iOS 15. Какой процент аудитории сидит на ней?
Medium
SwiftUI Still Isn’t Production-Ready
Not for the reasons you might think!
💩27👍13😁4🔥2🤔2
GitHub репозиторий с реализацией 25 самых популярных паттернов на Swift
🎬Поведенческие: Strategy, Visitor, Observer, Memento
🐣Порождающие: Builder, Factory, Monostate, Prototype
🌉Структурные: Bridge, Decorator, Flyweight, Facade
🎬Поведенческие: Strategy, Visitor, Observer, Memento
🐣Порождающие: Builder, Factory, Monostate, Prototype
🌉Структурные: Bridge, Decorator, Flyweight, Facade
GitHub
GitHub - ochococo/Design-Patterns-In-Swift: 📖 Design Patterns implemented in Swift 5.0
📖 Design Patterns implemented in Swift 5.0. Contribute to ochococo/Design-Patterns-In-Swift development by creating an account on GitHub.
👍57💩7🤮5🔥3
Бесплатные книги про Swift Strings, Numbers и Codable от авторов NSHipster
Mattt – ведущий NSHipster и бывший сотрудник Apple несколько лет назад начал писать учебники по Swift под брендом FlightSchool. По отзывам книги – топ. А теперь они доступны всем в электронном виде бесплатно!
Mattt – ведущий NSHipster и бывший сотрудник Apple несколько лет назад начал писать учебники по Swift под брендом FlightSchool. По отзывам книги – топ. А теперь они доступны всем в электронном виде бесплатно!
👍84🔥19❤1
Помните, как в Telegram реализована визуализация голосовых сообщений в виде гистограммы? Держите отличную статью от ребят из Surf, которые столкнулись с похожей задачей:
📢Звук на физическом уровне
⚡️Аналогово-цифровые преобразования
🔊Получение и использование буферизованных данных в приложении
🌊Отрисовка звуковой волны
📚Куча дополнительных ссылок по теме
📢Звук на физическом уровне
⚡️Аналогово-цифровые преобразования
🔊Получение и использование буферизованных данных в приложении
🌊Отрисовка звуковой волны
📚Куча дополнительных ссылок по теме
Хабр
Как нативно визуализировать голос в iOS
Представьте, что у вас в приложении есть чат. В один прекрасный день на встрече отдела product manager приносит весть, что пора бы в чат добавить поддержку голосовых сообщений. «Да легко!» —...
👍39💩12🔥5
Proxyman – прокси-клиент, который использует около 25% всех iOS разработчиков, и который вовсю наступает на пятки Charles. Он нативный, быстрый и более логично организованный, чем главный конкурент.
Если вы решили с ним разобраться, вот хорошая статья с разбором его конфигурации и использования базовой функциональности.
Если вы решили с ним разобраться, вот хорошая статья с разбором его конфигурации и использования базовой функциональности.
Donny Wals
Debugging Network Traffic With Proxyman – Donny Wals
Networking is an essential part of modern iOS applications. Most apps I’ve worked have some kind of networking component. Sometimes the networking layer involves user authentication…
👍42❤3💩2
В понедельник пройдет новый воркшоп от Николая Балакланова, на котором будет разбираться, как использовать Kotlin Multiplatform для шаринга кода (а его использует аж 8% подписчиков канала по недавнему опросу).
🛠Интеграция в существующий iOS проект
🤝Вынос common логики в общий фреймворк
📲Реализация платформенно-специфичной логики в нативном коде
Регистрируйтесь и залетайте: 23 мая в 20:00
🛠Интеграция в существующий iOS проект
🤝Вынос common логики в общий фреймворк
📲Реализация платформенно-специфичной логики в нативном коде
Регистрируйтесь и залетайте: 23 мая в 20:00
💩24👍5🤮2😁1
История поиска сложного бага при разработке драйвера для Apple GPU. В комплекте идет объяснение принципов работы рендеринга и разных его оптимизаций.
🔥14💩2
SwiftUI, так же, как и UIKit, работает поверх render loop’а. В большинстве случаев нам об этом практически ничего не надо знать – все надежно спрятано под капотом. Но иногда понимать его устройство полезно. Держите отличный разбор того, как SwiftUI работает с render loop:
🤔Примеры случаев, в которых вам пригодится это знание
🛠Какие компоненты железа используются при рендеринге
🔄Устройство run loop в iOS
🎨CoreAnimation и render server
👆Обработка тачей
🤔Примеры случаев, в которых вам пригодится это знание
🛠Какие компоненты железа используются при рендеринге
🔄Устройство run loop в iOS
🎨CoreAnimation и render server
👆Обработка тачей
🔥35💩9👍3👏1
Mobile Party в Ozon Tech для iOS разработчиков
Ozon Tech ищет мобильных Middle- и Senior-разработчиков. Поэтому ребята 4 июня устраивают Mobile Need For Tech — событие, совмещающее финальные собеседования и офлайн-вечеринку, где вы сможете неформально пообщаться с разработчиками Ozon Tech.
Вас ждёт насыщенная программа: экскурсия по офису, NFT-выставка и фуршет с приглашённым диджеем.
Чтобы туда попасть, нужно пройти несколько этапов:
1. Подать заявку: https://bit.ly/39rVaZP
2. Успешно пройти предварительное интервью
3. Прийти на финальное собеседование 4 июня
Если живёте не в Москве, Ozon Tech оплатит потенциальным кандидатам поездку на мероприятие.
Иду на Mobile Party
Ozon Tech ищет мобильных Middle- и Senior-разработчиков. Поэтому ребята 4 июня устраивают Mobile Need For Tech — событие, совмещающее финальные собеседования и офлайн-вечеринку, где вы сможете неформально пообщаться с разработчиками Ozon Tech.
Вас ждёт насыщенная программа: экскурсия по офису, NFT-выставка и фуршет с приглашённым диджеем.
Чтобы туда попасть, нужно пройти несколько этапов:
1. Подать заявку: https://bit.ly/39rVaZP
2. Успешно пройти предварительное интервью
3. Прийти на финальное собеседование 4 июня
Если живёте не в Москве, Ozon Tech оплатит потенциальным кандидатам поездку на мероприятие.
Иду на Mobile Party
💩37👍21👎1👏1🎉1
Переход к async/await в Swift влечет за собой и пересмотр того, как мы подходим к обработке ошибок. Вместо передачи Result в коллбэке мы можем использовать throw-catch.
В статье разбирается несколько подходов к тому, как работать с ошибками в новой парадигме.
В статье разбирается несколько подходов к тому, как работать с ошибками в новой парадигме.
Swift with Majid
Modeling errors in Swift
The new Swift Concurrency feature doesn’t only bring new opportunities for writing safer and more maintainable async code but also changes the way we handle errors. I didn’t use throw-catch keywords too much in my legacy code because usually, I had a completion…
💩17👍11
SwiftUI меняется очень быстро. Для реализации одной и той же логики в SwiftUI версий 1, 2 и 3 часто нужно писать разный код. В статье рассматривается классный подход, который позволит не забыть удалить устаревшие места в вашей кодовой базе, когда вы решите бросить поддержку старых версий SwiftUI или любых других фреймворков.
Комбинируйте
Комбинируйте
#if
с условиями, объявленными в Build Settings, например: #if TARGETING_SWIFTUI_2 || TARGETING_SWIFTUI_1
, и компилятор напомнит вам удалить ставшие ненужными воркэраунды при обновлении версии фреймворка.Dave DeLong
Conditional Compilation, Part 4: Deployment Targets
Recently I was thinking about the idea I’d posted on simplifying backwards compatibility in Swift, and was also thinking about some of the principles of kindness that I wrote about in my article on API design.
💩28🔥16👍2