Ну что, потихоньку начинаем разгоняться. Следующий месяц мы говорим преимущественно про SwiftUI. Поэтому принес на разогревку полезные WWDC секции.
А в закрытой базе уже лежит два роадмапа
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple Developer
Introduction to SwiftUI - WWDC20 - Videos - Apple Developer
Explore the world of declarative-style programming: Discover how to build a fully-functioning SwiftUI app from scratch as we explain the...
Андроид лучшая операционная система
Божественно красивая и удобная. Завязываю с iOS разработкой и начинаю пилить курсы по KMP, Compose.
Божественно красивая и удобная. Завязываю с iOS разработкой и начинаю пилить курсы по KMP, Compose.
Как использовать Cursor AI в iOS
Сейчас курсор — лучшая тулза для кодинга. У меня 3 подписки на LLM: Cursor, Claude, ChatGPT. Каждая выполняет свои задачи хорошо и с каждой нужно знакомиться.
Все они существенно упрощают и меняют опыт разработки. Когда раньше мы бегали в форумы, чаты или стэковерфлоу, то сейчас остались 1 на 1 с LLM.
К концу недели разберу даже пару гайдов как и где мне помогает Cursor. А еще слышал, что в некоторых командах яндекса cursor помогает автоматизировать кодревью бэка, мобилки и qa😎
Нашел хороший обозревательный ролик, который поможет лучше понять инструмент
Сейчас курсор — лучшая тулза для кодинга. У меня 3 подписки на LLM: Cursor, Claude, ChatGPT. Каждая выполняет свои задачи хорошо и с каждой нужно знакомиться.
Все они существенно упрощают и меняют опыт разработки. Когда раньше мы бегали в форумы, чаты или стэковерфлоу, то сейчас остались 1 на 1 с LLM.
К концу недели разберу даже пару гайдов как и где мне помогает Cursor. А еще слышал, что в некоторых командах яндекса cursor помогает автоматизировать кодревью бэка, мобилки и qa
Нашел хороший обозревательный ролик, который поможет лучше понять инструмент
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
How to use Cursor AI for iOS App Development (5 Techniques)
Learn five ways to use Cursor AI for iOS app development. You'll also learn how to set it up and use it with Xcode. You'll learn how to build apps from scratch, how to add features to an existing app, how to reverse engineer user interfaces and more!
In…
In…
Начиная изучать SwiftUI мы должны немного перестроить свое мышление. Это часто советуют уже опытные разработчики, когда переходят с UIKit. Важно не только хорошо изучить АПИ фреймворка, но и понять его философию. Так глубже и лучше поймешь применимость.
Собрал краткие советы с примерами.
UIKit имеет императивный, где мы явно указываем КАК построить интерфейс. То SwiftUI декларативный, где мы описываем ЧТО должно отображаться.
UIKit это про ручное обновление UI при изменении данных. SwiftUI про автоматическое обновление UI благодаря привязке к состоянию (@State, @Binding, @ObservedObject)
UIKit чаще это про Auto Layout с constraints. SwiftUI в основе стеков (VStack, HStack, ZStack)
Как же перестроить мышление?
UIKit это обработка событий и обновление UI. SwiftUI про обновление состояния, UI обновляется автоматически
UIKit часто использует наследование. SwiftUI строится на композиции небольших вью
Используйте правильные property wrappers (@State, @Binding, @ObservedObject, @EnvironmentObject)
Познакомьтесь с жизненным циклом SwiftUI (onAppear, onDisappear вместо viewDidLoad и т.д.). Это лучше даст понять легкость и простоту фреймворка.
В UIKit вы изменяете объект напрямую, присваивая значения его свойствам. В SwiftUI вы применяете модификаторы к представлению, и каждый модификатор создает новое представление с примененными изменениями. Где каждая операция возвращает новое неизменяемое вью
Какие советы вы бы добавили?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 19 3
Вы не забыли, что я делаю самый большой сборник реальных задач на управление памятью?
Стоит амбициозная цель сделать 100 задач. После решения которых не будет никаких проблем в реальной практике.
Я все же считаю, что навык поиск утечки или понимания жизненного цикла объектов гораздо важнее любой теории про кишки в регулярных задачах. Прошел на своей шкуре
Поэтому цель сборника набить руку.
Предыдущие части:
Please open Telegram to view this post
VIEW IN TELEGRAM
О реакциях и обратной связи
Выше я писал пост, что обратная связь для программиста — двигатель развития.
Но иногда она бывает неадекватной. Например, я искренне не понимаю реакций и дизлайков на по-настоящему крутые книги.
Как только материал чуть сложнее краски кнопок, то его дизлайкают. Например, книга «рефакторинг» Фаулера. Одна из фундаментальных книг была атакована дизлайками.
Тут важно понимать что не вся обратная связь, особенно основаная на коллективно бессознательном, полезная
Выше я писал пост, что обратная связь для программиста — двигатель развития.
Но иногда она бывает неадекватной. Например, я искренне не понимаю реакций и дизлайков на по-настоящему крутые книги.
Как только материал чуть сложнее краски кнопок, то его дизлайкают. Например, книга «рефакторинг» Фаулера. Одна из фундаментальных книг была атакована дизлайками.
Тут важно понимать что не вся обратная связь, особенно основаная на коллективно бессознательном, полезная
iOS Makes Me Hate
О реакциях и обратной связи Выше я писал пост, что обратная связь для программиста — двигатель развития. Но иногда она бывает неадекватной. Например, я искренне не понимаю реакций и дизлайков на по-настоящему крутые книги. Как только материал чуть сложнее…
кому-то настолько не понравился этот пост, что решили накрутить ботов...
ща почистим
UPD: Done, сорри кого задело шальным огнем
ща почистим
UPD: Done, сорри кого задело шальным огнем
Пережив атаку клонов возвращаемся к работе. Страсть к истиным знаниям им не затушить
Многолетний опыт изучения всяких фреймворков мне подсказывает, что прежде чем изучать его SDK и API — нужно изучить принципы. Не бежать делать анимашки, архитектуры или вьюшки, а понять как и почему это все строится. Так можно сэкономить уйму времени в будущем.
В комментах прошлого поста поделились одной из важных ключевых концепций — понимание дерева вьюшек. В книге "Thinking in SwiftUI" пишется так:
View trees and render trees are perhaps the most fundamental and important concepts to understand to work with SwiftUI. To achieve the layout we want, we need to understand how view trees are constructed. To understand how state works in SwiftUI, it’s important to understand the lifetime of a view and how it’s related to the view tree we’re building. Understanding the lifetime is equally important to writing efficient SwiftUI code that only loads data and updates views when needed. Finally, animations and transitions also require an understanding of view trees.
Прежде чем что-то делать — нужно понять как строятся вьюшки: порядок их отрисовки; порядок компановки; передача состояния.
Познакомимся с фундаментальными концепциями, которые помогут не допускать баги и лучше понять поведение:
В SwiftUI это структура, которую мы описываем в коде. Представим что это чертеж дома.
SwiftUI создаёт и обновляет его на основе View Tree, но не пересоздаёт полностью, а обновляет только изменившиеся части. Это дом, который построился по чертежу.
Это метод как SwiftUI отличает одну вьюшку в плане между собой.
Почему это важно знать
- Перфоманс: SwiftUI умно обновляет только те части Render Tree, которые изменились, что делает приложение быстрее.
- Анимации: могут быть сломанные или корявые анимации
- Дебагинг: понимание разницы помогает разобраться, почему иногда ui выглядит не так, как ожидали.
- Правильная работа с состоянием: (@State, @Binding, @ObservedObject и т.д.): ты должен понимать, какие элементы остаются “живыми”, а какие будут уничтожены и пересозданы.
Полезные статьи:
- SwiftUI Rendering and Identity
- A Day in the Life of a SwiftUI View
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM