uk
Feedback
AppFiles - Mobile Development

AppFiles - Mobile Development

Відкрити в Telegram

Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.

Показати більше
2 165
Підписники
-124 години
Немає даних7 днів
+130 день
Архів дописів
Ищете эффективные инструменты для создания DSL? Узнайте, как Kotlin может упростить разработку с помощью JsonBuilder! Приглаш
Ищете эффективные инструменты для создания DSL? Узнайте, как Kotlin может упростить разработку с помощью JsonBuilder! Приглашаем на открытый урок. 🗓 22 мая в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional». На открытом уроке вы разберете, как Kotlin позволяет создавать DSL (Domain-Specific Languages), оптимизируя процесс разработки. Мы покажем теорию и практику создания DSL на примере JsonBuilder. Вы не только научитесь создавать собственные DSL, но и освоите замыкания и extension-методы Kotlin, которые дадут вам дополнительные преимущества при написании чистого и гибкого кода. 🎁 Всем участникам вебинара дарим промокод, который дает скидку на обучение - Kotlin5 👉 Регистрация на вебинар: https://otus.pw/CDe0/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Современные приложения имеют сложную внутреннюю архитектуру, которую при правильном понимании можно оптимизировать для повыше
Современные приложения имеют сложную внутреннюю архитектуру, которую при правильном понимании можно оптимизировать для повышения производительности, эффективности и удобства использования. Rosalind от Tuist анализирует пакеты приложений, чтобы выявить скрытые структуры, предоставляя разработчикам четкие и действенные сведения об их коде, зависимостях, ресурсах и общей структуре. Делая невидимое видимым, Rosalind дает командам разработчиков возможность принимать обоснованные решения при доработке приложений. В настоящее время Rosalind обеспечивает всесторонний анализ артефактов приложений, созданных в Xcode, а в планах есть поддержка платформ Android и React Native. Цель авторов - предложить единый подход к пониманию ДНК ваших приложений во всех основных экосистемах разработки приложений. Rosalind на GitHub: https://github.com/tuist/Rosalind Платформа: iOS ⭐️: 56

Робот Android - любимый маскот пользователей и разработчиков Android. И предыдущие версии конструктора таких ботов были очень
Робот Android - любимый маскот пользователей и разработчиков Android. И предыдущие версии конструктора таких ботов были очень популярны - в Google решили, что в этом году переделать конструктор ботов с нуля, используя новейшие технологии, поддерживаемые Gemini. Сегодня компания выпустила новое приложение с открытым исходным кодом Androidify, с помощью которого можно научиться создавать мощный опыт на базе искусственного интеллекта на Android с использованием новейших технологий, таких как Jetpack Compose, Gemini API через Firebase AI Logic SDK, CameraX и Navigation 3. Примечание: это приложение все еще находится в стадии разработки. В настоящее время в этом приложении используется стандартная модель Imagen, но авторы работают над усовершенствованной моделью, которая специально обучена всем элементам, делающим Android-бота милым и забавным, ею поделятся позже этим летом. А пока не удивляйтесь, если приложение-образец выдаст несколько интересных вариантов! Приложение сочетает в себе множество различных технологий Google, таких как: • Gemini API - через Firebase AI Logic SDK для доступа к базовым моделям Imagen и Gemini. • Jetpack Compose - для создания пользовательского интерфейса с восхитительными анимациями и адаптации приложения к различным размерам экрана. • Navigation 3 - новейшая навигационная библиотека для построения навигационных графов с помощью Compose. • CameraX и Media3 Compose - для создания кастомной камеры с пользовательскими элементами управления пользовательским интерфейсом (поддержка задней камеры, поддержка зума, тап-фокус) и воспроизведения промо-видео. Androidify на GitHub: https://github.com/android/androidify Статья: https://apptractor.ru/androidify-link Платформа: Android ⭐️: 308

