AppFiles - Mobile Development
2.01K subscribers
2.6K photos
33 videos
8 files
3.49K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Вопросы с собеседований: что такое контент-провайдер (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
Tusky - это красивый Android-клиент для Mastodon. Mastodon - это федеративная социальная сеть ActivityPub. Это означает, что ни один субъект не контролирует всю сеть, а, подобно электронной почте, волонтеры и организации управляют своими собственными независимыми серверами, пользователи которых могут беспрепятственно взаимодействовать друг с другом. Сам клиент это материальный дизайн, реализация большинства API Mastodon, поддержка нескольких аккаунтов, темная, светлая и черная темы с возможностью автопереключения в зависимости от времени суток, выбор между различными стилями эмодзи, оптимизация для всех размеров экрана, полностью открытый исходный код - никаких бесплатных зависимостей, таких как сервисы Google.

Tusky на GitHub: https://github.com/tuskyapp/Tusky
Платформа: Android
⭐️: 2.3K
🔥3
Разработчики будут бесплатно получать 25 часов Xcode Cloud в месяц

Apple сообщает, что с января 2024 года все участники программы для разработчиков Apple получат 25 вычислительных часов в месяц в Xcode Cloud в качестве стандарта без дополнительной оплаты

Новость: https://apptractor.ru/info/news/razrabotchiki-budut-besplatno-poluchat-25-chasov-xcode-cloud-v-mesyats.html
Платформа: iOS
Старый, но все еще полезный репозиторий с 30 учебными проектами для iOS-разработчика. В нем рассматриваются вопросы использования UIKit, UIScrollView, UITableView, UICollectionView, CAAnimations, Local Notification, MapKit, Contact и Core ML, Core Data, открытых фреймворков , TDD, XCTest и многого другого.

Swift 30 Projects на GitHub: https://github.com/soapyigu/Swift-30-Projects
Платформа: iOS
⭐️: 7.8K
Откройте для себя Journaling Suggestions API

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

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

Видео: https://developer.apple.com/videos/play/tech-talks/111384/
Платформа: iOS
Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии

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

Статья: https://habr.com/ru/companies/vk/articles/777874/
Платформа: Android
Compose Preference - реализация экрана настроек на Jetpack Compose Material 3. Есть множество категорий (чекбоксы, списки, множественный выбор и т.п.), темы.

Compose Preference на GitHub: https://github.com/zhanghai/ComposePreference
Платформа: Android
⭐️: 38
👍1
Как я использую мутационное тестирование для поддержки хорошего покрытия тестами

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

Статья: https://apptractor.ru/info/articles/kak-ya-ispolzuyu-mutatsionnoe-testirovanie-dlya-podderzhki-horoshego-pokrytiya-testami.html
Платформа: тестирование
1