AppFiles - Mobile Development
2.01K subscribers
2.57K photos
33 videos
8 files
3.45K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Лучшие практики обработки ошибок в Kotlin

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

Kotlin обладает основными возможностями обработки ошибок, такими как Null Safety, let, оператор Элвис (?:), поздняя инициализация, безопасное приведение с помощью оператора 'as?'. Другие продвинутые техники обработки ошибок в Kotlin мы рассмотрим ниже.

Статья: https://apptractor.ru/info/articles/luchshie-praktiki-obrabotki-oshibok-v-kotlin.html
Платформа: Android
OpenAPI - это открытая спецификация для документирования HTTP API. Swift OpenAPI Generator - это плагин от Apple, который позволяет сразу генерировать “церемониальный” код, необходимый для выполнения вызовов API или реализации API сервера.

Swift OpenAPI Generator на GitHub: https://github.com/apple/swift-openapi-generator
Платформа: iOS
⭐️: 602
Две стратегии скриншот-тестирования в мобильных проектах

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

Статья: https://apptractor.ru/info/articles/dve-strategii-skrinshot-testirovaniya-v-mobilnyh-proektah.html
Платформа: тестирование
🔥1
Поваренная книга SwiftUI: cоздание и предварительный просмотр представления SwiftUI

Добро пожаловать в раздел «Начало работы с SwiftUI»! Здесь начинается ваш путь к тому, чтобы стать мастером SwiftUI.

Мы начнем с основ, изучим, как создать и просмотреть представление SwiftUI. Затем мы погрузимся в основополагающую концепцию SwiftUI — представления (View) и и их иерархия, где вы поймете структуру SwiftUI-приложений и то, как представления располагаются слоями.

Статья: https://apptractor.ru/info/articles/povarennaya-kniga-swiftui-cozdanie-i-predvaritelnyy-prosmotr-predstavleniya-swiftui.html
Платформа: iOS
Meeting Room Compose - приложение для организации видеоконференций (переговорных комнат) в режиме реального времени, созданное с помощью Jetpack Compose и Stream Video SDK for Compose и напоминающее по дизайну Google Meet.

Основная задача этого репозитория - продемонстрировать следующее:

• Полная реализация компонентов пользовательского интерфейса с использованием Jetpack Compose.
• Разработка приложения для митингов в реальном времени с бесшовным пользовательским интерфейсом, выполненным в стиле Google Meet путем настройки CallContent и ParticipantVideo.
• Создание экрана лобби, обеспечивающего управление физическими устройствами перед входом в переговорную комнату, включая переключение камеры/микрофона и переключение вида камеры.
• Иллюстрация подключения нескольких участников с различных платформ, таких как Web и Android.

Meeting Room Compose на GitHub: https://github.com/GetStream/meeting-room-compose
Платформа: Android
⭐️: 91
Как публиковать и воспроизводить видео на Android с помощью опенсорс-библиотеки и стриминговой платформы EdgeЦентр

Сделать собственный сервис, где пользователи могли бы смотреть готовые видео на смартфонах в хорошем качестве, с адаптивным битрейтом кажется довольно сложной и дорогой задачей. Но на самом деле реализовать публикацию и проигрывание VOD (Video on Demand, видео по запросу) — не так уж и сложно, а в качестве составных частей можно использовать опенсорс.

Меня зовут Денис Филиппов, я руководитель отдела разработки стриминговой платформы EdgeЦентр. Сегодня расскажу вам, как с помощью нашей платформы и опенсорс-библиотеки tus-android-client сделать приложение, где пользователи смогут смотреть видео на Android.

Статья: https://habr.com/ru/companies/edgecenter/articles/759180/
Платформа: Android
Flow Engine — движок iOS-навигации в Revolut

Вы когда-нибудь слышали о шаблоне Координатор? Отлично, потому что статья не о нем. Я здесь, чтобы рассказать вам про кастомный движок навигации, наш Revolut Flow Engine.

Статья: https://apptractor.ru/info/articles/flow-engine-dvizhok-ios-navigatsii-v-revolut.html
Платформа: iOS
Как создать корпоративное LLM-приложение: Уроки GitHub Copilot

На разработку GitHub Copilot у нас ушло три года, прежде чем мы официально представили его широкой публике. Чтобы перейти от идеи к производству, мы следовали трем этапам - найти, применить, расширить - в общих чертах основываясь на концепции разработки предпринимательских продуктов "Nail It, Then Scale It".

Статья: https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/
Dynamic Island SwiftUI Demo like Telegram - пример пользовательской анимации, когда аватар пользователя плавно перетекает и растворяется в Динамическом острове, по примеру того, как это сделано в Telegram. Разработано полностью нативно с использованием Swift и SwiftUI.

Dynamic Island SwiftUI Demo like Telegram на GitHub: https://github.com/stolyarenkoks/Dynamic-Island-SwiftUI-Demo
Платформа: iOS
⭐️: 3
🔥1
Видео и подкасты за неделю:

