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

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

Статья: https://apptractor.ru/info/articles/shablony-korutin-v-android-i-kak-oni-rabotayut.html
Платформа: Android
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
3D Pokemon Card - небольшой забавный проект, демонстрирующий реализацию эффекта параллакса в SwiftUI. Фичи - используется анимация SwiftUI для создания эффекта параллакса на карточке, код организован по модульному принципу с возможностью многократного использования, что позволяет легко интегрировать эффект параллакса в другие проекты SwiftUI, можно легко настроить карточку покемона, изменив содержимое и изображение.

3D Pokemon Card на GItHub: https://github.com/helvetiica/PokemonCard
Платформа: iOS
⭐️: 64
1
This media is not supported in your browser
VIEW IN TELEGRAM
Интегрируем интерактивные 2D/3D-объекты в iOS-приложение

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

Статья: https://habr.com/ru/companies/simbirsoft/articles/790294/
Платформа: iOS
👍2
Kotlin изнутри: как работают inline-функции

Многие разработчики не понимают, в чем польза inline-функций, зачем нужен crossinline и как работает reified. Причина распространенных заблуждений насчет inline-функций отчасти заключается в неточном их описании, ранее опубликованном на сайте kotlinlang.org. Хочу развенчать эти заблуждения и наглядно показать, как работают inline-функции (встраиваемые) и в чем преимущество их использования.

Статья: https://apptractor.ru/kotlin-inline-medium
Платформа: Android/Kotlin
👍21
Повышение производительности модульных тестов в MEGA Android

В этом посте рассказывается о наших усилиях по аудиту и изобретению «легкой» тестовой конфигурации — конфигурации с отключением ненужных задач Gradle. Это приводит к ускорению времени компиляции юнит-тестов как на локальном компьютере, так и в CI.

Статья: https://apptractor.ru/info/articles/povyshenie-proizvoditelnosti-modulnyh-testov-v-mega-android.html
Платформа: Android
2
Neo Store - современный и многофункциональный клиент F-Droid для всех. Его основные особенности - UX, ориентированный на расширение возможностей пользователей, быстрая синхронизация репозиториев, встроенные репозитории, легкое открытие новых приложений, минимализм с принципами KISS.

Neo Store на GitHub: https://github.com/NeoApplications/Neo-Store
Платформа: Android
⭐️: 2.3K
Новая подборка видео и подкастов за неделю:

