Compose Destinations обрабатывает аннотации и генерирует код, использующий официальную навигацию Jetpack Compose под капотом. Эта библиотека позволяет не писать вручную сложный, небезопасный и шаблонный код.
При этом Compose Destinations легко освоить — большинство API либо такие же, как в Jetpack Components, либо вдохновлены ими.
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
⚡️ Крутой опенсорс-проектов вам в ленту: Appteka — альтернативный магазин приложений для Android
Это разработка Игоря Солкина, Lead of Mobile Design Platform в Авито. У магазина есть несколько нестандартных фич. Но самое приятное — открытые исходники, которые можно изучить и взять что-то на заметку.
https://github.com/solkin/appteka-android
@mobdevelop
Это разработка Игоря Солкина, Lead of Mobile Design Platform в Авито. У магазина есть несколько нестандартных фич. Но самое приятное — открытые исходники, которые можно изучить и взять что-то на заметку.
https://github.com/solkin/appteka-android
@mobdevelop
GitHub
GitHub - solkin/appteka-android: 💊 Appteka is an alternative store for Android
💊 Appteka is an alternative store for Android. Contribute to solkin/appteka-android development by creating an account on GitHub.
👍4🔥3❤2
🚀 Крутой инструмент аналитики для регистрации событий в приложениях и на бэкенде заказывали?
Если когда-нибудь использовали Mixpanel, то знаете, в чем фишка этого инструмента. Если не знали, есть Openpanel — альтернатива с открытым исходным кодом.
Авторы попытались объединить Mixpanel и Plausible в одном продукте. Сейчас есть аналитика в реальном времени, отслеживание произвольного количества событий, любые кастомные свойства для них, графики, отчеты и воронки.
SDK для мобильных платформ (кроме React Native) пока нет, но есть API и больше 2,4 тысяч звезд на гитхабе.
Исходники: https://github.com/Openpanel-dev/openpanel
А какие инструменты для этих целей используете вы?
#инструменты
Если когда-нибудь использовали Mixpanel, то знаете, в чем фишка этого инструмента. Если не знали, есть Openpanel — альтернатива с открытым исходным кодом.
Авторы попытались объединить Mixpanel и Plausible в одном продукте. Сейчас есть аналитика в реальном времени, отслеживание произвольного количества событий, любые кастомные свойства для них, графики, отчеты и воронки.
SDK для мобильных платформ (кроме React Native) пока нет, но есть API и больше 2,4 тысяч звезд на гитхабе.
Исходники: https://github.com/Openpanel-dev/openpanel
А какие инструменты для этих целей используете вы?
#инструменты
👍3❤2
Актуальный гайд по регистрации Apple Developer в App Store для физических лиц. Что понадобиться:
– Аккаунт Apple ID с двухфакторкой;
– iPhone, Mac или iPad с активированным iCloud;
– Последняя версия Apple Developer App на устройстве.
Полный гайд тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👎3🔥1😁1
\\ Загрузчик файлов на основе 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