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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
🎮 КВЕСТОВАЯ ЛИНИЯ: «Путь Data Scientist'а»

⮕ Твой стартовый набор искателя данных:
Python — твое легендарное оружие (урон по багам +∞)
Математика — твой базовый интеллект (влияет на понимание алгоритмов)
Машинное обучение — твое дерево навыков (открывает новые способности)


⚡️ АКТИВЕН ВРЕМЕННЫЙ БАФФ: «Щедрость наставника»

Эффект: –30% к цене полного набора ДСника
Было: 121.800 ₽ → Стало: 84.900 ₽

☞ Что ждет тебя в этом квесте

— Получение артефактов: портфолио проектов и сертификаты— Прокачка от новичка до Senior Data Scientist— Босс-файты с реальными задачами из индустрии— Доступ к гильдии единомышленников


📎 Забрать бафф
Рассрочки: 3 мес | 6 мес | 12 мес
⚡️ Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот!

Кто нужен?
Senior ML-Engineer с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.


Но если вы пока джун — я бы предложил:

- Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях
- Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL

🔗 Старт 9 сентября
👍1
🗓 Новости недели

Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.

🔵 «Стеклянный мир» iOS 26. Адаптируем приложение под новые гайдлайны

Уже скоро релиз iOS 26 и обновления SDK приложений. Apple снова вносит корректировки, а разработчики и дизайнеры снова подстраиваются. У текущих приложений будет переходный период, но вопрос с обновлением интерфейсов рано или поздно настанет и придется адаптировать под новый SDK и стиль Liquid Glass, чтобы продукт выглядел современно.

🔵Создание потрясающих загрузочных анимаций с помощью SF Symbols

SF Symbols позволяет легко создавать мощные и гибкие анимации и эффекты. По мнению автора, для разработчиков, ориентирующихся на последние версии ОС, этот инструмент становится предпочтительным выбором по сравнению с написанием большого объема кастомного кода.

🔵 Flow-контейнеры в Compose

Понимая и используя эти функции, вы сможете создавать более адаптивные и визуально привлекательные пользовательские интерфейсы в Jetpack Compose.

🔵 Упрощаем NFC: обзор нового SDK для Android разработки

Работа с NFC в Android всегда была непростой задачей. Нативный API требует от разработчика понимания низкоуровневых протоколов и механизмов обработки данных. Новый TAO NFC SDK (Android) призван решить эту проблему, предоставляя высокоуровневую абстракцию, которая значительно упрощает взаимодействие с NFC-метками.

🔵 Compose Multiplatform простое приложение c MVI

Статья об использовании мультиплатформенного решения на Compose с минимальным количеством сторонних beta библиотек.

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1👏1
Вопрос с собеседования по Swift

Какие потенциальные улучшения вы здесь видите?

Вы просматриваете пулл-реквест и столкнулись с этим методом:

func turnTo(direction: String){
if direction == "North" {
northAction()
} else if direction == "East" {
eastAction()
} else if direction == "South" {
southAction()
} else if direction == "West" {
westAction()
} else {
print("No valid direction specified")
}
}


Какие улучшения вы можете предложить автору кода?

Даже если этот код может работать, есть два момента, которые следует учитывать.

• Использование жестко закодированных строк типа (например, "West") - плохая идея. Что если кто-то неправильно напишет это слово? Чтобы решить эту проблему, следует отказаться от жестко закодированных строк и вместо них использовать перечисление.

• Кроме того, как насчет использования оператора switch вместо длинного оператора if-else?

Благодаря этим улучшениям код станет более безопасным и читабельным:

enum Direction {
case North
case East
case South
case West
}
func turnTo(direction: Direction){
switch direction {
case .North: northAction()
case .East: eastAction()
case .South: southAction()
case .West: westAction()
default:
print("No valid direction specified")
}
}


🐸 Библиотека мобильного разработчика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😢1
⌨️ Топ вакансий для мобильных разработчиков за неделю

Мобильный разработчик (React Native / другие) —‍ от 150 000 до 350 000 ₽, удалёнка

Старший iOS-разработчик —‍ от 300 000 до 540 000 ₽, гибрид (Москва)

Мобильный разработчик (Flutter) —‍ от 100 000 до 300 000 ₽, удалёнка

Разработчик мобильных приложений (React Native + Kotlin) —‍ от 250 000 ₽, удалёнка

Mobile Application Security Еngineer [Кибербезопасность] —‍
от 250 000 ₽, удалёнка

➡️ Еще больше топовых вакансий — в нашем канале Mobile jobs

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Иногда реально ощущение, что нас держат в Матрице.

Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё.

