В новом дайджесте много интересного — масштабирование изображений, сокращение времени запуска, проблемы в виджетах и их решения, проблемы бережливых стартапов и многое другое!
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

iOS
• Как мы сократили время запуска нашего iOS-приложения на 60%
• Соотношение сторон и масштабирование изображений в Image компоненте
• Диспетчеризация методов в Swift
• Поиск callback-ов кнопок в рантайме iOS
• Выручка Apple в 1 квартале 2023 снизилась на 5%
• Складной iPad может появится в следующем году
•
Native iOS Touch Events w/ Rust
•
SwiftUI — Using Frames To Align
•
Use Core ML To Build a Minority Report-Inspired User Interface in iOS
•
A Scalable Alternative to Switch-case: Abstract Factory in Swift
•
Infinite Scrolling Using SwiftUI and View Model (MVVM)
•
Recreating Apple Wallet Payment Ring with SwiftUI
•
Reusable Components for Scalable Projects with UIKit Programmatically Swift 5
•
Lazy NavigationLink for SwiftUI
•
Annotation Injection with compile-time safety in Swift
•
Mastering charts in SwiftUI. Custom Marks.
•
Quickly find retain cycles in your app with this one trick
•
The Coordinator Pattern: A Simple, Scalable Solution for iOS App Navigation
•
iOS Developer Interview: Questions and Tasks
•
How We Reduced Our iOS App Launch Time by 60%
•
Swift IOS Interview Questions And Answers
•
Mastering Error Handling in SwiftUI: A Guide to Presenting Errors
•
Code a Snake Game With Button Controls Using SwiftUI
•
NSURLSession connection leak
•
Parsing in Swift: a DTO-based Approach
•
SyncKit: синхронизация Core Data или Realm
•
Лучшие репозитории Swift на GitHub за январь 2022
•
Loop for iOS: шаблон приложения для приема инсулина
Android
• Как мы проблемы UI в виджетах решали
• Несущиеся слоны: опыт Square в улучшении системы сборки для Android
• Как настроить Gitlab CI/CD для Android и Firebase App Distribution для доставки сборок
• Топ 3 странности Android, с которыми мне приходилось сталкиваться
• Инкрементация и сохранение сборки на CI
• Jetpack Compose Battle: онлайн-собеседования Senior разработчика
• Уязвимости Galaxy Store дают возможность установки любых приложений
•
What should you expect when migrating your Android project to Kotlin 1.7.0?
•
Kotlin Sealed Interfaces with KotlinX Serialization JSON
•
Operator overloading in Kotlin
•
Is the New Gradle Version Catalog Worth It for Your Android Projects?
•
Make your Android app a share target. Receive simple data from other applications with Hilt and Compose
•
Picture-in-picture (PiP) mode in Android
•
Protecting Project Integrity
•
Leveraging the Snapshot Mutation Policies of Jetpack Compose
•
Data Objects in Kotlin
•
Jetpack Compose clear back stack, popUpTo/popBackStack inclusive explained
•
Principles & Practice in Repository Layer
•
Stampeding Elephants
•
5 Android Studio features you don’t want to miss
•
How We Kept Our App On a Diet
•
Jetpack Compose Tutorial: Replicating Dribbble Audio
•
Лучшие репозитории Kotlin на GitHub за январь 2022
•
WhatIf: синтаксический сахар Kotlin
Кроссплатформа
• Самые популярные кроссплатформенные фреймворки
• 12 методик, которые помогут создавать приложения на Flutter легко и просто
• Интеграция с платежными системами, PCI DSS на примере Stripe и Flutter
• Использование шейдеров во Flutter. Часть 1
•
Why follow “Clean Architecture” in Flutter?
•
Why You Should Use BLoC As Your State Management for Your Flutter App
•
8 Flutter Widgets Every App Should Contain
•
Introducing Dart 3 alpha
•
KMP: A Use Case For Common UI Behavior
•
TensorFlow Lite Tutorial for Flutter: Image Classification
•
A pragmatic guide to BuildContext in Flutter
•
How it’s made: Holobooth
Разработка
• 4 главные проблемы с методологией Бережливого стартапа
• Как устроена бесшовная авторизация в онлайн-кинотеатре
• Что делать, если в начале спринта у тестировщика нет задач?
• Оптимизация тестов для Continuous Integration
• Podlodka #305: цвета и цветовые пространства
• Twitter закрывает бесплатный доступ к API
• Зарплаты IT-специалистов сократились
• VK открывает набор на бесплатные курсы по ручному тестированию и углубленному Python
• Правила Dungeons & Dragons опубликованы в Creative Commons
•
Should There Be a Developer Mental Health Day?
•
Maintainable No-Code UI Automation for Mobile with Maestro Studio
•
Five stars code reviews
•
Use Pocketbase — Open Source Backend
•
Automate Changelog Generation with GitLab
•
Developer-first open-source Zapier alternative
•
Our Company Fired the Best Developer and Project Manager
•
I Made $1000 From a Mobile Game I Designed in One Day, Without Coding
•
Neglecting Legacy Code? It’s a Potential Gold Mine of Learning
•
Slack Machine: боты для Slack
Аналитика, маркетинг и монетизация
• Ozon Tech Community A/B-testing Meetup
• Spotify внедрил сторонний биллинг на 140+ рынках
• Как определить размер выборки для бутстрэпа старым дедовским способом
• Supercell представила новую игру Squad Busters
• В RuStore появились Сбер ID и оплата по SberPay
• Основатели Instagram готовят приложение для чтения новостей
• Приложение Rewind позволяет «путешествовать во времени» с помощью музыки
• Victa — беговое приложение и шагомер для любителей игр и аниме
AI, Устройства, IoT
• Плантации XXI века. Как экономическая катастрофа превратила Венесуэлу в центр новой IT-индустрии
• Рыба потратила деньги владельца, играя в покемонов на Nintendo Switch
• Работаем с Zigbee-устройствами через Zigbee2mqtt и Node-RED
• Спасти рядового Кактуса. Интеграция фикуса в Home Assistant
• EBYTE MA01-AACX2240: внешний RS485/ModbusRTU блок DI+AI+DO
• Как дистанционно снимать показания с электросчетчика КАСКАД-1-МТ
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!


