AppFiles - Mobile Development
2.11K subscribers
2.71K photos
38 videos
10 files
3.64K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Giphy Trending - пример приложения для Android с популярными анимированными гифками Giphy для обмена или загрузки. Сделано на основе Kotlin, MVVM, Jetpack Compose (Single Activity), корутин и Flow, Dagger Hilt, Material 3, Gradle Kotlin DSL и Version Catalog, Baseline Profile.

Giphy Trending на GitHub: https://github.com/ryanw-mobile/giphy-trending
Платформа: Android
⭐️: 14
Упадок мобильной разработки

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

Есть ли что-то лучше? Что-то более увлекательное, что позволит мне создавать вещи быстрее, с быстрыми циклами обратной связи и более разумным тестированием?

Именно тогда мобильные разработчики часто пробуют что-то новое, например, веб-разработку (часто на основе JavaScript, Ruby, Python и т. д.), и обнаруживают, что жизнь на другой стороне безумно весела и продуктивна.

Статья: https://apptractor.ru/info/articles/upadok-mobilnoy-razrabotki.html
Платформа: разработка
DominantColors позволяет легко найти доминирующие на изображении цвета. Библиотека возвращает палитру цветов, наиболее часто встречающихся в изображении. Есть несколько алгоритмов получения главных цветов, можно даже получить контрастный цвет для нанесения текста.

DominantColors на GitHub: https://github.com/DenDmitriev/DominantColors
Платформа: iOS
⭐️: 31
🔥1
Инженер по машинному обучению — новый путь обучения от Google

Google предлагает новый полный путь обучения по основам машинного обучения с использованием технологий Google Cloud. Этот путь обучения вы можете пройти самостоятельно и бесплатно. Однако он является довольно длительным, поскольку каждый отдельный курс (а их 15 во всем потоке) требует от 8 до 32 часов.

Новость: https://apptractor.ru/learn/inzhener-po-mashinnomu-obucheniyu-novyy-put-obucheniya-ot-google.html
Платформа: обучение
Apple выпустила библиотеку гомоморфного шифрования для Swift

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

В Apple используют гомоморфное шифрование в своей работе, поэтому они рады поделиться этой Swift-реализацией с сообществом, чтобы другие могли использовать ее и вносить свой вклад.

Одним из примеров использования этой реализации в iOS 18 является новая функция Live Caller ID Lookup, которая предоставляет услуги определения номера абонента и блокировки спама. Live Caller ID Lookup использует гомоморфное шифрование для отправки зашифрованного запроса на сервер, который может предоставить информацию о телефонном номере без того, чтобы сервер знал конкретный номер телефона, указанный в запросе.

Новость: https://apptractor.ru/info/news/apple-vypustila-biblioteku-gomomorfnogo-shifrovaniya-dlya-swift.html
Платформа: iOS
👍3
Вопросы доступности при использовании моего кастомного макета стопки карт

Пару недель назад я опубликовала статью «Кастомные макеты в Compose — стопка карточек с кошками». У макета есть некоторые проблемы с доступностью, и в этой статье я опишу то, как постаралась исправить некоторые из них. Есть несколько проблем, которые я не буду устранять из-за объема этой статьи; вместо этого я обсужу проблемы, которые они вызывают, и возможные решения.

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

Статья: https://apptractor.ru/info/articles/voprosy-dostupnosti-pri-ispolzovanii-kastomnogo-maketa-stopki-kart.html
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
ImageCropView - это библиотека Jetpack Compose, которая предоставляет простое и настраиваемое представление для обрезки изображений. Она поддерживает различные стили обрезки, такие как свободная форма, квадратная и круговая обрезка, что позволяет легко интегрировать функцию обрезки изображений в пользовательский интерфейс Compose.

ImageCropView на GitHub: https://github.com/rroohit/ImageCropView
Платформа: Android
⭐️: 67
👍1
Как создать плитку из изображений в SwiftUI

«Я справлюсь!» Думаю, именно такой была первая реакция большинства людей, увидевших название этой статьи. Хотя плитка изображений не является часто используемой функцией, большинство разработчиков могут легко освоить ее реализацию. Запрос в поисковой системе показывает, что почти все результаты указывают на одно и то же решение - использование модификатора resizable.

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

Статья: https://fatbobman.com/en/posts/how-to-tile-images-in-swiftui/
Платформа: iOS
Продвинутая шпаргалка по корутинам в Kotlin

Итак, вы давно работаете с корутинами Kotlin и уже знакомы с такими базовыми концепциями. Но по мере того как ваши проекты становятся все сложнее, вы можете обнаружить, что часто ищете сложные решения и обращаетесь за помощью к Google или любимому искусственному интеллекту.

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

Статья: https://medium.com/@galou.minisini/advanced-kotlin-coroutine-cheat-sheet-for-android-engineer-15e0d180fc1f
Платформа: Android
Конвейеры мобильного развертывания за $0

Непрерывная интеграция (Continuous Integration, CI) - один из главных столпов продвинутых разработчиков.

Если вы живете и дышите большими проектами, то возможность пройти горнило настройки эффективных конвейеров сборки, тестирования и развертывания - обычное дело, но что делать, если вы работаете над инди-проектом?

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

Статья: https://apptractor.ru/info/articles/konveyery-mobilnogo-razvertyvaniya-za-0.html
Платформа: iOS/разработка
SafeDI - безопасная инъекция зависимостей во время компиляции для Swift-проектов. SafeDI создан для инженеров, которые хотят получить безопасность и простоту ручной инъекции зависимостей без накладных расходов на шаблонный код. SafeDI использует макросы Swift и плагины Swift Package Manager для чтения вашего кода и создания дерева зависимостей, которое проверяется во время компиляции. Зависимости могут быть либо инстанцированы SafeDI, либо направлены в дерево зависимостей.

