Replacing if let in Swift 5.7
В Swift 5.7 был упрощен синтаксис выражений if let и guard let. Теперь так:
В статье регулярка для быстрого рефакторинга
#swift
В Swift 5.7 был упрощен синтаксис выражений if let и guard let. Теперь так:
var
name: String? = "Linda"
if let name {
print("Hello, \(name)!")
}
В статье регулярка для быстрого рефакторинга
#swift
👍5👎2
Build Time Optimizations (Xcode)
Авторы статьи смогли сократить время билда на 21%. Приведем их советы по оптимизации кода:
1. Используйте "let", где возможно
2. Добавляйте final к классам
3. Явно объявляйте тип и избейгайте инициалзации через вызов
4. Делайте extension'ы приватными
5. Используете объявление кейсов перечислений с типом
6. Разбивайте сложные выражения на части
7. Избегайте лишних кастингов
8. Предпочтитайте if let вместо разворачивания через ??
#optimization
Авторы статьи смогли сократить время билда на 21%. Приведем их советы по оптимизации кода:
1. Используйте "let", где возможно
2. Добавляйте final к классам
3. Явно объявляйте тип и избейгайте инициалзации через вызов
.init
4. Делайте extension'ы приватными
5. Используете объявление кейсов перечислений с типом
6. Разбивайте сложные выражения на части
7. Избегайте лишних кастингов
8. Предпочтитайте if let вместо разворачивания через ??
#optimization
👍7👎1
Integrate SwiftLint to the iOS project
Чтобы добавить SwiftLint к себе в проект нужно всего лишь...
👉 Добавить в Podfile: pod 'SwiftLint'
👉 Build Phases (Linting): ${PODS_ROOT}/SwiftLint/swiftlint
👉 Добавить правила в .swiftlint.yml
#tools
Чтобы добавить SwiftLint к себе в проект нужно всего лишь...
👉
👉
#tools
😁5👎1🤩1
«Счастье разработчиков 2022» — отчет ZenHub
Опрос 380 англоговорящих разработчиков из разных стран показал:
👉 Наиболее приоритетны для команд разработчиков — бизнес-цели
👉 Вызовы в ежедневном программировании — безопасность, быстродействие и уменьшение технического долга
👉 Только 8% работает над одним проектом, большинство работает более 40 часов в неделю
👉 В компании важны баланс работа/личная жизнь, качество проектов и размер зарплаты
👉 Наибольшее помехи продуктивности — меняющиеся требования, ожидание обратной связи и неясные сроки сдачи проектов.
#оффтоп
Опрос 380 англоговорящих разработчиков из разных стран показал:
👉 Наиболее приоритетны для команд разработчиков — бизнес-цели
👉 Вызовы в ежедневном программировании — безопасность, быстродействие и уменьшение технического долга
👉 Только 8% работает над одним проектом, большинство работает более 40 часов в неделю
👉 В компании важны баланс работа/личная жизнь, качество проектов и размер зарплаты
👉 Наибольшее помехи продуктивности — меняющиеся требования, ожидание обратной связи и неясные сроки сдачи проектов.
#оффтоп
👍3👎2
Работа в мобильной разработке 2022 — опрос RayWenderlich.com
Всего в опросе приняло участие 1,257 человек. Вот некоторые его интересные результаты:
👉 Зарплата на карте — зеленое больше, красное меньше
👉 56% разработчиков создает собственные приложения в свободное время
👉 Доходы пет-проектов на 2 изображении
👉 Зарплата по языкам программирования — традиционно Objective-C лидирует, а на втором месте C++
#оффтоп
Всего в опросе приняло участие 1,257 человек. Вот некоторые его интересные результаты:
👉 Зарплата на карте — зеленое больше, красное меньше
👉 56% разработчиков создает собственные приложения в свободное время
👉 Доходы пет-проектов на 2 изображении
👉 Зарплата по языкам программирования — традиционно Objective-C лидирует, а на втором месте C++
#оффтоп
👍4👎1
Discover the MVVM Architecture in less than 90 seconds
Статья и видео с быстрым объяснением основной сути MVVM
#architecture
Статья и видео с быстрым объяснением основной сути MVVM
#architecture
🔥5👎1
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
🎉 Kotlin Multiplatform Mobile (KMM) вышел в Beta
Что значит Beta для KMM:
👉 Технология практически готова и ее безопаснос использовать
👉 Количество изменение, требующих миграции, будет минимизровано и авторы стараются такого не допускать
Время пробовать и интегрировать технологию, ведь она уже много где есть в продакшене!
Что значит Beta для KMM:
👉 Технология практически готова и ее безопаснос использовать
👉 Количество изменение, требующих миграции, будет минимизровано и авторы стараются такого не допускать
Время пробовать и интегрировать технологию, ведь она уже много где есть в продакшене!
👎3🔥2👍1
Логи в iOS, эпизод 2: os_signpost
Связка
#tools
Связка
os_signpost
и Time Profiler — мощный инструмент. Вы можете замерить сколько времени у вас выполнялась те или иные расчёты, сколько раз вы сходили в сеть, а также узнать, какая модель данных дольше всего парсилась#tools
👍3👎1
Drag & Drop in SwiftUI (iOS 15)
Реализовываем drag-and-drop на SwiftUI
onDrag(_:preview:) - задает источник, параметры:
👉 data - closure, который возвращает NSItemProvider, который определяет перетаскиваемые данные
👉 preview - размещается по центру перетаскиваемого объекта после начала операции, опционально
onDrop(of:delegate:) - задает приемник, параметры:
👉 supportedConentType - определяет тип данных, которые можно принимать
👉 delegate - соответствует протоколу DropDelegate и определяет поведение drop
#swiftUI
Реализовываем drag-and-drop на SwiftUI
onDrag(_:preview:) - задает источник, параметры:
👉 data - closure, который возвращает NSItemProvider, который определяет перетаскиваемые данные
👉 preview - размещается по центру перетаскиваемого объекта после начала операции, опционально
onDrop(of:delegate:) - задает приемник, параметры:
👉 supportedConentType - определяет тип данных, которые можно принимать
👉 delegate - соответствует протоколу DropDelegate и определяет поведение drop
#swiftUI
👍3👎1
The Problems with Singletons and Why You Should Use DI Instead (10 мин)
Основные проблемы синглтонов:
👉 Синглтоны глобальные
👉 Вы не можете кастомизировать инициализацию
👉 Невозможно подменить зависимости
Подробнее о проблемах и способах решения в статье
#architecture
Основные проблемы синглтонов:
👉 Синглтоны глобальные
👉 Вы не можете кастомизировать инициализацию
👉 Невозможно подменить зависимости
Подробнее о проблемах и способах решения в статье
#architecture
👍3
Вы не самозванец — все разработчики притворяются
Мы все просто придумываем решения
👉 Невозможно подделать код
Вы не можете подделать технические навыки, когда дело доходит до того, чтобы компьютер делал то, что нужно
👉 Библия разработчика
Когда senior сталкивается с новой проблемой, он не знает решение. Он придумывает ответ на ходу!
Вот что делает разработку программного обеспечения такой интересной и творческой областью. Мы творчески ищем решения новых задач.
👉 Ценность ошибок
Лучшие старшие разработчики — это те, кто видел больше всего ошибок
👉 Больше не самозванец
Не существует единственно правильного способа быть разработчиком. Отпустите себя. Не чувствуйте себя обязанным быть героем. Вы отлично справляетесь прямо сейчас
#оффтоп
Мы все просто придумываем решения
👉 Невозможно подделать код
Вы не можете подделать технические навыки, когда дело доходит до того, чтобы компьютер делал то, что нужно
👉 Библия разработчика
Когда senior сталкивается с новой проблемой, он не знает решение. Он придумывает ответ на ходу!
Вот что делает разработку программного обеспечения такой интересной и творческой областью. Мы творчески ищем решения новых задач.
👉 Ценность ошибок
Лучшие старшие разработчики — это те, кто видел больше всего ошибок
👉 Больше не самозванец
Не существует единственно правильного способа быть разработчиком. Отпустите себя. Не чувствуйте себя обязанным быть героем. Вы отлично справляетесь прямо сейчас
#оффтоп
🔥8👎1
Планирование приложений — руководства Apple
Apple выпустила руководства по планированию приложений. Рассчитаны они в основном на начинающих и предлагают ссылки на справочные и учебные материалы о разных аспектах разработки.
Все они состоят из трех частей:
👉 Что вы можете сделать — какие технологии использовать и какие функции задействовать
👉 Как начать — какие инструменты и технологии вам нужны, чтобы сделать приложение
👉 Как пойти дальше — как и какими средствами расширить функционал приложения
#education
Apple выпустила руководства по планированию приложений. Рассчитаны они в основном на начинающих и предлагают ссылки на справочные и учебные материалы о разных аспектах разработки.
Все они состоят из трех частей:
👉 Что вы можете сделать — какие технологии использовать и какие функции задействовать
👉 Как начать — какие инструменты и технологии вам нужны, чтобы сделать приложение
👉 Как пойти дальше — как и какими средствами расширить функционал приложения
#education
😱2👎1
Show progress of the task using SwiftUI ProgressView
Реализация ProgressView на SwiftUI в виде полосы и круга
#swiftUI
Реализация ProgressView на SwiftUI в виде полосы и круга
#swiftUI
👍4👎1
Use a Base Class or a Protocol In Swift? (3 мин)
Когда мы определяем протокол, можно определить лишь необходимое поведение объектов, что защищает нас ненужных возможностей, которые может иметь базовый класс
Так что же использовать?
Как это часто бывает, ответ: "it depends". Посмотрите на примеры и подумайте, что лучше подойдет в вашей ситуации. В Swift всего это будут протоколы 😄
#swift
Когда мы определяем протокол, можно определить лишь необходимое поведение объектов, что защищает нас ненужных возможностей, которые может иметь базовый класс
Так что же использовать?
Как это часто бывает, ответ: "it depends". Посмотрите на примеры и подумайте, что лучше подойдет в вашей ситуации. В Swift всего это будут протоколы 😄
#swift
👍1😁1
Создание анимаций для навигации в iOS
Можно использовать UIViewControllerAnimatedTransitioning для переходов в
В статье подробно описан первый случай
#UI
Можно использовать UIViewControllerAnimatedTransitioning для переходов в
UINavigationController
, для переходов посредством present
и dismiss
контроллеров, а даже для переходов между экранами UITabBarController
. В статье подробно описан первый случай
#UI
🔥2👍1👎1