Google анонсирует Jetpack Navigation 3 Долгие годы разработчики жаловались на Jetpack Navigation (2) и теперь компания выпуск
Google анонсирует Jetpack Navigation 3 Долгие годы разработчики жаловались на Jetpack Navigation (2) и теперь компания выпускает абсолютно новую библиотеку навигации, которая должна устранить все предыдущие проблемы. Основные принципы: • Вы владеете стеком: Вы, разработчик, а не библиотека, владеете и контролируете бэкстек. • Не мешает: Nav3 спроектирована как открытая и расширяемая библиотека, предоставляя вам строительные блоки и полезные настройки по умолчанию. • Выбираете свои строительные блоки: Вместо того чтобы встраивать все поведение в библиотеку, Nav3 предлагает небольшие компоненты, которые вы можете комбинировать для создания более сложной функциональности. Ключевые особенности • Анимации • Адаптивные макеты • Разграничение состояний • Модульность Есть пример кода и типовые решения. В настоящее время Nav3 находится в стадии альфа-версии, что означает, что API может быть изменен на основе отзывов.

Комбинируем жесты и анимации в SwiftUI В статье демонстрируют, как объединение жестов и анимаций в SwiftUI может повысить инт
Комбинируем жесты и анимации в SwiftUI В статье демонстрируют, как объединение жестов и анимаций в SwiftUI может повысить интерактивность и отзывчивость пользовательского интерфейса. Они начинают с простого примера, где изображение перемещается в соответствии с положением пальца пользователя, используя модификатор position и DragGesture. Затем они усложняют пример, добавляя анимацию возврата объекта в исходное положение с помощью withAnimation(.spring()), что делает взаимодействие более естественным и плавным. Этот подход подчеркивает важность визуальной обратной связи и демонстрирует, как SwiftUI позволяет легко создавать динамичные и интуитивно понятные интерфейсы. Статья: https://www.createwithswift.com/combining-gestures-and-animations-with-swiftui/ Платформа: iOS

Мечтают ли андроиды о Robolectric? Разбираем фреймворк по косточкам Robolectric — это мощный инструмент для UI‑тестирования A
Мечтают ли андроиды о Robolectric? Разбираем фреймворк по косточкам Robolectric — это мощный инструмент для UI‑тестирования Android‑кода без эмулятора. Когда я использовал Robolectric в работе, испытал удивление от того, как работает библиотека. Помимо возможности в юнит‑тестах работать с Android‑компонентами, Robolectric позволяет работать с View и получать из неё Bitmap, что решает не только задачу проверки взаимодействия с View, но и позволяет проверить отображение экрана. И хотя в Android‑комьюнити у Robolectric неоднозначная репутация из‑за трудностей совместимости с другими библиотеками, его почти бесценные возможности пробудили любопытство копнуть глубже и осмыслить этот инструмент. Статья: https://habr.com/ru/companies/alfa/articles/910226/ Платформа: Android

Видим невидимое: контроль качества Android-библиотек через объектив AppTracer Lite SDK Мы усиленно работаем над качеством наш
Видим невидимое: контроль качества Android-библиотек через объектив AppTracer Lite SDK Мы усиленно работаем над качеством нашего SDK, и одним из важных аспектов стал контроль работы SDK на устройствах пользователей. Было решено собирать краши и перформанс-метрики. Для этого отлично подходит новый инструмент AppTracer Lite SDK, разработанный в VK. Сейчас он доступен только внутри VK. В статье я расскажу о самом инструменте, о том, для чего его можно использовать, и поделюсь подводными камнями, с которыми я столкнулся при разработке. Подход, описанный тут, универсален, при рассказе я буду говорить вещи, применимые к любой библиотеке. Статья: https://habr.com/ru/companies/vk/articles/911120/ Платформа: Android

ZenTone - библиотека для Android, которая генерирует звуковые сигналы определенной частоты и громкости. ZenTone на GitHub: ht
ZenTone - библиотека для Android, которая генерирует звуковые сигналы определенной частоты и громкости. ZenTone на GitHub: https://github.com/nisrulz/zentone Платформа: Android ⭐️: 123

Когда отладчик Swift лжет: скрытая стоимость компиляторных оптимизаций Итак, я создаю приложение SwiftUI, а в нем параллельно
Когда отладчик Swift лжет: скрытая стоимость компиляторных оптимизаций Итак, я создаю приложение SwiftUI, а в нем параллельно вызываю две конечные точки бэкенда с помощью async let. Оба возвращают массивы пользователей, и я хочу объединить их результаты в операторе switch. Достаточно просто, верно? Оказалось, что да, но при этом немного запутанно. Во время отладки я заметил нечто странное: один из моих массивов (users2) оказался загадочно пуст прямо перед оператором возврата, хотя я только что перебирал его и видел все правильные данные! Так в чем же дело? Неужели Swift съел мой массив? Это ошибка в моем API-клиенте? Или что-то более глубокое? Статья: https://apptractor.ru/info/articles/kogda-otladchik-swift-lzhet.html Платформа: iOS

