В нашем новом выпуске лучший дизайн приложений в Apple Design Awards 2022, гибкая навигация и первый взгляд на песочницу конфиденциальности, Flutter в разработке игр, «ретро» в Майнкрафт и многое другое. Всего 95 материалов!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

iOS
• Гибкая навигация в iOS
• Avito iOS meetup #9
• Финалисты Apple Design Awards 2022
• Нативный backend-driven UI в iOS приложении на базе Editor.js
•
Введение в Accessibility Workspace
•
Более быстрая сборка в Xcode при переключении веток
•
SwiftUI: понимание identity через переходы
•
Как эффективно дампить SwiftUI Environment
•
Объяснение замыканий в Swift
•
Чистая архитектура: приложение для iOS
•
Бесконечная прокрутка в UITableView намного проще, чем вы думали
•
Swift: несколько советов по улучшению качества кода
•
Синхронизация навигации iOS-приложения с NavigationQueue
•
Советы и рекомендации по отладке в Xcode
•
Как реализовать шаблон Координатор в Swift
•
Шаблон Фабрика в Swift для начинающих
•
Следующая страница: создание бесконечной прокрутки в SwiftUI
•
Wordle на SwiftUI
•
14 полезных операторов для работы с массивами в Swift
•
VFont: использование вариативных шрифтов в iOS
•
FloatingPanel: выдвигающаяся панель для iOS
•
Sourcery: мета-программирование для Swift
Android
• Тестирование продукта RuScanner: как заставить отладчик Android работать во благо тестирования
• Первый взгляд на «песочницу конфиденциальности» Google и ее влияние на SDK
• Введение в Jetpack Compose
• Избегайте «when» — используйте полиморфизм
• Полдюжины правил для статического анализатора Detekt
• Сила @RawQuery. Сокращаем код DAO на 90%
• В Jetpack вышла библиотека поддержки Ultra-Wideband (UWB)
•
Анимированный курсор с пиксельной пылью и даже больше
•
Классическая игра «Змейка» с Jetpack Compose
•
Кстомный эффект повышения цвета в Compose
•
Видео Android Makers 2022
•
Экран выбора времени для приложения Таймер на Jetpack Compose
•
Кастомный Pull to Refresh в Jetpack Compose
•
Форматирование Android-кода с помощью Ktlint и Git Hooks
•
Эффект параллакса с SensorManager и Jetpack Compose
•
Экономия времени в Android-проектах с помощью рабочих процессов Bitrise
•
Избегайте использования выражения «when» как можно чаще. Вместо этого используйте полиморфизм
•
Практический пример Compose Slot API
•
Как создать макет для RTL
•
Дорожная карта для Android-разработчика 2022: часть 3 / 2 / 1
•
ViewModel: антипаттерны разовых событий
•
Compressor: сжатие изображений в Android
•
Component Box: Server-driven UI на Kotlin Multiplatform
Кроссплатформа
• Flutter & games: пробуем Bonfire в роли игрового движка
• Сборка мусора во Flutter
• Как учат создавать игру вида TowerDefence — ошибки «новичков»
•
Список полезных расширений VS Code для разработчиков Flutter
•
Динамические темы для вашего Flutter приложения
•
Отзывчивый пользовательский интерфейс во Flutter с Sizer
•
Я нашел идеальную архитектуру для Flutter-приложений
•
Добавляем сплешскрин во Flutter-приложении менее чем за минуту
•
Как не надо учить Flutter
Разработка
• Командное «ретро» в Майнкрафт: 10 из 10, не рекомендую
• Эволюция Server-Driven UI: динамические поля, хэндлеры и многошаг
• Небольшие советы по работе в GameMaker на примере моего психологического триллера
• BLE Inspector, маленькое open source приложение для датчиков уровня топлива
• Перформанс мониторинг по-взрослому: выкладываем запись Mobile Meetup
• Как тестировать стриминговые приложения
• История о бесконечном регрессионном тестировании
• Дизайн приложений: примеры для вдохновения #77
• Как изменится программирование в ближайшие 5-10 лет
• Как написать backend: свой сервер на Kotlin и Ktor
• Только 2% россиян назвали программирование уважаемой профессией
• $80 млн в Серии B: WorkOS — корпоративные функции для приложений
• У Alphabet и Meta самые высокие средние зарплаты
• Самые высокооплачиваемые вакансии мая в разработке приложений
• Как улучшить качество кодовой базы
• Про дизайн профиля вождения
•
Лучшие практики пул-реквестов
•
Как создавать дизайны в Figma, которые будут любить разработчики
•
Автоматизация CI/CD-конвейеров для мобильных приложений
•
Системный дизайн приложения Uber — Системная архитектура Uber
•
Как всегда быть перспективным разработчиком
•
5 инструментов, которые помогут вам работать в 2 раза быстрее
•
Как работают изометрические координаты в 2D-играх
•
Плохой плохой UI: 10 распространенных ошибок в пользовательских интерфейсах
Аналитика, маркетинг и монетизация
• Poparazzi: анти-Instagram с 5 млн пользователей
• Маркетологи в мобайле: Summer Edition. Александра Игнашкина («Много лосося»)
• Как приложение Planet Fitness обогнало TikTok и Instagram
• VK Реклама запустила продвижение приложений из RuStore
• SubHub Podcast: Наталья Шахметова (Woofz by Gismart)
• Загрузки, необходимые для попадания на первое место в топе App Store, выросли на 37% за 3 года
• Heineken выпустил открывашку, которая закрывает рабочие приложения
• Отчет “Состояние финтех и крипто приложений 2022” от Sensor Tower
• AppsFlyer запустил новые индустриальные бенчмарки
• Мировые мобильные игры в апреле: NFT и Ant SLG возглавляют топ рекламодателей
• Игры Flexion заработали $50 млн в альтернативных магазинах приложений
• От них ждали «чудо-кнопку», с которой всё быстро учится, но так не бывает: как растёт приложение-школа китайского Laoshi
•
Вы, вероятно, не знаете, почему люди покупают вашу игру
AI, Устройства, IoT
• Система распознавания шрифта Брайля. Читаем написанное белым по белому
• Kincony KC868-A32: авианосец на DIN-рейку
• Анализируем речь с помощью Python: Как и о чем говорят на YouTube-канале «вДудь»?
• DIY: передаем данные на километры с помощью контроллера Micro::Bit и радиомодуля EBYTE LoRa Часть 2 и Часть 1
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.


