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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
Осталось 48 часов!

Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.

⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.

👉 Забрать место
🥱2
📉💼 5 трендов IT-найма 2025

Помнишь времена, когда можно было поменять работу и сразу получать на 50% больше? Забудь. В 2025-м правила игры кардинально изменились — теперь компании боятся ChatGPT на собесах, а искать работу через LinkedIn стало бесполезно. Разбираем 5 трендов, которые перевернули IT-найм с ног на голову.

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

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
2😢1
🤓 «Сначала выучу Python идеально, а потом пойду в ML»

Звучит логично, но на практике — ловушка.
Python огромный: фреймворки, библиотеки, нюансы синтаксиса. Учить «всё сразу» можно бесконечно.

В итоге — месяцы зубрёжки, а до ML руки так и не доходят.

На старте достаточно баз: типы данных, циклы, функции, работа с библиотеками. Всё остальное лучше подтягивать в процессе решения ML-задач.

⚠️ До 1 сентября курсы можно забрать по старым ценам. Это последние выходные, когда:
ML идёт за 34 000 вместо 44 000 ₽ + Python в подарок,
два в одном: оплатите курс по математике и получите второй доступ в подарок,
— и главное: можно купить все курсы до подорожания.

👉 ML для старта в Data Science

А для будущих Data Scientist’ов у нас ещё:
Базовые модели ML и приложения
Математика для Data Science
AI-агенты для DS-специалистов (2-й поток скоро)
ПОСЛЕДНИЙ ДЕНЬ
КУРСЫ ПОДОРОЖАЮТ ЗАВТРА‼️

ML за 34к вместо 44к + Python в подарок
Математика → второй доступ в подарок
— Ранний доступ к AI-агентам с 15 сентября
— И МОЖНО УСПЕТЬ КУПИТЬ ВСЁ ДО ПОДОРОЖАНИЯ

👉 Proglib Academy
❗️Прогресс в технологическом стеке

С 2022 IT-рынок в России продолжает расти с высокой скоростью, однако в последнее время начал падать темп роста. Роль в этом сыграло и санкционное давление, и дефицит кадров, и необходимость быстрой перестройки после ухода западных продуктов.

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

В статье автор рассматривает новые приоритеты бизнеса и предлагает уже доказавшие свою стабильность, проверенные решения

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

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰2
⚡️ Команда дня: git rebase -i

Когда коммиты множатся быстрее, чем баги на проде, приходит время навести порядок в истории. И тут спасает интерактивный ребейз.

Что он умеет?
squash (s) — объединить несколько коммитов в один. Удобно при 10-ти коммитах «fix»
reword (r) — поменять сообщение коммита, не трогая сам код
edit (e) — остановиться на коммите, чтобы поправить код прямо в процессе переписывания истории
drop (d) — удалить ненужный коммит
pick (p) — оставить коммит как есть (по умолчанию)

Когда это пригодится?

🔸Перед созданием merge/pull request, чтобы не тащить в историю «мусорные» коммиты
🔸 Чтобы объединить мелкие правки в один логичный коммит
🔸 Чтобы откатить или отредактировать только часть изменений без лишнего шума

💡 А вы часто squash-ите коммиты или оставляете как есть?

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🤩1
📉💼 Грейдинг умер, ИИ захватил собесы: 5 трендов IT-найма 2025

Помнишь времена, когда можно было поменять работу и сразу получать на 50% больше? Забудь. В 2025-м правила игры кардинально изменились — теперь компании боятся ChatGPT на собесах, а искать работу через LinkedIn стало бесполезно. Разбираем 5 трендов, которые перевернули IT-найм с ног на голову.

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

🐸 Библиотека мобильного разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
😁31
👀 Настройка мониторинга производительности мобильного приложения

Проблема

Пользователи удаляют приложения из-за:

• Долгой загрузки экранов
•Подвисаний интерфейса
•Высокого потребления батареи

Мониторинг производительности помогает выявлять и исправлять проблемы до того, как они повлияют на рейтинг приложения.

📊 Ключевые метрики для отслеживания

• Время запуска приложения (Cold/Warm/Hot start)
• Частота кадров (FPS) на основных экранах
• Потребление памяти (RAM)
• Использование CPU и батареи
• Скорость загрузки данных (сеть)

🛠 Инструменты мониторинга