(iOS Ru) Swift-уроки: Simple MVVM
(iOS Ru) Как приручить iPhone, или Общаемся с телефоном по проводу
(iOS En) My Deep Dive into the "Failed to Receive Result from Plugin" Macro Error
(iOS En) Demystifying Sobel Operators & Edge Detection
(iOS En) SwiftUI Fundamentals - FULL COURSE
(iOS En) How To Preload Relationship Into SwiftData ModelContainer
(iOS En) Selection and PieCharts in iOS 17
(And En) Now in Android: 90 - Android brand, ART updates, Dagger KSP, and more
(And En) Google Play Store Listing Certificate Study Guide
(And En) THIS New Tool Strongly Speeds Up Your Gradle Builds
(And En) Don't Make THIS Mistake With Room & Databases on Android
(And En) Step-by-Step Guide to Screenshot Testing in Android
(Crs En) Building a Gmail-Like Email App with Flutter and Python Backend
(Dev Ru) Ozon Tech Community Mobile Meetup
(Dev Ru) Новая Зеландия: как живут разработчики в стране хоббитов
(Dev Ru) Podlodka #336: на чем программируют ученые
(Dsg En) UI Design a Travel App in Figma from scratch

Посмотрите, поделитесь, поставьте 👍 этому посту и он будет больше продвигаться в ленте Телеграма. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻‍💻
👍1
UI Examples - в этом репозитории вы найдете коллекцию небольших сниппетов, которые вы можете свободно использовать и интегрировать в свои проекты. Эти маленькие улучшения UI были тщательно продуманы, чтобы сэкономить ваше время и усилия в разработке. Всего в библиотеке 3 сниппета - красивая кнопка, экран запроса доступа к галерее с объяснением, экран запроса доступа к разрешениям.

UI Examples на GitHub: https://github.com/UIXaker/UIExamples
Платформа: iOS
⭐️: 5
Ускоряем поиск по коду в Android Studio

Рассмотрим возможности Android Studio, позволяющие быстрее ориентироваться в коде: находить нужные фрагменты и выявлять связи между ними.

Статья: https://habr.com/ru/companies/ozontech/articles/759480/
Платформа: Android
Enum в Swift: Перечисления Возможных Сценариев

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

Статья: https://habr.com/ru/articles/759842/
Платформа: iOS
👍1
AAY-chart - библиотека содержит несколько компонентов для построения графиков в Android Native и Kotlin Multiplatform. В настоящее время поддерживаются платформы Desktop, Android и iOS.

AAY-chart на GitHub: https://github.com/TheChance101/AAY-chart
Платформа: Android/кроссплатформа
⭐️: 173
Шейдеры в iOS для начинающих

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

Давайте разбираться, что за чудо-код надо написать, как это подключить и как в целом погрузиться в тему. Начнём с простых градиентов, а закончим сложным примером «как в Air Drop на iOS 17».

Статья: https://habr.com/ru/companies/dododev/articles/759574/
Платформа: iOS
Как я удалил рекламу из приложения Spotify

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

Статья: https://apptractor.ru/info/articles/kak-ya-udalil-reklamu-iz-prilozheniya-spotify.html
Платформа: Android
👍1
SDWebImageSwiftUI - фреймворк загрузки изображений для SwiftUI, основанный на SDWebImage. В нем реализованы все любимые функции, такие как асинхронная загрузка изображений, кэширование в памяти или на диске, воспроизведение анимированных изображений. Фреймворк предоставляет различные структуры View, API которых соответствует рекомендациям фреймворка SwiftUI. Если вы знакомы с Image, то вам будет легко использовать WebImage и AnimatedImage.

SDWebImageSwiftUI на GitHub: https://github.com/SDWebImage/SDWebImageSwiftUI
Платформа: iOS
⭐️: 1.8K
Сам написал, сам поиграл: как я написал 2D-игру для Android полностью с нуля, весом менее 1мб?

Многие программисты так или иначе имеют тягу и интерес к разработке игр. Немалое количество спецов было замечено за написанием маленьких и миленьких игрушек, которые были разработаны за короткое время «just for fun». Большинству разработчиков за счастье взять готовый игровой движок по типу Unity/UE и попытаться создать что-то своё с их помощью, особенно упорные изучают и пытаются что-то сделать в экзотических движках типа Godot/Urho, а совсем прожжённые ребята любят писать игрушки… с нуля. Таковым любителем писать все сам оказался и я. И в один день мне просто захотелось написать что-нибудь прикольное, мобильное и обязательно — двадэшное! В этой статье вы узнаете про: написание производительного 2D-рендерера с нуля на базе OpenGL ES, обработку «сырого» ввода в мобильных играх, организацию архитектуры и игровой логики и адаптация игры под любые устройства.

Статья: https://habr.com/ru/companies/timeweb/articles/754588/
Платформа: Android
1