\\ Загрузчик файлов на основе WorkManager ⏲
Мощная, настраиваемая библиотека загрузчика файлов для Android, полностью построенная на Kotlin. Она упрощает процесс загрузки файлов в Android-приложениях, используя возможности WorkManager. Ketch гарантирует загрузку независимо от состояния приложения.
😎 Преимущества:
- Может загружать файлы любого типа
- Предоставляет всю информацию о загрузке
- Обеспечивает наблюдаемый поток загружаемых элементов
- Может загружать несколько файлов параллельно
Ссылка на GitHub💻
Мощная, настраиваемая библиотека загрузчика файлов для Android, полностью построенная на Kotlin. Она упрощает процесс загрузки файлов в Android-приложениях, используя возможности WorkManager. Ketch гарантирует загрузку независимо от состояния приложения.
- Может загружать файлы любого типа
- Предоставляет всю информацию о загрузке
- Обеспечивает наблюдаемый поток загружаемых элементов
- Может загружать несколько файлов параллельно
Ссылка на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - khushpanchal/Ketch: An Android File downloader library based on WorkManager with pause and resume support.
An Android File downloader library based on WorkManager with pause and resume support. - khushpanchal/Ketch
🔥4❤1👍1
У нас вышла новая статья, в которой рассматривается как работать с ADB через python.
Если вы — разработчик или тестировщик приложений для Android, просто обычный программист или юзер — то вы попали по адресу.
Перед тем как начать, стоит понять, почему именно Python.
Python — один из моих любимых языков программирования. Простой и читаемый синтаксис, в последних версиях наблюдается увеличение оптимизации и производительности, а также добавления разных фич — например в Python 3.10 была добавления конструкция match-case.
https://uproger.com/android-i-python-mobilnaya-razrabotka/
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
ComposeLevitation: эффект левитации для элементов UI
ComposeLevitation — это мощная библиотека Compose, которая предоставляет вам возможность легко создавать и настраивать эффекты левитации, добавляя интерактивный штрих к элементам пользовательского интерфейса. Умеет реагировать на жесты нажатия и перетаскивания, полностью настраиваема, можно сделать голографический эффект.
https://github.com/GIGAMOLE/ComposeLevitation
#Android
@mobdevelop
ComposeLevitation — это мощная библиотека Compose, которая предоставляет вам возможность легко создавать и настраивать эффекты левитации, добавляя интерактивный штрих к элементам пользовательского интерфейса. Умеет реагировать на жесты нажатия и перетаскивания, полностью настраиваема, можно сделать голографический эффект.
https://github.com/GIGAMOLE/ComposeLevitation
#Android
@mobdevelop
🔥3👍2❤1
С состоявшимся на днях выпуском Android 15 Beta 3 ОС получила статус Platform Stability — это значит, что API для разработчиков и связанное с приложениями поведение платформы меняться больше не будут, а ориентированные на Android 15 программные продукты уже могут выпускаться в Google Play.
Третья бета-версия Android 15 открывает новые возможности работы с медиаданными и ИИ, возможности использовать нестандартные формфакторы устройств; повышены эффективность аккумуляторов и стабильность работы приложений, повысились конфиденциальность и безопасность пользователей — и всё это коснулось разных линеек устройств.
При входе в учётные записи в оптимизированных для Android 15 приложений основным способом авторизации стали ключи доступа с защитой через биометрию или код блокировки — при его отклонении система предложит альтернативные варианты входа; все доступные варианты покажет системная клавиатура или выпадающие списки в полях ввода учётных данных. Сторонние разработчики смогут обращаться к системному механизму аутентификации.
Компонент Android WebView лишился поддержки WebSQL — параметры setDatabaseEnabled и getDatabaseEnabled считаются устаревшими. Ранее технология WebSQL была удалена из Chrome, теперь она перестанет работать в Android WebView. В ближайшие 12 месяцев эти методы будут деактивированы во всех версиях Android.
Google также призвала разработчиков обратить внимание на несколько важных технических нововведений Android 15. В частности, изменилось поведение состояния пакета FLAG_STOPPED: приложения сохраняют статус остановленных до тех пор, пока пользователь их не запустит или не осуществит с ними косвенное взаимодействие. Система также получила поддержку страниц памяти размером 16 кбайт — если при разработке приложения использовались инструменты Android Native Development Kit (NDK), которые открывают доступ к физическим компонентам устройства, то такие приложения придётся перекомпилировать с учётом поддержки страниц размером 16 кбайт. В Android 15 появилась функция «Личное пространство» (Private Space) — пространство на устройстве, в котором можно под дополнительным уровнем аутентификации хранить конфиденциальные приложения.
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥1
SweetPad: разрабатываем Swift/iOS-приложений на VSCode
Авторы проекта хотят сделать VSCode жизнеспособной альтернативой Xcode для разработки под iOS, интегрировав в VSCode swift-format, swiftlint, xcodebuild, xcrun, xcode-build-server и sourcekit-lsp.
Сейчас в SweetPad уже работает автодополнение кода, сборка, запуск и отладка приложения, форматирование кода, управление симуляторами, управление инструментами.
Исходники на гитхабе: https://github.com/sweetpad-dev/sweetpad
#ios
Авторы проекта хотят сделать VSCode жизнеспособной альтернативой Xcode для разработки под iOS, интегрировав в VSCode swift-format, swiftlint, xcodebuild, xcrun, xcode-build-server и sourcekit-lsp.
Сейчас в SweetPad уже работает автодополнение кода, сборка, запуск и отладка приложения, форматирование кода, управление симуляторами, управление инструментами.
Исходники на гитхабе: https://github.com/sweetpad-dev/sweetpad
#ios
👍3🔥3❤1
Каждому разработчику необходим набор инструментов, которые помогут решать самые сложные задачи. В этой подборке вы найдете множество полезных утилит для аналитики, отладки, локализации, машинного обучения и многого другого.
Изучайте, сохраняйте пост в избранное и возвращайтесь к нему, когда понадобится:
📌 Ссылка на коллекцию инструментов
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2🔥1
🔝Топ 5 крутых плагинов для Android Studio
1. Kotlin Fill Class — крутейший плагин, который делает разработку намного более приятной и быстрой. С его помощью вы можете заполнять классы и функции на лету.
2. ADB Idea — это полезное дополнение к ADB, которое вы можете запустить с помощью всплывающего окна.
3. Android Drawable Preview — с помощью этого крутого плагина вы больше не заблудитесь, так как в нем отображаются небольшие предварительные изображения всех значков внутри каталога.
4. Key Promotex X — инструмент, который поможет вам освоить основные сочетания клавиш во время работы. Когда вы нажимаете мышью на кнопку в среде IDE, Key Promoter X показывает сочетание клавиш, которое вы должны были использовать вместо этого.
5. IdeaVim — это Vim в Android Studio. Вы можете настроить его по своему вкусу с помощью файла .ideavimrc в вашем домашнем каталоге, как если бы вы использовали .vimrc.
@mobdevelop
1. Kotlin Fill Class — крутейший плагин, который делает разработку намного более приятной и быстрой. С его помощью вы можете заполнять классы и функции на лету.
2. ADB Idea — это полезное дополнение к ADB, которое вы можете запустить с помощью всплывающего окна.
3. Android Drawable Preview — с помощью этого крутого плагина вы больше не заблудитесь, так как в нем отображаются небольшие предварительные изображения всех значков внутри каталога.
4. Key Promotex X — инструмент, который поможет вам освоить основные сочетания клавиш во время работы. Когда вы нажимаете мышью на кнопку в среде IDE, Key Promoter X показывает сочетание клавиш, которое вы должны были использовать вместо этого.
5. IdeaVim — это Vim в Android Studio. Вы можете настроить его по своему вкусу с помощью файла .ideavimrc в вашем домашнем каталоге, как если бы вы использовали .vimrc.
@mobdevelop
👍12❤1🔥1
Компания Apple объявила о создании открытой библиотеки с реализацией методов гомоморфного шифрования на языке Swift.
Библиотека позволяет создавать приложения, обрабатывающие данные, доступные только в зашифрованном виде, без промежуточной расшифровки ни на одном из этапов вычислений. На выходе выдаётся зашифрованный результат, который аналогичен шифрованию результата выполнения тех же вычислений над исходными незашифрованными данными.
Код проекта распространяется под лицензией Apache 2.0. Реализация основана на схеме BFV (Brakerski-Fan-Vercauteren), которая, в свою очередь, основана на задаче обучения с ошибками в кольце (RLWE), защищённой от криптоанализа квантовыми компьютерами. Низкоуровневые примитивы для шифрования используются из библиотеки Swift Crypto.
Работа с данными при гомоморфном шифровании сводится к тому, что пользователь шифрует данные и без раскрытия ключей передаёт для обработки на внешний сервер. Сервер выполняет заявленные вычисления и формирует зашифрованный результат, не имея возможности определить с какими именно данными он работает.
Пользователь при помощи своих ключей расшифровывает выданные данные и получает результат в открытом виде. Гомоморфное шифрование может применяться в облачных сервисах для конфиденциальных вычислений, реализациях систем электронного голосования, организации работы с зашифрованными данными в СУБД и конфиденциальной тренировке систем машинного обучения.
В инфраструктуре Apple реализованная система применяется для конфиденциальной проверки "Caller ID" - пользователь передаёт на сервер Apple зашифрованный номер телефона, а сервер, без его расшифровки, проверяет наличие номера в чёрных списках для блокирования спама или базах данных с информацией о принадлежности номеров. В отличие от типовых схем конфиденциальной проверки ключа без его раскрытия серверу, в которых сервер передаёт клиенту всю БД, а клиент осуществляет проверку на своей стороне, применение гомоморфного шифрования позволяет ограничиться передачей на сторону клиента лишь небольшой порции метаданных.
Подобный подход позволяет организовать проверку в очень больших БД, которые не могут быть переданы на сторону клиента. Код серверной части для организации подобных проверок опубликован под лицензией Apache 2.0.
▪Github
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3💋2
Убираем M из MVVM в SwiftUI
Я так часто сталкиваюсь с этим вопросом, что наконец-то хочу написать о нем. Это не будет длинный пост об архитектуре iOS-приложений, и это даже не будет провокационный быстрый комментарий. Это просто то, как я создаю iOS-приложения в эти дни, особенно Ice Cubes, мой SwiftUI клиент Mastodon с открытым исходным кодом. Если вы достаточно хорошо инкапсулируете свой код, ваши View — это просто представления состояний, не меньше и не больше.
https://blog.stackademic.com/removing-the-m-from-mvvm-with-swiftui-a58b239e9e3e
#ios
Я так часто сталкиваюсь с этим вопросом, что наконец-то хочу написать о нем. Это не будет длинный пост об архитектуре iOS-приложений, и это даже не будет провокационный быстрый комментарий. Это просто то, как я создаю iOS-приложения в эти дни, особенно Ice Cubes, мой SwiftUI клиент Mastodon с открытым исходным кодом. Если вы достаточно хорошо инкапсулируете свой код, ваши View — это просто представления состояний, не меньше и не больше.
https://blog.stackademic.com/removing-the-m-from-mvvm-with-swiftui-a58b239e9e3e
#ios
👍8❤3👎1🔥1
Forwarded from Java
Kotlin — современный язык программирования от Google, который упрощает процесс разработки и повышает безопасность кода.
Сохраните себе этот курс, посвященный основам программирования на Kotlin. В нём рассматриваются ключевые концепции, такие как типы данных, операторы, переменные, условные выражения, циклы, массивы и функции. Этот вводный курс идеально подходит для новичков или тех, у кого есть минимальный опыт программирования.
Курс
#java #курс
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3👍2🍓1
Disk — хранение структур, изображений и данных
Disk — это крутая мощная библиотека управления файлами, созданная с учетом рекомендаций Apple по хранению данных в iOS. Disk максимально эффективно использует новый протокол Codable, представленный в Swift 4, и дает вам возможность сохранять структуры, не заботясь о кодировании/декодировании. Disk также помогает сохранять изображения и другие типы данных на диск всего одной строкой кода.
Github
Disk — это крутая мощная библиотека управления файлами, созданная с учетом рекомендаций Apple по хранению данных в iOS. Disk максимально эффективно использует новый протокол Codable, представленный в Swift 4, и дает вам возможность сохранять структуры, не заботясь о кодировании/декодировании. Disk также помогает сохранять изображения и другие типы данных на диск всего одной строкой кода.
Github
👍2
Задача с LeetCode по Swift
Описание: Дана строка s. Вернуть длину самой длинной подстроки, которая содержит не более двух различных символов.
Пример:
Алгоритм:
1. Вернуть N, если длина строки N меньше 3.
2. Установить оба указателя в начало строки: left = 0 и right = 0, и инициализировать максимальную длину подстроки max_len = 2.
3. Пока указатель right меньше N: Если хеш-таблица содержит менее 3 различных символов, добавить текущий символ s[right] в хеш-таблицу и сдвинуть указатель right вправо.
Если хеш-таблица содержит 3 различных символа, удалить самый левый символ из хеш-таблицы и сдвинуть указатель left так, чтобы скользящее окно содержало только 2 различных символа. Обновить max_len.
Решение:
Описание: Дана строка s. Вернуть длину самой длинной подстроки, которая содержит не более двух различных символов.
Пример:
Input: s = «eceba»
Output: 3
Explanation: The substring is «ece» which its length is 3.
Алгоритм:
1. Вернуть N, если длина строки N меньше 3.
2. Установить оба указателя в начало строки: left = 0 и right = 0, и инициализировать максимальную длину подстроки max_len = 2.
3. Пока указатель right меньше N: Если хеш-таблица содержит менее 3 различных символов, добавить текущий символ s[right] в хеш-таблицу и сдвинуть указатель right вправо.
Если хеш-таблица содержит 3 различных символа, удалить самый левый символ из хеш-таблицы и сдвинуть указатель left так, чтобы скользящее окно содержало только 2 различных символа. Обновить max_len.
Решение:
func lengthOfLongestSubstringTwoDistinct(_ s: String) -> Int {
let n = s.count
if n < 3 { return n }
let chars = Array(s)
var left = 0
var right = 0
var hashmap = [Character: Int]()
var max_len = 2
while right < n {
hashmap[chars[right]] = right
right += 1
if hashmap.count == 3 {
let del_idx = hashmap.values.min()!
hashmap.removeValue(forKey: chars[del_idx])
left = del_idx + 1
}
max_len = max(max_len, right - left)
}
return max_len
}
👍3
30 проектов и библиотек для Flutter-разработчиков
В этой статье — подборка полезных репозиториев GitHub и проектов, которые могут помочь начинающим в изучении Flutter, а более опытным разработчикам найти полезные библиотеки для проектов:
https://www.theinsaneapp.com/2023/03/best-flutter-github-repositories.html
#flutter
В этой статье — подборка полезных репозиториев GitHub и проектов, которые могут помочь начинающим в изучении Flutter, а более опытным разработчикам найти полезные библиотеки для проектов:
https://www.theinsaneapp.com/2023/03/best-flutter-github-repositories.html
#flutter
👍6❤1👎1
OTP Helper — автоматическое получение кодов из уведомлений
Приложение с открытым исходным кодом, которое позволяет автоматически копировать OTP и коды из SMS и уведомлений, читая все ваши уведомления. Приложение работает полностью автономно и без доступа к интернету. Поэтому, по идее, ваши данные не покидают устройство.
Ссылка на GitHub 🔗
#библиотека #github
Приложение с открытым исходным кодом, которое позволяет автоматически копировать OTP и коды из SMS и уведомлений, читая все ваши уведомления. Приложение работает полностью автономно и без доступа к интернету. Поэтому, по идее, ваши данные не покидают устройство.
Ссылка на GitHub 🔗
#библиотека #github
Ухудшение работы YouTube стало поистине трагическим событием, которое прибило почти все загрузчики видео, но нашелся легальный способ улучшить ситуацию!
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как использовать файлы EditorConfig в Xcode
Работая над несколькими проектами, вам, скорее всего, приходится настраивать Xcode каждый раз, когда вы переключаетесь между проектами. Процесс утомительный, который вы можете забыть сделать или не заметить.
В Xcode 16 добавлена поддержка файлов EditorConfig, которые позволяют программно определять настройки редактора Xcode для каждого проекта.
📖 В этой статье вы узнаете, как настроить файлы EditorConfig в Xcode и какие настройки поддерживаются на данный момент.
Работая над несколькими проектами, вам, скорее всего, приходится настраивать Xcode каждый раз, когда вы переключаетесь между проектами. Процесс утомительный, который вы можете забыть сделать или не заметить.
В Xcode 16 добавлена поддержка файлов EditorConfig, которые позволяют программно определять настройки редактора Xcode для каждого проекта.
📖 В этой статье вы узнаете, как настроить файлы EditorConfig в Xcode и какие настройки поддерживаются на данный момент.
❤1
Компания Apple представила язык программирования Swift 6.0
Компания Apple опубликовала релиз языка программирования Swift 6.0. Официальные сборки подготовлены для Linux (Ubuntu 20.04/22.04/24.04, Debian 12, Fedora 39, Amazon Linux 2, RHEL 9), Windows 10 и macOS (Xcode). Исходные тексты распространяются под лицензией Apache 2.0.
Язык Swift сочетает лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти, контроля переполнения переменных и массивов, защитой от использования неинициализированных переменных и блокированием доступа к памяти после её освобождения, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщённое программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.
Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, который в проведённых тестах демонстрирует производительность на 30% опережающую код на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий инструменты для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.
Ключевые изменения в новой версии:
- Добавлен новый режим изоляции данных, предоставляющий на уровне компилятора защиту от состояний гонки, возникающих при обращении к данным из параллельно выполняемых потоков. При включении режима компилятор выполняет проверку безопасного использования или наличия должных блокировок данных, обрабатываемых параллельно выполняемым кодом.
Предложен экспериментальный урезанный вариант языка Embedded Swift, предназначенный для создания приложений для встраиваемых систем и микроконтроллеров. В компиляторе сборка в новом режиме реализована для целевых платформ ARM и RISC-V, и позволяет генерировать более компактные, потребляющие меньше памяти и обособленные исполняемые файлы, не привязанные к runtime.
- Предложена новая библиотека Synchronization, предоставляющая низкоуровневый API для организации параллельного выполнения кода, атомарного выполнения операций и использования мьютексов.
Добавлена поддержка типизированных исключений (Typed throws), дающих возможность указать тип возвращаемой ошибки на этапе определения функции. Например, ниже показано определение функции, которая либо возвращает экземпляр Record либо ошибку с типом
- Предоставлена возможность использования обобщённого кода (generic), который может одновременно работать как с копируемыми, так и с некопируемыми типами (некопируемые типы могут иметь только одного владельца, что позволяет добиться увеличения производительности за счёт замены связанных с владением проверок на запрет копирования ресурсов).
- Расширена переносимость с кодом на языке C++ в таких областях, как типы, допускающие только перемещение, виртуальные методы, аргументы по умолчанию и дополнительные типы стандартной библиотеки (например, std::map и std::optional).
- Реализованы знаковые и беззнаковые 128-разрядные целые типы.
- Библиотека Foundation унифицирована для всех поддерживаемых платформ (Linux, Windows, macOS) и может применяться в переносимых приложениях. На языке Swift переписаны реализации типов JSONDecoder, URL, Calendar, FileManager и ProcessInfo.
@mobdevelop
Компания Apple опубликовала релиз языка программирования Swift 6.0. Официальные сборки подготовлены для Linux (Ubuntu 20.04/22.04/24.04, Debian 12, Fedora 39, Amazon Linux 2, RHEL 9), Windows 10 и macOS (Xcode). Исходные тексты распространяются под лицензией Apache 2.0.
Язык Swift сочетает лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти, контроля переполнения переменных и массивов, защитой от использования неинициализированных переменных и блокированием доступа к памяти после её освобождения, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщённое программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.
Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, который в проведённых тестах демонстрирует производительность на 30% опережающую код на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий инструменты для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.
Ключевые изменения в новой версии:
- Добавлен новый режим изоляции данных, предоставляющий на уровне компилятора защиту от состояний гонки, возникающих при обращении к данным из параллельно выполняемых потоков. При включении режима компилятор выполняет проверку безопасного использования или наличия должных блокировок данных, обрабатываемых параллельно выполняемым кодом.
Предложен экспериментальный урезанный вариант языка Embedded Swift, предназначенный для создания приложений для встраиваемых систем и микроконтроллеров. В компиляторе сборка в новом режиме реализована для целевых платформ ARM и RISC-V, и позволяет генерировать более компактные, потребляющие меньше памяти и обособленные исполняемые файлы, не привязанные к runtime.
- Предложена новая библиотека Synchronization, предоставляющая низкоуровневый API для организации параллельного выполнения кода, атомарного выполнения операций и использования мьютексов.
Добавлена поддержка типизированных исключений (Typed throws), дающих возможность указать тип возвращаемой ошибки на этапе определения функции. Например, ниже показано определение функции, которая либо возвращает экземпляр Record либо ошибку с типом
ParseError:
func parseRecord(from string: String) throws(ParseError) -> Record {
// ...
}
- Предоставлена возможность использования обобщённого кода (generic), который может одновременно работать как с копируемыми, так и с некопируемыми типами (некопируемые типы могут иметь только одного владельца, что позволяет добиться увеличения производительности за счёт замены связанных с владением проверок на запрет копирования ресурсов).
- Расширена переносимость с кодом на языке C++ в таких областях, как типы, допускающие только перемещение, виртуальные методы, аргументы по умолчанию и дополнительные типы стандартной библиотеки (например, std::map и std::optional).
- Реализованы знаковые и беззнаковые 128-разрядные целые типы.
- Библиотека Foundation унифицирована для всех поддерживаемых платформ (Linux, Windows, macOS) и может применяться в переносимых приложениях. На языке Swift переписаны реализации типов JSONDecoder, URL, Calendar, FileManager и ProcessInfo.
@mobdevelop
🔥4❤3👍1
Как создать гистограмму с помощью Swift Charts
На WWDC 22 Apple представила Swift Charts, фреймворк, позволяющий визуализировать данные в виде гистограмм. До его появления нам приходилось подключать всевозможные сторонние решения для построения графиков в SwiftUI. Визуализация данных с помощью аналогичного декларативного синтаксиса в SwiftUI — это просто фантастика.
Гистограмма — это всего лишь один из доступных вариантов визуализации данных. В целом, многие из методов, о которых вы сегодня узнаете, применимы и к другим графикам. Фактически, вы можете заменить всего один элемент, чтобы перейти от гистограммы к линейной диаграмме. Давайте погрузимся в работу!
https://www.avanderlee.com/swift-charts/bar-chart-creation-using-swift-charts/
#ios
На WWDC 22 Apple представила Swift Charts, фреймворк, позволяющий визуализировать данные в виде гистограмм. До его появления нам приходилось подключать всевозможные сторонние решения для построения графиков в SwiftUI. Визуализация данных с помощью аналогичного декларативного синтаксиса в SwiftUI — это просто фантастика.
Гистограмма — это всего лишь один из доступных вариантов визуализации данных. В целом, многие из методов, о которых вы сегодня узнаете, применимы и к другим графикам. Фактически, вы можете заменить всего один элемент, чтобы перейти от гистограммы к линейной диаграмме. Давайте погрузимся в работу!
https://www.avanderlee.com/swift-charts/bar-chart-creation-using-swift-charts/
#ios
👍1