Мобильный кот
2.72K subscribers
88 photos
3 videos
2 files
87 links
Все, что считаю важным про жизнь мобильного разработчика

Шкаф с материалами
https://t.me/cat_with_mobile_cabinet
Download Telegram
🥳 Как же давно этого ждал, больше никаких пятиуровневых тернарников☺️ и дурацкий конструкций с отложенной инициализацией значений для параметров

https://github.com/apple/swift-evolution/blob/main/proposals/0380-if-switch-expressions.md

В Swift 5.9 if и switch теперь официально станут выражениями, а значит мы сможем писать, как в Котлине

let result = if …
let result = switch …
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩 Отличные новости с самого утра
Apple частично открыла исходный код Foundation, разместив его на своем github

Фреймворк постепенно переписывают на Swift, и при желании каждый желающий может внести свой вклад.
Please open Telegram to view this post
VIEW IN TELEGRAM
😭 Баг или фича

Неоднозначное поведение, которое воспроизводится в Xcode 14.2, и вероятно/возможно/сомнительно не воспроизводится в Xcode 14.3

Показаны три примера, в каждом из них внутри замыкания происходит обращение к параметру value. Интересно, что ошибку показывает только в первом случае, хотя по логике должен во всех трех.

Теперь чуть подробнее.

1⃣ Пример. Обычная структура с одним аргументом-замыканием в инициализаторе. if let value обращается к локальному для функции value, которое не является опционалом. Все окей, все логично, показана ошибка.

2⃣ Пример. Структура из SwiftUI (из-за чего собственно и произошел затык). HStack с замыканием, но в этом случае ошибки нет, так как value обращается не к локальному для функции параметру, а к опциональному value - свойству самого объекта SomeStruct.

Почему? я хз)

3⃣ Пример. Пришла идея, что проблема может быть связана с использованием resultBuilder, так как замыкание, передаваемое в HStack - это ViewBuilder, который является resultBuilder. Попробовал воспроизвести - воспроизводится. Причина в этом.

Почему? хз) Но интересно.

🥂Ниже файл с проектом.
Please open Telegram to view this post
VIEW IN TELEGRAM
В недавнем обновлении Telegram анонсировал шаринг папок, и я с радостью готов поделиться своим списком ресурсов, которые читаю сам:

🥂 Лучшие ресуры по iOS-разработке.

Каждый из этих каналов и чатов вносит свой импакт в продвижение и популяризацию iOS, и здесь вы можете найти ответы на свои вопросы или узнать что-то новое, прийти на оффлайн-встречу (привет КофеИКод) или просто весело и задорно пообщаться на темы, близкие к IT.

UPD. Если ссылка не открывается, то обновите Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
😂 Есть знатоки?

Попробуйте убрать ошибку.

А без классического Type Eraser и какого-нибудь AnyFoo, AnyHashable и тд?
Please open Telegram to view this post
VIEW IN TELEGRAM
📕 LLVM: Инфраструктура для разработки компилятора

Рано или поздно вы можете захотеть узнать несколько больше о том, как же работает Swift. Для этого конечно же можно начать изучать исходный код языка, а можно пойти дальше и вникнуть в то, как работает вся система компиляции исходного кода.

Компилятор Swift основан на проекте LLVM. Это целая инфраструктура программных решений, на ее основе существуют решения для C, C++, Objective-C, JavaScript, Kotlin и многих других языков.

В этой книге вы узнаете, как именно работает LLVM, причем тут Clang, как все это установить на свой компьютер. Книга полна полезной информации и довольно интересных исследований в области расширения возможностей LLVM.
Mobius 2023

Если вы на конфе, то заглядывайте поздороваться на стенд VK. Тут все, Coffee&Code, SwiftBook, Стас, Дюша☺️
Forwarded from Coffee&Code
VK Coffee&Code

🏙Москва
📆5 июня (Понедельник)
19:30
📱iOS

Место:
VK
Адрес: Ленинградский проспект, 39с79, БЦ SkyLight

