Библиотека мобильного разработчика | 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
📉💼 Грейдинг умер, ИИ захватил собесы: 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