(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
WhisperKit - это пакет Swift, который интегрирует популярную модель распознавания речи Whisper от OpenAI с фреймворком CoreML от Apple для эффективной локальной работы на устройствах Apple.

WhisperKit на GitHub: https://github.com/argmaxinc/WhisperKit
Платформа: iOS
⭐️: 777
👍3
Разбираемся с MavenGate, новой атакой на цепочку поставок для Java и Android-приложений

Я хотел бы разобрать в этой статье новый тип атаки на цепочку поставок под названием MavenGate. А что в ней, собственно, такого? Ну хотя бы то, что ей подвержены более 18% всех Java-библиотек, соответственно, для Android это применимо в полной мере. Совершить эту атаку безумно просто. Суть ее основана на логике работы сборщиков Java/Android-проектов и разрозненности репозиториев, которые хранят эти библиотеки.

Статья: https://habr.com/ru/companies/swordfish_security/articles/790544/
Платформа: Android
DVDB (Dart Vector DB) - кроссплатформенная векторная база данных на основе Dart, которая может быть использована в приложениях на базе Flutter. Основные фичи: конфиденциальность превыше всего - данные пользователя никогда не покидают его устройство и не хранятся на сторонних сервисах, DVDB работает локально на устройстве - нулевая задержка и никаких хлопот с обслуживанием серверов, поддержка эмбеддингов OpenAI и пользовательских эмбеддингов, поддержка нескольких платформ - независимо от того, являетесь ли вы Android или iOS командой, DVDB работает на обеих платформах, делая разработку приложений легким делом.

DVDB на GitHub: https://github.com/FastCodeAI/DVDB
Платформа: кроссплатформа
⭐️: 16
Эксперимент: насколько сложно обмануть на технических собеседованиях с помощью ChatGPT?

ChatGPT произвел революцию в работе, какой мы ее знаем. Его полезность трудно переоценить: от помощи малому бизнесу в автоматизации административных задач до создания целых React-компонентов для веб-разработчиков.

На сайте Interviewing.io мы много думали о том, как ChatGPT изменит проведение технических собеседований. Один из главных вопросов — позволит ли ChatGPT легко обманывать на собеседованиях? Чтобы ответить на этот вопрос, мы привлекли нескольких наших профессиональных интервьюеров и пользователей к участию в эксперименте с ИИ-обманом! В этой статье мы расскажем обо всем, что мы обнаружили, и объясним, что это значит для вас. В качестве небольшого предисловия просто знайте: компаниям необходимо немедленно изменить типы вопросов, которые они задают на собеседовании.

Статья: https://apptractor.ru/info/articles/eksperiment-naskolko-slozhno-obmanut-na-tehnicheskih-sobesedovaniyah-s-pomoschyu-chatgpt.html
Платформа: собеседования
Apk.sh - это Bash-скрипт, который облегчает реверс-инжиниринг Android-приложений, автоматизируя некоторые повторяющиеся задачи, такие как извлечение, декодирование, восстановление и исправление APK. Он в основном использует apktool для дизассемблирования, декодирования и восстановления ресурсов и немного bash для автоматизации процесса инъекции гаджетов frida.

Фичи: патчинг APK для загрузки frida-gadget.so при запуске, поддержка пакетов приложений/разделенных APK, разборка ресурсов до почти оригинального вида с помощью apktool, восстановление декодированных ресурсов обратно в бинарный APK/JAR с помощью apktool, подпись apk с помощью apksigner, поддержка нескольких архитектур (arm, arm64, x86, x86_64), не требуется рутованное Android-устройство.

Apk.Sh на GitHub: https://github.com/ax/apk.sh
Платформа: Android
⭐️: 2.9K
Кто ты, SwiftData

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

Статья: https://habr.com/ru/companies/tinkoff/articles/791692/
Платформа: iOS
🔥2
Glur - библиотека SwiftUI, использующая Metal для отображения эффективных прогрессивных размытий, подобных тем, что использует сама Apple.

В этом проекте используется новый упрощенный Shader API для SwiftUI. Сначала автор написал шейдер Metal, который эффективно создает гауссово размытие для представления с правильным распределением гауссовых весов. Затем модифицировал его так, чтобы он изменял радиус размытия по вертикальной или горизонтальной оси, задавая значения смещения и интерполяции. Учитывая, что шейдер применяется через собственный API для SwiftUI, он ограничен этим API. Это означает, что он может применяться только к чистым представлениям SwiftUI, исключая представления, поддерживающие UIKit, такие как ScrollView.

Glur на GItHub: https://github.com/joogps/Glur
Платформа: iOS
⭐️: 820
1
This media is not supported in your browser
VIEW IN TELEGRAM
Как с помощью ChatGPT реализовать раскраску во Flutter

Недавно появилась задача - реализовать фичу с раскраской картинок. Сегодня мы рассмотрим, как реализовать такую раскраску для растровых изображений с помощью алгоритма flood fill. Посмотрим, что уже есть на pub.dev, заглянем немного в теорию этого алгоритма, реализуем его на dart с помощью ChatGPT и применим во Flutter приложении.

Статья: https://habr.com/ru/articles/791886/
Платформа: кроссплатформа
Работаем с размером шрифта для обеспечения доступности

Если пользователь увеличит размер шрифта, это может вызвать проблемы, например, с переполнением или обрезанием текста. Мы рассмотрим некоторые из этих проблем в этой статье.

Статья: https://apptractor.ru/info/articles/rabotaem-s-razmerom-shrifta-dlya-obespecheniya-dostupnosti.html
Платформа: Android
Записываем видео App Preview в симуляторе Xcode

Создание качественного видеоролика для предварительного просмотра приложения может занять много времени, тем более что у Apple есть несколько спецификаций, которым должно соответствовать ваше видео. Например, его продолжительность должна составлять от 15 до 30 секунд, а в видео должен присутствовать звук, даже если он выключен. К счастью, есть простой способ создать правильный ролик.

Статья: https://apptractor.ru/info/articles/zapisyvaem-video-app-preview-v-simulyatore-xcode.html
Платформа: iOS
Podcaster - минималистичное приложение для прослушивания подкастов, демонстрирующее использование Jetpack Media3 в реальном offline-first приложении. Кроме Media3, в приложении есть доступ к миллионам подкастов, подписка на подкасты по URL-адресу RSS-ленты, изменяющаяся скорость воспроизведения, загрузка для воспроизведения в автономном режиме, автоматическое фоновое обновление/синхронизация подписок, продолжение воспроизведения эпизодов с того места, на котором вы остановились, динамические темы Material3 и светлые/темные темы.

Podcaster на GitHub: https://github.com/mr3y-the-programmer/Podcaster
Платформа: Android
⭐️: 7
🔥1
На помойку? Никак нет! Пишем нативные приложения для дешевых китайских телефонов

Если сейчас приехать в пункт приема металлолома, то можно обнаружить просто огромные кучи различных телефонов и прочих электронных «отходов», которые стоят под открытым небом и ждут, когда придёт их черёд окончательного разложения. Однако при ближайшем рассмотрении выясняется, что многие девайсы оказываются полностью рабочими даже после недельного лежания под палящим солнцем и проливными дождями, а сдали их в чермет по причинам «не нужен, надоел, купил новый» и т. п. Я не считаю это правильным, ведь даже в простые кнопочные звонилки имеется возможность вдохнуть новую жизнь, если знать один интересный, но малоизвестный факт: для них можно писать нативные приложения на C и использовать железо телефона в своих целях. А это, на минуточку, как минимум: дисплей с подсветкой, вибромотор, динамик, клавиатура и GSM-радиомодуль с возможностью выхода в сеть. Сегодня мы с вами: узнаем, на каких аппаратных платформах работают китайские телефоны, какие существуют программные платформы и где взять для них SDK, а в практической части мы напишем 2D-игру с нуля, которая будет работать на многих китайских кнопочниках.

Статья: https://habr.com/ru/companies/timeweb/articles/791072/
Платформа: разработка
👍2