Встречаемся в офисе компании VK для просмотра WWDC. Смотрим конференцию, обсуждаем новые технологии и отлично проводим время.

Необходима предварительная регистрация

VK — это более 200 технологичных проектов, больше 10 000 сотрудников и миллион возможностей проявить себя.
💻 О многомодульных приложениях

Делить проект на модули - довольно популярный подход при разработке приложений, особенно когда MVP выпущен, а приложение начинает неконтролируемого обрастать межмодульными зависимостями. Сперва модули выделяют в отдельные классы/структуры, реализуя взаимодействия через интерфейсы, на втором этапе часть модулей переезжают в отдельные таргеты, и используются в составе проекта, как фреймворки. И т.д.

Все это не просто решает многие проблемы, но и создает новые. К примеру зависимость модулей друг от друга создает потенциальные проблемы в скорости компиляции проекта, когда один модуль не может быть скомпилирован, пока не скомпилирован другой. И это лишь вершина айсберга.

Довольно интересный опыт есть у ребят в СберЗдоровье, их лид Кирилл Смирнов делится им в своих статьях (первая, вторая) на Хабре. Советую к прочтению.

Кстати, года три назад я выкладывал пост про ортогональность ваших проектов, и как наследование способно сделать вам плохо.
Друзья, рады объявить тайминг нашего Mobile-Митапа Дзен х Coffee&Code, который пройдет 15 июля

16:00 - сбор гостей
17:00 - «Что такое Дзен для IT?» (Алексей Федотов, Дзен)
17:15 - Паблик-ток «Разработка и блоггинг - как совмещать и зачем?» с Алексеем Гладковым (Mobile Developer) и Кириллом Розовым (Android Broadcast)
19:00 - «Технический долг: что это такое и как с ним работать» (Владислав Марков, iOS Techlead в Дзене)
19:30 - «Как корутины входят в жизнь разработчиков?» (Василий Усов - iOS Разработчик в VK , автор книг по Swift, создатель телеграм канала Dev Channel)
20:00 - нетворкинг, свободное общение
21:00 - завершение мероприятия

Количество мест ограничено, регистрация - по ссылке
Всех ждем!
Итоги мероприятия Дзена:
- познакомился с Иваном Воробьем (https://t.me/sparrowcode)
- рассказал про корутины в Swift, Kotlin, Lua, Go и C#

Отмечаем Июль, как успешный месяц 🍻
С осторожностью совмещайте новый Concurrency и старую асинхронность.

В данном случае показан пример, что использование коллбеков вместо async/await может привести к потере @MainActor.

Вроде бы Controller наследован от UIViewController, который @MainActor. Да и метод для надежности помечен, как @MainActor. Но при передаче в качестве коллбека @MainActor отбрасывается и функция выполняется на произвольном потоке (может на мэйне, а может и не на мэйне, смотря что свободно).
Что будет выведено в консоль?
Anonymous Quiz
16%
1 2 3 4
49%
1 2 3
19%
1 2 4
16%
1 2
Forwarded from iOS Такой 🍏
🔥 На канале iOS Такой вышел новый выпуск командной викторины, посвященный теме Apple и разработке

В этом выпуске приняли участие две команды, которые соревновались друг с другом, чтобы показать свои знания и умения

Викторина была не только увлекательной, но и информативной. Участники отвечали на вопросы, связанные с продукцией Apple, и делились интересными фактами о разработке приложений и программ для iOS

Каждая команда демонстрировала свою экспертность в мире Apple, стараясь ответить на вопросы как можно точнее и быстрее. Атмосфера в студии была наполнена энергией и соперничеством


Если вы хотите провести время с пользой, узнать что-то новое о компании Apple и разработке для iOS, обязательно посмотрите этот выпуск на канале iOS Такой

#digest #викторина
С Женей Елчевым на Мобиусе:) Легендой iOS разработки. Все, кто завтра в СПБ, ждем на стенде ВК😝