У нас есть Telegram-канал Mobile Insights, где подборки статей и новостей выходят каждый день, а так же AppFiles с библиотеками и самыми интересными статьями о мобильной разработке!
iOS
- Тест-ревью: как прошли два года написания unit-тестов
- Как использовать дженерики в Swift
- Как работает Backend-Driven UI на мобильном клиенте
- Автоматическое разве?ртывание инфраструктуры в iOS проекте
- Почему ваше приложение могут не пропустить или даже удалить из App Store?
- Простой способ обнаружить retain cycle в UIViewController
- В App Store снова начали удалять устаревшие приложения
- Использование типографики Apple для iOS-Дизайнера
- Шесть принципов, которые помогут лучше писать модули для iOS-приложений
Пример использования SwiftUI: моделирование данных Brotherhood Alchemist Кастомный индикатор активности с изображением Запускаем агентов Azure на macOS с локальным размещением на Apple M1 Совместное использование Core Data с CloudKit в SwiftUI Типы памяти в Swift Более чистый Swift MVVM с Property Wrapper Повышаем производительность в iOS-приложений Полное руководство по модульному тестированию в iOS с лучшими практиками Перемещение представлений и моделей SwiftUI в отдельные пакеты Swift Моделирование тестируемых зависимостей в кодовых базах iOS TDD для начинающих — с примерами на Swift Эволюция архитектуры приложения Medium для iOS Почему iOS-разработчики никогда не должны использовать iCloud в своих приложениях Локализация в приложении iOS с MapKit и CoreLocation 3 причины, почему мне не нравится SwiftUI Два способа юнит-тестирования центра уведомлений в Swift YPImagePicker: выбор фото, как в Instagram iOS Clean Architecture MVVM: шаблон чистой архитектуры
Android
- Отменяем операции правильно на примере корутин
- Запись разговоров на мобильных
- Googlу выпустил developer preview версию Privacy Sandbox для Android
- Конвергенция в многомодульном приложении
- Адаптация Compose в hh.ru
- Тёмная сторона Android App widgets
- Топ вопросов работодателю от Android-разработчика
- Google в 2021 заблокировал более 1М приложения и 190К разработчиков
- Количество приложений в Google Play сокращается
- Google Play начинает внедрение пометок о конфиденциальности данных
- Вышла первая публичная бета-версия Android 13
- Четыре всадника апокалипсиса джуна Android разработчика
Дженерики в Kotlin Важность проверки обертки Gradle Android KSP для чайников от чайника Моделирование ответов Retrofit с помощью изолированных классов и корутин Изучаем библиотеку Google Map Compose для Android Измеряйте и улучшайте производительность с помощью Macrobenchmark Использование DiffUtil в RecyclerView Как ViewModels переживают изменения конфигурации Пагинация с Paging 3 в Android Example Овладеваем корутинами за два часа — бесплатный курс Однонаправленная связь сервер-клиент с использованием SSE в Android Метапрограммирование с Kotlin для Android Compose или не Compose, вот в чем вопрос Мой путь в размещении моего open source приложения в Google Developers Dev Library Понимание функций Kotlin Scope за 2 минуты LibreTube: свободный YouTube Awesome Android Lint: лучшие правила SlimeKT: платформа для статей
Разработка
- Левел-дизайн 101: язык разработки локаций
- К чему приводят тестовые задания или как я реализовал Match-3 для терминала
- Редизайн ивентового арта: поиск и разработка новых пайплайнов для улучшения контента
- Как мы сделали мобильные устройства круглосуточно доступными для распределенной QA-команды и не только
- Быстрый переход на UNIGINE с Unity: первые шаги
- Aurora OS: первый взгляд
- Встречают по одёжке: как мы меняем главную в приложении с 13 миллионами MAU
- Программное обеспечение приходит в упадок?
- Альф, переведи мне на телефон миллион рублей
- Как использовать Kotlin Multiplatform ViewModel в SwiftUI и Jetpack Compose
- Погружение в Charles Proxy
- И снова про App Transport Security: что это и зачем
- «Java для начинающих»: новый обучающий курс от Microsoft
- Podlodka #265: Erlang
- Lens Cloud предлагает бэкенд для AR-разработчиков Snap
- $412 млн: SonarSource — чистый код для всех
- Google открывает доступ к Media CDN
- VK будет делать российский магазин приложений
- Google показал скрытые интерфейсы для Ambient Computing
- Google выпустил новую коллекцию иконок Material Symbols
- Первые ошибки начинающего разработчика или как я создала свою первую F2P-игру
- 2022 год: продакт-менеджеры и дизайнеры должны говорить об эмбиентных вычислениях
- Основы UX-дизайна для приложений Web 3.0
- Искусство продуктового менеджмента. Важность софт скилов
- AppYou.ru — универсам мобильных приложений и телеграм ботов
- Хороший дизайн сводится к своевременности
Создание качественного программного обеспечения требует больше усилий и навыков, а не времени Важность чистого кода Написание кода — это одно, а обучение на инженера-программиста — другое Глубокое погружение в конструкторы Dart Непрерывная доставка в Airbnb Как разработчики Google пишут свои комментарии Полное руководство по анимациям во Flutter Как масштабировать приложение для поддержки миллионов пользователей Разбор инцидента Slack 22-22-22 7 причин, по которым я объясняю ответ во время собеседования Чистый код — практический подход Лучшие вызовы API во Flutter Худшая ошибка — случайная потеря лучших игроков
Аналитика, маркетинг и монетизация
- Как увеличить количество оценок приложения одним простым шагом
- Индекс Лепрекона
- Локализация продукта и её подводные камни
- “ATT — 1 год”: отчет AppsFlyer
- Краткий анализ лучших мобильных игр в Twitter
- Diablo Immortal выходит на iOS и Android 2 июля
- Рост BeReal, приложения одномоментной фотографии
AI, Устройства, IoT
- KC868-AG: IoT шайба
- Властелины колец
- Go для самых маленьких. Разрабатываем для Arduino и других микроконтроллеров
- Snap выпустил мини-дрон для съемки фото и видео
14 датасетов для вашего следующего Data Science проекта Современные рекомендательные системы с нейронными сетями Как настроить среду разработки для машинного обучения