SafeDI на GitHub: https://github.com/dfed/SafeDI
Платформа: iOS
⭐️: 61
Видео и подкасты за неделю @AppFiles

(iOS Ru) Почему Metal перестал быть страшным
(iOS Ru) Локализация iOS-приложения за 1$ в 2024 году
(iOS En) SwiftUI Floating Bottom Sheets
(iOS En) How to Refactor SwiftUI into Reusable Views
(iOS En) SwiftUI App Intro Animation's - Shape Morphing Effect
(iOS En) Xcode File Headers and Macros
(iOS En) How to Use TextField Keyboard Focus in SwiftUI with FocusState
(And Ru) Нужно ли учить Java для Android-разработки в 2024
(And En) Compose Tips for Delightful UI
(And En) Compose Migration Side Effects - What Can Go Wrong?
(And En) Building Libraries for the Next 25 Years
(And En) Turbocharge Your Data: Harnessing Kotlin and gRPC to Handle Real-Time Data From Connected Cars
(And En) Grow with the Flow: How Kotlin Flow Became a Game Changer for our Business
(And En) Coroutines: Concurrency in Kotlin
(Crs Ru) KMP на ОС Аврора: проблемы и пути их решения
(Crs En) The Kotlinx DateTime API for Compose Multiplatform
(Crs En) How to Implement Drag & Drop in Jetpack Compose
(Crs En) Hitchhiker’s Guide to Kotlin Multiplatform Libraries
(Dev Ru) Алгоритмическая сессия на собеседовании + Все собеседования
(Dev Ru) Автоматическая генерация верстки под Server-driven UI из макетов Figma
(Dev Ru) Учимся договариваться о деньгах — Офферы, Зарплаты, Повышение
(Dev Ru) Дизайн системы — это слишком модно, возможно они вам не нужны
(Dev En) How to get a FAANG Dev Job in your 40s

Что вы посмотрели за неделю?
#ios #android #mobile #video
Selenoid без симуляции: настройка, отладка и автоматизация на физическом Android-устройстве

Решение трудностей — развернуть Selenoid без Докера на сервере для работы с реальными устройствами, а также обеспечить полную автоматизацию при создании конфигураций для подключаемых Android девайсов через USB-порт.

Об этой и других задачах развёртывания инфраструктуры для запуска тестов на реальных Android-устройствах на Linux и Mac расскажу в этой статье. А также продемонстрирую реализованные нами кастомные скрипты для генерации конфигурационных файлов для подключенных устройств.

Статья: https://habr.com/ru/companies/alfa/articles/833136/
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Game Engine - простой игровой движок для 2D-игр, созданный с помощью Jetpack Compose. Эта библиотека обеспечивает базовую функциональность игрового движка, включая управление игровыми объектами, обнаружение столкновений и рендеринг. Она использует Animatable и Canvas API. Однако она (пока) подходит только для небольших игр.

Compose Game Engine на GitHub: https://github.com/vgupta98/compose-game
Платформа: Android
⭐️: 14
👍3
Как iOS-команда Medium эффективно работает с legacy кодом

Кодовой базе iOS-приложения Medium уже более 10 лет, и у нас все еще есть код 2013 и 2014 годов, который используется до сих пор.

Здесь вы можете подумать, почему, черт возьми, они никогда не переписывали его полностью?

На самом деле в iOS-команде Medium мы носим это как почетный знак, и сегодня я хочу объяснить, почему рассказываю о том, как эффективно работать с устаревшим кодом, и одновременно не мешать ему (слишком сильно).

Статья: https://apptractor.ru/info/articles/kak-ios-komanda-medium-effektivno-rabotaet-s-legacy-kodom.html
Платформа: iOS
WhatsApp Clone Compose - приложение-клон WhatsApp, созданное с помощью Stream Chat SDK for Compose для реализации систем обмена сообщениями и Stream Video SDK for Compose для видеозвонков.

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

• Реализация всего пользовательского интерфейса с помощью Jetpack Compose.
• Реализация компонентов архитектуры Android с помощью библиотек Jetpack, таких как Hilt и AppStartup.
• Выполнение фоновых задач с помощью корутин Kotlin.
• Интеграция систем чата с Stream Chat SDK для обработки событий в реальном времени.
• Интеграция систем видеозвонков с Stream Video SDK с использованием WebRTC под капотом.

Примечание: Stream SDK бесплатны для простого использования, но если вы захотите использовать их в реальном приложении, то за них придется много платить.

WhatsApp Clone Compose на GitHub: https://github.com/GetStream/whatsApp-clone-compose
Платформа: Android
⭐️: 1.2K
Реализация Server-Driven UI в Android

Управляемый сервером пользовательский интерфейс (Server-driven UI) — это сценарий, в котором клиент получает информацию от API о том, какие компоненты и контент следует показать. В этом могут использоваться все три основные платформы — iOS, Android и веб. Я считаю, что подобная разработка улучшает отзывчивость и управляемость нативных приложений. Сегодня мы поговорим о том, как этого добиться.

Статья: https://apptractor.ru/info/articles/realizatsiya-server-driven-ui-v-android.html
Платформа: Android
iOS Clean Architecture демонстрирует реализацию чистой архитектуры, MVVM и Combine в приложении на Swift. Архитектура разделяет проблемы на отдельные слои, делая кодовую базу более удобной для сопровождения, тестирования и масштабирования. Следуя этим принципам, вы сможете создавать надежные приложения, которые легко расширять и адаптировать к меняющимся требованиям.

iOS Clean Architecture на GitHub: https://github.com/tuan188/CleanArchitecture
Платформа
: iOS
⭐️: 269