es
Feedback
AppFiles - Mobile Development

AppFiles - Mobile Development

Ir al canal en Telegram

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

Mostrar más
2 171
Suscriptores
Sin datos24 horas
+57 días
+830 días
Archivo de publicaciones
ComposableMemes - приложение Compose Multiplatform для просмотра и создания мемов. Есть коллекция мемов, есть продвинутый ред
ComposableMemes - приложение Compose Multiplatform для просмотра и создания мемов. Есть коллекция мемов, есть продвинутый редактор для их создания, возможность сохранить свое творение на устройстве или поделиться им с миром, поддержка Android, iOS & Web (WASM). ComposableMemes на GitHub: https://github.com/mvk059/ComposableMemes Платформа: Android/кроссплатформа ⭐️: 12

RouterNavigation: практический подход к упрощению навигации в iOS Статья предлагает эффективный метод управления навигацией в
RouterNavigation: практический подход к упрощению навигации в iOS Статья предлагает эффективный метод управления навигацией в iOS-приложениях. Автор вводит концепцию "RouterNavigation", направленную на упрощение и структурирование навигационных процессов, что особенно актуально для крупных проектов с множеством экранов и сложными переходами. В статье рассматриваются ключевые концепции, такие как маршрутизация (routing), разделение ответственности и инверсия управления. Предлагаемый подход подразумевает использование роутера для управления переходами между экранами, что позволяет отделить логику навигации от пользовательского интерфейса. Это способствует повышению модульности и упрощает тестирование компонентов. Для iOS-разработчиков данный подход может быть полезен тем, что он обеспечивает более чистую и поддерживаемую архитектуру приложения. Использование роутера позволяет централизовать управление навигацией, снижая связанность между компонентами и облегчая внесение изменений в навигационную логику без необходимости модификации отдельных экранов. Это особенно важно при масштабировании приложений и работе в больших командах. Статья: https://medium.com/@francescostabile/routernavigation-a-practical-approach-to-simplify-ios-navigation-2e6aca4a84a0 Платформа: iOS

Как создать водяной знак в Jetpack Compose Статья посвящена созданию настраиваемого и многократно используемого водяного знак
Как создать водяной знак в Jetpack Compose Статья посвящена созданию настраиваемого и многократно используемого водяного знака в приложениях Android с использованием Jetpack Compose. Автор подробно описывает процесс разработки компонента водяного знака, который можно легко интегрировать в различные части приложения, обеспечивая единообразный стиль и защиту контента. В статье рассматриваются ключевые концепции Jetpack Compose, такие как создание пользовательских компонентов, управление состоянием и применение модификаторов для стилизации элементов интерфейса. Автор демонстрирует, как с помощью Compose можно создавать гибкие и переиспользуемые UI-элементы, которые адаптируются к различным требованиям дизайна и функциональности. Эта статья предоставляет практический пример использования Jetpack Compose для создания настраиваемых компонентов. Понимание того, как создавать и внедрять такие элементы, позволяет улучшить структуру и читаемость кода, а также ускорить процесс разработки за счет повторного использования компонентов. Кроме того, применение водяных знаков помогает защитить контент приложения и поддерживать его фирменный стиль. Статья: https://medium.com/@kappdev/how-to-create-a-reusable-premium-watermark-in-jetpack-compose-83d79e9ce7c3 Платформа: Android

Как писать эффективную документацию в Xcode Эффективная документация в Xcode — ключевой аспект разработки на Swift. Используя
Как писать эффективную документацию в Xcode Эффективная документация в Xcode — ключевой аспект разработки на Swift. Используя инструменты, такие как Quick Help и комментарии в формате Markdown, разработчики могут создавать ясную и структурированную документацию. Хотя это требует времени, такие вложения способствуют лучшему пониманию кода и облегчают его поддержку. В Xcode можно автоматически добавить шаблон комментария, выделив функцию или метод и нажав сочетание клавиш Option (Alt) + Command (⌘) + /. Это создаст структуру, в которую можно добавить описание, параметры и возвращаемые значения. После написания комментариев можно сгенерировать документацию, выбрав в Xcode пункт меню Product > Build Documentation. Это создаст подробную документацию, которую можно просматривать непосредственно в Xcode или экспортировать для дальнейшего использования. Статья: https://medium.com/icommunity/how-to-write-effective-swift-documentation-in-xcode-e34793463cb9 Платформа: iOS

