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

В нашем 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-МТ

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

Комментарии (0)