🏃🏃♂️ Как ускорить сборку проекта и не остановить разработку
Видос о том, как спикер применил в iOS-проектах предкомпилированные зависимости в виде XCFramework с использованием CocoaPods, fastlane, GitLab CI и ускорил холодную сборку до 2 раз.
Содержание:
6:59 XCFramework
11:46 Публикация XCFramework с CocoaPods
13:14 Builder
14:07 Deploy_xcframework
15:21 Alamofire:podspec
16:45 Transform_podspec
17:59 Интеграция
19:46 Семантическое версионирование
21:09 Обратная совместимость
26:46 Ограничения и советы
32:41 Практика
35:41 Готовый проект
#видео
Видос о том, как спикер применил в iOS-проектах предкомпилированные зависимости в виде XCFramework с использованием CocoaPods, fastlane, GitLab CI и ускорил холодную сборку до 2 раз.
Содержание:
6:59 XCFramework
11:46 Публикация XCFramework с CocoaPods
13:14 Builder
14:07 Deploy_xcframework
15:21 Alamofire:podspec
16:45 Transform_podspec
17:59 Интеграция
19:46 Семантическое версионирование
21:09 Обратная совместимость
26:46 Ограничения и советы
32:41 Практика
35:41 Готовый проект
#видео
❤7🥰2
🍭🍭 Улучшения в отладке Swift 5.9
Swift 5.9 ввел ряд новых функций отладки в компилятор и отладчик LLDB.
Вот три изменения, которые могут помочь в ваших повседневных рабочих процессах отладки.
🍕 Более быстрый контроль переменных с помощью p и po
LLDB предоставляет сокращенный псевдоним команды p для проверки переменных и po для вызова свойства debugDescription объектов.
🍕 Поддержка параметров generic в выражениях
LLDB теперь поддерживает обращение к параметрам generic при вычислении выражения. Например:
func use(_ t: T) {
print(t) // break here
}
use(5)
use("Hello!")
При запуске po T.self, когда он перестанет использоваться, выведет Int при входе через первый вызов и String во втором.
🍕 Fine-grained информация для скоупа
В Swift 5.9 компилятор теперь использует более точную информацию ASTScope для генерации иерархии лексического скоупа при дебаге, что приводит к некоторым изменениям поведения в отладчике.
#новость
Swift 5.9 ввел ряд новых функций отладки в компилятор и отладчик LLDB.
Вот три изменения, которые могут помочь в ваших повседневных рабочих процессах отладки.
🍕 Более быстрый контроль переменных с помощью p и po
LLDB предоставляет сокращенный псевдоним команды p для проверки переменных и po для вызова свойства debugDescription объектов.
🍕 Поддержка параметров generic в выражениях
LLDB теперь поддерживает обращение к параметрам generic при вычислении выражения. Например:
func use(_ t: T) {
print(t) // break here
}
use(5)
use("Hello!")
При запуске po T.self, когда он перестанет использоваться, выведет Int при входе через первый вызов и String во втором.
🍕 Fine-grained информация для скоупа
В Swift 5.9 компилятор теперь использует более точную информацию ASTScope для генерации иерархии лексического скоупа при дебаге, что приводит к некоторым изменениям поведения в отладчике.
#новость
👍5❤3
Интерфейсы Kotlin и абстрактные классы очень похожи. Что такого может делать абстрактный класс, чего не могут интерфейсы?
Anonymous Quiz
13%
Только абстрактные классы могут наследоваться от нескольких суперклассов
43%
Только абстрактные классы могут хранить состояние
32%
Только абстрактные классы могут иметь абстрактные методы
12%
Только абстрактные классы наследуются подклассами
🎉10👍4❤3🔥1
🤔 #дайджест полезностей для мобильного разработчика
✳️ Kotlin и Virtual Threads — Kotlin на JDK 21 backend стал поддерживать виртуальные потоки
✳️ Flutter SDK с поддержкой платформы ОС Аврора — т. к. Flutter SDK для ОС Аврора не состоит в upstream, установка происходит отличным от основного метода установки
✳️ Async / Await Coroutines — как с помощью KMP-NativeCoroutines использовать собственные решения Swift (Async await, Combine или RxSwift) для асинхронного кода Kotlin
✳️ Gradle Release Notes — Java 21 теперь поддерживается для компиляции, тестирования и запуска таких проектов, а еще несколько полезных фиксов
✳️ Измеряем sequence — видос о том, насколько корректно правило CouldBeSequence, и в каких случаях использование sequence дает реальный выигрыш
✳️ Kotlin и Virtual Threads — Kotlin на JDK 21 backend стал поддерживать виртуальные потоки
✳️ Flutter SDK с поддержкой платформы ОС Аврора — т. к. Flutter SDK для ОС Аврора не состоит в upstream, установка происходит отличным от основного метода установки
✳️ Async / Await Coroutines — как с помощью KMP-NativeCoroutines использовать собственные решения Swift (Async await, Combine или RxSwift) для асинхронного кода Kotlin
✳️ Gradle Release Notes — Java 21 теперь поддерживается для компиляции, тестирования и запуска таких проектов, а еще несколько полезных фиксов
✳️ Измеряем sequence — видос о том, насколько корректно правило CouldBeSequence, и в каких случаях использование sequence дает реальный выигрыш
🥰22❤14🔥11👏8👍4
👩💻 Женщины в ИТ: проблемы и преимущества сложной профессии
Айтишницы поделились профессиональным опытом и рассказали о стереотипах и сложностях, с которыми им пришлось столкнуться на карьерном пути.
Читать статью
Айтишницы поделились профессиональным опытом и рассказали о стереотипах и сложностях, с которыми им пришлось столкнуться на карьерном пути.
Читать статью
🥱10❤9🥰2
🍏📚 ТОП-7 книг по Swift и iOS-разработке в 2023 году
Популярные книги по изучению Swift на русском и английском языках, опубликованные за последние несколько лет.
Читать статью
#книги
Популярные книги по изучению Swift на русском и английском языках, опубликованные за последние несколько лет.
Читать статью
#книги
👍6❤4😁2
🤔🙊 Gradle Kotlin DSL: о чем умолчали в документации
Gradle.kts уже давно не новая технология, но далеко не все на нее перешли. Причины разные: кто-то слышал о плохом перформансе, кто-то пытался мигрировать, но с ходу не вышло. Даже спустя 5 лет после релиза скуповатая на детали документация не проясняет многие кейсы. Спикер постарается исправить эту ситуацию в своем докладе.
Вы узнаете, есть ли вообще причины переходить на kts в 2023 году и насколько все плохо (или хорошо) с перформансом, учитывая что во многих release notes сообщают об ускорениях. Спикер также разберет все проблемы, возникающие как при миграции крупного проекта, так и при интеропе Kotlin/Groovy.
#видео
Gradle.kts уже давно не новая технология, но далеко не все на нее перешли. Причины разные: кто-то слышал о плохом перформансе, кто-то пытался мигрировать, но с ходу не вышло. Даже спустя 5 лет после релиза скуповатая на детали документация не проясняет многие кейсы. Спикер постарается исправить эту ситуацию в своем докладе.
Вы узнаете, есть ли вообще причины переходить на kts в 2023 году и насколько все плохо (или хорошо) с перформансом, учитывая что во многих release notes сообщают об ускорениях. Спикер также разберет все проблемы, возникающие как при миграции крупного проекта, так и при интеропе Kotlin/Groovy.
#видео
👍9🎉6🤩4🔥2👏2
🍏⚙️⚙️ 8 советов по оптимизации приложения для iOS
Ведущий со спикером дают практические советы и разбирают способы повышения производительности в видео.
01:48 – Удаление двоичных символов
05:18 – Совместное использование кода и ассетов
08:55 – Оптимизация ассетов
13:23 – Keep the Main Thread Light
17:37 – Предпочитайте Static Dispatch
22:20 – Понимание вашего менеджера пакетов
26:54 – Оптимизация моделей CoreML
30:36 – Никогда не прекращайте совершенствоваться
#видео
Ведущий со спикером дают практические советы и разбирают способы повышения производительности в видео.
01:48 – Удаление двоичных символов
05:18 – Совместное использование кода и ассетов
08:55 – Оптимизация ассетов
13:23 – Keep the Main Thread Light
17:37 – Предпочитайте Static Dispatch
22:20 – Понимание вашего менеджера пакетов
26:54 – Оптимизация моделей CoreML
30:36 – Никогда не прекращайте совершенствоваться
#видео
👍11❤2
🧑🍳🧑🍳 Kotlin Multiplatform и плагины компилятора на практике
О докладе:
Плагины компилятора Kotlin — мощный инструмент для оптимизации кода приложения, автоматизации решения ряда задач. Их достоинством является легковесность и гибкость использования. Также плагины компилятора Kotlin поддерживают различные таргеты и подходят для Kotlin Multiplatform, в том числе и для решения проблем общего кода.
Спикер покажет и расскажет, как с помощью данного инструментария решать практические задачи в приложениях Kotlin Multiplatform, учитывать различные нюансы и подводные камни. Доклад будет полезен всем разработчикам, интересующимся плагинами компилятора Kotlin, а также разработкой эффективных решений под Kotlin Multiplatform.
Смотреть видео
#видео
О докладе:
Плагины компилятора Kotlin — мощный инструмент для оптимизации кода приложения, автоматизации решения ряда задач. Их достоинством является легковесность и гибкость использования. Также плагины компилятора Kotlin поддерживают различные таргеты и подходят для Kotlin Multiplatform, в том числе и для решения проблем общего кода.
Спикер покажет и расскажет, как с помощью данного инструментария решать практические задачи в приложениях Kotlin Multiplatform, учитывать различные нюансы и подводные камни. Доклад будет полезен всем разработчикам, интересующимся плагинами компилятора Kotlin, а также разработкой эффективных решений под Kotlin Multiplatform.
Смотреть видео
#видео
❤9👍3
🤔 #дайджест полезностей для мобильного разработчика
❇️ API Level ниже 19 больше не поддерживаются библиотеками Jetpack
❇️ ЗАБУДЬ про UITableView — DiffableDataSource упростит код, отобразит таблицу на основе сделанных снимков и анимирует ячейки
❇️ Русификация китайских авто — о наборе инструментов, которые смогут облегчить путь, если вы собираетесь заняться кастомизацией Android в машине
❇️ ОС Аврора. Статус поддержки фреймворка Flutter — вы узнаете, почему команда операционной системы «Аврора» решила задуматься над адаптацией популярных кроссплатформенных фреймворков
❇️ SwiftUI: Adaptable Stack — динамическое переключение между HStack и VStack на основе пользовательских настроек размера текста
❇️ API Level ниже 19 больше не поддерживаются библиотеками Jetpack
❇️ ЗАБУДЬ про UITableView — DiffableDataSource упростит код, отобразит таблицу на основе сделанных снимков и анимирует ячейки
❇️ Русификация китайских авто — о наборе инструментов, которые смогут облегчить путь, если вы собираетесь заняться кастомизацией Android в машине
❇️ ОС Аврора. Статус поддержки фреймворка Flutter — вы узнаете, почему команда операционной системы «Аврора» решила задуматься над адаптацией популярных кроссплатформенных фреймворков
❇️ SwiftUI: Adaptable Stack — динамическое переключение между HStack и VStack на основе пользовательских настроек размера текста
❤6🔥3👍1
#вопросы_с_собеседования
Какие ограничения есть для протоколов, у которых есть associated type?
Так как протоколы с assotiated type не являются достаточно конкретными, объявить переменную данного типа или передать напрямик подобный тип как параметр функции невозможно.
Здесь на помощь нам приходят ключевые слова any и some. Данные два ключевых слова решают одну и ту же проблему, но немного по-разному.
any - создает коробку вокруг конкретного типа, который удовлетворяет данному протоколу. some - указывает, что пусть это не известно заранее, но на момент компиляции программы конкретный тип переменной будет известен точно.
Какие ограничения есть для протоколов, у которых есть associated type?
🤔7❤5