В нашем дайджесте снова стейт-машины и исходники Telegram, собственный 3D движок и KMM, чтение кода, пространственная логика, ностальгия Waze и многое другое!
У нас есть Telegram-канал Mobile Insights, где подборки статей и новостей выходят каждый день, а так же AppFiles с библиотеками и самыми интересными статьями о мобильной разработке!
iOS
• Structured concurrency в Swift
• Стейт-машины в iOS
• Как отследить состояние сетевого соединения в Swift? Привет, нативная реализация, пока, Reachability
• Готовимся к iOS собеседованию
• 4 малоизвестные функции Swift
• Приложения в Mac App Store затрудняют выход без оформления подписки
• Эксперты из Оксфордского университета исследовали App Tracking Transparency
• Туториал по Core Image: начало работы
• Советы по повышению производительности SwiftUI
• Улучшение реализации оповещений в iOS с использованием фабричного шаблона
• NotSwiftUI стал лучше — как использовать его для создания UI компонентовComponents in iOS
• UITabBar в стиле Dribbble с использованием Swift 5
• Золотые правила `weak self`
• Кастомная центральная кнопка для UITabBar в iOS на Swift 5
• 6 советов по улучшению программирования в Swift
• Сокращаем время сборки вашего приложения для iOS
• Потерянное руководство по анимации в SwiftUI
• Создание доступного кастомного Tab Bar-а
• Экспорт данных из Универсальной системы логгирования в Swift
• Сокращение времени CI в iOS с помощью распараллеливания тестов
• SwiftUI API/JSON c Async Await
• 7 главных особенностей Swift
• Как мы тестируем SDK в RevenueCat
• Как защитить iOS-приложение: руководство для разработчико
• Scaling Header Scroll View: липкий заголовок на SwiftUI
• PartialSheet: динамический Partial Sheet для SwiftUI
Android
• Пара интересных вещей в исходниках Telegram для Android
• Как я разрабатывал игру fly bird 2
• Google готовит Android Desktop System Images для запуска Google Play Games на Windows
• Google запрещает использование Accessibility API для записи звонков в Android
• Huawei Mobile Services и AppGallery: подробная инструкция для начинающих
• Как использовать строковые ресурсы в ViewModel
• MAD Skills — Архитектура
• Jetpack Compose: тестирование анимаций
• Flow под капотом: как это работает на самом деле
• Реализация периодических уведомлений с помощью WorkManager
• Apple Login с помощью Firebase в приложении для Android
• Как отформатировать все возможные ошибки вызова API в Android с чистой архитектурой
• Изолируйте Koin в модуле Android
• Составьте свою Android-навигацию с кастомными аргументами
• Встраивание Активити в Android
• Twitter ставит все на Jetpack Compose для разработки функций: больше производительности, меньше ошибок
• Как я использую новые Inline Value классы в Kotlin
• Kotlin: иллюстрированное руководство — Коллекции: списки и наборы
• Ktlint: линтер для Kotlin
• PopupBarChart: график с подсказками
Разработка
• Как я создал собственный 3D движок и игру на нём за 20 месяцев + Как я создаю игры на своём 3D движке в одиночку
• Держи свой трафик в тайне. SSL Pinning — ещё раз о том же самом
• Как мы в QIWI внедряли Kotlin Multiplatform Mobile Часть 2: Смотрим шире
• Стелем мягкую соломку на жёсткий Flutter: как подготовиться к первому проекту, чтобы не провалить его
• Load as a Service: нагрузочное тестирование в inDriver
• Локализация игр глазами менеджера
• Ищите лучших разработчиков с помощью чтения кода
• Сохраняем код чистым в приложении на Flutter
• Путь исправления процесса, который работает, но бесит
• Flutter: Создание расширения для Chrome
• Flutter: Что нового в версии 2.10
• Как перевести 100 000 учеток на микросервис и ничего не сломать
• 21 распространённая ошибка в автоматизированном тестировании и способы борьбы с ними
• Flutter: Почему использует язык Dart
• $43 млн в Серии B: Statsig — платформа A/B-тестирования
• $8 млн: Coherence — облачная платформа для мультиплеера
• Дизайн приложений: примеры для вдохновения #75
• Podlodka #264: как вкатиться в стиль
• Дефицит разработчиков в России сокращается
• Как пространственная логика может сделать дизайн вашего продукта более интуитивным и профессиональным
• 7 фич, которые важно реализовать перед запуском мобильного приложения
• Как дизайнеру создать собственное мобильное приложение и заработать на нем
• Проектирование больших и сложных продуктов с нуля
• Сказки Kotlin Multiplatform: общая ViewModel
• Практическое руководство: как улучшить свои навыки решения проблем
• Как получить больше Code Review от коллег
• Пять коанов архитектуры программного обеспечения
• 9 психологических правил, которые я использовал, чтобы поддерживать интерес пользователей к моему дизайну
• Как бесплатно продвигать свое мобильное приложение в 2022 году
• Шаблоны проектирования MVC, MVP, MVI, MVVM и VIPER
• Я только что стал зарабатывать $100 тысяч в год на спонсорах в GitHub (как я это сделал)
• Elementary: новый подход к архитектуре Flutter-приложений
• Анализ iMessage с помощью SQL
• Как я заработал $100 тысяч на своей первой инди-игре
• Уловки программирования, которые экономят мне часы рабочего времени
• Миф о небольших постепенных улучшениях
• Как вы будете определять приоритеты требований к продукту?
• reFlutter: реверсинжиниринг Flutter-приложений
Аналитика, маркетинг и монетизация
• «Помощник учителя»: от идеи до популярного мобильного приложения
• Netflix теряет позиции в стриминге видео в США
• Отчет «Состояние Android-подписок 2022»
• Отчет 2022 Mobile Ad Creative Index от Liftoff и Vungle
• $5 млн: Tempr — автоматизация UA
• Wizards of the Coast покупает D&D Beyond
• Waze добавил Retro Mode с ностальгическим оформлением и музыкой
• Самые зарабатывающие приложения марта в США
AI, Устройства, IoT
• Лора на батарейках (мечта каждого мужчины)
• Модель-полиглот: как мы учили GPT-3 на 61 языке мира
• Безопасное хранение данных IoT в частном блокчейне Ethereum. Часть 3
• Лучшие ноутбуки для программирования 2022
• Я Data Scientist-самоучка. Вот мои 3 предложения для новичков
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
У нас есть Telegram-канал Mobile Insights, где подборки статей и новостей выходят каждый день, а так же AppFiles с библиотеками и самыми интересными статьями о мобильной разработке!
iOS
• Structured concurrency в Swift
• Стейт-машины в iOS
• Как отследить состояние сетевого соединения в Swift? Привет, нативная реализация, пока, Reachability
• Готовимся к iOS собеседованию
• 4 малоизвестные функции Swift
• Приложения в Mac App Store затрудняют выход без оформления подписки
• Эксперты из Оксфордского университета исследовали App Tracking Transparency
• Туториал по Core Image: начало работы
• Советы по повышению производительности SwiftUI
• Улучшение реализации оповещений в iOS с использованием фабричного шаблона
• NotSwiftUI стал лучше — как использовать его для создания UI компонентовComponents in iOS
• UITabBar в стиле Dribbble с использованием Swift 5
• Золотые правила `weak self`
• Кастомная центральная кнопка для UITabBar в iOS на Swift 5
• 6 советов по улучшению программирования в Swift
• Сокращаем время сборки вашего приложения для iOS
• Потерянное руководство по анимации в SwiftUI
• Создание доступного кастомного Tab Bar-а
• Экспорт данных из Универсальной системы логгирования в Swift
• Сокращение времени CI в iOS с помощью распараллеливания тестов
• SwiftUI API/JSON c Async Await
• 7 главных особенностей Swift
• Как мы тестируем SDK в RevenueCat
• Как защитить iOS-приложение: руководство для разработчико
• Scaling Header Scroll View: липкий заголовок на SwiftUI
• PartialSheet: динамический Partial Sheet для SwiftUI
Android
• Пара интересных вещей в исходниках Telegram для Android
• Как я разрабатывал игру fly bird 2
• Google готовит Android Desktop System Images для запуска Google Play Games на Windows
• Google запрещает использование Accessibility API для записи звонков в Android
• Huawei Mobile Services и AppGallery: подробная инструкция для начинающих
• Как использовать строковые ресурсы в ViewModel
• MAD Skills — Архитектура
• Jetpack Compose: тестирование анимаций
• Flow под капотом: как это работает на самом деле
• Реализация периодических уведомлений с помощью WorkManager
• Apple Login с помощью Firebase в приложении для Android
• Как отформатировать все возможные ошибки вызова API в Android с чистой архитектурой
• Изолируйте Koin в модуле Android
• Составьте свою Android-навигацию с кастомными аргументами
• Встраивание Активити в Android
• Twitter ставит все на Jetpack Compose для разработки функций: больше производительности, меньше ошибок
• Как я использую новые Inline Value классы в Kotlin
• Kotlin: иллюстрированное руководство — Коллекции: списки и наборы
• Ktlint: линтер для Kotlin
• PopupBarChart: график с подсказками
Разработка
• Как я создал собственный 3D движок и игру на нём за 20 месяцев + Как я создаю игры на своём 3D движке в одиночку
• Держи свой трафик в тайне. SSL Pinning — ещё раз о том же самом
• Как мы в QIWI внедряли Kotlin Multiplatform Mobile Часть 2: Смотрим шире
• Стелем мягкую соломку на жёсткий Flutter: как подготовиться к первому проекту, чтобы не провалить его
• Load as a Service: нагрузочное тестирование в inDriver
• Локализация игр глазами менеджера
• Ищите лучших разработчиков с помощью чтения кода
• Сохраняем код чистым в приложении на Flutter
• Путь исправления процесса, который работает, но бесит
• Flutter: Создание расширения для Chrome
• Flutter: Что нового в версии 2.10
• Как перевести 100 000 учеток на микросервис и ничего не сломать
• 21 распространённая ошибка в автоматизированном тестировании и способы борьбы с ними
• Flutter: Почему использует язык Dart
• $43 млн в Серии B: Statsig — платформа A/B-тестирования
• $8 млн: Coherence — облачная платформа для мультиплеера
• Дизайн приложений: примеры для вдохновения #75
• Podlodka #264: как вкатиться в стиль
• Дефицит разработчиков в России сокращается
• Как пространственная логика может сделать дизайн вашего продукта более интуитивным и профессиональным
• 7 фич, которые важно реализовать перед запуском мобильного приложения
• Как дизайнеру создать собственное мобильное приложение и заработать на нем
• Проектирование больших и сложных продуктов с нуля
• Сказки Kotlin Multiplatform: общая ViewModel
• Практическое руководство: как улучшить свои навыки решения проблем
• Как получить больше Code Review от коллег
• Пять коанов архитектуры программного обеспечения
• 9 психологических правил, которые я использовал, чтобы поддерживать интерес пользователей к моему дизайну
• Как бесплатно продвигать свое мобильное приложение в 2022 году
• Шаблоны проектирования MVC, MVP, MVI, MVVM и VIPER
• Я только что стал зарабатывать $100 тысяч в год на спонсорах в GitHub (как я это сделал)
• Elementary: новый подход к архитектуре Flutter-приложений
• Анализ iMessage с помощью SQL
• Как я заработал $100 тысяч на своей первой инди-игре
• Уловки программирования, которые экономят мне часы рабочего времени
• Миф о небольших постепенных улучшениях
• Как вы будете определять приоритеты требований к продукту?
• reFlutter: реверсинжиниринг Flutter-приложений
Аналитика, маркетинг и монетизация
• «Помощник учителя»: от идеи до популярного мобильного приложения
• Netflix теряет позиции в стриминге видео в США
• Отчет «Состояние Android-подписок 2022»
• Отчет 2022 Mobile Ad Creative Index от Liftoff и Vungle
• $5 млн: Tempr — автоматизация UA
• Wizards of the Coast покупает D&D Beyond
• Waze добавил Retro Mode с ностальгическим оформлением и музыкой
• Самые зарабатывающие приложения марта в США
AI, Устройства, IoT
• Лора на батарейках (мечта каждого мужчины)
• Модель-полиглот: как мы учили GPT-3 на 61 языке мира
• Безопасное хранение данных IoT в частном блокчейне Ethereum. Часть 3
• Лучшие ноутбуки для программирования 2022
• Я Data Scientist-самоучка. Вот мои 3 предложения для новичков
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.