easy_dev991
626 subscribers
33 photos
21 videos
3 files
174 links
Делюсь интересными находками/лайфхаками в процессе разработки под iOS, и возможно ты найдешь что-то полезное для себя!

GitHub: https://github.com/easydev991
Download Telegram
easy_dev991
#ios #swiftui #scrollview #scrollviewreader #scrollto Скроллим к нужному элементу
#ios #swiftui #scrollview #scrollto

На днях застрял со скроллом к нужному элементу и думал "что же не так?".
У меня есть список элементов в ForEach, внутри массив с Identifiable-элементами, но scrollTo(id) не работает.

Все оказалось очень просто - нужно явным образом добавить модификатор .id для всех элементов в цикле ForEach.

Потом вспомнил, что у меня уже есть статья на эту тему 😁
5😁5😴1
#xcode #simulator #bug

Вчера обновил Xcode до релизной версии 26.1, и второй день подряд ноут сильно греется и шумит вентиляторами.
В чем же дело?

В "мониторинге активности" там висит ReportCrash, который грузит процессор 140%+.
Но что за краши?

Открыл приложение "консоль", и увидел там десятки отчетов о краше для MercuryPosterExtension (кто бы еще знал, что это).

Вот кусок крашлога:

Coalition: com.apple.CoreSimulator.SimDevice.15175812-BCE6-41D0-B391-CEF8416AE15F [12203]
Responsible Process: SimulatorTrampoline [2600]


Несложно предположить, что дело в симуляторе. Оказалось, что запущенный симулятор с iOS 26.1 постоянно ловит какие-то системные краши, но визуально этого не видно.

Так что если вы уже обновились до Xcode 26.1, то рекомендую не использовать симуляторы iOS 26.1 на постоянной основе, иначе есть риск словить постоянную нагрузку на процессор из-за ReportCrash 🤪
8
#ios #swift #swiftui #bug

Угадайте, на каком из скриншотов у нас iOS 26 😁

А вот и код:

struct DemoToolbarOpacity: View {
var body: some View {
NavigationStack {
Color.green.ignoresSafeArea()
.toolbar {
ToolbarItem(placement: .topBarLeading) {
if false {
Button("Left") {
print("tap left button")
}
}
}
ToolbarItem(placement: .topBarTrailing) {
Button("right") {
print("tap right button")
}
.opacity(0)
}
}
}
}
}


Вывод:
В iOS 26 больше нельзя использовать opacity для скрытия кнопки - нужно явным образом закрывать кнопку проверкой if/else 👏
5
#ios #xcode #bug

Любопытная аналитика про размер iOS-приложений, собранных в Xcode 26.0.1 и Xcode 26.1 на примере приложения с площадками для тренировок:
- При сборке из Xcode 26.0.1 приложение весит около 11 мб
- При сборке из Xcode 26.1 приложение весит уже 16.5 мб
- При сборке из Xcode 26.1 после доработок (предстоящий релиз) вес почему-то снизился до 15.5 мб, хотя кода стало больше 🙄

Откуда взялись дополнительные 5 мб, эпл 🤯?
👍4😴2
#ios #swiftui #confirmationdialog #bug

Любопытный баг в SwiftUI при работе с confirmationDialog в навбаре.

Во вложении 2 видео, где я делаю одно и то же действие, но во втором видео диалог появляется повторно без триггера с моей стороны.

Код для первого видео (где все ок):

.toolbar {
if !entries.isEmpty {
ToolbarItem(placement: .topBarTrailing) {
deleteAllButton
}
}
}


Код для второго видео (где баг):

.toolbar {
ToolbarItem(placement: .topBarTrailing) {
if !entries.isEmpty {
deleteAllButton
}
}
}
👍1
#ios #swift #swiftui #bug #binding

Кажется, что разница такая небольшая, но в первом случае сборка успешная, а во втором - сборка падает, и в логах Xcode ничего не показывает, а ведь можно долго и упорно дебажить, вот незадача 🤯
🤯4👍1
#ios #appstore #appstoreconnect

Сегодня модераторы одобрили релиз моего нового приложения с тренировками (с четвертого раза), и я узнал на личном опыте, почему же в аппстор пропускают клонов телеграм 🙈

Если интересно узнать, ставьте 👍

Ссылка на гитхаб с новым приложением тут.
👍14
🔥2