Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.79K subscribers
1.49K 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
😎 Сколько баллов набрали вы?

Голосуйте, какой у вас уровень разработчика:

😁 — 5-12 баллов (стажер)
👍 — 13-25 баллов (джуниор)
⚡️ — 26-40 баллов (джуниор+)
👏 — 41-60 баллов (миддл)
🔥 — 61-80 баллов (миддл+)
🎉 — 81-100 баллов (сеньор)
🤩 — 100+ баллов (тимлид)

Но вот в чем прикол — опытный разработчик набирает баллы не случайными косяками, а осознанными решениями.

👉 Научим, как быстро прокачаться от стажера до сеньора
👨‍💻 ARC в Swift

ARC (Automatic Reference Counting) - это метод подсчёта ссылок на объекты, который используется Apple для управления памятью в Swift.

Автор разберёт, что такое ARC на самом деле, посмотрит, как он работает на уровне SIL, и заглянет немного в историю управления памятью в iOS.

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

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🔥 6 горячих клавиш VS Code

Горячие клавиши — добро, польза и экономия времени. Давайте разберёмся, как с их помощью упростить себе жизнь в Visual Studio Code.

1️⃣ Перейти к парной скобке

Windows — Ctrl + Shift + \

macOS — Shift + Command + \

Когда кода становится много, очень просто запутаться в закрывающих и открывающих скобках, непонятно, где какой блок, и вообще, что происходит. На помощь приходит Ctrl + Shift + \ — это хорошее дополнение к стандартной подсветке парных скобок в VS Code.

2️⃣ Переименовать переменную

Windows — F2

macOS — F2

Писали, писали, а старший разработчик пришёл и сказал, что ваши переменные a, b и c — дурной тон. Чтобы не выискивать их по всему документу и не менять руками, есть F2.

3️⃣ Отформатировать документ

Windows — Shift + Alt + F

macOS — Shift + Option + F

VS Code предложит установить расширение или выбрать из существующих, а потом красиво отформатирует документ — расставит по местам блоки и скобки, сделает строки кода читаемыми.

4️⃣ Перейти к переменной

Windows — F12

macOS — F12

Иногда вообще непонятно, откуда взялась переменная, какая у неё область видимости и где она объявлена. F12 перенесёт вас к объявлению выделенной переменной, функции или метода. Если объявление в другом файле — всё равно перенесёт.

5️⃣ Включить или выключить перенос слов

Windows — Alt + Z

macOS — Option + Z

Если строки кода или текст не вмещаются в редактор по ширине, включите перенос.

6️⃣ Включить дзен-режим

Windows — Ctrl + KZ

macOS — Command + KZ

Лучшее решение для тех, кто входит в состояние потока, когда пишет код. Дзен-режим скрывает все панели, разворачивает редактор на весь экран, и вы можете плыть в волнах кода и думать только о нём. Чтобы вернуться в реальный мир, нажмите Escape.

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🔒 Оптимистическая vs пессимистическая блокировка

Что произойдет, если несколько пользователей одновременно начнут менять одни и те же данные? Скорее всего — потеря изменений и ошибки.

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

Разбираемся, как работают блокировки и какая из них лучше подойдет вашему приложению.

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

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🌚1
🎮 КВЕСТОВАЯ ЛИНИЯ: «Путь 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
👍5🔥4
🔥 Последняя неделя перед стартом курса по AI-агентам

Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место

На курсе:
разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах

📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями

И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»

Промокод на 5.000₽: LASTCALL

👉 Курс здесь
🔒 Оптимистическая vs пессимистическая блокировка

В карточках разобрали, как работают блокировки и какая из них лучше подойдет вашему приложению

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

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21