What’s new in SwiftUI
На текущем проекте у меня много зумерских технологий, поэтому мне больше интересен SwiftUI. Но об этом позже.
Сейчас же вкратце обсудим че там придумали разрабы:
- новые дизайн элементы (плюс боль в жопе дизайнерам и нам)
- куча улучшений перфоманса. Наконец-то. Но на практике посмотрим. Как раз хочу сделать сравнение работы сложного лайаута UIKit vs SwiftUI на примере чата.
- макро @Animatable для удобства анимаций
- Улучшение WebView для SwiftUI (смерть BDUI?)
- 3D charts
Кстати, блин, какие красивы разрабы работают в Apple. Наверное на входе там какой фейс-контроль 😂 . ИТшка перестала быть только местом гиков, теперь мы — нормисы.
На текущем проекте у меня много зумерских технологий, поэтому мне больше интересен SwiftUI. Но об этом позже.
Сейчас же вкратце обсудим че там придумали разрабы:
- новые дизайн элементы (плюс боль в жопе дизайнерам и нам)
- куча улучшений перфоманса. Наконец-то. Но на практике посмотрим. Как раз хочу сделать сравнение работы сложного лайаута UIKit vs SwiftUI на примере чата.
- макро @Animatable для удобства анимаций
- Улучшение WebView для SwiftUI (смерть BDUI?)
- 3D charts
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Последние 2 недели я активно пишу на зумерских технологиях SwiftUI & Swift Concurrency. Благо проект с хорошей минимальной версией. Но я все равно прошел все стадии от отрицания до принятия.
Могу сказать, что теперь мне даже это все нравится. Читаю и изучаю много материала, поэтому готовлю всякие интересные контенты.
Это не просто пара новых экранов, а новые разделы с разной связанной друг с другом логикой. Некоторые экраны мы решили делать на SwiftUI. Новым амбициям —новые технологии
Я никогда не писал на них до этого в продакшене крупных компаний. Максимум пару виджетов. А вот полноценные флоу и экраны, включая архитектуру почти на всех слоях - впервые.
После активной практики основательно сделать большую базу разных материалов для изучения SUI и немного порефакторил старое. Составил новый пулл вопросов для закрепления, которые помогут подойти к изучению SUI более основательно.
Впервую очередь делал это для себя. Поэтому сорян если что-то будет может непонятно. Открыт к критике.
Получить доступ по скидкам
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS мок-интервью
Ого, наконец на западе начали выпускать хорошие мок-интервью. С лайфкодингом и практикой. А не просто "топ вопросов", здесь прям часовые секции.
Еще интересны целые платформы для самообучения. Не просто курсы и подборки задач, а структурированные сборники практических задач а-ля литкод. Надо будет хорошо их поизучать и поделиться с вами контентом.
Ого, наконец на западе начали выпускать хорошие мок-интервью. С лайфкодингом и практикой. А не просто "топ вопросов", здесь прям часовые секции.
Еще интересны целые платформы для самообучения. Не просто курсы и подборки задач, а структурированные сборники практических задач а-ля литкод. Надо будет хорошо их поизучать и поделиться с вами контентом.
YouTube
iOS Interview Questions and Answers (with Sample Code)
Top 10 most asked interview questions for an iOS Developer role, in a form of a mock interview.
The code from the video: https://github.com/richardtop/ios_interview
Follow Richard on social media:
https://www.youtube.com/@richardtopchii
https://github…
The code from the video: https://github.com/richardtop/ios_interview
Follow Richard on social media:
https://www.youtube.com/@richardtopchii
https://github…
This media is not supported in your browser
VIEW IN TELEGRAM
P.S. только с опытом понял, что написание своих велосипедов чуть ли не главный драйвер развития инженеров в компании. Не рофл
Подборка воркшопов, интервью и мок-собесов
В прошлом году мы начали серию видосов, где собирали экспертизу у лучших экспертов индустрии. У кого есть что сказать и чем поделиться. Так набралось > 10 выпусков.
Хочется увеличить качество и кол-во. Если у тебя есть крутые темы об управлении, карьере, техничке, то пиши. Лучшие из них мы стараемся делать публичными (при твоем согласии).
Если ты неуверен то к подготовке и скидываю материалы, даю фидбэк что улучшить. Это норм тренажер и для тебя перед страхом публичных выступлений.
Если у тебя есть что сказать и в целом ты хочешь качать свое ВИЗИБИЛИТИ пиши @lvbond
В прошлом году мы начали серию видосов, где собирали экспертизу у лучших экспертов индустрии. У кого есть что сказать и чем поделиться. Так набралось > 10 выпусков.
Хочется увеличить качество и кол-во. Если у тебя есть крутые темы об управлении, карьере, техничке, то пиши. Лучшие из них мы стараемся делать публичными (при твоем согласии).
Если ты неуверен то к подготовке и скидываю материалы, даю фидбэк что улучшить. Это норм тренажер и для тебя перед страхом публичных выступлений.
Если у тебя есть что сказать и в целом ты хочешь качать свое ВИЗИБИЛИТИ пиши @lvbond
Блин забавно как в сети сейчас идет радость «ого в Xcode есть чатгпт и он автоматом генерирует доку, тесты и код». Как-то наивно радуются возможностям того, что было в курсоре пару лет назад. Эйфория чуть запоздала.
Но при этом эти же авторы критиковали LLM и аи. Такое чувство, что критика была тупо потому, что этим не пользовались или не понимали. А сейчас появился повод и стена скепсиса чуть обвалилась.
Но при этом эти же авторы критиковали LLM и аи. Такое чувство, что критика была тупо потому, что этим не пользовались или не понимали. А сейчас появился повод и стена скепсиса чуть обвалилась.
Docker от Apple
Вот уж точно то, о чем надо было писать громче всего. Ни о стекле, ни о чатгпт плагине к Xcode. А о своем докере от Эпл.
Давайте вспомним что это такое:
- Приложение запускается одинаково везде: на вашем компьютере, на сервере или в облаке
- Контейнеры используют одно ядро операционной системы, что делает их легче и быстрее, чем виртуальные машины
- Они обеспечивают изоляцию: несколько контейнеров могут работать независимо, без риска вмешательства друг в друга
Что это значит?
- Фреймворк создаёт отдельную лёгковесную виртуалку для каждого контейнера, обеспечивая высокий уровень изоляции, минимизируя attack surface и обещая время запуска "менее секунды"
- CLI-инструмент Container, написанный на Swift и с открытым исходным кодом, позволяет создавать образы из Dockerfile, запускать контейнеры с настройкой памяти, CPU, сетевых папок и поддержкой arm64 и amd64
Почему всё это важно?
- Например раньше мы могли запускать приложение в симуляторах. А теперь можно делать как это делают разрабы из ФААНГОВ. Собирать апку, ресурсы или модули на удаленном сервере и тянуть АПК в симулятор или в мак.
- Окружение будет стабильным на всех платформах
- В теории должно быть легче поддерживать CI/CD. Экономя сотни часов разработки
Посмотрим как это будет на практике, но выглядит многообещающе
Вот уж точно то, о чем надо было писать громче всего. Ни о стекле, ни о чатгпт плагине к Xcode. А о своем докере от Эпл.
Давайте вспомним что это такое:
Контейнеризация — это метод изоляции приложений на одном сервере, который позволяет запускать их в отдельной «упаковке» вместе со всем необходимым — кодом, библиотеками и настройками. Эта упаковка называется контейнером.
- Приложение запускается одинаково везде: на вашем компьютере, на сервере или в облаке
- Контейнеры используют одно ядро операционной системы, что делает их легче и быстрее, чем виртуальные машины
- Они обеспечивают изоляцию: несколько контейнеров могут работать независимо, без риска вмешательства друг в друга
Что это значит?
- Фреймворк создаёт отдельную лёгковесную виртуалку для каждого контейнера, обеспечивая высокий уровень изоляции, минимизируя attack surface и обещая время запуска "менее секунды"
- CLI-инструмент Container, написанный на Swift и с открытым исходным кодом, позволяет создавать образы из Dockerfile, запускать контейнеры с настройкой памяти, CPU, сетевых папок и поддержкой arm64 и amd64
Почему всё это важно?
- Например раньше мы могли запускать приложение в симуляторах. А теперь можно делать как это делают разрабы из ФААНГОВ. Собирать апку, ресурсы или модули на удаленном сервере и тянуть АПК в симулятор или в мак.
- Окружение будет стабильным на всех платформах
- В теории должно быть легче поддерживать CI/CD. Экономя сотни часов разработки
Посмотрим как это будет на практике, но выглядит многообещающе
Apple Developer
Meet Containerization - WWDC25 - Videos - Apple Developer
Meet Containerization, an open source project written in Swift to create and run Linux containers on your Mac. Learn how Containerization...
iOS Makes Me Hate
Docker от Apple Вот уж точно то, о чем надо было писать громче всего. Ни о стекле, ни о чатгпт плагине к Xcode. А о своем докере от Эпл. Давайте вспомним что это такое: Контейнеризация — это метод изоляции приложений на одном сервере, который позволяет…
Забавно, как некоторые авторы пишут что это не полезно iOS разрабам. По таким постам сразу виден реальный опыт и масштаб выполненных задач
Когда это вам полезно:
- поднимать мок-серверы для тестов, ресурсов
- тестировать сложные флоу с авторизацией, подписками, оплатой и безопасностью приложения
- вы занимаетесь utility модулями почти без ui
- у вас есть модули со сложными расчетами или проверками на сервере
- тестирование апи и контрактов
- можно запускать тесты и легко делать фейковые данные
- легко переключаешь между dev/test окружением
- меньше флаки тестов (очень много жрет на этом время)
- быстрее и удобнее запуск раннеров для проверок линтеров и тп
- ускоряется и упрощается кодогенерация
- у вас много зависимостей от чужих сервисов и вам это как-то нужно проксировать
- напишет мок-сервера (да да, таким занимаются сами иос инженеры)
- запуск статических анализаторов кода
- запуск кроссплатформенных модулей
- у вас есть всякие метрики качества кода выполняемые на сервере
- список обновляется
Кидайте еще свои примеры. Это я еще накидал навскидку. На macOS даже докер без приседаний не запустишь, а тут наконец все это будет легче.
Если вам говорят что это не для иос разрабов, то возможно у вас разные задачи на проекте. Или эти люди просто занимаются только UI и покраской кнопок
Software engineer это не тот, кто красиво сверстает кнопку и добавит стеклянную анимацию, а тот кто самостоятельно и без поддержки сделает любую задачу.
Когда это вам полезно:
- поднимать мок-серверы для тестов, ресурсов
- тестировать сложные флоу с авторизацией, подписками, оплатой и безопасностью приложения
- вы занимаетесь utility модулями почти без ui
- у вас есть модули со сложными расчетами или проверками на сервере
- тестирование апи и контрактов
- можно запускать тесты и легко делать фейковые данные
- легко переключаешь между dev/test окружением
- меньше флаки тестов (очень много жрет на этом время)
- быстрее и удобнее запуск раннеров для проверок линтеров и тп
- ускоряется и упрощается кодогенерация
- у вас много зависимостей от чужих сервисов и вам это как-то нужно проксировать
- напишет мок-сервера (да да, таким занимаются сами иос инженеры)
- запуск статических анализаторов кода
- запуск кроссплатформенных модулей
- у вас есть всякие метрики качества кода выполняемые на сервере
- список обновляется
Кидайте еще свои примеры. Это я еще накидал навскидку. На macOS даже докер без приседаний не запустишь, а тут наконец все это будет легче.
Если вам говорят что это не для иос разрабов, то возможно у вас разные задачи на проекте. Или эти люди просто занимаются только UI и покраской кнопок
Software engineer это не тот, кто красиво сверстает кнопку и добавит стеклянную анимацию, а тот кто самостоятельно и без поддержки сделает любую задачу.
Немного про виртуалки macOS и CI/CD
Еще одно заблуждение, которое обитает вокруг темы с виртуализацией. Это то, macOS НЕЛЬЗЯ накатать виртуально. Только реальный мак-мини или Claude.
Кто-то говорит, что нельзя ставить контейнеры macOS и можно только Linux. Официально это было правдой когда-то. Но если вспомнить, что есть реальность и практика, а не только чужие твиты и статьи, то легко узнать о неофициальных методах реальной жизни в условиях ограничений и выпилов из сторов… мы с вами живем в среде не благодаря, а вопреки. Выживая и адаптируясь.
1. Хакинтош. Тут все ясно и понятно. Его даже легко наказывают на какой-нибудь лично собранный компьютер.
Знаю немало разрабов кто сидит на хакинтоше и почти не страдает.
2. Образы для докера.
Образ №2
Так если все таки это можно, пусть и с условностями, так почему же об этом мало пишут?
Ну во-первых писать от имени компании как заменили на пиратские версии не очень хорошо.
Во-вторых компаниям проще все же купить миник за пол оклада одного разраба и не терять в перфомансе. (При наличии нужного объема поставок)
Нет официальных поддержек. Но это не так страшно в снг мире, где мягко скажем не до официальных поддержек.
Я НЕ РЕКОМЕНДУЮ УСТАНАВЛИВАТЬ ПИРАТСКИЕ ВЕРСИИ И НЕ ПРОПАГАНДИРУЮ ЭТО…
Но можно ли накатить макос на виртуалку и сократить кучу бабок на покупке реальных устройств в условиях дефицита бюджета и поставок с наценками? Официально нет. Но неофициально да….
Хотя, если бы мы не нарушали запреты то не сделали бы BDUI, кросплатформу, сторонние сторы и платежи. А эпл бы не пришлось адаптироваться под хотелки обычных работяг...
UPD: кстати нашел форум на редитте и в 2025 году хакинтошом стало пользоваться еще проще
Еще одно заблуждение, которое обитает вокруг темы с виртуализацией. Это то, macOS НЕЛЬЗЯ накатать виртуально. Только реальный мак-мини или Claude.
Кто-то говорит, что нельзя ставить контейнеры macOS и можно только Linux. Официально это было правдой когда-то. Но если вспомнить, что есть реальность и практика, а не только чужие твиты и статьи, то легко узнать о неофициальных методах реальной жизни в условиях ограничений и выпилов из сторов… мы с вами живем в среде не благодаря, а вопреки. Выживая и адаптируясь.
1. Хакинтош. Тут все ясно и понятно. Его даже легко наказывают на какой-нибудь лично собранный компьютер.
Знаю немало разрабов кто сидит на хакинтоше и почти не страдает.
2. Образы для докера.
Образ №2
Так если все таки это можно, пусть и с условностями, так почему же об этом мало пишут?
Ну во-первых писать от имени компании как заменили на пиратские версии не очень хорошо.
Во-вторых компаниям проще все же купить миник за пол оклада одного разраба и не терять в перфомансе. (При наличии нужного объема поставок)
Нет официальных поддержек. Но это не так страшно в снг мире, где мягко скажем не до официальных поддержек.
Я НЕ РЕКОМЕНДУЮ УСТАНАВЛИВАТЬ ПИРАТСКИЕ ВЕРСИИ И НЕ ПРОПАГАНДИРУЮ ЭТО…
Но можно ли накатить макос на виртуалку и сократить кучу бабок на покупке реальных устройств в условиях дефицита бюджета и поставок с наценками? Официально нет. Но неофициально да….
Хотя, если бы мы не нарушали запреты то не сделали бы BDUI, кросплатформу, сторонние сторы и платежи. А эпл бы не пришлось адаптироваться под хотелки обычных работяг...
UPD: кстати нашел форум на редитте и в 2025 году хакинтошом стало пользоваться еще проще
Reddit
From the hackintosh community on Reddit
Explore this post and more from the hackintosh community
Tart + macOS VM
Ну и заключительный пост. Многие считают, что хакинтошу осталось немного. Я, если честно, с этим не согласен. Ну просто невозможно сделать абсолютно защищенное устройство в которое требуют вставить бэкдоры на уровне гос-ва (читай интервью Дурова). Но уже есть план Б куда если че можно переметнуться.
Уже есть легальные (?) инструменты по запуску macOS на виртуалках без потери перфоманса. В комментах поста уже написали, что используют Tart.
Он построен на официальной технологии от Apple — Virtualization.Framework. Это значит:
- Он не “хакает” систему, а использует легальный и стабильный способ виртуализации, как VirtualBox или Parallels.
- Работает только на macOS с чипами Apple Silicon.
Короче, ты запускаешь macOS внутри macOS. Пример: у тебя есть MacBook с macOS Sonoma, и ты запускаешь в нём виртуалку с macOS Ventura — как будто второй Mac внутри твоего первого. Какие метрики это поможет улучшить и создаст бизнес импакт — ограничивает только ваша фантазия.
Топ? Топ
Теперь можно оценить всю мощь новости со своим докером от Apple.
Ну и заключительный пост. Многие считают, что хакинтошу осталось немного. Я, если честно, с этим не согласен. Ну просто невозможно сделать абсолютно защищенное устройство в которое требуют вставить бэкдоры на уровне гос-ва (читай интервью Дурова). Но уже есть план Б куда если че можно переметнуться.
Уже есть легальные (?) инструменты по запуску macOS на виртуалках без потери перфоманса. В комментах поста уже написали, что используют Tart.
Он построен на официальной технологии от Apple — Virtualization.Framework. Это значит:
- Он не “хакает” систему, а использует легальный и стабильный способ виртуализации, как VirtualBox или Parallels.
- Работает только на macOS с чипами Apple Silicon.
Короче, ты запускаешь macOS внутри macOS. Пример: у тебя есть MacBook с macOS Sonoma, и ты запускаешь в нём виртуалку с macOS Ventura — как будто второй Mac внутри твоего первого. Какие метрики это поможет улучшить и создаст бизнес импакт — ограничивает только ваша фантазия.
Топ? Топ
Теперь можно оценить всю мощь новости со своим докером от Apple.
tart.run
Toolset to build, run and manage macOS and Linux VMs
Native performance. Remote storage for Virtual Machines. Many integrations including GitHub, GitLab and more.
Вы переоцениваете UI-архитектуры: Почему архитектуры UI временные и не так важны, как кажется
Разрабатывая приложения многие разрабы начинают с выбора архитектур UI слоя. Это ошибка.
Иногда перечитываю не полностью книги, а отдельные главы. Решил перечитать главу "UI Principle 2: UI architectures come and go" книги "Mobile System Design". Мне очень нравятся мысли и подходы книги и некоторые из них лучше переваривать порциями.
Например, я разделяю мнения, что к UI нужно подходить в конце. Сначала нужно уделить времени другим вещам. Даже автор книги подшучивает что про UI начали говорить только в середине книги.
Автор говорит:
1️⃣ Первый принцип книги говорит: Откладывай реализацию UI
2️⃣ Второй принцип говорит: UI-архитектуры приходят и уходят
На этом этапе ты можешь задуматься:
“Какую архитектуру выбрать?”
- UIKit или SwiftUI?
- XML или Jetpack Compose?
- MVVM, MVC, MVI, Redux, TCA или вообще что-то своё?
Все эти аббревиатуры часто просто вариации одного и того же. Главное в разработке — не усложнять. Не нужна архитектура из шести букв, чтобы просто показать аватарку пользователя. Используй "модную" архитектуру только если простая не справляется.
Главная суть: Архитектуры как способ договориться внутри команды. Нет критической разницы если одна команда использует в своем модуле MVP, а другая VIPER. Ведь по сути все это одно и то же.
Автор ругает сторонние архитектурные фреймворки за частые изменения, сложность изучения новичкам, миграции в будущем (привет, TCA).
Люди пытаются проблемы процессов команды решить с помощью универсального шаблона. А ведь проблема не в архитектурах. Чаще всего любая архитектура подходит вашему проекту, просто нужно налаживать процессы:
- улучшить документацию
- добавлять примеры
- улучшать онбординг
- убирать плохие практики кодревью
Не нужно переживать, что выбрал "неправильную" архитектуру. Тренды постоянно меняются. Главное правило любой хорошей архитектуры — не усложнять и держать бизнес-логику вне UI.
Не стоит также переживать, что архитектура отличается по приложению и есть старые версии. Это нормально.
Это нормально, когда приложение состоит из разных архитектур, каждая из которых появилась в разное время. Но у них есть общее: Бизнес-логика меняется реже, чем UI.
Разрабатывая приложения многие разрабы начинают с выбора архитектур UI слоя. Это ошибка.
Иногда перечитываю не полностью книги, а отдельные главы. Решил перечитать главу "UI Principle 2: UI architectures come and go" книги "Mobile System Design". Мне очень нравятся мысли и подходы книги и некоторые из них лучше переваривать порциями.
Например, я разделяю мнения, что к UI нужно подходить в конце. Сначала нужно уделить времени другим вещам. Даже автор книги подшучивает что про UI начали говорить только в середине книги.
Автор говорит:
Обычно под словом “архитектура” в мобильной разработке имеют в виду UI-архитектуру, а не архитектуру бизнес-логики (например, API, календарь и т.д.). Но если правильно спроектировать фичу, эти вопросы становятся менее важными. Мы научимся разделять UI и бизнес-логику так, чтобы можно было менять архитектуру без боли.
1️⃣ Первый принцип книги говорит: Откладывай реализацию UI
2️⃣ Второй принцип говорит: UI-архитектуры приходят и уходят
На этом этапе ты можешь задуматься:
“Какую архитектуру выбрать?”
- UIKit или SwiftUI?
- XML или Jetpack Compose?
- MVVM, MVC, MVI, Redux, TCA или вообще что-то своё?
Все эти аббревиатуры часто просто вариации одного и того же. Главное в разработке — не усложнять. Не нужна архитектура из шести букв, чтобы просто показать аватарку пользователя. Используй "модную" архитектуру только если простая не справляется.
Главная суть: Архитектуры как способ договориться внутри команды. Нет критической разницы если одна команда использует в своем модуле MVP, а другая VIPER. Ведь по сути все это одно и то же.
Автор ругает сторонние архитектурные фреймворки за частые изменения, сложность изучения новичкам, миграции в будущем (привет, TCA).
Люди пытаются проблемы процессов команды решить с помощью универсального шаблона. А ведь проблема не в архитектурах. Чаще всего любая архитектура подходит вашему проекту, просто нужно налаживать процессы:
- улучшить документацию
- добавлять примеры
- улучшать онбординг
- убирать плохие практики кодревью
Не нужно переживать, что выбрал "неправильную" архитектуру. Тренды постоянно меняются. Главное правило любой хорошей архитектуры — не усложнять и держать бизнес-логику вне UI.
Не стоит также переживать, что архитектура отличается по приложению и есть старые версии. Это нормально.
Это нормально, когда приложение состоит из разных архитектур, каждая из которых появилась в разное время. Но у них есть общее: Бизнес-логика меняется реже, чем UI.
1 15 2 2
Forwarded from Apple Pro Daily News
Теперь при добавлении иконки сайта из Safari на экран Домой можно выбрать функцию превращения любого веб-сайта в PWA-приложение вне зависимо от того, содержит ли он такой функционал или нет. Но также можно переключить на режим обычной иконки-ярлыка, открываемой в Safari.
При этом в отличие от macOS, ссылки в пределах установленного PWA не фиксируются. Это означает, что при нажатии на ссылку в электронном письме или сообщении – на macOS по умолчанию будет открыто установленное PWA, а на iOS – по умолчанию открывается всегда Safari.
Please open Telegram to view this post
VIEW IN TELEGRAM