• Гибкая навигация в iOS
• Avito iOS meetup #9
• Финалисты Apple Design Awards 2022
• Нативный backend-driven UI в iOS приложении на базе Editor.js
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Тестирование продукта RuScanner: как заставить отладчик Android работать во благо тестирования
• Первый взгляд на «песочницу конфиденциальности» Google и ее влияние на SDK
• Введение в Jetpack Compose
• Избегайте «when» — используйте полиморфизм
• Полдюжины правил для статического анализатора Detekt
• Сила @RawQuery. Сокращаем код DAO на 90%
• В Jetpack вышла библиотека поддержки Ultra-Wideband (UWB)
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Flutter & games: пробуем Bonfire в роли игрового движка
• Сборка мусора во Flutter
• Как учат создавать игру вида TowerDefence — ошибки «новичков»
•

•

•

•

•

•


• Командное «ретро» в Майнкрафт: 10 из 10, не рекомендую
• Эволюция Server-Driven UI: динамические поля, хэндлеры и многошаг
• Небольшие советы по работе в GameMaker на примере моего психологического триллера
• BLE Inspector, маленькое open source приложение для датчиков уровня топлива
• Перформанс мониторинг по-взрослому: выкладываем запись Mobile Meetup
• Как тестировать стриминговые приложения
• История о бесконечном регрессионном тестировании
• Дизайн приложений: примеры для вдохновения #77
• Как изменится программирование в ближайшие 5-10 лет
• Как написать backend: свой сервер на Kotlin и Ktor
• Только 2% россиян назвали программирование уважаемой профессией
• $80 млн в Серии B: WorkOS — корпоративные функции для приложений
• У Alphabet и Meta самые высокие средние зарплаты
• Самые высокооплачиваемые вакансии мая в разработке приложений
• Как улучшить качество кодовой базы
• Про дизайн профиля вождения
•

•

•

•

•

•

•

•


• Poparazzi: анти-Instagram с 5 млн пользователей
• Маркетологи в мобайле: Summer Edition. Александра Игнашкина («Много лосося»)
• Как приложение Planet Fitness обогнало TikTok и Instagram
• VK Реклама запустила продвижение приложений из RuStore
• SubHub Podcast: Наталья Шахметова (Woofz by Gismart)
• Загрузки, необходимые для попадания на первое место в топе App Store, выросли на 37% за 3 года
• Heineken выпустил открывашку, которая закрывает рабочие приложения
• Отчет “Состояние финтех и крипто приложений 2022” от Sensor Tower
• AppsFlyer запустил новые индустриальные бенчмарки
• Мировые мобильные игры в апреле: NFT и Ant SLG возглавляют топ рекламодателей
• Игры Flexion заработали $50 млн в альтернативных магазинах приложений
• От них ждали «чудо-кнопку», с которой всё быстро учится, но так не бывает: как растёт приложение-школа китайского Laoshi
•


• Система распознавания шрифта Брайля. Читаем написанное белым по белому
• Kincony KC868-A32: авианосец на DIN-рейку
• Анализируем речь с помощью Python: Как и о чем говорят на YouTube-канале «вДудь»?
• DIY: передаем данные на километры с помощью контроллера Micro::Bit и радиомодуля EBYTE LoRa Часть 2 и Часть 1
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.