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

1. Kotlin Fill Class
2. ADB Idea
3. Android Drawable Preview
4. Key Promotex X
5. IdeaVim

Статья: https://apptractor.ru/info/articles/top-5-plaginov-dlya-android-studio.html
Платформа: Android
BookPlayer - iOS-плеер для аудиокниг. Умеет использовать AirDrop, Файлы, Zip-архивы, создавать плейлисты, делить книги на главы, менять скорость воспроизведения, поддерживает VoiceOver и пр.

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

(iOS Ru) 10 вопросов с собеседования iOS-разработчика (+ все собеседования)
(iOS Ru) Прощаемся с XCAssets. Экспорт картинок из Figma на CDN, а оттуда — в приложение
(iOS Ru) SwiftPM — фреймворки вместо кофе
(iOS En) Custom Button Styles like a PRO! (SwiftUI)
(iOS En) Facebook* Messenger Gradient Effect - SwiftUI
(iOS En) Custom SwiftUI Countdown Timer
(iOS En) SwiftUI: Drop Down Picker
(iOS En) Exploring the Swift Algorithms Package
(And Ru) Android-разработка в 2024 году
(And Ru) Вынос сборки Android-проектов с машины разработчика на сервер
(And En) Micro optimizations - Android Developers Backstage
(And En) Edge-to-edge and insets | Compose Tips
(And En) Exploring Exposed: A Kotlin Solution to Database Access
(And En) Debugging the Future: Exploring Coroutine Debugger Tools
(Crs En) How to Generate Executables in KMP (apk, iab, msi, dmg, deb)
(Crs En) Local Preferences in Kotlin Multiplatform With DataStore
(Crs En) Enabling Kotlin Multiplatform Success: The Android Jetpack Journey
(Crs En) Making the Big Kotlin Multiplatform Decision
(Dev Ru) Mobile Performance: расшифровка метрик
(Dev Ru) Видео Yandex BDUI Conf 2024
(Dev En) Multithreading for Beginners

Что вы посмотрели за неделю?
#ios #android #mobile #video
Next Player - это нативный видеоплеер для Android, написанный на Kotlin. Он предоставляет пользователям множество функций и простой и удобный интерфейс для воспроизведения видео на их Android-устройствах.

Next Player на GitHub: https://github.com/anilbeesetti/nextplayer
Платформа: Android
⭐️: 1.3K
Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024

А знаете ли вы, какой Android-смартфон был первым в мире и как он выглядел? А я теперь не просто знаю, но и могу физически пощупать настоящую легенду своих лет — HTC Dream, также известный как T-Mobile G1. Однако G1 был мне интересен не только как коллекционный девайс для гика, но и потенциально-диковинное устройство для разработки приложений: ведь в современном мире принято повышать минимальную версию Android для работы тех или иных программ, а я свои буду… понижать, чтобы они смогли заработать даже на самой первой версии Android! В сегодняшней статье мы с вами: посмотрим на Dream и постараемся понять, почему HTC выбрала именно Android, неудачно перепакуем аккумулятор, бэкпортируем мои клиенты ВК, YouTube и Telegram и посмотрим, правда ли старичок «бесполезен», как говорят в ретро-обзорах или что-то ещё да может!

Статья: https://habr.com/ru/companies/timeweb/articles/829416/
Платформа: Android
👍1
Пишем свой Swift макрос без лида, ИТ-курсов и кредитов

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

Сегодня я хотел бы рассказать вам о макросах в Swift 5.9, как их можно применять для избавление от бойлерплейта в коде, как их создавать, какие сложности есть с ними и куда всё это движется. Так как я работаю в команде дизайн-системы, мы рассмотрим макросы на примере добавления метода copy для всех моделей UI-компонентов.

Статья: https://habr.com/ru/companies/alfa/articles/828888/
Платформа: iOS
Удобная навигация в SwiftUI для iOS 16 и выше

Не будем мусолить всем известную проблему с навигацией в SwiftUI до 16 iOS, так как уже много крутых статей на эту тему есть в открытом доступе. Близится релиз 18 iOS, а это значит, что минимальные таргеты поднимутся на единичку ближе к 16. В данной статье хочу представить на мой взгляд наиболее удобную реализацию навигации на NavigationStack. Разумеется в концепции старого доброго MVVM, поэтому фанаты UDF извините.

Статья: https://habr.com/ru/articles/830392/
Платформа: iOS
Разбираемся с MavenGate. Настолько ли он страшен на самом деле

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

По версии компании OverSecured этой атаке может быть подвержено 18% всех зависимостей в публичных репозиториях, таких, как MavenCentral, jCenter и jitpack. Это довольно много, особенно, если учесть, что open-source проекты, в основном, используют либо зависимости из публичных репозиториев, либо такие же open-source библиотеки из jitpack.

И здесь мне стало интересно, насколько open-source проекты мобильных приложений Android реально подвержены этой атаке, и сколько библиотек уже «инфицировано» в составе этих самых проектов.

Статья: https://habr.com/ru/companies/infotecs_official/articles/830600/
Платформа: Android/безопасность
👍1
MVI в Eventbrite

Приложение Eventbrite для Android основано на архитектуре MVI. В этой статье я расскажу, что такое архитектура MVI, чем она отличается от MVVM, в чем ее преимущества и как мы можем реализовать ее в нашем приложении. Я также приведу пример, в котором мы формируем мероприятие в приложении для посетителей Eventbrite.

Статья: https://apptractor.ru/info/news/mvi-v-eventbrite.html
Платформа: Android
👍1
Swift Testing Revolutionary конвертирует тестовые кейсы, написанные в XCTest, в Swift Testing. Этот инструмент можно использовать как плагин для Xcode или, например, как инструмент командной строки.

