AppFiles - Mobile Development
رفتن به کانال در Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
نمایش بیشتر2 170
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+47 روز
+630 روز
آرشیو پست ها
Реализация параллакс-карусели из SwiftUI в Jetpack Compose
В рамках повседневной деятельности я часто изучаю последние разработки на таких платформах, как X и Medium. Однажды утром, пролистывая X, наткнулся на GitHub-репозиторий, созданный KavSoft и сразу же привлекший мое внимание. Этот проект, размещенный на KavSoft-Tutorials-iOS, представлял собой потрясающую параллакс-карусель. Ее визуальная привлекательность и удобство использования просто завораживали. В тот момент я решил, что должен воссоздать эту магию в Jetpack Compose для Android. Данная статья служит своеобразным мостом между этими двумя платформами, показывая, как преобразовать параллакс-карусель SwiftUI в ее эквивалент в Jetpack Compose.
Статья: https://apptractor.ru/SwiftUI-Jetpack-Compose
Платформа: Android
CountryCP - библиотека для выбора страны и телефонного кода для Jetpack Compose.
CountryCP на GitHub: https://github.com/tfaki/CountryCP
Платформа: Android
⭐️: 26
Использование 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
Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
В этой статье показано, как приготовить систему «холодных» конфигов для большого Android-приложения, построенного на многомодульной архитектуре. Под «холодными» конфигами здесь подразумеваются настройки приложения, которые нужно делать локально на девайсе без необходимости загружать их из сети.
Статья: https://habr.com/ru/companies/vk/articles/777874/
Платформа: Android
IMSwitch - это переключатели для SwiftUI с изображения. Они обеспечивают визуально привлекательный и настраиваемый способ переключения между двумя опциями. Есть настройка цветов, анимаций, поддержка RTL. В целом - простой в использовании, настраиваемый UISwitch, содержащий изображения.
IMSwitch на GitHub: https://github.com/mohamed-arradi/IMSwitch
Платформа: iOS
⭐️: 7
FreeToGame - это KMP-проект для Android, iOS, Desktop и Wear OS с общим пользовательским интерфейсом на Compose UI. Проект берет данные из FreeToGame API, поддерживает динамические цвета для Android, а также светлые и темные темы для всех платформ.
FreeToGame на GitHub: https://github.com/Felix-Kariuki/FreeToGame
Платформа: кроссплатформа
⭐️: 17
Вопросы с собеседований: в чем разница Weak и Unowned в Swift
В Swift
weak и unowned - это два различных типа ссылок, которые позволяют избежать циклических зависимостей между объектами и предотвратить утечки памяти.
Сниппет: https://apptractor.ru/info/techhype/voprosy-s-sobesedovaniy-v-chem-raznitsa-weak-i-unowned-v-swift.html
Платформа: iOS
Другие вопросы: списокВидео и подкасты за неделю:
•
(iOS En) Swift Data One to Many Relationships
• (iOS En) SwiftData Starter Project
• (iOS En) SwiftUI Shine Effect – Custom View Modifier
• (iOS En) SwiftUI: Infinite Looping ScrollView - iOS 17
• (iOS En) SwiftLeeds 2023 Videos
• (And Ru) Разработка UI на Jetpack Compose
• (And Ru) Треш-обзор Geekbrains. Полный разбор курса по Android
• (And En) What's new in Android Studio Hedgehog
• (And En) Now in Android: 96 - New APIs for adaptive layouts, Google Play updates, and more!
• (And En) compileSdk VS. targetSdk VS. minSdk - THIS Is the Difference
• (And En) Full Guide to Shared Element Transition Animation in Android with Jetpack Compose
• (Crs En) Shared Navigation on Kotlin Multiplatform with Decompose (KMP)
• (Crs En) Coil Goes Multiplatform with Colin White
• (Crs En) Step-by-Step Guide: Creating a Peer-to-Peer Tic Tac Toe Game in Flutter
• (Dev Ru) Автотесты в AvitoTech
• (Dev Ru) Секреты собеседований с Алеексеем Быковым (Reddit)
• (Dsg Ru) Podlodka #343: что такое Motion Design?
Поставьте 👍 и поделитесь подборкой!Pow - восхитительные анимационные эффекты SwiftUI для вашего приложения от Emerge Tools. В Pow есть разные переходы и эффекты для изменений, которые срабатывают при каждом обновлении значения, подпрыгивания - частицы, тряска, сияние, вращение и т.п.
Pow на GitHub: https://github.com/EmergeTools/Pow
Платформа: iOS
⭐️: 1.7K
Элегантная обработка событий в 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
Вопросы с собеседований: что такое контент-провайдер (Content Provider) в Android
Контент-провайдер (Content Provider) в Android — это компонент, который предоставляет доступ к данным другим приложениям. Он представляет данные в виде таблицы или набора таблиц, похожих на таблицы в реляционной базе данных. Контент-провайдеры используются для совместного использования данных между приложениями, а также для предоставления доступа к данным, которые хранятся в приложении, другим приложениям.
Сниппет: https://apptractor.ru/info/techhype/voprosy-s-sobesedovaniy-chto-takoe-kontent-provayder-content-provider-v-android.html
Платформа: Android
Другие вопросы: список
DebugMenu и визуальная иерархия элементов интерфейса
Среди технических задач мое внимание привлекла задача по визуализации иерархии элементов интерфейса. Она казалась мне идеальной: помимо очевидной пользы для разработчиков, которым не всегда удобно работать с View Hierarchy в Xcode (в некоторых случаях, изображения у вью отсутствуют), и невозможно при сборках через AppCenter или TestFlight, задача обещала интересные вызовы — возможность поработать с SceneKit. К тому же, наличие открытых библиотек, решающих подобные задачи, предполагало легкость интеграции в наш проект.
Однако, как часто бывает в мире разработки, первоначальные ожидания разошлись с реальностью. В этой статье я хочу поделиться опытом, который получил, разрабатывая и внедряя эту фичу, рассказать о технических подробностях и о том, почему использование отрытых библиотек может оказаться не самым простым делом.
Статья: https://habr.com/ru/companies/alfa/articles/775186/
Платформа: iOS
FlexibleBottomSheet - это расширенный нижний экран для Jetpack Compose, который позволяет реализовать сегментированный размер и немодальный тип, подобно Google Maps. Он также предлагает дополнительные удобства, включая указание размеров листа, отслеживание его состояния и другие настройки.
FlexibleBottomSheet на GitHub: https://github.com/skydoves/FlexibleBottomSheet
Платформа: Android
⭐️: 194
Обзор актуальных инструментов шифрования в Android
Секретные данные требуют особого внимания при хранении и передаче. Инструменты для шифрования могут варьироваться по степени сложности, надёжности и производительности. В этом обзоре мы рассмотрим несколько таких инструментов, опишем их эффективность и расскажем о распространённых ошибках при их использовании.
Статья: https://habr.com/ru/companies/vk/articles/776728/
Платформа: Android
GridView - это библиотека для SwiftUI, которая упрощает создание сеток контента. GridView улучшает качество кода - просто передайте данные, а библиотека позаботится обо всем остальном.
GridView на GitHub: https://github.com/Mijick/GridView
Платформа: iOS
⭐️: 9
Моя малышка любит самолеты — и я сделал для нее радар
Это история о вдохновении, о формировании концепта приложения и о быстрой обратной связи с самым взыскательным из потребителей — двухлетней девочкой.
Статья: https://apptractor.ru/info/articles/moya-malyshka-lyubit-samolety-i-ya-sdelal-dlya-nee-radar.html
Платформа: iOS
Kotlin под капотом: inline функции
Многие разработчики не до конца понимают суть inline функций. Не понимают в чем профит от использования inline функций. Зачем нужен crossinline и как работает reified. Отчасти, источник популярных заблуждений про inline функции в том, что раньше на сайте kotlinlang.org было дано не совсем верное описание. Мне захотелось это исправить и наглядно показать как работают inline функции и какой профит мы получаем от их использования.
Статья: https://habr.com/ru/articles/775120/
Платформа: Android
foSho - кастомная type safe навигация для Compose Navigation Component. Эта KSP-библиотека позволяет генерировать безопасный для типов код с минимальными усилиями и предоставляет готовые решения для объединения всех компонентов и масштабирования приложения.
foSho на GitHub: https://github.com/FunkyMuse/foSho
Платформа: Android
⭐️: 7
Топ-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
App Clip и тысяча проблем
Если вы решите сделать App Clip, то планируйте, что вам придется:
• Реализовать App Clip, обязательно интегрировав функционал из основного приложения, дополнительные фичи не подойдут
• Добавить Advanced Experiences в App Store Connect
• Создать AASA файла на сайте, чтобы связать ваше приложение со ссылкой
• Протестировать через Local Advanced Experiences на телефоне до релиза
• Пройти ревью
• Подождать индексацию со стороны Apple — в нашем случае это заняло целых 2 недели, не отчаиваться!
Статья: https://habr.com/ru/companies/dododev/articles/775128/
Платформа: iOS
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