Why Not Compose! - коллекция анимаций, композиций и пользовательских интерфейсов, сделанных с использованием Jetpack Compose. Можно назвать это поваренной книгой Jetpack Compose, витриной или игровой площадкой. Фичи: MVVM, Navigation Component, Hilt, поддержка темного режима, Material 3, Gradle Kotlin DSL, CI/CD. Что есть: счетчики, работа с Lottie, выбор изображения и его обрезка, работа с правами, извлечение данных и пейджинг, крестики нолики, работа с ExoPlayer, глубокие ссылки и многое другое. Why Not Compose! на GitHub: https://github.com/ImaginativeShohag/Why-Not-Compose Платформа: Android ⭐️: 586

Путь к стабильности: как мы снизили потребление оперативной памяти в iOS-приложении Чтобы избежать перегрузки системы и краше
Путь к стабильности: как мы снизили потребление оперативной памяти в iOS-приложении Чтобы избежать перегрузки системы и крашей приложения, мы решили разработать инструмент для мониторинга памяти. Его задача — отслеживать потребление ресурсов на этапе тестирования и заранее предупреждать разработчиков о потенциальных перегрузках, чтобы проблемный код не попал к пользователям. Статья: https://habr.com/ru/companies/aliexpress_russia/articles/877058/ Платформа: iOS

Корутины Kotlin в продакшене: уроки и подводные камни Запустив в прод корутины, наша команда столкнулась с многочисленными пр
Корутины Kotlin в продакшене: уроки и подводные камни Запустив в прод корутины, наша команда столкнулась с многочисленными проблемами, которые не были сразу очевидны из документации. Несмотря на то, что в теории корутины элегантны, их практическая реализация сопряжена с несколькими нюансами, которые могут привести к серьезным проблемам. Вот что мы узнали, пройдя этим трудным путем. Статья: https://apptractor.ru/info/articles/korutiny-kotlin-v-prodakshene-uroki-i-podvodnye-kamni.html Платформа: Android

SwiftGPT - библиотека от @ios_appdev для интеграции возможностей ChatGPT в iOS/macOS/Linux проекты. Особенности: • Совместимо
SwiftGPT - библиотека от @ios_appdev для интеграции возможностей ChatGPT в iOS/macOS/Linux проекты. Особенности: • Совместимость с официальным OpenAI API: интерфейс основан на стилях OpenAI. • Поддержка Swift 6 и Swift Concurrency. • Мультиплатформенность: работает на всех платформах Apple (iOS, macOS, watchOS, tvOS) и даже на Linux. Основные функции: • Поддержка Chat Completions (генерация текста) • В планах: Assistants API, Text-to-Speech, Text Transcriptions, Image generation и др. • Возможность указать URL для запросов (актуально для РФ, когда делаешь свой прокси) Пример использования:
import SwiftGPT

// Установка API key
OpenAI.Configuration.apiKey = .apiKey("your-api-key")

Task {
    // создание сессии
    let chat = OpenAI.Chat()
    // запрос
    let response = try await chat.completions(prompt: "Как погода сегодня?")
    print("Ответ: \(response)")
}
SwiftGPT на GitHub: https://github.com/DobbyWanKenoby/SwiftGPT Платформа: iOS ⭐️: 11