KStorage — единый подход к key-value хранилищам на Kotlin Multiplatform Key-Value хранилища — это очень удобно... пока вам не захочется большего. SharedPreferences на Android, DataStore, NSUserDefaults на iOS, Multiplatform Settings, локальные файлы или вообще SQL - под все эти варианты нужно писать специфичный код. Каждое из этих апи нуждается в создании дополнительных оберток, репозиториев, для повышения абстракции и упрощения замены конкретных библиотек. KStorage — ультимативная обёртка, которая решает эту проблему. Библиотека позволяет создавать обёртки для Key-Value хранилищ, таких как DataStore. Также можно создавать Key-Value хранилище, где ключ — это название файла, а значение — это его сериализуемое значение. Более того, вы даже можете спокойно сделать обёртку над SQL-запросом. Например, для создания пользователя, обновления или удаления. Статья: https://habr.com/ru/articles/910392/ Платформа: Android/кроссплатформа

Новый плагин KMP для IntelliJ IDEA и Android Studio JetBrains выпустил бета-версию нового плагина KMP для IntelliJ IDEA и And
Новый плагин KMP для IntelliJ IDEA и Android Studio JetBrains выпустил бета-версию нового плагина KMP для IntelliJ IDEA и Android Studio. Этот плагин упрощает все этапы работы с KMP, от настройки проекта до кроссплатформенной разработки и предварительного просмотра пользовательского интерфейса Compose. Что нового: • Встроенный расширенный визард для новых проектов — поддерживает все целевые комбинации Android, iOS, десктоп, веб и сервер • Предварительные проверки — когда вы открываете проект, плагин автоматически запускает проверку окружения • Готовность к запуску — после индексации плагин автоматически генерирует конфигурации запуска для всех платформ, доступных в вашем проекте, — Android, iOS, web, desktop и server • Поддержка языков — для проектов с Kotlin и Swift плагин обеспечивает межъязыковую навигацию, подсветку синтаксиса, быстрое документирование и отладку в вашей IDE • Поддержка Compose Multiplatform — Compose Multiplatform для iOS недавно получил статус Stable, что позволяет уверенно создавать красивые общие пользовательские интерфейсы для использования в производственных условиях на iOS, Android и настольных компьютерах • Горячая перезагрузка Compose — быстрая итерация является ключевым моментом при создании пользовательских интерфейсов, с помощью Compose Hot Reload вы можете мгновенно увидеть изменения в пользовательском интерфейсе, не перезапуская приложение и не теряя его состояние Новость: https://apptractor.ru/info/news/novyy-plagin-kmp-dlya-intellij-idea-i-android-studio.html Платформа: кроссплатформа

Xtool - кроссплатформенная среда разработки, замена Xcode. Создавайте и развертывайте приложения для iOS с SwiftPM на Linux,
Xtool - кроссплатформенная среда разработки, замена Xcode. Создавайте и развертывайте приложения для iOS с SwiftPM на Linux, Windows и macOS. В нем есть: • Сборка пакета SwiftPM в приложение для iOS • Подпись и установка приложений для iOS • Взаимодействие с Apple Developer Services программным способом Xtool на GitHub: https://github.com/xtool-org/xtool Платформа: iOS ⭐️: 2.4K

ErrorKit - сообщения об ошибках Swift, удобные для человека Несмотря на элегантный дизайн Swift, системные сообщения об ошибк
ErrorKit - сообщения об ошибках Swift, удобные для человека Несмотря на элегантный дизайн Swift, системные сообщения об ошибках часто бывают загадочными и бесполезными. Вместо того чтобы просто жаловаться, я создал ErrorKit, инструмент, который отображает эти сообщения в виде понятных человеку описаний. Но обработка всей экосистемы Apple - слишком большая задача для одного человека, это должна быть работа сообщества. В этом посте я расскажу о том, как я создал основу для улучшения описаний ошибок, и приглашаю вас присоединиться ко мне в создании всеобъемлющего словаря удобных сообщений об ошибках для разработчиков Swift. Статья: https://apptractor.ru/info/articles/errorkit.html Платформа: iOS