По умолчанию все тестовые файлы будут перезаписаны, если вы не передали флаг --dry-run. Не забудьте сделать резервную копию тестовых файлов перед запуском этого инструмента.

Swift Testing Revolutionary на GitHub: https://github.com/giginet/swift-testing-revolutionary
Платформа: iOS
⭐️: 1.5K
This media is not supported in your browser
VIEW IN TELEGRAM
Как уменьшить расход памяти при загрузке UIImage с диска

Загрузка изображений с диска в массив внутренней памяти может увеличить потребление памяти. Переписав код с использованием API несистемного кэширования, мы значительно улучшили использование памяти. Если ваше приложение требует обработки изображений, решение на основе NSCache будет полезным.

Статья: https://apptractor.ru/info/articles/kak-umenshit-rashod-pamyati-pri-zagruzke-uiimage-s-diska.html
Платформа: iOS
Разбираемся с новой уязвимостью Android-библиотеки Jetpack Navigation: как открыть любой фрагмент из вашего приложения?

Недавно специалисты из компании Positive Technologies нашли серьезную проблему безопасности в популярной библиотеке для навигации в приложениях Android – Jetpack Navigation. Эта уязвимость позволяет открывать любые фрагменты внутри приложения.

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

Статья: https://habr.com/ru/companies/swordfish_security/articles/830338/
Платформа: Android/безопасность
Paperize - это приложение для автоматической смены обоев. Внутри Kotlin, Jetpack Compose, Material 3, Dagger Hilt, Room, анимации Lottie Compose, Landscapist и еще несколько библиотек.

Paperize на GitHub: https://github.com/Anthonyy232/Paperize
Платформа: Android
⭐️: 129
Health Lens - это приложение для HealthKit, которое позволяет пользователям экспортировать и анализировать данные о своем здоровье. Цель HealthLens - стать недостающей кнопкой «экспорта» данных о здоровье для одержимых данными пользователей, которым нужна персонализированная аналитика.

Health Lens на GitHub: https://github.com/wkaisertexas/HealthLens
Платформа: iOS
⭐️: 1
Видео и подкасты за неделю @AppFiles

(iOS Ru) Разбор SwiftUI проекта стартапа с AI на борту
(iOS Ru) Вам не нужно хранилище в приложении
(iOS En) SwiftUI Coverflow Carousel
(iOS En) My Story & iOS Dev Career Advice
(iOS En) Building iOS 18 Photos App UI
(iOS En) Zoom Transitions SwiftUI
(iOS En) Custom Operators in Swift
(And Ru) Роман Елизаров про Kotlin, корутины и работу в Jetbrains
(And En) Advanced layout animations in Compose (Shared elements)
(And En) Refactoring to Expressive Kotlin
(And En) From Zero to Billions: Building a High-Performance Kotlin App in Two Months
(And En) Managing Complexity With Ktor
(Crs Ru) Flutter Dev Podcast: навигация во Flutter
(Crs Ru) Особенности сервиса Яндекс Про и будущее Flutter
(Crs En) Permission Handling in Compose Multiplatform
(Crs En) Create a Splash Screen in Compose Multiplatform for iOS & Android
(Crs En) Uniting Native SDKs into Kotlin Multiplatform
(Crs En) Compose Multiplatform on Mobile at Instabee for Over a Year
(Dev Ru) Личный бренд разработчика
(Dev Ru) Ход королевы: как российское шахматное приложение покорило мир
(Dev En) Building an Effective Data Product Strategy
(Dev En) System Design Concepts Course and Interview Prep

Что вы посмотрели за неделю?
#ios #android #mobile #video
Fantasy Premier League - проект на Kotlin Multiplatform с клиентами Jetpack Compose, Compose for Desktop и SwiftUI (с использованием Ktor для удаленных API-запросов и Room для персистентности). В настоящее время работает на Android, iOS и десктопах.

+ у автора есть еще десяток проектов на KMP, ссылки в репозитории

Fantasy Premier League на GitHub: https://github.com/joreilly/FantasyPremierLeague
Платформа: Android/кроссплатформа
⭐️: 451
1
Подсветка элементов онбординга в SwiftUI iOS15+

Наш опыт в Ozon показывает, что отличным решением по информированию пользователя о новом функционале в мобильном приложении является онбординг. Его реализацию в нашем исполнении я и хотел бы сегодня рассмотреть в данной статье.

Статья: https://habr.com/ru/companies/ozontech/articles/830802/
Платформа: iOS
PinLockSreen на основе KeyStore. Kotlin. Jetpack Compose

В данной любительской статье разберемся, что такое KeyStore в контексте мобильной разработки, для чего нужен и применим его в крайне легком варианте. Также погрузимся в разработку экрана входа в ваше приложение. Статья будет разделена на 3 так называемых раздела - KeyStore, UI и ViewModel.

Статья: https://habr.com/ru/articles/831914/
Платформа: Android
Водитель приедет через 3 минуты: реализация Uber Live Activity на iOS

Создание Live Activity для приложения Rider на iOS было напряженным, но полезным путешествием. От неожиданного анонса на WWDC до сложностей разработки и внедрения новой технологии в сжатые сроки, этот опыт продемонстрировал стойкость, адаптивность и креативность нашей команды. Мы преодолели технические препятствия, пересмотрели подход к UX и в итоге создали функцию, которая, по нашему мнению, улучшила впечатления водителей и пассажиров. Я надеюсь, что частички изобретательности, которые мы продемонстрировали в этой статье, могут вдохновить любого разработчика, работающего над Live Activities, и помочь ему преодолеть аналогичные сценарии и в целом использовать прагматичный подход к опыту, который живет за пределами основного приложения.

Статья: https://apptractor.ru/info/articles/uber-live-activity.html
Платформа: iOS