AppFiles - Mobile Development
2.01K subscribers
2.61K photos
33 videos
8 files
3.51K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Вопросы с собеседований: что такое ARC (Automatic Reference Counting)

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
😁2
Добавляем SharePlay в 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
Vortex - это мощная, высокопроизводительная библиотека для создания системы частиц на SwiftUI, позволяющая создавать такие красивые эффекты, как огонь, дождь, дым и снег, всего в несколько строк кода. Vortex идет с рядом встроенных эффектов, таких как фейерверк, конфетти и другие, но вы также можете создавать полностью свои эффекты, которые соответствуют вашим потребностям. Этот фреймворк совместим с iOS, macOS, tvOS, watchOS и visionOS.

Vortex на GitHub: https://github.com/twostraws/Vortex
Платформа: iOS
⭐️: 734
Deep dive into delegated properties: разбираемся с делегатами в Kotlin

Остановил свое внимание на делегатах, так как нашел несколько особенностей применения, которые почти ни где не упоминаются, а что то и вовсе забыли описать в оф. документации, уверен что многим будет полезно.

Статья: https://habr.com/ru/articles/795231/
Платформа: Android
Миссия выполнима: как мы создали приложение для Apple Vision Pro за 8 дней

На связи Саша Сырков из 2ГИС, и это рассказ, как чуть больше недели мы разрабатывали приложение на Vision OS, разбирались в особенностях Reality Composer Pro, ловили всевозможные текстурные баги, а в итоге всё же получили заветный апрув от Apple за 17 часов до официального открытия продаж VR-гарнитуры.

В статье хронология событий от идеи до рабочего продукта и технические подробности создания нашего первого VisionOS-приложения — краткого справочника с 3D-моделями достопримечательностей.

Статья: https://habr.com/ru/companies/2gis/articles/794777/
Платформа: iOS
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
1
Проектируем системный дизайн Spotify

Это вопрос для собеседования по проектированию систем, в котором вам предстоит спроектировать Spotify. Обычно на реальном собеседовании вы сосредоточитесь на одной или двух основных функциональных возможностях приложения, но в этой статье я хотел бы сделать общий обзор того, как вы будете проектировать такую систему, а затем вы сможете углубиться в каждую отдельную часть, если потребуется.

Статья: https://apptractor.ru/develop/proektiruem-sistemnyy-dizayn-spotify.html
Платформа: разработка

Поставьте 👍, если хотите еще статей с примерами системного дизайна.
👍6
Lingshot - это простой, но мощный инструмент для перевода скриншотов, который делает многоязычное общение более доступным, чем когда-либо прежде. С помощью этого приложения вы можете сделать скриншот любого текста и мгновенно перевести его на нужный вам язык - с распознаванием текста и использованием ChatGPT.

Основной целью этого проекта является продвижение модульной, масштабируемой, поддерживаемой и тестируемой архитектуры. Он включает в себя передовой технологический стек и воплощает лучшие практики разработки программного обеспечения. Хотя приложение может показаться простым, оно включает в себя все основные компоненты, которые формируют фундамент для надежного, крупномасштабного приложения.

Принципы проектирования и архитектурные решения, использованные в этом проекте, идеально подходят для больших команд и длительных жизненных циклов приложений. Это приложение не только демонстрирует функциональные возможности, но и служит свидетельством того, как хорошо структурированный и грамотно написанный код служит стабильной основой для масштабируемых и поддерживаемых проектов по разработке программного обеспечения.

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
Прекратите использовать тестовые теги в Jetpack Compose

Использование семантики делает ваше приложение доступным для людей с особыми потребностями и в то же время сохраняет его тестируемость. К сожалению, бывают ситуации, когда тестовый тег неизбежен или просто не стоит тратить время на семантику. С другой стороны, я надеюсь, что это сделает внедрение семантик менее сложным для вас и упростит чью-то жизнь с помощью вашего приложения.

Статья: 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
👍3
EmojiKit - SDK на базе Swift, позволяющий использовать эмодзи в приложениях для всех основных платформах Apple (iOS, macOS, tvOS, watchOS и visionOS). EmojiKit предоставляет все необходимое для работы с эмодзи, включая категории, варианты оттенков кожи, информацию о юникоде и версии, поддержку локализации и т.д.

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
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
🔥4
7 открытых iOS-проектов, которые помогут изучить SwiftUI

Чтение кода (и его понимание) — один из лучших способов улучшить свои навыки разработки. Проекты с открытым исходным кодом — самое правильное место, где можно узнать о лучших практиках, стилях программирования и многих других темах. В этой статье список из 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
This media is not supported in your browser
VIEW IN TELEGRAM
VerticalSplit - реализации разделенного на две части экрана с динамическими границами в SwiftUI. Вдохновлена приложением Amie для iOS.

VerticalSplit на GitHub: https://github.com/vedantgurav/VerticalSplit
Платформа
: iOS
⭐️: 46
2