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

В этой статье приведены десять распространенных причин возникновения утечек памяти в Android c примерами на языке Kotlin и способы их решения.

1. Нестатические внутренние классы
2. Handler и Runnable
3. Анонимные слушатели
4. Статические представления или контексты
5. Неправильное наблюдение за LiveData
6. Синглтон с контекстом
7. Bitmap
8. WebView
9. Широковещательные приемники
10. Слушатели событий в адаптерах RecyclerView

Статья: https://apptractor.ru/info/articles/top-10-prichin-utechki-pamyati-v-android.html
Платформа: Android
👍2
foSho - кастомная type safe навигация для Compose Navigation Component. Эта KSP-библиотека позволяет генерировать безопасный для типов код с минимальными усилиями и предоставляет готовые решения для объединения всех компонентов и масштабирования приложения.

foSho на GitHub: https://github.com/FunkyMuse/foSho
Платформа: Android
⭐️: 7
👍1
Kotlin под капотом: inline функции

Многие разработчики не до конца понимают суть inline функций. Не понимают в чем профит от использования inline функций. Зачем нужен crossinline и как работает reified. Отчасти, источник популярных заблуждений про inline функции в том, что раньше на сайте kotlinlang.org было дано не совсем верное описание. Мне захотелось это исправить и наглядно показать как работают inline функции и какой профит мы получаем от их использования.

Статья: https://habr.com/ru/articles/775120/
Платформа: Android
👍2
Моя малышка любит самолеты — и я сделал для нее радар

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

Статья: https://apptractor.ru/info/articles/moya-malyshka-lyubit-samolety-i-ya-sdelal-dlya-nee-radar.html
Платформа: iOS
GridView.gif
19.8 MB
GridView - это библиотека для SwiftUI, которая упрощает создание сеток контента. GridView улучшает качество кода - просто передайте данные, а библиотека позаботится обо всем остальном.

GridView на GitHub: https://github.com/Mijick/GridView
Платформа
: iOS
⭐️: 9
Обзор актуальных инструментов шифрования в Android

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

Статья: https://habr.com/ru/companies/vk/articles/776728/
Платформа: Android
2
FlexibleBottomSheet - это расширенный нижний экран для Jetpack Compose, который позволяет реализовать сегментированный размер и немодальный тип, подобно Google Maps. Он также предлагает дополнительные удобства, включая указание размеров листа, отслеживание его состояния и другие настройки.

FlexibleBottomSheet на GitHub: https://github.com/skydoves/FlexibleBottomSheet
Платформа: Android
⭐️: 194
👍1
DebugMenu и визуальная иерархия элементов интерфейса

Среди технических задач мое внимание привлекла задача по визуализации иерархии элементов интерфейса. Она казалась мне идеальной: помимо очевидной пользы для разработчиков, которым не всегда удобно работать с View Hierarchy в Xcode (в некоторых случаях, изображения у вью отсутствуют), и невозможно при сборках через AppCenter или TestFlight, задача обещала интересные вызовы — возможность поработать с SceneKit. К тому же, наличие открытых библиотек, решающих подобные задачи, предполагало легкость интеграции в наш проект.

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

Статья: https://habr.com/ru/companies/alfa/articles/775186/
Платформа: iOS
Вопросы с собеседований: что такое контент-провайдер (Content Provider) в Android

Контент-провайдер (Content Provider) в Android — это компонент, который предоставляет доступ к данным другим приложениям. Он представляет данные в виде таблицы или набора таблиц, похожих на таблицы в реляционной базе данных. Контент-провайдеры используются для совместного использования данных между приложениями, а также для предоставления доступа к данным, которые хранятся в приложении, другим приложениям.

Сниппет: https://apptractor.ru/info/techhype/voprosy-s-sobesedovaniy-chto-takoe-kontent-provayder-content-provider-v-android.html
Платформа: Android
Другие вопросы: список
4
Элегантная обработка событий в Kotlin — рефакторинг в 7 шагов

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

Шаг 1: Старт
Шаг 2: HashMap и полезная нагрузка для максимальной производительности
Шаг 3: Добавление синтаксического сахара с помощью Infix функций
Шаг 4: Использование Inline функций для элегантности
Шаг 5: Повышение register до функции расширения
Шаг 6: Устранение lateinit переменных с помощью делегированных свойств
Шаг 7: Несколько обработчиков событий для принципа единой ответственности

