Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.82K subscribers
1.46K photos
71 videos
52 files
4.22K links
Все самое полезное для мобильного разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
🏃🏃‍♂️ Как ускорить сборку проекта и не остановить разработку

Видос о том, как спикер применил в 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 для генерации иерархии лексического скоупа при дебаге, что приводит к некоторым изменениям поведения в отладчике.

#новость
👍53
🤔 #дайджест полезностей для мобильного разработчика

✳️ 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 дает реальный выигрыш
🥰2214🔥11👏8👍4
👩‍💻 Женщины в ИТ: проблемы и преимущества сложной профессии

Айтишницы поделились профессиональным опытом и рассказали о стереотипах и сложностях, с которыми им пришлось столкнуться на карьерном пути.

Читать статью
🥱109🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
#memes

Когда разработчику говорят, что с удаленки нужно выйти в офис
👍17😁113
🍏📚 ТОП-7 книг по Swift и iOS-разработке в 2023 году

Популярные книги по изучению Swift на русском и английском языках, опубликованные за последние несколько лет.

Читать статью

#книги
👍64😁2
🤔🙊 Gradle Kotlin DSL: о чем умолчали в документации

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 – Никогда не прекращайте совершенствоваться

#видео
👍112
🧑‍🍳🧑‍🍳 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 на основе пользовательских настроек размера текста
6🔥3👍1
#вопросы_с_собеседования

Какие ограничения есть для протоколов, у которых есть associated type?

Так как протоколы с assotiated type не являются достаточно конкретными, объявить переменную данного типа или передать напрямик подобный тип как параметр функции невозможно.
Здесь на помощь нам приходят ключевые слова any и some. Данные два ключевых слова решают одну и ту же проблему, но немного по-разному.
any - создает коробку вокруг конкретного типа, который удовлетворяет данному протоколу. some - указывает, что пусть это не известно заранее, но на момент компиляции программы конкретный тип переменной будет известен точно.
🤔75