SwiftGPT - библиотека от @ios_appdev для интеграции возможностей ChatGPT в iOS/macOS/Linux проекты. Особенности: • Совместимость с официальным OpenAI API: интерфейс основан на стилях OpenAI. • Поддержка Swift 6 и Swift Concurrency. • Мультиплатформенность: работает на всех платформах Apple (iOS, macOS, watchOS, tvOS) и даже на Linux. Основные функции: • Поддержка Chat Completions (генерация текста) • В планах: Assistants API, Text-to-Speech, Text Transcriptions, Image generation и др. • Возможность указать URL для запросов (актуально для РФ, когда делаешь свой прокси) Пример использования:
import SwiftGPT

// Установка API key
OpenAI.Configuration.apiKey = .apiKey("your-api-key")

Task {
    // создание сессии
    let chat = OpenAI.Chat()
    // запрос
    let response = try await chat.completions(prompt: "Как погода сегодня?")
    print("Ответ: \(response)")
}
SwiftGPT на GitHub: https://github.com/DobbyWanKenoby/SwiftGPT Платформа: iOS ⭐️: 11

Удаленная локализация в приложениях Jetpack Compose В приложениях Android эти статические строки обычно определяются в файле
Удаленная локализация в приложениях Jetpack Compose В приложениях Android эти статические строки обычно определяются в файле strings.xml и хранятся локально. При необходимости изменений они обновляются в коде и выпускаются в следующей версии приложения. Можно сделать удаленное хранение строк, однако при этом возникают уникальные проблемы, такие как обеспечение эффективного обновления, поддержание согласованности данных и быстрое отображение обновленного текста для пользователей. В этой статье мы рассмотрим реальное решение по управлению удаленной локализацией в приложениях Jetpack Compose. Статья: https://apptractor.ru/info/articles/udalennaya-lokalizatsiya-v-prilozheniyah-jetpack-compose.html Платформа: Android

Меняем изображений у кнопки SwiftUI при нажатии Как изменить изображение, которое показывает кнопка SwiftUI, во время нажатия
Меняем изображений у кнопки SwiftUI при нажатии Как изменить изображение, которое показывает кнопка SwiftUI, во время нажатия пользователем? В этой статьи простой код, который меняет иконку при нажатии. Статья: https://apptractor.ru/info/articles/menyaem-izobrazheniy-u-knopki-swiftui-pri-nazhatii.html Платформа: iOS

Будущее за адаптивностью: изменения в API ориентации и изменения размеров в Android 16 Начиная с Android 16 постепенно отменя
Будущее за адаптивностью: изменения в API ориентации и изменения размеров в Android 16 Начиная с Android 16 постепенно отменяются атрибуты манифеста и API, используемые для ограничения ориентации и изменения размера приложения, что позволит улучшить пользовательский опыт для многих приложений на разных устройствах. Статья: https://apptractor.ru/info/articles/buduschee-za-adaptivnostyu-izmeneniya-v-api-orientatsii-i-izmeneniya-razmerov-v-android-16.html Платформа: Android

Нюансы разработки PWA для Банка Санкт-Петербург от первого лица Поддержка PWA в браузерах определенно развивается. Еще два го
Нюансы разработки PWA для Банка Санкт-Петербург от первого лица Поддержка PWA в браузерах определенно развивается. Еще два года назад реализовать подобное приложение было бы сложно. Сейчас у нас все получилось. Но работы пришлось проделать много - было множество реквестов, что что-то хорошо работает на iOS, но не работает под Android, и наоборот. Мы же старались решать все эти проблемы так, чтобы код на обеих платформах был одинаковый - не хотели уходить от унификации. В целом это интересный опыт, который для нас еще не закончился. Статья: https://habr.com/ru/companies/liptsoft/articles/877020/ Платформа: кроссплатформа

Kompose Country Code Picker - это библиотека Jetpack Compose на основе Material 3, которая предоставляет возможность выбора к
Kompose Country Code Picker - это библиотека Jetpack Compose на основе Material 3, которая предоставляет возможность выбора кода страны в приложениях для Android. Kompose Country Code Picker на GitHub: https://github.com/joelkanyi/kompose-country-code-picker Платформа: Android ⭐️: 181