1. Firebase Performance Monitoring (Android/iOS)

// Android: добавьте в build.gradle
implementation 'com.google.firebase:firebase-perf:20.5.1'


// iOS: добавьте в Podfile
pod 'FirebasePerformance'


2. Создание кастомных трейсов:

// Android
val trace = Firebase.performance.newTrace("screen_load")
trace.start()

// Выполнение работы...
trace.stop()

// iOS
let trace = Performance.startTrace(name: "screen_load")
// Работа...
trace.stop()


3. Отслеживание скорости загрузки экрана:

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val trace = Firebase.performance.newTrace("main_activity_create")
trace.start()

setContentView(R.layout.activity_main)
// Инициализация UI

trace.stop()
}
}


📱 Настройка мониторинга FPS

Android (Choreographer)

class FpsMonitor : Choreographer.FrameCallback {
private var frameCount = 0
private var startTime = 0L

override fun doFrame(frameTimeNanos: Long) {
if (startTime == 0L) {
startTime = frameTimeNanos
}

frameCount++
val elapsed = (frameTimeNanos - startTime) / 1_000_000
if (elapsed >= 1000) {
val fps = (frameCount * 1000 / elapsed).toFloat()
// Отправка метрики
frameCount = 0
startTime = frameTimeNanos
}
Choreographer.getInstance().postFrameCallback(this)
}
}


iOS (CADisplayLink)

class FpsMonitor {
private var displayLink: CADisplayLink?
private var lastTimestamp: CFTimeInterval = 0
private var frameCount: Int = 0

func startMonitoring() {
displayLink = CADisplayLink(target: self, selector: #selector(step))
displayLink?.add(to: .main, forMode: .common)
}

@objc func step(displayLink: CADisplayLink) {
if lastTimestamp == 0 {
lastTimestamp = displayLink.timestamp
return
}

frameCount += 1
let delta = displayLink.timestamp - lastTimestamp
if delta >= 1 {
let fps = Double(frameCount) / delta
// Отправка метрики
frameCount = 0
lastTimestamp = displayLink.timestamp
}
}
}


📈 Анализ и визуализация данных

• Firebase Console – готовые графики и отчеты
• Custom dashboards – Grafana, Data Studio
• Оповещения – при падении FPS ниже 50 или росте потребления памяти

💡 Лучшие практики

• Мониторьте в продакшене – реальные данные пользователей
• Сегментируйте данные – по устройствам, версиям ОС, сетям
• Установите целевые показатели – например, 60 FPS, холодный запуск < 2 сек

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Переворачиваем календарь — а там скидки, которые уже закончились.

Но мы их вернули на последний день 🤔

До 00:00 третьего сентября (цены как до 1 сентября):

▪️ Математика для Data Science — 35.199 ₽ вместо 44.900 ₽
▪️ Алгоритмы и структуры данных — 31.669 ₽ вместо 39.900 ₽
▪️ Основы IT — 14.994 ₽ вместо 19.900 ₽
▪️ Архитектуры и шаблоны — 24.890 ₽ вместо 32.900 ₽
▪️ Python — 24.990 ₽ вместо 32.900 ₽
▪️ ML для Data Science — 34.000 ₽ вместо 44. 000 ₽
▪️ AI-агенты — 49.000 ₽ вместо 59.000 ₽

👉 Хватаем скидки из прошлого

P.S. Машину времени одолжили у дяди Миши
⚙️ Внедрение in-app purchases (встроенных покупок)

Хотите monetize ваше приложение, но запутались в правилах App Store и Google Play? Этот промпт поможет реализовать покупки без головной боли.

📝 Промпт:

Implement in-app purchases for a mobile app that includes:
— Set up products in App Store Connect/Google Play Console
— Initialize billing clients for [Android/Kotlin/iOS/Swift]
— Implement purchase flow with proper error handling
— Restore purchases functionality
— Validate receipts on backend/server
— Handle subscription management and status tracking
— Manage consumable/non-consumable products


💡 Расширения:

— Добавьте Implement local validation for offline purchases для проверки при отсутствии сети
— Добавьте Add grace period for subscription renewals для улучшения пользовательского опыта
— Добавьте Handle price changes and introductory offers для гибкой монетизации

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
3
😎 Сколько баллов набрали вы?

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

😁 — 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