• Как мы сократили время запуска нашего iOS-приложения на 60%
• Соотношение сторон и масштабирование изображений в Image компоненте
• Диспетчеризация методов в Swift
• Поиск callback-ов кнопок в рантайме iOS
• Выручка Apple в 1 квартале 2023 снизилась на 5%
• Складной iPad может появится в следующем году
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Как мы проблемы UI в виджетах решали
• Несущиеся слоны: опыт Square в улучшении системы сборки для Android
• Как настроить Gitlab CI/CD для Android и Firebase App Distribution для доставки сборок
• Топ 3 странности Android, с которыми мне приходилось сталкиваться
• Инкрементация и сохранение сборки на CI
• Jetpack Compose Battle: онлайн-собеседования Senior разработчика
• Уязвимости Galaxy Store дают возможность установки любых приложений
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Самые популярные кроссплатформенные фреймворки
• 12 методик, которые помогут создавать приложения на Flutter легко и просто
• Интеграция с платежными системами, PCI DSS на примере Stripe и Flutter
• Использование шейдеров во Flutter. Часть 1
•

•

•

•

•

•

•

•


• 4 главные проблемы с методологией Бережливого стартапа
• Как устроена бесшовная авторизация в онлайн-кинотеатре
• Что делать, если в начале спринта у тестировщика нет задач?
• Оптимизация тестов для Continuous Integration
• Podlodka #305: цвета и цветовые пространства
• Twitter закрывает бесплатный доступ к API
• Зарплаты IT-специалистов сократились
• VK открывает набор на бесплатные курсы по ручному тестированию и углубленному Python
• Правила Dungeons & Dragons опубликованы в Creative Commons
•

•

•

•

•

•

•

•

•

•


• Ozon Tech Community A/B-testing Meetup
• Spotify внедрил сторонний биллинг на 140+ рынках
• Как определить размер выборки для бутстрэпа старым дедовским способом
• Supercell представила новую игру Squad Busters
• В RuStore появились Сбер ID и оплата по SberPay
• Основатели Instagram готовят приложение для чтения новостей
• Приложение Rewind позволяет «путешествовать во времени» с помощью музыки
• Victa — беговое приложение и шагомер для любителей игр и аниме

• Плантации XXI века. Как экономическая катастрофа превратила Венесуэлу в центр новой IT-индустрии
• Рыба потратила деньги владельца, играя в покемонов на Nintendo Switch
• Работаем с Zigbee-устройствами через Zigbee2mqtt и Node-RED
• Спасти рядового Кактуса. Интеграция фикуса в Home Assistant
• EBYTE MA01-AACX2240: внешний RS485/ModbusRTU блок DI+AI+DO
• Как дистанционно снимать показания с электросчетчика КАСКАД-1-МТ
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.