AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.12K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Библиотека нашего читателя, Александра, ведущего SwiftUI Dev. SwipeActions - библиотека для создания свайпов на любом представлении SwiftUI, аналогичных Apple swipeActions(edge:allowsFullSwipe:content:), которые доступны с iOS 15 и только в List. Вы можете использовать SwipeActions в проекте, ориентированном на iOS 13, с любым представлением (например, Text или VStack).

SwipeActions на GitHub
: https://github.com/c-villain/SwipeActions
Платформа: iOS
⭐️: 197
Расширяем возможности мобильного приложения на WebView. Опыт Ozon Банк

Часто разработчики используют только встроенный API взаимодействия JavaScript c нативными кодом, например Web API, но нам этого оказалось мало, и мы расширили спектр возможностей подхода web-native. Внутри статьи я расскажу, какой подход выбрал, как к этому пришёл, и, как обошёл возникшие проблемы. Подчеркну плюсы и минусы использования своего решения и в конце предложу несколько идей дальнейшего развития выбранного пути.

Статья: https://habr.com/ru/companies/ozontech/articles/828186/
Платформа: iOS
Видео с прозрачностью на Jetpack Compose – запросто

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

Статья: https://habr.com/ru/companies/finam_broker/articles/828322/
Платформа: Android
Проверяем, есть ли новая версия приложения в App Store

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

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

Статья: https://apptractor.ru/info/articles/proveryaem-est-li-novaya-versiya-prilozheniya-v-app-store.html
Платформа: iOS
Film Time - очередное учебное приложение с фильмами. Сделано на основе MVVM, Kotlin, Jetpack Compose, корутин, Hilt, Retrofit и Room с применением ktlint.

Film Time на GitHub: https://github.com/moallemi/Film-Time
Платформа: Android
⭐️: 249
Кастомные макеты в Compose — стопка карточек с кошками

В приложении, которое я создала, есть кошки — много кошек — и вы можете получить еще больше. Фотографии кошек представлены в виде карточек. Я хотела складывать карточки в стопку, просто потому что думала, что смогу это сделать — и я смогла! Поэтому в этом блоге я расскажу о том, как создать макет стопки карточек. И немного о кошках.

Статья: https://apptractor.ru/info/articles/kastomnye-makety-v-compose-stopka-kartochek-s-koshkami.html
Платформа: Android
Парсим данные из Google Sheets с помощью Kotlin и Retrofit в Android

В этой статье был рассмотрен процесс преобразования данных Google Sheets из JSON формата в классы Kotlin. Более того, в статье фигурировала suspend функция — «Best wishes, coroutines» — с расчётом на то, что читатель имеет минимальные представления о том, как работать с этими функциями.

Статья: https://habr.com/ru/articles/828812/
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Еще одна библиотека нашего читателя. Animatable - модификатор анимации для кнопок, скелетов и других представлений на чистом SwiftUI. Есть с десяток предопределенных анимаций, можно их комбинировать.

Animatable на GitHub: https://github.com/c-villain/Animatable
Платформа: iOS
⭐️: 48

Если у вас есть библиотеки, открытые или просто интересные пет-проекты, делитесь. Будем публиковать.
Как запустить нативный код из WKWebView

Я iOS-разработчик, который твердо верит в нативные приложения, и как вы можете догадаться, конечно, я не самый большой поклонник веб-представлений. Поэтому видеть, как веб-представление используется для реализации основной функции популярного приложения, было довольно неожиданно и тревожно! Но если подумать, то этот выбор имеет большой смысл: Википедия — это, прежде всего, веб-сайт, и его содержимое было создано для отображения с помощью HTML и CSS.

Статья: https://apptractor.ru/info/news/kak-zapustit-nativnyy-kod-iz-wkwebview.html
Платформа: iOS
Video-to-GIF-Converter.gif
17.7 MB
Overscroll анимация в Jetpack Compose

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

Но прежде чем я начну, позвольте мне пояснить, что это немного обходной путь. В Jetpack Compose уже есть OverscrollEffect, который мы можем использовать для создания собственных overscroll анимаций. Проблема в том, что мы можем применять его только к прокручиваемым спискам, которые мы создаем с помощью Modifier.scrollable.

Это не очень удобно, так как большинство списков, которые мы создаем в Compose, являются LazyLists (HorizontalPager, LazyColumn и т.д.). В этих Composables нет параметра overscrollEffect, который мы могли бы настроить.

Статья: https://www.sinasamaki.com/overscroll-animations-in-jetpack-compose/
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Пет-проект нашего читателя. Finch - отладочное меню для Android-приложений с поддержкой логирования сетевой активности и множеством других полезных функций. Оно не влияет на рабочий код, только помогает понимать, что в нем происходит. Разработчики могут легко добавить свои собственные функции отладки с помощью простых шагов.

Finch на GitHub: https://github.com/kernel0x/finch
Платформа: Android
⭐️: 249

Если у вас есть библиотеки, открытые или просто интересные пет-проекты, делитесь. Будем публиковать.
👍3
Скрытая (на виду) сила KeyPath'ов

Меня зовут Максим Черноусов, и я занимаюсь iOS-разработкой в Райфе. Я обожаю использовать и дизайнить классные API. А один из самых часто используемых строительных блоков для хороших API в Swift — это KeyPath'ы. Сегодня о них и поговорим.

KeyPath`ы сегодня используются повсеместно. Давайте узнаем, как с их помощью проектировать лучшие API.

Статья: https://habr.com/ru/companies/raiffeisenbank/articles/828896/
Платформа: iOS
Сериализация в Kotlin - ошибки, которые я допустил с полиморфизмом и не только

Приходилось ли вам сталкиваться с ошибками полиморфной сериализации в ваших проектах на Kotlin? Если да, то вы не одиноки. Полиморфная сериализация, хотя и невероятно мощная, может быть сложной для правильной работы. От неожиданных несоответствий типов до тонких проблем с конфигурацией - многие подводные камни могут привести к досадным ошибкам и недоразумениям.

В этой статье мы рассмотрим сериализацию Kotlin, сосредоточившись на объекте Json. Я дам практические рекомендации по ее эффективному использованию, особенно при работе с полиморфными сериализованными классами. К концу этого руководства вы будете обладать знаниями, позволяющими использовать возможности сериализации Kotlin.

Статья: https://medium.com/@kerry.bisset/kotlin-serialization-json-mistakes-i-made-with-polymorphism-and-more-e8ae367dc90a
Платформа: Android
👍2
Компонентная архитектура приложений на Flutter: почему выбрать BLoC недостаточно

Меня зовут Никита Королев, я тимлид Flutter‑команды в компании IBS. Уже год я работаю на проекте компании «Атом» — разработчика российского электромобиля. На данный момент наша команда занимается разработкой приложений для направления «Такси». В этой статье расскажу о подходе к архитектуре приложений, который мы разработали и используем в наших проектах, а также почему нам недостаточно одного только BLoC.

Статья: https://habr.com/ru/companies/ibs/articles/828428/
Платформа: Flutter/кроссплатформа
Топ-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