Как Android управляет маленькой памятью: Kswapd и LMK Будучи мобильной операционной системой, Android приходится иметь дело с
Как Android управляет маленькой памятью: Kswapd и LMK Будучи мобильной операционной системой, Android приходится иметь дело с ограниченными ресурсами памяти. ОС тщательно следит за использованием памяти и принимает меры по ее освобождению, когда ее становится мало. В этой статье мы рассмотрим, как Android распределяет память и реагирует на ситуации с нехваткой памяти. Платформа Android работает на основе принципа, что свободная память - это зря потраченная память. Учитывая это правило, ОС Android всегда старается выделить всю доступную память. Это очень полезная и удивительная техника. Так как система может хранить в памяти недавно использовавшиеся приложения, и пользователь может быстро переключиться на них без задержек при запуске. В любом случае, память нужна системе, и Android OS использует ее эффективно. Но что делать, если вся память занята? Как открыть больше приложений? Статья: https://apptractor.ru/info/articles/kak-android-upravlyaet-malenkoy-pamyatyu-kswapd-i-lmk.html Платформа: Android

Погружение в мир Lint'a в Android-проекте (часть 2) Продолжим рассматривать различные нюансы статического анализа с помощью L
Погружение в мир Lint'a в Android-проекте (часть 2) Продолжим рассматривать различные нюансы статического анализа с помощью Lint. Опираться будем на предыдущую статью. С момента её публикации прошло много времени, за которое вышло несколько значимых обновлений Android Gradle Plugin (а с ним и всех артефактов линтера), а также вторая версия Kotlin с новым компилятором. Вкратце рассмотрим наиболее заметные для нас изменения с небольшими примерами. Кроме того, удалось найти что-то похожее на полноценную документацию по lint (правда, редко обновляющуюся), наиболее интересные моменты оттуда тоже рассмотрим. Статья: https://habr.com/ru/companies/domclick/articles/870650/ (первая часть) Платформа: Android

Смешивание цветов в SwiftUI В последней версии SwiftUI компания Apple представила новую функцию - смешивание цветов. Это функ
Смешивание цветов в SwiftUI В последней версии SwiftUI компания Apple представила новую функцию - смешивание цветов. Это функция, которая позволяет выполнять различные творческие задачи. В этой статье мы рассмотрим смешивание цветов в SwiftUI и изучим возможности его применения. Статья: https://apptractor.ru/info/articles/smeshivanie-tsvetov-v-swiftui.html Платформа: iOS

qBitControl - удаленный клиент для qBittorrent. С его помощью вы можете добавлять торренты через .torrent-файлы или magnet-сс
qBitControl - удаленный клиент для qBittorrent. С его помощью вы можете добавлять торренты через .torrent-файлы или magnet-ссылки, следить за ходом загрузки, управлять торрентами - делать паузу/возобновление, просматривать и управлять торрент-файлами, получать статистику в реальном времени. qBitControl на GitHub: https://github.com/Michael-128/qBitControl Платформа: iOS ⭐️: 226

Интеграция Docker в Android разработку Если говорить о Docker в контексте Android-разработки, то чаще всего кейсы его использ
Интеграция Docker в Android разработку Если говорить о Docker в контексте Android-разработки, то чаще всего кейсы его использования встречаются в тестировании и развертывании приложений. Docker позволяет создать изолированную среду, в которой можно запустить приложение вместе со всеми его зависимостями, что очень ценится в тестировании. Ключевым фактором является то, что внесенные изменения, никак не влияют на другие контейнеры или систему. Конвейеризация же только ускоряет эти и другие процессы. Звучит непросто? Но на самом же деле, в этом нет ничего сложного. Чтобы в этом убедиться, напишем небольшой Pipeline для Android проекта. Статья: https://habr.com/ru/articles/875940/ Платформа: Android