Сегодня последний день промокода Lastcall (−5000 ₽).
Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы.

Кто готов вырваться из симуляции и ворваться в сезон найма?

👾 — я уже в команде Нео
👍 — хочу красную таблетку
🤔 — пока думаю, но интересно

Забирай полный комплект для ML-разработки: Python + Математика + Машинное обучение.
🔥 Скидка 30% действует только до 9 сентября → забираем себе
👾 Облегчаем жизнь больших экранов на Compose

В декларативных UI-фреймворках, таких как Jetpack Compose, принятым подходом является state hoisting. Это означает, что чаще всего мы стремимся управлять состоянием в родительском компоненте, а не хранить state прямо в UI-компоненте. Но всегда ли state hoisting так хорош?

На примере сложных экранов разобрались, как stateful-подход может существенно облегчить разработку больших экранов.

Но как же сделать stateful-компонент в большом проекте, если у нас:

🔘 API/Impl-архитектура;
🔘 dependency injection;
🔘 важна скорость сборки.

Автор рассказал про удобный способ создания stateful-компонентов в условиях большого проекта в рамках API/Impl-архитектуры. Это поможет разгрузить сложные экраны и делать переиспользуемые UI-компоненты в условиях API/Impl и DI.

👀 Смотреть доклад

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
3
⭐️ Capsule — скругленные углы для Jetpack Compose

Capsule — это библиотека Jetpack Compose, которая создает скругленные G2-сопряженные (радиус кривизны не имеет скачков) прямоугольники.

Отрисовка кубических кривых Безье на Android выполняется не очень эффективно. Однако библиотека Capsule использует очень эффективный метод расчёта контрольных точек, обеспечивая оптимальную теоретическую производительность.

💻 Capsule на GitHub

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
📱 Выбираем мобильный фреймворк для e-commerce

В 2025 году уже недостаточно просто выпустить приложение — оно должно быстро адаптироваться к изменениям рынка, удобно и эффективно интегрироваться с новыми технологиями и обеспечивать хороший пользовательский опыт.

Но что лучше выбрать: нативную разработку, кроссплатформу, или технологию Kotlin Multiplatform? Автор статьи разбирает эти три подхода и сравнивает плюсы и минусы каждой технологии.

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

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
2😁1
🎙 Подкасты и видео о мобильной разработке

Собрали лучшее о мобильной разработке. Включаем и смотрим по пути на работу.

Разбор MAX программистом

Организация кода в проекте — в какой пакет положить Kotlin класс

ProGuard — Стандарт Мобильной Безопастности?

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
Array или Set для 10 тыс. элементов в Swift

Это похоже на базовый вопрос о структурах данных, но это не так.

На самом деле, речь идёт о следующем:

🔘 Знаете ли вы, как ведут себя массивы и множества в Swift?
🔘 Можете ли вы объяснить разницу простым языком?
🔘 Думаете ли вы о компромиссах, а не о единственном «правильном» ответе?
🔘 Связываете ли вы это с реальной работой приложения в iOS?

Вот почему этот вопрос так популярен на собеседованиях. Он отличает людей, которые запоминают, от тех, кто умеет рассуждать.

👉 Подробнее в статье

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
4
✏️ xcrun simctl pushотправляем пуш-уведомления в симулятор iOS без сервера

💡 Зачем это нужно?

Тестирование пуш-уведомлений на iOS-симуляторе стало еще проще. Не нужно настраивать бэкенд или использовать сторонние сервисы – отправляйте нотификации прямо из терминала.

🔥 Как отправить пуш:

1. Создайте JSON-файл с payload (notification.apns):
{
"aps": {
"alert": {
"title": "Важное уведомление",
"body": "Привет из командной строки!"
},
"sound": "default"
},
"customData": "test123"
}

2. Отправьте на устройство:

xcrun simctl push booted com.yourapp.bundleid notification.apns


🎯 Полезные варианты:

Отправка на конкретный симулятор:

xcrun simctl push <device-udid> <bundle-id> <payload-file>


Быстрая отправка без файла (через pipe):

echo '{"aps":{"alert":"Test"}}' | xcrun simctl push booted com.yourapp.bundleid -


Лайфхаки:

Посмотреть список устройств:

xcrun simctl list devices | grep Booted


Тестирование разных сценариев:

- Нотификации с действиями (actions)
- Фоновые уведомления (content-available)
- Кастомные данные (custom keys)

А вы тестируете пуши через терминал? Делитесь своими скриптами в комментариях 💬

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1