Статья: https://apptractor.ru/info/articles/elegantnaya-obrabotka-sobytiy-v-kotlin-refaktoring-v-7-shagov.html
Платформа: Android/Kotlin
👍3
Pow - восхитительные анимационные эффекты SwiftUI для вашего приложения от Emerge Tools. В Pow есть разные переходы и эффекты для изменений, которые срабатывают при каждом обновлении значения, подпрыгивания - частицы, тряска, сияние, вращение и т.п.

Pow на GitHub: https://github.com/EmergeTools/Pow
Платформа: iOS
⭐️: 1.7K
Вопросы с собеседований: в чем разница Weak и Unowned в Swift

В Swift weak и unowned - это два различных типа ссылок, которые позволяют избежать циклических зависимостей между объектами и предотвратить утечки памяти.

Сниппет: https://apptractor.ru/info/techhype/voprosy-s-sobesedovaniy-v-chem-raznitsa-weak-i-unowned-v-swift.html
Платформа: iOS
Другие вопросы: список
FreeToGame - это KMP-проект для Android, iOS, Desktop и Wear OS с общим пользовательским интерфейсом на Compose UI. Проект берет данные из FreeToGame API, поддерживает динамические цвета для Android, а также светлые и темные темы для всех платформ.

FreeToGame на GitHub: https://github.com/Felix-Kariuki/FreeToGame
Платформа: кроссплатформа
⭐️: 17
👍1
IMSwitch - это переключатели для SwiftUI с изображения. Они обеспечивают визуально привлекательный и настраиваемый способ переключения между двумя опциями. Есть настройка цветов, анимаций, поддержка RTL. В целом - простой в использовании, настраиваемый UISwitch, содержащий изображения.

IMSwitch на GitHub: https://github.com/mohamed-arradi/IMSwitch
Платформа: iOS
⭐️: 7
Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии

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

Статья: https://habr.com/ru/companies/vk/articles/777874/
Платформа: Android
Использование on-demand ресурсов для безопасного хранения ключей API в iOS-приложениях

Следует помнить, что извлечь строки из файлов IPA довольно просто, и поэтому, если мы храним API-ключи в коде, кто-то другой может получить к ним доступ. Это, конечно, большая проблема для безопасности. Один из способов избежать этого - использовать ресурсы Apple загружаемые по требованию с включенной предварительной загрузкой. Это означает, что как только мы установим приложение, iOS загрузит дополнительные ресурсы отдельно, и эти ресурсы могут содержать наши API-ключи. Такое разделение позволяет не помещать API-ключи в IPA-файл.

Статья: https://apptractor.ru/info/articles/ispolzovanie-on-demand-resursov-dlya-bezopasnogo-hraneniya-klyuchey-api-v-ios-prilozheniyah.html
Платформа: iOS
1
This media is not supported in your browser
VIEW IN TELEGRAM
CountryCP - библиотека для выбора страны и телефонного кода для Jetpack Compose.

CountryCP на GitHub: https://github.com/tfaki/CountryCP
Платформа: Android
⭐️: 26
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация параллакс-карусели из SwiftUI в Jetpack Compose

В рамках повседневной деятельности я часто изучаю последние разработки на таких платформах, как X и Medium. Однажды утром, пролистывая X, наткнулся на GitHub-репозиторий, созданный KavSoft и сразу же привлекший мое внимание. Этот проект, размещенный на KavSoft-Tutorials-iOS, представлял собой потрясающую параллакс-карусель. Ее визуальная привлекательность и удобство использования просто завораживали. В тот момент я решил, что должен воссоздать эту магию в Jetpack Compose для Android. Данная статья служит своеобразным мостом между этими двумя платформами, показывая, как преобразовать параллакс-карусель SwiftUI в ее эквивалент в Jetpack Compose.

Статья: https://apptractor.ru/SwiftUI-Jetpack-Compose
Платформа: Android
ColorfulX - это реализация многоцветных градиентов с помощью Metal. Поддерживаются платформы UIKit, SwiftUI и AppKit.

ColorfulX на GitHub: https://github.com/Lakr233/ColorfulX?
Платформа: iOS
⭐️: 49
1