Сегодня рассмотрим раннер параллельного запуска нативных автотестов мобильных приложений. Раннер Emcee прогоняет тысячи тестов за 15 минут.
А если подробнее, то инструмент базируется на трёх компонентах:
📌очереди, которая распределяет тесты по воркерам и возвращает клиентам;
📌 воркерах, которые управляют эмуляторами и собирают результаты;
📌 клиентах, которые отправляют тесты в очередь и принимают результат.
Инженеры AvitoTech очень подробно рассмотрели как эта система работает, на демо-прогоне для Android. Ребята в собственном образовательном видеопроекте avito.code рассказывают как запускать раннер в облаке и разворачивать с помощью Docker Compose.Реклама ООО "Авито Тех", ИНН 9710089440 erid:LdtCKCf8N
Что нового в лучших практиках
Подборка всех материалов за прошлую неделю - новинки iOS 17.4 и лучшие практики Code Review для Android, повышение производительности модульных тестов и inline-функции изнутри, обрезка изображений без сторонних библиотек, гайд по Aurora, работа в кризис, зарплаты и многое другое.
Twin Labs — стартап, который хочет создать продукт для автоматизации повторяющихся задач, таких как подключение новых сотрудников ко всем внутренним сервисам. Например, если вы принимаете человека на работу, вам может понадобиться добавить его данные в систему расчета заработной платы, отправить приглашение в Slack, создать учетную запись Google Workspace. В случае с Twin Labs самое интересное то, как они это делают. Компания использует интересный обходной хак - мультимодальные модели с возможностями зрения, такие как GPT-4 with Vision (GPT-4V), чтобы повторить то, что обычно делает человек. GPT-4V был обучен работе с множеством различных программных интерфейсов и кодовых баз. То есть модель реально смотрит на сторонние программы и с достаточной вариативностью понимает, что и как ей надо сделать.
Разработка
• Twin Labs автоматизирует повторяющиеся задачи с помощью ИИ
• Зарплаты IT-специалистов во второй половине 2023
• Metronome помогает SaaS перейти на ценообразование, основанное на использовании
• HeadHunter представил рейтинг лучших работодателей
• MobileDiffusion: Rapid text-to-image generation on-device
• How hard is it to cheat with ChatGPT in technical interviews? We ran an experiment.
Маркетинг
• Mastering onboarding: Key lessons from Luckin Coffee’s strategy
Кроссплатформа
• How to use Resources in Compose Multiplatform
• Addressing Font Size Variations in React Native Apps on Android Devices
• aditya-arya/shark-flutter-transform-your-ui-dynamically-in-real-time-2717797d724d">Shark Flutter — Transform Your UI Dynamically in Real-Time
iOS
• 3D Pokemon Card: параллакс на SwiftUI
• Детектор зависания основного потока SwiftUI
• iOS 17.4: что нового? Apple впервые разрешила использовать сторонние каталоги приложений и аналоги Apple Pay
• Introducing Vortex: High-performance particle effects for SwiftUI
• Automating SwiftUI Accessibility Audits in Xcode 15
• ganeshrajugalla/swift-nested-protocol-concept-swift-5-10-f92bd2d690df">Nested protocol concept
#ios
HeadHunter представил рейтинг лучших работодателей
Тут ко вчерашней вакансии написали всякое про Яндекс. А вот оказывается, что компания лидирует по популярности для работников. По рейтингу HH, самые популярные для работников компании в области «IT и интернет»:
1. Яндекс (2 место в общем рейтинге)
2. Ozon (7)
3. VK (8)
4. Тинькофф (13)
5. 2ГИС (18)
Так что у кого-то щи пустые, а у кого-то Яндекс мелкий.
Android
• Шаблоны корутин в Android и как они работают
• Kotlin изнутри: как работают inline-функции
• Страх, ненависть и токенизация банковских карт в Google Pay
• Google Play улучшает обновление старых приложений
• Calendar: настраиваемый календарь для View/Compose
• How to Implement MVI with Delegates on Android
• ishanvohra2/increase-performance-in-your-app-using-debouncing-0cdb29023f82">Increase performance in your app using debouncing
• Debug Android API Calls Like a Boss
• Gradle Tutorial for Android: Getting Started
#android
iOS разработчик
Яндекс
Москва/Санкт-Петербург
гибрид
middle, senior, team lead
Какие задачи вас ждут
- участвовать в построении инфраструктуры приложения;
- продумывать и разрабатывать новые функции продукта;
- анализировать и улучшать производительность приложения;
- взаимодействовать со смежными командами.
Мы ждём, что вы
- отлично знаете Swift и особенности разработки для iOS;
- имеете значительный опыт написания клиент-серверных приложений;
- понимаете плюсы и минусы разных паттернов проектирования мобильных приложений.
Будет плюсом, если вы
- знакомы с Kotlin и концепциями Kotlin Multiplatform;
- имеете опыт работы со SwiftUI.
Откликнуться
Для связи в тг @maslova_y94
Знаменитый инсайдер Apple Марк Гурман продолжает грезить о iOS 18 и снова называет ее “крупнейшим обновлением в истории”. Ничего точно, правда, не говорит и талдычит про Siri и ИИ (а еще в качестве прорыва называют RCS, которые прямо так заставили внедрить чуть ли не на законодательном уровне). То, что может ИИ мы уже видели на примере Google и Samsung, так что вряд ли и тут Apple сможет удивить, особенно если учесть, что “в ИИ” компания никогда особо не могла. Но благо новая WWDC уже в этом году, так что “будем посмотреть” 🖼
Разработка
• 10 нестандартных уроков, полученных за 10 лет работы инженером-программистом
• Continuous learning framework
Маркетинг
• Microsoft заявляет, что новые правила App Store — «шаг в неправильном направлении»
• How to develop a successful push notification marketing strategy
Кроссплатформа
• Шпаргалка для QA: как тестировать Flutter-приложения
• Progress of the Flutter and Dart Package Ecosystem
• Dart on the Server: Exploring Server-Side Dart Technologies in 2024
• theflutterway/flutter-intro-onboarding-screen-with-carousel-animated-dots-no-package-19195792a010">Flutter App Intro/Onboarding Screen with Carousel & Animated Dots — NO Package
iOS
• Hand Shadows: руки для видео
• iOS 18 может стать «одним из крупнейших обновлений iOS»
• Как создать клиент App Store Connect API на Swift с помощью OpenAPI
• Getting Started With App Intents
• Debug for visionOS using Xcode simulator visualizations
• Using SwiftNIO — Fundamentals
• blorenzop/swiftui-charts-b6fa4aca46db">Introduction to Charts in SwiftUI
• SwiftUI’s Text’s Awesome tips
#ios
Небольшим компаниям или инди-разработчикам важно знать, на что уходит каждый рубль из бюджета на продвижение или разработку. Для нас ошибки — непозволительная роскошь. И тем более нужна надежная и удобная аналитика, чтобы в реальном времени следить за расходом средств на каждый канал привлечения пользователей.
Команда Multicast Games смогла в реальном времени отслеживать расходы на привлечение трафика и менять приоритетные направления. Всего с двумя UA-менеджерами они смогли добиться рентабельности рекламных вложений в 200%.
Читайте кейс и используйте самую точную аналитику 🧩
Интересный факт, но рекламный токен Реклама ООО "Яндекс", ИНН 7736207543, erid:2SDnjdGBfp4 до конца читает только 0,01% людей
Project IDX, универсальная веб-среда Google для разработки приложений с помощью ИИ, получила полноценный симулятор iOS и эмулятор Android прямо в браузере. Напомню, что это облачная IDE на основе VSCode, которая, среди прочего, позволяет использовать Flutter. Не уверен, что можно будет собирать и размещать проекты в App Store, но уже просто тестировать приложения без macOS, наверное, будет приятно. Впрочем, пока Project IDX работает ограничено и чтобы попасть в него надо пройти список ожидания.
Разработка
• Project IDX получил симулятор iOS и эмулятор Android
• Новое исследование Copilot обнаружило снижающееся качество кода
• Браузер Arc с помощью ИИ формирует персональные страницы для каждого поиска
• Разработка под Аврору
• Безопасность приложений
• Взламывая мобильное интервью
• Как тимлиду оценить успешность в своей роли
• Почему так мало женщин в IT?
• Podlodka: Про дипфейки, этику и цену прогресса
• Что такое Nix
• Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 2
• 10 unconventional lessons from 10 years working as a software engineer
Маркетинг
• Apple объявляет об изменениях в iOS, Safari и App Store в Европейском союзе
• После открытия App Store в Европе, Fortnite возвращается на iOS
• Apple разрешила стриминг игр в App Store
Кроссплатформа
• Позиция — KMP разработчик: Кирилла Розова собеседует Алексей Гладков
• Flutter Dev Podcast #42: как стать Flutter-разработчиком? Часть 1
• Отчёт о конференции CrossConf 2023
• Жизненный цикл приложения на Flutter
• Why I’m betting on FlutterFlow
iOS
• Поваренная книга SwiftUI: использование Combine с SwiftUI для управления состояниями
• Как через Push-уведомления на iPhone утекают данные пользователей
• A new access modifier in Swift: package
• SwiftUI main thread hang detector
• Scroll transition effects in iOS 17
• Mastering the Model Layer: Iron-Clad State Management in Model-Driven App
• Through the Ages: Apple Animation APIs
#ios
Удаление совершенства в масштабе
Традиционная подборка всех новостей и статей за неделю. Интерактивные виджеты, сторонние магазины приложений на iOS в Европе, архитектура в Android, пути к совершенству Flutter, удаление кода в масштабе и многое другое!
Apple объявляет об изменениях в iOS, Safari и App Store в Европейском союзе
Разрешают магазины и стороннюю загрузку, оплату через сайт или альтернативную платёжную систему. Условия:
• Сниженная комиссия - iOS-приложения в App Store будут платить сниженную комиссию в размере либо 10% (для подавляющего большинства разработчиков и подписчиков после первого года работы), либо 17%.
• Комиссия за обработку платежей - iOS-приложения в App Store могут использовать обработку платежей App Store за дополнительную комиссию в размере 3%. Разработчики могут использовать провайдера платежных услуг в своем приложении или направлять пользователей на свой веб-сайт для обработки платежей без дополнительной платы Apple.
• Технологический сбор - приложения для iOS, распространяемые в App Store и/или на альтернативных площадках для приложений, будут платить 0.50 евро за каждую первую годовую установку в год, превышающую порог в 1 миллион.
• Для приложений на iPadOS, macOS, watchOS и tvOS в ЕС разработчики, обрабатывающие платежи с помощью PSP или ссылки на свой сайт, получат скидку в размере 3% от комиссии, которую они должны выплатить Apple.
Если я правильно понял - за покупки в "сторонних" приложениях комиссия будет 10% или 17% + 50 центов за установку выше миллиона (если неправильно - поправьте).
В общем - все как и планировалось. Модерация и конский процент.
UPD: разработчики альтернативных магазинов должны будут предоставить компании аккредитив на сумму в 1 млн евро. Чтобы "гарантировать поддержку разработчикам и пользователям".
Android
• Просто об архитектуре в Android
• What’s new in the Jetpack Compose January ’24 release
• phyoemaungmaunghtun/package-visibility-in-api-30-or-higher-with-the-tts-service-9ef0d861fdb1">Package Visibility in API 30 or Higher with the TTS service
• Effect Handlers in Jetpack Compose
#android
Apple открыла язык программирования Pkl для создания конфигураций
Разработчики создали Pkl (произносится как "Пикл"), потому что считают, что конфигурация лучше всего проявляется как смесь между статическим языком и языком программирования общего назначения. Они хотят взять лучшее из обоих миров; предоставить язык, который является декларативным и простым для чтения и написания, но расширен возможностями, заимствованными из языков общего назначения. При написании Pkl вы можете использовать привычные функции языка, такие как классы, функции, условия и циклы. Вы можете создавать уровни абстракции и обмениваться кодом, создавая пакеты и публикуя их. Самое главное, что Pkl можно использовать для решения различных задач конфигурирования. Его можно использовать для создания статических конфигурационных файлов в любом формате или встраивать в качестве библиотеки в среду выполнения другого приложения.
Pkl разработали с тремя главными целями:
1. Обеспечить безопасность, отлавливая ошибки валидации до развертывания.
2. Масштабирование от простых до сложных сценариев использования.
3. Чтобы было приятно писать, благодаря лучшим в своем классе интеграциям с IDE.
Подробнее в анонсе или на официальном сайте.
Новая подборка видео и подкастов за неделю:
• (iOS Ru)
Как избежать утечек памяти при использовании Task, Combine, CurrentValueSubject и AsyncStream
• (iOS En)
SwiftUI: Universal Hero Effect
• (iOS En)
Introducing Vortex: High-performance particle effects for SwiftUI
• (iOS En)
SwiftUI Minimal Todo List With SwiftData & Interactive Widgets
• (iOS En)
Exploring AppState, a new open-source framework for SwiftUI Application State
• (iOS En)
SwiftUI Share Sheet Extension
• (And Ru)
Построение multi-app архитектуры
• (And Ru)
Старт карьеры в Android-разработке до 18 лет
• (And Ru)
Compose Navigation Codelab: проходим кодлаб от Google
• (And En)
What’s new in Jetpack Compose, Google Summer of Code 2024, and more dev news!
• (And En)
ALL Must-Know Changes in New Android Studio Hedgehog
• (And En)
This is Your 2024 Action Plan to Get Your Android Dream Job
• (Crs Ru)
Flutter Dev Podcast #44: Как стать Flutter-разработчиком? Часть 2
• (Crs En)
Prototyping apps with Project IDX, Firebase extensions and the PaLM API
• (Dev Ru)
Найти работу в кризис: джун, мидл и сеньёр
• (Dev Ru)
Проектирование невизуальных интерфейсов: основа, смыслы, примеры
• (Dev Ru)
Подходы и инструменты кастомизации процессов разработки
• (Dev Ru)
Кем вы видите себя в компании через 5 лет? Отвечает Head of Mobile
• (Dev Ru)
Podlodka: NeRF – последний шанс для VR?
• (Dev En)
Learn Accessibility - Full a11y Tutorial
• (Dev En)
Deep Learning Interview Prep Course
Что вы посмотрели/послушали интересного про разработку?
🌐 AppFiles
Android
• Повышение производительности модульных тестов в MEGA Android
• Разбираемся с MavenGate, новой атакой на цепочку поставок для Java и Android-приложений
• Introducing MavenGate: a supply chain attack method for Java and Android applications
• Android ViewModel: Single state or not?
#android
Зарплаты IT-специалистов во второй половине 2023
И еще про работу. Хабр Карьера опубликовала данные за второе полугодие 2023.
1. Медианная зарплата IT-специалистов сейчас — 141 000 ₽, это на 15% меньше, чем в первом полугодии 2023, когда рост был 10%. В основном на это повлияло снижение зарплат в регионах на 20%, где IT-специалистам сейчас платят в среднем 120 000 ₽. В Москве средняя зарплата — 187 000 ₽, а в Санкт-Петербурге — 150 000 ₽
2. Средняя зарплата мобильного разработчика — 200 тысяч рублей. Это падение на 9% по сравнению с первым полугодием.
3. Наибольшее снижение зарплат во второй половине 2023 было у разработчиков игр (-28%).
4. Зарплаты разработчиков в Objective-C продолжают оставаться самыми высокими в этом исследовании. Во второй половине 2023 медиана выросла на 21%, до 379 000 ₽. Это самый высокий рост. Впрочем, это данные по всего 30+ зарплатам из 34 тысяч, так что погрешность гигантская.
5. Во втором полугодии 2023 зарплаты в Swift опустились с третьего места на седьмое на фоне прироста в других языках, а разработчики Kotlin поднялись на шестое место. При этом зарплаты снизились только у программистов Swift — на 2%
На горизонте появился новый “молниеносный редактор кода для совместной работы” - Zed. Написан создателями Atom, по описанию эффективно использует каждое ядро CPU и GPU для мгновенного запуска, быстрой загрузки файлов и реагирования на нажатия клавиш. “Неумолимая производительность позволяет вам работать в потоке и заставляет ощущать другие инструменты медленными”. Хорошо излагает собака (С) Плюс есть “мультиплеер”, Copilot, Language Server Protocol для обеспечения автодополнения, навигации по коду, диагностики и рефакторинга. Теперь стали Open Source. Так что если вы смотрели какую-нибудь замену Notepad++ или VSCode, то может это оно.
Разработка
• Высокопроизводительный многопользовательский редактор кода Zed стал открытым
• Multitask like a pro with the WIP commit
Маркетинг
• Яндекс Путешествия запустили умную камеру для путешественников
Кроссплатформа
• Compose Multiplatform VS. Flutter
• Flutter Web Hosting With Github Pages & Custom Domain
iOS
• Swift: ссылочные типы и циклы сохранения, weak и unowned
• Step by step: интегрируем интерактивные 2D/3D-объекты в iOS-приложение
• Using reordering and selection at the same time in UITableView
• ViewModifiers: Image Picker
• How to make a completionHandler much safer
• edabdallamo/building-a-swiftui-video-annotation-app-c39ed93d983d">Building a SwiftUI Video Annotation App
#iOS
Google Play запустил функцию обновления старых версий приложений
Google представил новый автоматический инструмент, который предлагает пользователям обновиться.
1. Инструмент Play теперь сам может предложить пользователю, использующему определенную старую версию вашего приложения, обновить его. Срабатывает при каждом холодном старте. Ничего встраивать в приложение не надо.
2. Работает только с App Bundle.
3. Подсказку можно показывать по версии приложения, по стране/региону, версии Android.
4. Работает все через Google Play Console или через Play Developer API, и в скором времени функция будет расширена, чтобы позволить вам нацеливаться на несколько версий приложений одновременно.
И что: даешь такое в App Store!
Android
• Как мы в Fix Price запустили PWA-приложение для Android
• Лучшие практики RuStore: правила хорошего Code Review для Android
• ViewModelStoreOwner in Android
• Android Automotive OS 14 on a Raspberry Pi 4
• Custom Kotlin delegates
• AhmedMhesham/my-methodology-in-android-app-pentesting-from-root-detection-to-ato-scenario-adf6b9984f6d">My Methodology in Android App Pentesting: From Root Detection to ATO Scenario
#android
⚡️Яндекс, Озон, Авито и сотни других сайтов работают с перебоями из-за проблем в доменной зоне RU. Сайты не открываются как в России, так и в других странах — это крупнейший сбой в Рунете за последние месяцы.
👍 — меня не задело
👎 — всё сломалось
10 нестандартных уроков, полученных за 10 лет работы инженером-программистом
За последние десять лет я многому научился, но именно эти десять уроков оказали наибольшее влияние на мой путь. Надеюсь, они пригодятся вам для построения сильной, устойчивой и полноценной карьеры инженера-программиста.
1. Выбирайте обучение, а не деньги
2. Инвестируйте в принципы и практики
3. Станьте инженером, с которым все хотят работать
4. Разнообразьте свою жизнь
5. Относитесь к отзывам как к золоту
6. Сначала широкий уровень
7. Лидерство без титула
8. Думайте о сферах влияния
9. Наточите инструменты
10. Показывайте свою работу
А как насчет вас? Что бы вы посоветовали начинающим инженерам-программистам, которые только начинают работать в технологической отрасли? Какие самые важные уроки вы усвоили? Пожалуйста, поделитесь ими в комментариях!
Android
• Gemini Android: Gemini с Stream Chat SDK для Compose
• Bottom Dialog Android Picker: диалог выбора файлов
• Creating Dynamic Menus with Jetpack Compose
• Netflix Toolbar Scroll Effect
• Jetpack Compose Puzzlers
• Going Old School
#android
Новое исследование Copilot обнаружило снижающееся качество кода
В исследовании "Coding on Copilot", подготовленном компанией GitClear, изучается качество и сопровождаемость кода, написанного с помощью ИИ.
1. По прогнозам, в 2024 году отток кода (Code churn) - процент строк, которые были исправлены или обновлены менее чем через две недели после написания - удвоится по сравнению с базовым уровнем 2021 года, предшествовавшим появлению искусственного интеллекта.
2. Суть в том, что использование Copilot сильно коррелирует с "ошибочным кодом", выкладываемым в репозитории.
3. Кроме того, в сочетании с ростом кода, помеченного как Copy/Paste, остается мало места для сомнений в том, что текущая реализация ИИ-помощников препятствует повторному использованию кода. Вместо рефакторинга и работы над DRY ("Не повторяй себя") эти помощники лишь предлагают повторить существующий код одним нажатием кнопки.
4. Больше скопированного/вставленного кода означает будущие головные боли. Пожалуй, нет большего бича для долгосрочной сопровождаемости кода, чем скопированный/вставленный код. По сути, когда повторяется строка кода, не содержащая ключевого оператора, автор кода признается: "У меня не было времени оценить предыдущую реализацию". Повторное добавление кода вместо его повторного использования оставляет будущим сопровождающим обязанность выяснить, как консолидировать параллельные пути, реализующие многократно востребованную функциональность.
И что: нет сомнений, что с ростом популярности ИИ мы вступили в эпоху, когда строки кода добавляются быстрее, чем когда-либо прежде. Вопрос, который лучше задать в 2024 году - кто будет убирать этот беспорядок?
Новая пятничная подборка - видео и подкасты за неделю:
• (iOS En)
Bring 3D to your App: Developing Native iOS Apps with Spline
• (iOS En)
SwiftUI Dock Progress Bar for macOS
• (iOS En)
SwiftData Background Tasks: Massively Improve Your Apps Performance
• (iOS En)
Source Control with Xcode: Branching and Merging
• (iOS En)
Unit Testing a SwiftUI Application using Xcode
• (iOS En)
From Challenge to Joy: My Journey Developing Tuist for Scalable Xcode Projects
• (And En)
Now in Android: 98 - Gemini Pro, Google AI SDK, Google AI Studio, Cast, Rust, and more!
• (And En)
How to Implement Firebase Push Notifications on Android (FCM + Backend)
• (And En)
How to Create an App Shortcut on Android
• (And En)
How to automatically test a Google Play Subscription
• (Crs Ru)
Позиция — KMP разработчик: Кирилла Розова собеседует Алексей Гладков
• (Crs Ru)
Flutter Dev Podcast #42: как стать Flutter-разработчиком? Часть 1
• (Dev Ru)
Разработка под Аврору
• (Dev Ru)
Безопасность приложений
• (Dev Ru)
Cracking the Mobile Interview
• (Dev Ru)
Как тимлиду оценить успешность в своей роли
• (Dev Ru)
Почему так мало женщин в IT?
• (Dev Ru)
Podlodka: Про дипфейки, этику и цену прогресса
• (Dev En)
LangChain GEN AI Tutorial – 6 End-to-End Projects using OpenAI, Google Gemini Pro, LLAMA2
• (Dev En)
Python Data Analysis and Visualization Course
Что вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.
🌐 AppFiles
Следующее поколение Wear OS появится, возможно, уже в этом году - Samsung и Google готовят обновление Wear OS 5 на базе Android 14. До недавнего времени крупные обновления Wear OS выходили редко. Wear OS 2.2 на базе Android 9 появилась в 2018 и, за исключением некоторых дополнений, оставалась относительно неизменной в течение нескольких лет. В 2021 году вышла Wear OS 3, основанная на Android 11. Через год Google выпустил свои первые часы Pixel Watch, в которых была представлена Wear OS 3.5. Совсем недавно, в 2023 году, в Galaxy Watch 6 дебютировала Wear OS 4 на Android 13. Сейчас Samsung активно работает над поддержкой сборки Android 14 для следующего поколения чипа Galaxy Watch 7. В нескольких местах эта сборка упоминается как «Wear OS 5». В общем, цикл обновлений у Wear OS видимо так же станет годовым, что, по идее, будет подталкивать людей к покупке более современных смарт-часов, а разработчикам позволит использовать все современные возможности ОС.
Разработка
• Samsung и Google готовят Wear OS 5 на базе Android 14
• Сам написал, сам поиграл: как работали трёхмерные игры на кнопочных телефонах нулевых? Пишем 3D-шутер с нуля
• TensorFlow Lite vs PyTorch Mobile for On-Device Machine Learning
• Writing code that makes mistakes harder
Маркетинг
• Реальные знаменитости и Реальные бренды в BeReal
Кроссплатформа
• Конкурс экологичных игр от Flutter и Global Citizen
• Expo Router v3: API Routes, bundle splitting, speed improvements, and more
• Memory Leak In Dart/Flutter
• lanltn/flutter-interactive-viewer-gallery-with-interactiveviewer-55ae260d2014">Flutter — Interactive with gallery viewer using InteractiveViewer and Matrix4
• .NET MAUI — Creating Profile Settings Page with Form Items
iOS
• OutRun: открытый фитнес-трекер
• Apple планирует ввести тарифы и ограничения на стороннюю загрузку приложений
• Моя малышка все еще любит самолеты — и я улучшил для нее радар
• Приложения для Vision Pro выглядят скучно
• Creating a Collapsible UITableViewCell in Swift: A Step-by-Step Guide
• How to use the rethrows keyword in Swift?
• A deep dive into the 2023 iPhone app of the year, AllTrails
• mobile_44538/lottie-magic-in-swiftui-5d600f068287">Lottie magic in SwiftUI
• Vision Pro Apps look boring
#ios