Вопросы с собеседований: что такое ARC (Automatic Reference Counting)
ARC (Automatic Reference Counting) - это механизм управления памятью в языке программирования Swift, который автоматически отслеживает и управляет использованием памяти для объектов. ARC отслеживает количество ссылок на объект и автоматически освобождает память, когда объект больше не имеет ни одной ссылки на него.
Ответ: https://apptractor.ru/info/techhype/arc.html
Платформа: iOS
ARC (Automatic Reference Counting) - это механизм управления памятью в языке программирования Swift, который автоматически отслеживает и управляет использованием памяти для объектов. ARC отслеживает количество ссылок на объект и автоматически освобождает память, когда объект больше не имеет ни одной ссылки на него.
Ответ: https://apptractor.ru/info/techhype/arc.html
Платформа: iOS
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
PhotoView - это компонент ImageView для Android, который обеспечивает функцию зума с помощью различных жестов. Этот форк другой библиотеки, но целью создания PhotoView является синхронизация с новой библиотекой AndroidX, исправление ошибок, расширение возможностей и распространение пакета через Maven Central вместо Jitpack.
PhotoView на GitHub: https://github.com/GetStream/photoview-android
Платформа: Android
⭐️: 130
PhotoView на GitHub: https://github.com/GetStream/photoview-android
Платформа: Android
⭐️: 130
😁2
Добавляем SharePlay в iOS-приложение
Мне пришлось немало потрудиться, чтобы заставить все работать, и я обнаружил, что документация Apple по настройке сессий SharePlay скудная и немного запутанная. По этой причине я решил написать исчерпывающее руководство по настройке сеанса SharePlay, в котором собраны все мои находки.
Статья: https://apptractor.ru/info/articles/dobavlyaem-shareplay-v-ios-prilozhenie.html
Платформа: iOS
Мне пришлось немало потрудиться, чтобы заставить все работать, и я обнаружил, что документация Apple по настройке сессий SharePlay скудная и немного запутанная. По этой причине я решил написать исчерпывающее руководство по настройке сеанса SharePlay, в котором собраны все мои находки.
Статья: https://apptractor.ru/info/articles/dobavlyaem-shareplay-v-ios-prilozhenie.html
Платформа: iOS
👍2
Двигай рукой справа налево: адаптация интерфейса в Android приложении под RTL в XML и Jetpack Compose
Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я расскажу о том как адаптировать интерфейс в мобильном приложении под RTL в XML и Jetpack Compose. Вы узнаете, об особенностях RTL интерфейсов, отличиях поддержки RTL в XML и Jetpack Compose, и о том как поддержка RTL может привлечь новых пользователей.
Статья: https://habr.com/ru/articles/791926/
Платформа: Android
Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я расскажу о том как адаптировать интерфейс в мобильном приложении под RTL в XML и Jetpack Compose. Вы узнаете, об особенностях RTL интерфейсов, отличиях поддержки RTL в XML и Jetpack Compose, и о том как поддержка RTL может привлечь новых пользователей.
Статья: https://habr.com/ru/articles/791926/
Платформа: Android
Vortex - это мощная, высокопроизводительная библиотека для создания системы частиц на SwiftUI, позволяющая создавать такие красивые эффекты, как огонь, дождь, дым и снег, всего в несколько строк кода. Vortex идет с рядом встроенных эффектов, таких как фейерверк, конфетти и другие, но вы также можете создавать полностью свои эффекты, которые соответствуют вашим потребностям. Этот фреймворк совместим с iOS, macOS, tvOS, watchOS и visionOS.
Vortex на GitHub: https://github.com/twostraws/Vortex
Платформа: iOS
⭐️: 734
Vortex на GitHub: https://github.com/twostraws/Vortex
Платформа: iOS
⭐️: 734
Deep dive into delegated properties: разбираемся с делегатами в Kotlin
Остановил свое внимание на делегатах, так как нашел несколько особенностей применения, которые почти ни где не упоминаются, а что то и вовсе забыли описать в оф. документации, уверен что многим будет полезно.
Статья: https://habr.com/ru/articles/795231/
Платформа: Android
Остановил свое внимание на делегатах, так как нашел несколько особенностей применения, которые почти ни где не упоминаются, а что то и вовсе забыли описать в оф. документации, уверен что многим будет полезно.
Статья: https://habr.com/ru/articles/795231/
Платформа: Android
Хабр
Deep dive into delegated properties: разбираемся с делегатами в котлин
Не так давно решил изучить официальную документацию котлина. В свое время изучал его, как и многие другие, через видосики и практику. Поэтому решил поглубже погрузиться в дебри....
Миссия выполнима: как мы создали приложение для Apple Vision Pro за 8 дней
На связи Саша Сырков из 2ГИС, и это рассказ, как чуть больше недели мы разрабатывали приложение на Vision OS, разбирались в особенностях Reality Composer Pro, ловили всевозможные текстурные баги, а в итоге всё же получили заветный апрув от Apple за 17 часов до официального открытия продаж VR-гарнитуры.
В статье хронология событий от идеи до рабочего продукта и технические подробности создания нашего первого VisionOS-приложения — краткого справочника с 3D-моделями достопримечательностей.
Статья: https://habr.com/ru/companies/2gis/articles/794777/
Платформа: iOS
На связи Саша Сырков из 2ГИС, и это рассказ, как чуть больше недели мы разрабатывали приложение на Vision OS, разбирались в особенностях Reality Composer Pro, ловили всевозможные текстурные баги, а в итоге всё же получили заветный апрув от Apple за 17 часов до официального открытия продаж VR-гарнитуры.
В статье хронология событий от идеи до рабочего продукта и технические подробности создания нашего первого VisionOS-приложения — краткого справочника с 3D-моделями достопримечательностей.
Статья: https://habr.com/ru/companies/2gis/articles/794777/
Платформа: iOS
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы интересного посмотрели/послушали про разработку на этой неделе?
🌐 @AppFiles
•
(iOS Ru)
Введение в разработку под Apple Vision Pro•
(iOS En)
iOS Dev's Thoughts on Working in Apple Vision Pro•
(iOS En)
How to use ContentUnavailableView in SwiftUI•
(iOS En)
How to use Grid in SwiftUI•
(iOS En)
How to use NavigationSplitView in SwiftUI•
(iOS En)
Apple Maps Bottom Sheet•
(iOS En)
65 tips to use Xcode like a PRO•
(iOS En)
Advance Map Interaction - Draggable Annotation•
(And Ru)
Новостное приложение: с нуля до публикации в Google Play. Часть 1•
(And En)
Fan’otations - Android Developers Backstage•
(And En)
derivedStateOf VS. remember(key) - THIS is Really the Difference•
(And En)
Full Beginner's Guide to the Jetpack Compose Preview in Android Studio•
(And En)
Mastering Jetpack Compose Previews - Test your UI before it tests you•
(Dev Ru)
Публичное собеседование на позицию Head of QA•
(Dev Ru)
Обязательные знания для тимлида•
(Dev Ru)
Краш-курс по автоматизации тестирования•
(Dev En)
Google Gemini AI Course for Beginners•
(Dsg Ru)
Ozon Tech Community Design MeetupЧто вы интересного посмотрели/послушали про разработку на этой неделе?
🌐 @AppFiles
AppTractor
Введение в разработку под Apple Vision Pro
В докладе спикер развеял туманность и показал специалистам, что из себя представляет разработка под visionOS.
MLX - это фреймворк для исследований в области машинного обучения для Apple Silicon, разработанный компанией Apple.
Некоторые ключевые особенности MLX включают:
• Знакомые API: MLX имеет API на языке Python, близкий к NumPy. MLX также имеет полнофункциональные API для C++, C и Swift, которые в точности повторяют API Python. В MLX есть пакеты более высокого уровня, такие как mlx.nn и mlx.optimizers, с API, близкими к PyTorch, что упрощает построение более сложных моделей.
• Композитные преобразования функций: MLX поддерживает композитные преобразования функций для автоматического дифференцирования, автоматической векторизации и оптимизации вычислительных графов.
• Ленивые вычисления: Вычисления в MLX являются ленивыми. Массивы материализуются только тогда, когда это необходимо.
• Динамическое построение графов: Графы вычислений в MLX строятся динамически. Изменение формы аргументов функций не вызывает медленной компиляции, а отладка проста и интуитивно понятна.
• Мультиустройства: Операции могут выполняться на любом из поддерживаемых устройств (в настоящее время это CPU и GPU).
• Унифицированная память: Заметным отличием MLX от других фреймворков является унифицированная модель памяти. Массивы в MLX находятся в общей памяти. Операции над массивами MLX могут выполняться на любом из поддерживаемых типов устройств без передачи данных.
MLX разработан исследователями машинного обучения для исследователей машинного обучения. Фреймворк задуман как удобный для пользователя, но при этом эффективный для обучения и развертывания моделей. Дизайн самого фреймворка также концептуально прост.
В репозитории примеров MLX есть множество примеров, включая обучение языковой модели трансформера, генерация крупномасштабных текстов с помощью LLaMA и тонкая настройка с помощью LoRA, генерация изображений с помощью Stable Diffusion, распознавание речи с помощью Whisper от OpenAI.
MLX на GitHub: https://github.com/ml-explore/mlx
Платформа: iOS
⭐️: 12.8K
Некоторые ключевые особенности MLX включают:
• Знакомые API: MLX имеет API на языке Python, близкий к NumPy. MLX также имеет полнофункциональные API для C++, C и Swift, которые в точности повторяют API Python. В MLX есть пакеты более высокого уровня, такие как mlx.nn и mlx.optimizers, с API, близкими к PyTorch, что упрощает построение более сложных моделей.
• Композитные преобразования функций: MLX поддерживает композитные преобразования функций для автоматического дифференцирования, автоматической векторизации и оптимизации вычислительных графов.
• Ленивые вычисления: Вычисления в MLX являются ленивыми. Массивы материализуются только тогда, когда это необходимо.
• Динамическое построение графов: Графы вычислений в MLX строятся динамически. Изменение формы аргументов функций не вызывает медленной компиляции, а отладка проста и интуитивно понятна.
• Мультиустройства: Операции могут выполняться на любом из поддерживаемых устройств (в настоящее время это CPU и GPU).
• Унифицированная память: Заметным отличием MLX от других фреймворков является унифицированная модель памяти. Массивы в MLX находятся в общей памяти. Операции над массивами MLX могут выполняться на любом из поддерживаемых типов устройств без передачи данных.
MLX разработан исследователями машинного обучения для исследователей машинного обучения. Фреймворк задуман как удобный для пользователя, но при этом эффективный для обучения и развертывания моделей. Дизайн самого фреймворка также концептуально прост.
В репозитории примеров MLX есть множество примеров, включая обучение языковой модели трансформера, генерация крупномасштабных текстов с помощью LLaMA и тонкая настройка с помощью LoRA, генерация изображений с помощью Stable Diffusion, распознавание речи с помощью Whisper от OpenAI.
MLX на GitHub: https://github.com/ml-explore/mlx
Платформа: iOS
⭐️: 12.8K
GitHub
GitHub - ml-explore/mlx: MLX: An array framework for Apple silicon
MLX: An array framework for Apple silicon. Contribute to ml-explore/mlx development by creating an account on GitHub.
❤1
Проектируем системный дизайн Spotify
Это вопрос для собеседования по проектированию систем, в котором вам предстоит спроектировать Spotify. Обычно на реальном собеседовании вы сосредоточитесь на одной или двух основных функциональных возможностях приложения, но в этой статье я хотел бы сделать общий обзор того, как вы будете проектировать такую систему, а затем вы сможете углубиться в каждую отдельную часть, если потребуется.
Статья: https://apptractor.ru/develop/proektiruem-sistemnyy-dizayn-spotify.html
Платформа: разработка
Поставьте 👍, если хотите еще статей с примерами системного дизайна.
Это вопрос для собеседования по проектированию систем, в котором вам предстоит спроектировать Spotify. Обычно на реальном собеседовании вы сосредоточитесь на одной или двух основных функциональных возможностях приложения, но в этой статье я хотел бы сделать общий обзор того, как вы будете проектировать такую систему, а затем вы сможете углубиться в каждую отдельную часть, если потребуется.
Статья: https://apptractor.ru/develop/proektiruem-sistemnyy-dizayn-spotify.html
Платформа: разработка
Поставьте 👍, если хотите еще статей с примерами системного дизайна.
👍6
Lingshot - это простой, но мощный инструмент для перевода скриншотов, который делает многоязычное общение более доступным, чем когда-либо прежде. С помощью этого приложения вы можете сделать скриншот любого текста и мгновенно перевести его на нужный вам язык - с распознаванием текста и использованием ChatGPT.
Основной целью этого проекта является продвижение модульной, масштабируемой, поддерживаемой и тестируемой архитектуры. Он включает в себя передовой технологический стек и воплощает лучшие практики разработки программного обеспечения. Хотя приложение может показаться простым, оно включает в себя все основные компоненты, которые формируют фундамент для надежного, крупномасштабного приложения.
Принципы проектирования и архитектурные решения, использованные в этом проекте, идеально подходят для больших команд и длительных жизненных циклов приложений. Это приложение не только демонстрирует функциональные возможности, но и служит свидетельством того, как хорошо структурированный и грамотно написанный код служит стабильной основой для масштабируемых и поддерживаемых проектов по разработке программного обеспечения.
Lingshot на GitHub: https://github.com/CharlesMoreira1/lingshot
Платформа: Android
⭐️: 74
Основной целью этого проекта является продвижение модульной, масштабируемой, поддерживаемой и тестируемой архитектуры. Он включает в себя передовой технологический стек и воплощает лучшие практики разработки программного обеспечения. Хотя приложение может показаться простым, оно включает в себя все основные компоненты, которые формируют фундамент для надежного, крупномасштабного приложения.
Принципы проектирования и архитектурные решения, использованные в этом проекте, идеально подходят для больших команд и длительных жизненных циклов приложений. Это приложение не только демонстрирует функциональные возможности, но и служит свидетельством того, как хорошо структурированный и грамотно написанный код служит стабильной основой для масштабируемых и поддерживаемых проектов по разработке программного обеспечения.
Lingshot на GitHub: https://github.com/CharlesMoreira1/lingshot
Платформа: Android
⭐️: 74
Машинное обучение на устройствах с помощью MLX и Swift
MLX - это фреймворк для работы с машинным обучением на Apple Silicon. MLX предназначен для исследований, а не для развертывания моделей в приложениях. MLX Swift расширяет MLX на язык Swift, облегчая исследователям ML-эксперименты на процессорах Apple.
Статья: https://apptractor.ru/info/articles/mashinnoe-obuchenie-na-ustroystvah-s-pomoschyu-mlx-i-swift.html
Платформа: iOS
MLX - это фреймворк для работы с машинным обучением на Apple Silicon. MLX предназначен для исследований, а не для развертывания моделей в приложениях. MLX Swift расширяет MLX на язык Swift, облегчая исследователям ML-эксперименты на процессорах Apple.
Статья: https://apptractor.ru/info/articles/mashinnoe-obuchenie-na-ustroystvah-s-pomoschyu-mlx-i-swift.html
Платформа: iOS
Прекратите использовать тестовые теги в Jetpack Compose
Использование семантики делает ваше приложение доступным для людей с особыми потребностями и в то же время сохраняет его тестируемость. К сожалению, бывают ситуации, когда тестовый тег неизбежен или просто не стоит тратить время на семантику. С другой стороны, я надеюсь, что это сделает внедрение семантик менее сложным для вас и упростит чью-то жизнь с помощью вашего приложения.
Статья: https://apptractor.ru/info/articles/prekratite-ispolzovat-testovye-tegi-v-jetpack-compose.html
Платформа: Android/тестирование
Использование семантики делает ваше приложение доступным для людей с особыми потребностями и в то же время сохраняет его тестируемость. К сожалению, бывают ситуации, когда тестовый тег неизбежен или просто не стоит тратить время на семантику. С другой стороны, я надеюсь, что это сделает внедрение семантик менее сложным для вас и упростит чью-то жизнь с помощью вашего приложения.
Статья: https://apptractor.ru/info/articles/prekratite-ispolzovat-testovye-tegi-v-jetpack-compose.html
Платформа: Android/тестирование
20 лет Xcode год за годом
В следующий раз, когда вы откроете Xcode, чтобы исправить небольшую ошибку, продумать идею следующего приложения на миллиард долларов или узнать больше о разработке для iOS, помните, что у каждого приложения есть история — и мы все пишем ее строку за строкой.
Статья: https://apptractor.ru/info/articles/20-let-xcode-god-za-godom.html
Платформа: iOS
В следующий раз, когда вы откроете Xcode, чтобы исправить небольшую ошибку, продумать идею следующего приложения на миллиард долларов или узнать больше о разработке для iOS, помните, что у каждого приложения есть история — и мы все пишем ее строку за строкой.
Статья: https://apptractor.ru/info/articles/20-let-xcode-god-za-godom.html
Платформа: iOS
👍3
EmojiKit - SDK на базе Swift, позволяющий использовать эмодзи в приложениях для всех основных платформах Apple (iOS, macOS, tvOS, watchOS и visionOS). EmojiKit предоставляет все необходимое для работы с эмодзи, включая категории, варианты оттенков кожи, информацию о юникоде и версии, поддержку локализации и т.д.
EmojiKit на GitHub: https://github.com/Kankoda/EmojiKit
Платформа: iOS
⭐️: 34
EmojiKit на GitHub: https://github.com/Kankoda/EmojiKit
Платформа: iOS
⭐️: 34
Почему Ollie перешел от SwiftUI к UIKit
Мы обнаружили, что в SwiftUI много «магии», которая затрудняет понимание. В SwiftUI есть множество неявных скрытых предположений, которые, если их не соблюдать, могут привести к неожиданным болезненным результатам.
Статья: https://apptractor.ru/info/articles/pochemu-ollie-pereshel-ot-swiftui-k-uikit.html
Платформа: iOS
Мы обнаружили, что в SwiftUI много «магии», которая затрудняет понимание. В SwiftUI есть множество неявных скрытых предположений, которые, если их не соблюдать, могут привести к неожиданным болезненным результатам.
Статья: https://apptractor.ru/info/articles/pochemu-ollie-pereshel-ot-swiftui-k-uikit.html
Платформа: iOS
❤3
Decompose - это библиотека Kotlin Multiplatform для разбиения кода на древовидную структуру, состоящую из небольших независимых компонентов бизнес-логики (BLoC), учитывающих жизненный цикл, с функцией маршрутизации и подключаемым пользовательским интерфейсом (Jetpack/Multiplatform Compose, Android Views, SwiftUI, Kotlin/React и т.д.).
Decompose проводит четкие границы между кодом пользовательского интерфейса и кодом, не относящимся к нему, позволяет правильно делать Dependency injection (DI) и Inversion of control (IoC), иметь общую логику навигации и т.д.
Decompose на GitHub: https://github.com/arkivanov/Decompose
Платформа: Android/кроссплатформа
⭐️: 1.8K
Decompose проводит четкие границы между кодом пользовательского интерфейса и кодом, не относящимся к нему, позволяет правильно делать Dependency injection (DI) и Inversion of control (IoC), иметь общую логику навигации и т.д.
Decompose на GitHub: https://github.com/arkivanov/Decompose
Платформа: Android/кроссплатформа
⭐️: 1.8K
🔥4
7 открытых iOS-проектов, которые помогут изучить SwiftUI
Чтение кода (и его понимание) — один из лучших способов улучшить свои навыки разработки. Проекты с открытым исходным кодом — самое правильное место, где можно узнать о лучших практиках, стилях программирования и многих других темах. В этой статье список из 7 iOS-проектов на SwiftUI, которые помогут вам научиться новому.
Статья: https://apptractor.ru/develop/7-otkrytyh-ios-proektov-kotorye-pomogut-izuchit-swiftui.html
Платформа: iOS
Чтение кода (и его понимание) — один из лучших способов улучшить свои навыки разработки. Проекты с открытым исходным кодом — самое правильное место, где можно узнать о лучших практиках, стилях программирования и многих других темах. В этой статье список из 7 iOS-проектов на SwiftUI, которые помогут вам научиться новому.
Статья: https://apptractor.ru/develop/7-otkrytyh-ios-proektov-kotorye-pomogut-izuchit-swiftui.html
Платформа: iOS
🔥2
Отслеживание времени сборки Android-проекта
Сколько часов вы просидели перед Android Studio, просматривая сообщение «Gradle Build Running», просто ожидая сборки и развертывания приложения на вашем устройстве? Для больших приложений, совместно используемых десятками разработчиков, измерение этого числа важно для определения того, сколько времени может быть потрачено впустую
Статья: https://apptractor.ru/info/articles/otslezhivanie-vremeni-sborki-android-proekta.html
Платформа: Android
Сколько часов вы просидели перед Android Studio, просматривая сообщение «Gradle Build Running», просто ожидая сборки и развертывания приложения на вашем устройстве? Для больших приложений, совместно используемых десятками разработчиков, измерение этого числа важно для определения того, сколько времени может быть потрачено впустую
Статья: https://apptractor.ru/info/articles/otslezhivanie-vremeni-sborki-android-proekta.html
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
VerticalSplit - реализации разделенного на две части экрана с динамическими границами в SwiftUI. Вдохновлена приложением Amie для iOS.
VerticalSplit на GitHub: https://github.com/vedantgurav/VerticalSplit
Платформа: iOS
⭐️: 46
VerticalSplit на GitHub: https://github.com/vedantgurav/VerticalSplit
Платформа: iOS
⭐️: 46
❤2
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы интересного посмотрели/послушали про разработку на этой неделе? 🌐 @AppFiles
•
(iOS Ru)
Пишем текстовую RPG•
(iOS En)
How to Create 3D App Icons for visionOS•
(iOS En)
How to easily mock ANY network call with URLProtocol•
(iOS En)
Elastic Custom Segmented Control - SwiftUI•
(iOS En)
Custom SwiftUI Calendar•
(And Ru)
Наш опыт внедрения Compose в большой проект•
(And Ru)
Многомодульность: что это такое?•
(And Ru)
Жизнь инди в Google Play•
(And Ru)
Разработка новостного приложения. Часть 2•
(And En)
The Ultimate Package Structure Guide for Android Developers•
(And En)
Modern Dependency Management With Version Catalogs•
(And En)
Modularization at scale with Alireza Tizfahmfard•
(Dev Ru)
Топ 5 книг для синьора•
(Dev En)
Machine Learning in 2024 – Beginner's Course•
(Dev Ru)
Как мы пытались растить выручку через персонализациюЧто вы интересного посмотрели/послушали про разработку на этой неделе? 🌐 @AppFiles
AppTractor
Пишем текстовую RPG
Пример написания текстовой игры на Swift. https://www.youtube.com/watch?v=7H9xICrE5jU