10 трюков Jetpack Compose, о которых вы, вероятно, не знаете Jetpack Compose произвел революцию в разработке пользовательских
10 трюков Jetpack Compose, о которых вы, вероятно, не знаете Jetpack Compose произвел революцию в разработке пользовательских интерфейсов для Android благодаря своему декларативному и интуитивно понятному подходу. Но даже для опытных разработчиков многие мощные функции и скрытые жемчужины остаются незамеченными. В этой статье мы рассмотрим 10 недооцененных или малоизвестных трюков с пользовательским интерфейсом в Jetpack Compose, которые помогут вам создавать более эффективные, красивые и удобные в обслуживании пользовательские интерфейсы. 1. Анимируйте видимости с помощью переходов Enter/Exit 2. Используйте модификатора Layout для создания кастомных макетов 3. Разделяйте элементы в LazyColumn 4. Используйте drawBehind для расширения фонового рисунка за пределы границ 5. Закрепляйте заголовки в LazyColumn с помощью stickyHeader 6. Используйте rememberUpdatedState, чтобы избежать устаревших лямбд 7. Не забывайте о pointerInput для кастомных жестов 8. Прокручивайте любой компонент с помощью Modifier.scrollable 9. Используйте CompositionLocal для тематического поведения 10. Используйте Modifier.graphicsLayer для создания эффектов Статья: https://apptractor.ru/develop/10-tryukov-jetpack-compose.html Платформа: Android

MagicMirror - умное зеркало своими руками Подробная инструкция по созданию собственного MagicMirror — умного зеркала, которое
MagicMirror - умное зеркало своими руками Подробная инструкция по созданию собственного MagicMirror — умного зеркала, которое отображает время, погоду, новости и другую полезную информацию прямо на поверхности зеркала. 🔧 Что входит в проект: • Raspberry Pi в качестве основного контроллера • Монитор за полупрозрачным зеркалом • Корпус с элементами, напечатанными на 3D-принтере • Настройка программного обеспечения MagicMirror² и добавление модулей для отображения различной информации. Этот проект требует базовых навыков в электронике и программировании, а также некоторого времени на сборку и настройку. Однако результат стоит затраченных усилий: вы получите стильный и функциональный элемент интерьера, который можно адаптировать под свои нужды. Если вы ищете интересный DIY-проект на выходные, создание MagicMirror может стать отличным выбором. Статья: https://nerdiy.de/en/howto-magicmirror-build-your-own-magicmirror/ Платформа: интернет вещей

WikWok - это красивое и функциональное приложение, которое превращает чтение Википедии в увлекательную ленту статей в стиле T
WikWok - это красивое и функциональное приложение, которое превращает чтение Википедии в увлекательную ленту статей в стиле TikTok. Доступно на iOS, Android, Macos, Windows, Linux и в веб. WikWok на GitHub: https://github.com/terrakok/WikWok Платформа: Android ⭐️: 568

