iOS
• Figma Preview: просмотр макетов в Xcode
• Вопросы с собеседований: Что такое ARC (Automatic Reference Counting)
• From Fragile to Agile: Automating the fight against Flaky Tests
• pavel-holec/generating-swiftui-snapshot-tests-with-swift-macros-0f31b231925e">Generating SwiftUI snapshot tests with Swift macros
• Fundamentals of type-driven code
• jaberi.mohamedhabib/elevating-code-sharing-safeguarding-intellectual-property-through-binary-frameworks-in-swift-40d2882965c1">Elevating Code Sharing: Safeguarding Intellectual Property through Binary Frameworks in Swift Packages
• Should You Enable Swift's Complete Concurrency Checking?
#ios
iOS
• Создаем анимированные переходы с помощью Matched Geometry Effect в SwiftUI
• Как устроен Яндекс Go и зачем работать со студентами и стажерами
• Навигация в SwiftUI
• Apple подтвердила прекращение работы PWA в Европе
• Rock Paper Scissor: «камень-ножницы-бумага» в одноранговой сети
• Apple готовит ИИ инструменты для Xcode
• Xcode Console and Unified Logging
• How to Implement the MVVM Design Pattern in Swift
• Swift enums and the danger of the default case
• How to write safer code using the Lock and Key pattern
• Ensuring Secure API Access: Harnessing Apple’s Attest Protocol for iOS App Integration
#ios
Google выпустил первую предварительную версию Android 15 для разработчиков
В Android 15 продолжается работа над созданием платформы, которая поможет повысить производительность и предоставит новые возможности для создания превосходных мультимедийных впечатлений, минимизации потребления энергии, максимально плавной работы приложений и защиты конфиденциальности и безопасности пользователей на самых разных устройствах.
Основные нововведения в Android 15
• Песочница конфиденциальности (Privacy Sandbox) для защиты приватных данных пользователей и обеспечения показа персонализированной рекламы.
• Health Connect из Android 14 теперь является частью платформы и в ней теперь есть новые типы данных для фитнеса, питания и т.п.
• Целостность файлов - FileIntegrityManager в Android 15 включает новые API, которые используют возможности функции fs-verity в ядре Linux. С помощью fs-verity файлы могут быть защищены пользовательскими криптографическими подписями.
• Частичный общий доступ к экрану - Android 15 поддерживает частичный общий доступ к экрану, чтобы пользователи могли делиться или записывать только окно приложения, а не весь экран устройства.
• Управление камерой в приложении - в Android 15 добавлены новые расширения для большего контроля над аппаратной частью камеры и ее алгоритмами на поддерживаемых устройствах.
• Динамическая производительность - новая ОС продолжает улучшать Android Dynamic Performance Framework (ADPF).
Вы можете начать работу уже сегодня, установив образ системы на устройства серии Pixel 6, 7 или 8, а также на Pixel Fold и Pixel Tablet. Если у вас нет устройства Pixel, вы можете использовать 64-битные образы системы с помощью эмулятора Android в Android Studio (лучше использовать последнюю версию Jellyfish).
Видео и подкасты за неделю:
• (iOS Ru)
Как устроен Яндекс Go и зачем работать со студентами и стажерами
• (iOS Ru)
Навигация в SwiftUI
• (iOS En)
Self vs self in Swift – Find out the differences with practical examples
• (iOS En)
SwiftConf ’23 Videos
• (iOS En)
SwiftUI Minimal Todo List With SwiftData & Interactive Widgets
• (iOS En)
SwiftUI CoverFlow
• (iOS En)
Making it Rain – Advanced Special Effects with SwiftUI
• (iOS En)
Pop to Root View When TabView Item is Pressed
• (iOS En)
SwiftData & CloudKit: See How To Add Syncing In Your Apps
• (And Ru)
Многомодульность для UI-тестов
• (And Ru)
Как мы создавали дизайн-систему на Jetpack Compose
• (And Ru)
Как мы автоматизировали генерацию Baseline Profile
• (And Ru)
Кто-то съел мою память на CI!
• (And Ru)
Верхнеуровневый обзор архитектуры CI/CD мобильного приложения
• (And En)
BasicTextField2 - Everything You Need to Know
• (And En)
THIS New Modifier in Compose 1.7.0 Is Amazing!
• (And En)
Mastering Code Quality: A Deep Dive into Custom Linting for Android Developers with Gopal
• (And En)
How to integrate Google sign-in with Credential Manager on Jetpack Compose with Supabase Auth
• (Crs Ru)
Вызовы масштабируемости Kotlin Multiplatform на большом проекте
• (Crs En)
The State of React Native
• (Dev Ru)
Как затащить новую технологию
• (Dev Ru)
Как увольнять людей?
• (Dev En)
Pkl: Apple’s New JSON/YAML Killer
• (Dev En)
Firestore Multiple Databases now generally available, Go 1.22, and more dev news!
Что вы интересного посмотрели/послушали про разработку на этой неделе?
🌐 @AppFiles
Apple готовит ИИ инструменты для Xcode
По слухам, компания Apple работает над новыми крупными функциями искусственного интеллекта. И появятся они не только в iOS 18, но и в собственной IDE компании.
1. Пишут, что Apple «близка к завершению» обновлению Xcode и будет в нем использовать искусственный интеллект для улучшения программирования и тестирования.
2. Речь идет о генерации и дополнении кода, а так же генерации кода для тестирования приложений.
3. Цель Apple — выпустить новые функции ИИ в Xcode уже в конце этого года. Вероятно, речь идет о релизном цикле Xcode 16.
И что: у Android Studio уже есть свой Bot, у остальных есть Copilot и Xcode последним получит ИИ-функции. Станет ли от этого лучше большой вопрос, но проще точно.
Android
• Minimum: минималистичный лаунчер
• End-To-End Testing With Robot Pattern And Jetpack Compose
• domen.lanisnik/guide-to-foreground-services-on-android-9d0127dc8f9a">Guide to Foreground Services on Android 14
• farhaddeveloper98/write-androidstudio-plugin-step-by-step-part1-create-simple-action-toolwindow-with-custom-ui-01aeefceec94">Write AndroidStudio Plugin Step By Step
#android
Пиратское приложение Kimi вышло в лидеры App Store
На прошлой неделе приложение под названием Kimi обогнало известные потоковые сервисы, такие как Netflix и Prime Video, в списке лучших бесплатных развлекательных приложений App Store.
1. Внешне Kimi было замаскировано под приложение, которое проверяет зрение, заставляя вас играть в "найди разницу" на похожих фотографиях.
2. На самом деле оно ничего подобного не делало и содержало пиратские передачи и фильмы, включая недавние блокбастеры и отмеченные наградами ленты.
3. Приложение было впервые одобрено в сентябре, но примечательно, что оно даже не маскировалось под тонкой оболочкой легальности. Вы открывали его, а там только фильмы и шоу. Нет ни заставки, ни трюка, чтобы разблокировать настоящее приложение.
4. Сейчас приложение удалено, но на это понадобились публикации в топовых изданиях и, соответственно, полгода.
И что: Apple гордится своей конфиденциальностью и безопасностью, а также тем, что приложения, которые она делает доступными для загрузки, соответствуют всем ее требованиям. Например, компания заявила, что любой альтернативный магазин приложений, который попадет на платформы, должен будет иметь строгие правила и инструменты модерации, сравнимые с ее собственными. Как самой Apple начать соответствовать своим правилам, тогда не уточнялось.
Android
Посмотрите новое интервью с Андреем Белоусом о том, куда движется Android и мобильная разработка!
• Тренды Android-разработки
• Вопросы с собеседований: Как в Android определяется приоритет приложений перед системой
• App shortcuts в Android
• Compose Multiplatform Made easy with Circuit
• The Future of Android Development is Here: Meet Studio Bot, Your AI Co-Pilot
• Exploring Kotlin’s Sealed Interface: A Comprehensive Guide for Android Developers
• vishalvis02/kotlin-performance-tuning-20-best-practices-you-should-know-55a922e838dd">Optimizing Kotlin Performance: Essential Practices You Need to Master
#android
Ищите дизайнера для вашего приложения?
Работая с нами, вы получите красивый дизайн приложения, который соответствует всем требованиям Арр Store и Google Play.
Мы придумаем креативные решения для ваших экранов, подберем оптимальные размеры всех текстов и кнопок. Из-за грамотного расположения элементов на экранах, пользователю вашего приложения будет удобно и комфортно его использовать.
Мы очень качественно подходим к работе с нашими клиентами: постоянно на связи; оперативно сообщаем вам, на каком этапе работы ваш проект; присылаем работу для внесения правок.
Наш канал - @it_perfection
Для заказа дизайна пишите - @DenisGlav
Android
• Kotlin Cheatsheet: краткий справочник по Kotlin
• Material Design 3 для Compose 1.2
• Техническое собеседование инженеров мобильной разработки в RuStore
• How to Implement Swipe to Delete with Material3
• Modern Android Development in 2024
• Speeding up isBlank()
• Material Design 3 for Compose 1.2
• How to integrate Google sign-in with Credential Manager on Jetpack Compose with Supabase Auth
#android
Material Design 3 для Compose 1.2
Вышел релиз 1.2 Compose Material 3, в котором появились новые компоненты, некоторые изменения в старых компонентах и расширение системы цветов Material3.
Статья: https://apptractor.ru/info/articles/material-design-3-dlya-compose-1-2.html
Платформа: Android
Android
• Предварительный просмотр представлений Jetpack Compose за считанные секунды
• Podcaster: реализация Jetpack Media3 в реальном приложении
• Запускаем автотесты Android на EMCEE
• Мобильные игры в продуктовых приложениях
• Разбор кода приложения по доставке пиццы
• В Android Studio заработал Device streaming
• Изи freestyle Android приложения на Kivy (Python), Google collab и ваш не любимый ChatGPT
• What Every Android Developer Should Have in Their GitHub?
• Abstraction design: Introduction
• Crafting Android bytecode analysis tooling using a secret ingredient
• How We Made the CES 2024 AR Experience: Android Virtual Guide, powered by Geospatial Creator
• Jetpack Compose: Divider
#android
Сколько зарабатывает Medium на мобильных подписках
Все мы знаем Medium по назойливому пейволу - многие посты в блогах предназначены только для подписчиков. И если вы всегда хотели узнать, сколько же дохода они приносят, то у AppFigures уже есть ответ.
1. С 2017 года доходы Medium от мобильных устройств выросли на 6,968%.
2. В 2023 году чистый доход (после налога Apple и Google) Medium вырос на 14% в годовом исчислении и составил 9.4 млн долларов. И это только подписки на мобильных устройствах, не считая веб.
3. 2023 год не был самым быстрым годом роста выручки Medium, но он стал годом с наибольшей выручкой. Самым “быстрым” годом для Medium стал 2018-й, когда рост на 1061% привел к первому миллиону долларов с мобильных устройств, а второй по темпам роста год — 2019, когда доходы выросли еще на 173%.
4. США — крупнейший поставщик денег Medium, на долю которого приходится более 57% всех доходов. Великобритания, Индия, Канада и Австралия замыкают пятерку лидеров, каждый из которых имеет однозначный кусок пирога.
И что: в то время, когда все больше изданий отказываются от подписки, интересно видеть, как краудсорсинговое издание все-таки может монетизироваться.
Стриминг устройств в Android Studio перешел в стадию открытого альфа-тестирования
Device streaming в Android Studio позволяет безопасно подключаться к удаленным физическим Android-устройствам, размещенным в защищенных центрах обработки данных Google.
1. Это самый быстрый и простой способ протестировать приложение на физических устройствах некоторых новейших моделей Android, включая Google Pixel 8 и 8 Pro, Pixel Fold, некоторые устройства Samsung и другие. Кроме того, сервис поддерживает некоторое количество старых устройств, так что у вас будет доступ к широкому спектру конфигураций и уровней API.
2. После подключения к устройству вы можете развернуть свое приложение, видеть дисплей, взаимодействовать с устройством (в том числе поворачивать или разворачивать его) и делать все остальное, что можно делать с устройством через прямое ADB-соединение по SSL — и все это не выходя из Android Studio.
3. Когда вы закончите использовать устройство, Google сотрет все ваши данные и сбросит его на заводские настройки, прежде чем предоставить его другому разработчику.
4. Во время Open Alpha тарификация отключена. Это означает, что вы и ваша команда можете использовать потоковую передачу данных с устройств в Android Studio бесплатно. Однако использование ограничено определенным количеством часов в день для каждого проекта.
Видео и подкасты за неделю:
• (iOS Ru)
Как поддерживать недельный релизный цикл и ничего не забывать
• (iOS En)
SwiftUI: Stretchy Slider Like in iOS 17
• (iOS En)
How To Save A Struct In SwiftData
• (iOS En)
Introducing Vortex: High-performance particle effects for SwiftUI
• (iOS En)
PencilKit and SwiftUI: Build a Collaborative Drawing App
• (iOS En)
SwiftUI: Universal Hero Effect
• (And Ru)
Мобильные игры в продуктовых приложениях
• (And Ru)
Разбор кода приложения по доставке пиццы
• (And Ru)
Запускаем автотесты Android на EMCEE
• (And En)
Now in Android: 99 - Jetpack Compose, Google AI on Samsung Galaxy, Play recovery tools, and more
• (And En)
The Ultimate Beginners Guide to Realm DB on Android (CRUD with Multi-Relations)
• (And En)
How to Implement Swipe to Delete with Material3
• (And En)
Intersection Types in Kotlin
• (Crs En)
Build Swift Windows News App with WinSDK
• (Dev En)
Google Cloud region is Johannesburg, MobileDiffusion, and more dev news!
Что вы посмотрели/послушали интересного про разработку?
🌐 @AppFiles
Обозрел топ самых быстрорастущих приложений января - по загрузкам и выручке. В первом варианте лидируют какие-то дикие приложения-помощники для Стандофф 2 из Google Play. Чему это, кроме ASO, может научить не совсем понятно, зато в денежном топе нашел ServerCat — SSH Terminal. Приложение работает только на iOS и предлагает функции автоматизации для системных администраторов. В нем есть подписки и встроенные покупки и с апреля 2020 года приложение заработало, по оценкам AppMagic, около 800 тысяч долларов с 2 миллионов загрузок (а какая у вас конверсия? :)). Так что заповедь остается все той же - решайте насущные проблемы и станете миллионерами. Ну или спамьте ASO, а вдруг вывезет.
Разработка
• Как затащить новую технологию
• Как увольнять людей?
• Kotlin исполнилось 8 лет
• Event-Driven Architecture Fundamentals and Common Pitfalls (and How to Avoid Them)
Маркетинг
• Топ быстрорастущих приложений в России в январе
• В Европе заработает Epic Games Store
Кроссплатформа
• Создаем гироскопический параллакс-эффект во Flutter
• Как стать Flutter-разработчиком бесплатно?
• Вызовы масштабируемости Kotlin Multiplatform на большом проекте
• Using Amper with Fleet in a Kotlin/Compose Multiplatform project
• What’s new in Flutter 3.19
Android
• Google выпустил первую предварительную версию Android 15 для разработчиков
• Vico: легковесные графики для Android
• Многомодульность для UI-тестов
• Как мы создавали дизайн-систему на Jetpack Compose
• Как мы автоматизировали генерацию Baseline Profile
• Кто-то съел мою память на CI!
• Верхнеуровневый обзор архитектуры CI/CD мобильного приложения
• Random Musings on the Android 15 Developer Preview 1
• Photo StoryTelling - Leveraging Generative AI and Google APIs to compose posts from your photo albums
• Avoid "Useless" Cases in Layered Architecture
• Testing with Accessibility Scanner
• Build Rot: The Hidden Technical Debt in Maven and Gradle Builds
• Understanding Nested Scrolling in Jetpack Compose
#android
Опровергаем технические собеседования
Подборка всех материалов за прошлую неделю - опровергаем архитектурные заблуждения и знакомимся с Swift Algorithms, собеседуемся в RuStore и двигаем рукой справа налево, уменьшаем продуктовую анимацию, тащим новые технологии, идем в Мордор с Фродо и многое другое!
Kotlin исполнилось 8 лет
JetBrains выпустила Kotlin в 2016 году и версия 1.0 вышла 15 февраля. За прошедшее время Kotlin стал главным языком Android-разработки и универсальным языком программирования, который обеспечивает разработку для бэкенда, мобильных устройств, веб-приложений, десктопов и науки о данных.
В конце 2023 года Kotlin достиг 15 места в рейтинге языков программирования TIOBE, а в опросе Stack Overflow 2023 года так же находится на 15 месте, опережая Swift, Dart и борясь с Rust и Go.
В Data.ai
отчитались о росте дейтинга - январь 2024 года поставил рекорд по доходам и загрузкам в категории. Правда, потребители в основном остаются верны своим приложениям и в США Топ-3 приложения занимают более 53% рынка. Впрочем, только в январе 2024 года 28 приложений в стране получили более 1 миллиона долларов, так что ориентация на нишевые сегменты вполне позволяет неплохо жить. А значит всяких чудных приложений для свиданий, о которых я тут периодически пишу, будет все больше.
Разработка
• Rasa, платформа для разработки разговорных чат-ботов, привлекает $30M
• VK Education открывает набор на бесплатные образовательные программы в IT и digital
• Что учесть при портировании приложения на Аврору
• Pkl: Apple's New JSON/YAML Killer
Маркетинг
• Январь поставил рекорд по загрузкам и доходам дейтинг-приложений
• Пиратское приложение Kimi вышло в лидеры App Store
Кроссплатформа
• Создаем параллакс-эффект во Flutter с CustomPaint
• Создание кастомного React Native компонента Switch с помощью библиотек Reanimated и Gesture Handler (Часть 2)
• Apple Wants To Kill PWAs
• Method Channels in Flutter for Native Code Interaction
• The State of React Native
iOS
• Знакомимся с пакетом Swift Algorithms
• Топ-5 распространенных практик написания хорошего Swift-кода
• Как устроен @State в SwiftUI
• iOS Mobile App Security: Best Practices for iOS Mobile Developers
• Understanding Once and For All SwiftUI Alignment Guides
• SwiftUI Field Guide
#ios
Еще одно интересное в своей идее приложение - Fantasy Hike. Внутри это фитнес-трекер, который считает шаги, снаружи это путешествие в Мордор в попытке уничтожить Кольцо Всевластия 🌋. Приложение отслеживает ваш ежедневный прогресс, рассчитывает, когда вы прибудете к своей огненной цели, предоставляет уведомления о важных сюжетных событиях и позволяет соревноваться не только с основным оригинальным “носителем”, но и с другими персонажами. При среднем прохождении 5 километров в день вы достигнете Огненной горы через 1 год и 228 дней. Вполне достаточно, чтобы полюбить ходьбу. А как вы можете применить сеттинг “Властелина колец” в вашем приложении?
Разработка
• Chat with RTX от NVIDIA позволяет запускать генеративные модели на ПК
• The power of product principles
• How to create the perfect icon
• Reverse-engineering an encrypted IoT protocol
• Maybe Everything Is a Coroutine
Маркетинг
• Fantasy Hike — фитнес-трекер по мотивам «Властелина колец»
• iMessage в ЕС не будет считаться платформенным сервисом
Кроссплатформа
• Debug your Flutter App like a Pro with these 5 Tips & Tricks
• A PocketBase backend for Flutter and Dart
iOS
• OKLCHGradient: OKLCH градиенты для SwiftUI
• Камера как сканер штрих-кодов: проблемы, инструменты и эксперименты
• Automating app releases for multiple platforms with Xcode Cloud
• Self vs self in Swift – Find out the differences with practical examples
• SwiftConf '23 Videos
• iOS Interview Guide: Equatable Protocol
#ios
На сладкое - дейтинг для ПК-бояр состоятельных господ. Не, серьезно. Каких только дейтингов мы не видели. Но вот приложение Score, запущенное сегодня финансовой платформой Neon Money Club, предназначено для знакомств людей с хорошим и отличным кредитным рейтингом. Фоново говорят, что оно призвано помочь повысить осведомленность о важности финансов в отношениях, что кредитный рейтинг не равно состоятельность и прочие интересные вещи, но вне этого, конечно, сама идея оригинальностью не блещет.
Разработка
• Что ждёт мобильную разработку в 2024 году
• The UX of Threads’ downfall
• (Almost) Every infrastructure decision I endorse or regret after 4 years running infrastructure at a startup
Маркетинг
• Score — новое дейтинг приложение для людей с хорошей кредитоспособностью
Кроссплатформа
• Организация “глобальных” провайдеров во Flutter Riverpod с помощью миксинов
• iOS Development With Kotlin Multiplatform: Tips and Tricks
• From Native to React Native to Flutter
iOS
• Автоматический аудит доступности SwiftUI в Xcode 15
• Опровергаю пять архитектурных заблуждений
• expertappdevs/sorting-out-your-app-architecture-with-swiftui-design-patterns-013248907e93">Sorting Out Your App Architecture With SwiftUI Design Patterns
• Exploring SwiftUI Property Wrappers: @FetchRequest, @SectionedFetchRequest, @Query, @Namespace, @Bindable
• How to use @ScaledMetric in SwiftUI for Dynamic Type support
• Discovering Swift Algorithms package
• Getting started with Apollo iOS for GraphQL with Swift
#ios
Сегодня последний день в опросе Developer Nation, так что всех призываю еще раз воспользоваться шансом - пройти опрос, внести свой вклад в будущее сообщества и получить ценные призы, вплоть до MacBook Pro 13" M2.
Разработка
• CodeSignal запускает платформу обучения с ИИ-помощником
• 7 must-know object-oriented software patterns (and their pitfalls)
• Mobile search: which pattern should you choose?
Маркетинг
• Сколько зарабатывает Medium на мобильных подписках?
• How to get your first 10,000 mobile app installs
Кроссплатформа
• hello_chirag/top-6-react-native-best-practices-for-2024-d90763aeedfc">Top 6 React Native Best Practices for 2024
• Extreme UI Adaptability in Flutter — How Google Earth supports every use case on earth
iOS
• Масштабирование iOS в Bumble: вызовы
• Как поддерживать недельный релизный цикл и ничего не забывать
• Вопросы с собеседований: Что такое модификатор памяти weak в Swift
• Delta: эмулятор классических видеоигр для iOS
• Disabling Core Data CloudKit Logging
• Screen vs View in SwiftUI
• Create an animated transition with Matched Geometry Effect in SwiftUI
• Senior iOS Tip: Xcode Templates
#ios
Пришел порекомендовать вам онлайн-вебинар, пропустить который будет большим упущением!
Тема: «Реклама в вашем приложении: от регистрации в РСЯ до начала монетизации»
Дата и время: 14 февраля 12:00
Разберемся с экспертом, как зарегистрироваться в Рекламной сети Яндекса, интегрировать Yandex Mobile Ads SDK в приложение на Android, настроить свой первый рекламный блок, начать показ рекламы и получать доход.
Регистрируйтесь прямо сейчас — будет полезно и интересно https://bit.ly/3SVZPrp?erid=LdtCJxq7T
Кто ты, обманывающий на технических собеседованиях?
Подборка всех материалов за прошлую неделю - SwiftData и код доставки пиццы на Android, будущее swift-testing и мастерство программирования, обман на технических собеседованиях с помощью ChatGPT, самые скачиваемые и зарабатывающие приложения в России в январе, Мобильные игры в продуктовых приложениях и многое другое!
С мест докладывают, что в бете 17.4 для европейского союза перестали работать PWA-приложения. Вместо этого они открываются в Safari. Как шутят в Х, “наконец-то iOS одинаково относится ко всем браузерам, когда дело доходит до PWA. Раньше только Safari мог устанавливать и запускать PWA-приложения. С выходом бета-версии iOS 17.4 в ЕС ни один браузер не может устанавливать PWA-приложения, даже Safari”. Судя по всему, связано это с внедрением альтернативных браузеров, так что все в стиле Apple - “черт с ними, сделаем, но чтобы все взвыли”.
Разработка
• Apple продолжает работу над складными устройствами
• Новая ИИ модель Apple может редактировать изображения с помощью естественного языка
• Design Perfect Date Picker
Маркетинг
• SocialPeta выпустила Глобальный Аналитический Доклад о мобильных приложениях за 2023 год
Кроссплатформа
• Реализация чата на Flutter при помощи вебсокетов
• Как создать shader в Flutter для эффектной анимации в приложении?
• Best Flutter Packages Of 2023
• narendardiscover/flutter-screen-navigation-d49349178f11">Flutter: Screen Navigation
• Tracking Lifecycle changes in Compose Multiplatform: IOS and Android