#ios #swiftui #scrollview #geometry #onappear #ondisappear
https://telegra.ph/72-Otslezhivaem-vidimost-vyuhi-06-21
https://telegra.ph/72-Otslezhivaem-vidimost-vyuhi-06-21
Telegraph
72. Отслеживаем видимость вьюхи
Иногда нужно знать наверняка, видна ли вьюха на экране. При этом обычные модификаторы onAppear + onDisappear не решают задачу. В этой статье покажу вариант решения при помощи GeometryReader, в котором будет лежать ScrollView. Бонусом будет камень в огород…
🔥2😁1
#experience #level #skill
Рассказываю как на мой взгляд проще всего определить уровень iOS-разработчика.
После прочтения ты без труда определишь свой уровень в iOS-разработке и научишься определять притворщиков, чтобы экономить свои нервы и время 😎
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Рассказываю как на мой взгляд проще всего определить уровень iOS-разработчика.
После прочтения ты без труда определишь свой уровень в iOS-разработке и научишься определять притворщиков, чтобы экономить свои нервы и время 😎
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
😁4❤2🔥1
#ios #swiftui #scrollview #geometry #preference #combine
https://telegra.ph/73-Otslezhivaem-okonchanie-skrolla-06-27
https://telegra.ph/73-Otslezhivaem-okonchanie-skrolla-06-27
Telegraph
73. Отслеживаем окончание скролла
Недавно делал экран, для которого нужно распознавать момент окончания скролла. В UIKit есть scrollViewDidEndDecelerating, а в SwiftUI такого пока нет, но есть обходное решение с использованием Combine и PreferenceKey. Демо готового экрана
👍3😁2❤1
#experience #level #skill
Рассказываю о причинах и последствиях синдрома самозванца, что мешает с ним справиться, и как на мой взгляд проще побороть эту проблему. Также делюсь своим опытом решения этой ситуации в деталях 👌
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
———
Через неделю расскажу про передачу своего опыта: когда можно начинать
делиться опытом, как это лучше делать, и зачем вообще кого-то чему-то учить 👨💻
Рассказываю о причинах и последствиях синдрома самозванца, что мешает с ним справиться, и как на мой взгляд проще побороть эту проблему. Также делюсь своим опытом решения этой ситуации в деталях 👌
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
———
Через неделю расскажу про передачу своего опыта: когда можно начинать
делиться опытом, как это лучше делать, и зачем вообще кого-то чему-то учить 👨💻
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
🔥2😁2
#ios #swift #interview #notificationcenter #dispatchqueue #singleton
https://telegra.ph/74-Delaem-svoj-NotificationCenter-07-04
https://telegra.ph/74-Delaem-svoj-NotificationCenter-07-04
Telegraph
74. Делаем свой NotificationCenter
На одном из собеседований мне дали задачу сделать свой NotificationCenter c memory safety, type safety и thread safety. В этой статье покажу вариант реализации задачи, чтобы вам не пришлось снова изобретать 🛞
😁3❤2👍2
#ios #swiftui #imagerenderer #text #color #image
https://telegra.ph/75-Kontrastnyj-tekst-poverh-kartinki-07-12
https://telegra.ph/75-Kontrastnyj-tekst-poverh-kartinki-07-12
Telegraph
75. Контрастный текст поверх картинки
На днях пришла задача - сделать текст контрастным поверх картинки, чтобы его было видно хорошо независимо от яркости картинки под ним. Расскажу как я это сделал по шагам, а для решения обратимся к UIImage и UIColor 😁
👍2😁2❤1
В эту среду начну серию статей про сложнейшие задачи по
Для большинства это будет увлекательным сюрпризом 👌🤓
SwiftUI, которые никто (или почти никто) не может решить на собеседованиях 😱Для большинства это будет увлекательным сюрпризом 👌🤓
❤14🔥7😁6
#ios #swift #swiftui #interview
Представляю вашему вниманию первую статью из серии «Сложнейшие задачи по SwiftUI». В этой серии буду разбирать задачи вместе с постановкой, ожидаемым результатом и аргументированным решением (и конечно со ссылками на документацию).
Ничего лишнего, только SwiftUI, только хардкор 😎
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Представляю вашему вниманию первую статью из серии «Сложнейшие задачи по SwiftUI». В этой серии буду разбирать задачи вместе с постановкой, ожидаемым результатом и аргументированным решением (и конечно со ссылками на документацию).
Ничего лишнего, только SwiftUI, только хардкор 😎
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
😭4😁2🔥1
#ios #swift #swiftui #test #xctest #unittest
https://telegra.ph/76-Pishem-unit-testy-na-model-v-SwiftUI-07-19
https://telegra.ph/76-Pishem-unit-testy-na-model-v-SwiftUI-07-19
Telegraph
76. Пишем unit-тесты на модель в SwiftUI
Есть разные подходы к тестированию кода, в том числе разные инструменты и лучшие практики. В этой статье поделюсь своими аргументами в пользу unit-тестов, расскажу почему я их пишу, покажу простой и понятный пример.
👍4😁3❤1
#ios #swiftui #vstack #spacing
В SwiftUI у стеков (VStack, HStack, их Lazy-версии) есть дефолтный спейсинг (расстояние между элементами), который по умолчанию равен
Однако
В SwiftUI у стеков (VStack, HStack, их Lazy-версии) есть дефолтный спейсинг (расстояние между элементами), который по умолчанию равен
nil.Однако
nil != 0, на скриншоте пример, код ниже:
import SwiftUI
struct SpacingComparison: View {
private let numbers = Array(0..<10)
var body: some View {
HStack(spacing: 20) {
VStack(spacing: nil) {
Text("spacing: nil")
ForEach(numbers, id: \.self) { i in
makeDemoRectangle(number: i)
}
}
VStack(spacing: 0) {
Text("spacing: 0")
ForEach(numbers, id: \.self) { i in
makeDemoRectangle(number: i)
}
}
}
}
private func makeDemoRectangle(number: Int) -> some View {
Rectangle()
.frame(height: 20)
.overlay { Text("\(number)") }
}
}
#Preview {
SpacingComparison()
}
😁4👍3
#ios #swift #swiftui #interview
Представляю вашему вниманию вторую статью из серии «Сложнейшие задачи по SwiftUI» 🤯
В этой серии разбираю задачи вместе с постановкой, ожидаемым результатом и аргументированным решением (и конечно со ссылками на документацию).
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Представляю вашему вниманию вторую статью из серии «Сложнейшие задачи по SwiftUI» 🤯
В этой серии разбираю задачи вместе с постановкой, ожидаемым результатом и аргументированным решением (и конечно со ссылками на документацию).
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
😁6❤2🔥2😭2
#ios #swift #swiftui #test #xctest #uitest
https://telegra.ph/77-Pishem-UI-testy-dlya-SwiftUI-ehkrana-07-26
https://telegra.ph/77-Pishem-UI-testy-dlya-SwiftUI-ehkrana-07-26
Telegraph
77. Пишем UI-тесты для SwiftUI-экрана
В предыдущей статье я показал как можно написать unit-тесты для модели, которая является источником истины в SwiftUI-экране. В этой статье покажу как можно написать ui-тесты для того же экрана.
🔥5😁3👍2👌2
#ios #swift #swiftui #interview
Представляю вашему вниманию третью статью из серии «Сложнейшие задачи по SwiftUI» 🤯
В этой серии разбираю задачи вместе с постановкой, ожидаемым результатом и аргументированным решением (и конечно со ссылками на документацию).
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Представляю вашему вниманию третью статью из серии «Сложнейшие задачи по SwiftUI» 🤯
В этой серии разбираю задачи вместе с постановкой, ожидаемым результатом и аргументированным решением (и конечно со ссылками на документацию).
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
😭5❤2😁2
#ios #swift #swiftui #scrollview #test #xctest #unittest
https://telegra.ph/78-Primer-kastomnoj-kollekcii-08-03
https://telegra.ph/78-Primer-kastomnoj-kollekcii-08-03
Telegraph
78. Пример кастомной коллекции
Для создания коллекций в SwiftUI есть как минимум LazyVStack и LazyHStack. В этой статье покажу как можно сделать свою горизонтальную коллекцию с кастомной логикой распределения чипсов по строкам.
❤2😁2
#ios #swift #swiftui #interview #designsystem
Обсудили с Даниилом дизайн-систему в iOS-проекте в формате собеседования.
Видео доступно в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Канал Даниила: @ios_prog
Обсудили с Даниилом дизайн-систему в iOS-проекте в формате собеседования.
Видео доступно в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Канал Даниила: @ios_prog
🔥2😁2
#ios #swift #swiftui #combine #debounce #search
https://telegra.ph/79-Primer-raboty-s-debounce-v-Combine-08-09
https://telegra.ph/79-Primer-raboty-s-debounce-v-Combine-08-09
Telegraph
79. Пример работы с debounce в Combine
Кто еще застал RxSwift вполне мог работать с debounce для реализации отложенного поиска, чтобы начинать поиск с небольшой задержкой после ввода текста. В этой статье посмотрим как можно это реализовать с помощью Combine. Демонстрация
❤5😁2
#ios #swift #interview
Начинаю серию статей с вопросами к техническому собесу для iOS-разработчика, которые мне попадались. Показываю задачу/вопрос и решение с аргументацией. И конечно добавляю ссылки на документацию 👨💻
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Начинаю серию статей с вопросами к техническому собесу для iOS-разработчика, которые мне попадались. Показываю задачу/вопрос и решение с аргументацией. И конечно добавляю ссылки на документацию 👨💻
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
😭3🤷♀2😁2❤1👍1🔥1
easy_dev991
#ios #swift #interview Начинаю серию статей с вопросами к техническому собесу для iOS-разработчика, которые мне попадались. Показываю задачу/вопрос и решение с аргументацией. И конечно добавляю ссылки на документацию 👨💻 Статья доступна в платном канале:…
#ios #swift #interview
Продолжаем отвечать на технические вопросы с iOS-собеседований. Показываю задачу/вопрос и решение с аргументацией 👨💻
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Продолжаем отвечать на технические вопросы с iOS-собеседований. Показываю задачу/вопрос и решение с аргументацией 👨💻
Статья доступна в платном канале:
- базовая подписка
- продвинутая подписка
- сеньорская подписка
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
🤷♀2🔥2😁2
#ios #swift #swiftui #emptyview #viewbuilder #hint
https://telegra.ph/81-Kogda-nuzhen-i-ne-nuzhen-EmptyView-08-22
https://telegra.ph/81-Kogda-nuzhen-i-ne-nuzhen-EmptyView-08-22
Telegraph
81. Когда нужен и не нужен EmptyView()
Многие ребята, кто работает со SwiftUI, знают, что EmptyView() подходит для ситуаций, когда не нужно показывать ничего. Некоторые даже знают, что на эту вьюху не влияет frame. В этой статье покажу, когда можно/не нужно не использовать эту вьюшку. Экран для…
❤2👍2