📺 Видео и подкасты за неделю на @AppFiles • (iOS Ru) Учим Metal и image processing лишь бы не верстать на iOS • (iOS Ru) Rac
📺 Видео и подкасты за неделю на @AppFiles(iOS Ru) Учим Metal и image processing лишь бы не верстать на iOS(iOS Ru) Race Condition: проблема гонки потоков — что это и как избежать?(iOS Ru) Под капотом iOS-крешей(iOS En) Resizable ScrollView Header | Scroll To Hide Header - SwiftUI(iOS En) SwiftUI Theme Switcher in 3 Minutes – Light & Dark Mode Made Easy(iOS En) Building emoji reactions in 5 minutes with SwiftUI (iOS En) Customized Paywall using Native SwiftUI StoreKit APIs(iOS En) Apple Engineer Shows How To Build a SwiftUI Sleep Tracker(iOS En) 3 Ways to Initialize @State in SwiftUI (And Ru) Тестирование Compose по-новому: простота, надежность, гибкость(And En) The Android Show: I/O Edition(And En) Now in Android: 116 – Google I/O, Gemini, and Jetpack Compose 1.8(And En) What's new in Android Studio Meerkat Feature Drop(And En) Android Testing Strategies(And En) Tools and patterns for scalable Android app testing(And En) 5 Anti-Patterns With Coroutines & Flows You MUST Avoid!(And En) How Kotlin is Powering TV Broadcasts Worldwide(And En) Android & Kotlin Development Masterclass – Full Course(And En) Build your App from Scratch without Material 3 Color System(Crs Ru) Kotlin Multiplatform vs Compose Multiplatform: отличия, способы создания и как запустить на iOS(Crs Ru) Готов ли Compose iOS к продакшену?(Crs En) ​​Kotlin Multiplatform: Have your code and eat it too(Dev Ru) Разработчик HarmonyOS Next про ArkTS и HarmonyOS(Dev Ru) Язык программирования Groovy: JVM языки, Java, Kotlin, Gradle, DSL(Tcn Ru) Как работают нейроинтерфейсы: киборги, Neuralink, brain-computer interface(Dev En) Design Messenger - Mobile System Design Mock Interview(Dev En) C++ Course: Build an Audio Plugin Прошлогодние видео: • (iOS Ru) TextField с автодополнением(iOS Ru) SwiftUI-навигация: просто, нативно и декларативно(iOS Ru) Удивительный мир внутри .ipa(iOS Ru) Core Motion framework в финансовых приложениях(And Ru) Путешествие к центру Композиции(And Ru) Scout: новый фреймворк для ускоренного и безболезненного управления зависимостями(And Ru) Компиляторные плагины: модификация и анализ Сompose(And Ru) Как я code coverage внедрял да Gradle plugin для baseline писал(Dev Ru) Грабим Дома на Собеседовании в Google (+ другие вопросы с собеседований)

Прячем код по-настоящему: тёмные уголки обфускации R8 и ProGuard Обфускация — важная часть защиты Android-приложений. Однако
Прячем код по-настоящему: тёмные уголки обфускации R8 и ProGuard Обфускация — важная часть защиты Android-приложений. Однако даже если вы используете R8 или ProGuard - это не гарантия высокой устойчивости к тому что вас код не взломают. Стандартная настройка обфускации довольно простая и нацелена на уменьшение размера сборки, а не повышение защиты от взлома. В этой статье разберу как происходит обфускация в стандартной конфигурации, как можно её сделать сложнее для разбора, а по итогу и уникальной для каждой сборки. Статья: https://habr.com/ru/articles/909638/ Платформа: Android

The Composable Architecture: мои 3 года использования TCA — это сторонний фреймворк, не поддерживаемый Apple, и он зависит вс
The Composable Architecture: мои 3 года использования TCA — это сторонний фреймворк, не поддерживаемый Apple, и он зависит всего от двух гениальных парней, на которых вы, по сути, ставите всё — всю свою кодовую базу. Это фреймворк, основанный на функциональном программировании, который противоречит объектно-ориентированному наследию и влиянию SwiftUI. Возможно, вы будете более продуктивны в работе с новыми разработчиками и добавлении функций с другой архитектурой и все же сможете достичь желаемой дисциплины с помощью MVVM или Чистой архитектуры. Статья: https://apptractor.ru/info/articles/the-composable-architecture-moi-3-goda-ispolzovaniya.html Платформа: iOS

Мантры программирования — это не догмы, а выражения Это значит, что мы можем цитировать Кнута, говорящего, что преждевременна
Мантры программирования — это не догмы, а выражения Это значит, что мы можем цитировать Кнута, говорящего, что преждевременная оптимизация — корень всех зол, и при этом считать, что производительность — это важная характеристика. Мы можем понимать и применять разделение ответственности, но при этом видеть ценность локальности поведения. Есть время для YAGNI, и есть время для воздержания от YAGNI. Ни одно из этих положений не содержит логических противоречий. Пословицы заключают в себе небольшую толику мудрости в краткой фразе, но вам еще нужно научиться правильно применять эту мудрость. Статья: https://apptractor.ru/info/articles/mantry-programmirovaniya-eto-ne-dogmy-a-vyrazheniya.html Платформа: разработка