Neo Store - современный и многофункциональный клиент F-Droid для всех. Его основные особенности - UX, ориентированный на расширение возможностей пользователей, быстрая синхронизация репозиториев, встроенные репозитории, легкое открытие новых приложений, минимализм с принципами KISS.
Neo Store на GitHub: https://github.com/NeoApplications/Neo-Store
Платформа: Android
⭐️: 2.3K
Neo Store на GitHub: https://github.com/NeoApplications/Neo-Store
Платформа: Android
⭐️: 2.3K
Новая подборка видео и подкастов за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы посмотрели/послушали интересного про разработку?
🌐 AppFiles
•
(iOS Ru)
Как избежать утечек памяти при использовании Task, Combine, CurrentValueSubject и AsyncStream•
(iOS En)
SwiftUI: Universal Hero Effect•
(iOS En)
Introducing Vortex: High-performance particle effects for SwiftUI•
(iOS En)
SwiftUI Minimal Todo List With SwiftData & Interactive Widgets•
(iOS En)
Exploring AppState, a new open-source framework for SwiftUI Application State•
(iOS En)
SwiftUI Share Sheet Extension•
(And Ru)
Построение multi-app архитектуры•
(And Ru)
Старт карьеры в Android-разработке до 18 лет•
(And Ru)
Compose Navigation Codelab: проходим кодлаб от Google•
(And En)
What’s new in Jetpack Compose, Google Summer of Code 2024, and more dev news!•
(And En)
ALL Must-Know Changes in New Android Studio Hedgehog•
(And En)
This is Your 2024 Action Plan to Get Your Android Dream Job•
(Crs Ru)
Flutter Dev Podcast #44: Как стать Flutter-разработчиком? Часть 2•
(Crs En)
Prototyping apps with Project IDX, Firebase extensions and the PaLM API•
(Dev Ru)
Найти работу в кризис: джун, мидл и сеньёр•
(Dev Ru)
Проектирование невизуальных интерфейсов: основа, смыслы, примеры•
(Dev Ru)
Подходы и инструменты кастомизации процессов разработки•
(Dev Ru)
Кем вы видите себя в компании через 5 лет? Отвечает Head of Mobile•
(Dev Ru)
Podlodka: NeRF – последний шанс для VR?•
(Dev En)
Learn Accessibility - Full a11y Tutorial•
(Dev En)
Deep Learning Interview Prep CourseЧто вы посмотрели/послушали интересного про разработку?
🌐 AppFiles
AppTractor
Как избежать утечек памяти при использовании Task, Combine, CurrentValueSubject и AsyncStream
Смотрим на демо-проект. Запускаем в нем «тяжелую задачу» разными способами и смотрим, как это влияет на память. Учимся отменять работу: отменяем Task, останавливаем работу в выделенной DispatchQueue, отменяем подписки в правильный момент, перестаем слушать…
WhisperKit - это пакет Swift, который интегрирует популярную модель распознавания речи Whisper от OpenAI с фреймворком CoreML от Apple для эффективной локальной работы на устройствах Apple.
WhisperKit на GitHub: https://github.com/argmaxinc/WhisperKit
Платформа: iOS
⭐️: 777
WhisperKit на GitHub: https://github.com/argmaxinc/WhisperKit
Платформа: iOS
⭐️: 777
👍3
Разбираемся с MavenGate, новой атакой на цепочку поставок для Java и Android-приложений
Я хотел бы разобрать в этой статье новый тип атаки на цепочку поставок под названием MavenGate. А что в ней, собственно, такого? Ну хотя бы то, что ей подвержены более 18% всех Java-библиотек, соответственно, для Android это применимо в полной мере. Совершить эту атаку безумно просто. Суть ее основана на логике работы сборщиков Java/Android-проектов и разрозненности репозиториев, которые хранят эти библиотеки.
Статья: https://habr.com/ru/companies/swordfish_security/articles/790544/
Платформа: Android
Я хотел бы разобрать в этой статье новый тип атаки на цепочку поставок под названием MavenGate. А что в ней, собственно, такого? Ну хотя бы то, что ей подвержены более 18% всех Java-библиотек, соответственно, для Android это применимо в полной мере. Совершить эту атаку безумно просто. Суть ее основана на логике работы сборщиков Java/Android-проектов и разрозненности репозиториев, которые хранят эти библиотеки.
Статья: https://habr.com/ru/companies/swordfish_security/articles/790544/
Платформа: Android
DVDB (Dart Vector DB) - кроссплатформенная векторная база данных на основе Dart, которая может быть использована в приложениях на базе Flutter. Основные фичи: конфиденциальность превыше всего - данные пользователя никогда не покидают его устройство и не хранятся на сторонних сервисах, DVDB работает локально на устройстве - нулевая задержка и никаких хлопот с обслуживанием серверов, поддержка эмбеддингов OpenAI и пользовательских эмбеддингов, поддержка нескольких платформ - независимо от того, являетесь ли вы Android или iOS командой, DVDB работает на обеих платформах, делая разработку приложений легким делом.
DVDB на GitHub: https://github.com/FastCodeAI/DVDB
Платформа: кроссплатформа
⭐️: 16
DVDB на GitHub: https://github.com/FastCodeAI/DVDB
Платформа: кроссплатформа
⭐️: 16
Эксперимент: насколько сложно обмануть на технических собеседованиях с помощью ChatGPT?
ChatGPT произвел революцию в работе, какой мы ее знаем. Его полезность трудно переоценить: от помощи малому бизнесу в автоматизации административных задач до создания целых React-компонентов для веб-разработчиков.
На сайте Interviewing.io мы много думали о том, как ChatGPT изменит проведение технических собеседований. Один из главных вопросов — позволит ли ChatGPT легко обманывать на собеседованиях? Чтобы ответить на этот вопрос, мы привлекли нескольких наших профессиональных интервьюеров и пользователей к участию в эксперименте с ИИ-обманом! В этой статье мы расскажем обо всем, что мы обнаружили, и объясним, что это значит для вас. В качестве небольшого предисловия просто знайте: компаниям необходимо немедленно изменить типы вопросов, которые они задают на собеседовании.
Статья: https://apptractor.ru/info/articles/eksperiment-naskolko-slozhno-obmanut-na-tehnicheskih-sobesedovaniyah-s-pomoschyu-chatgpt.html
Платформа: собеседования
ChatGPT произвел революцию в работе, какой мы ее знаем. Его полезность трудно переоценить: от помощи малому бизнесу в автоматизации административных задач до создания целых React-компонентов для веб-разработчиков.
На сайте Interviewing.io мы много думали о том, как ChatGPT изменит проведение технических собеседований. Один из главных вопросов — позволит ли ChatGPT легко обманывать на собеседованиях? Чтобы ответить на этот вопрос, мы привлекли нескольких наших профессиональных интервьюеров и пользователей к участию в эксперименте с ИИ-обманом! В этой статье мы расскажем обо всем, что мы обнаружили, и объясним, что это значит для вас. В качестве небольшого предисловия просто знайте: компаниям необходимо немедленно изменить типы вопросов, которые они задают на собеседовании.
Статья: https://apptractor.ru/info/articles/eksperiment-naskolko-slozhno-obmanut-na-tehnicheskih-sobesedovaniyah-s-pomoschyu-chatgpt.html
Платформа: собеседования
Apk.sh
- это Bash-скрипт, который облегчает реверс-инжиниринг Android-приложений, автоматизируя некоторые повторяющиеся задачи, такие как извлечение, декодирование, восстановление и исправление APK. Он в основном использует apktool для дизассемблирования, декодирования и восстановления ресурсов и немного bash для автоматизации процесса инъекции гаджетов frida.Фичи: патчинг APK для загрузки frida-gadget.so при запуске, поддержка пакетов приложений/разделенных APK, разборка ресурсов до почти оригинального вида с помощью apktool, восстановление декодированных ресурсов обратно в бинарный APK/JAR с помощью apktool, подпись apk с помощью apksigner, поддержка нескольких архитектур (arm, arm64, x86, x86_64), не требуется рутованное Android-устройство.
Apk.Sh
на GitHub: https://github.com/ax/apk.shПлатформа: Android
⭐️: 2.9K
Кто ты, SwiftData
В статье разберем основные концепции и киллер-фичи по SwiftData. Пройдемся по основным отличиям и тому, как можно мигрировать с CoreData на актуальную SwiftData. Копнем внутрь SwiftData, узнаем, как она устроена под капотом, и подведем итоги стоит ли вообще переезжать на новый фреймворк Apple.
Статья: https://habr.com/ru/companies/tinkoff/articles/791692/
Платформа: iOS
В статье разберем основные концепции и киллер-фичи по SwiftData. Пройдемся по основным отличиям и тому, как можно мигрировать с CoreData на актуальную SwiftData. Копнем внутрь SwiftData, узнаем, как она устроена под капотом, и подведем итоги стоит ли вообще переезжать на новый фреймворк Apple.
Статья: https://habr.com/ru/companies/tinkoff/articles/791692/
Платформа: iOS
🔥2
Glur - библиотека SwiftUI, использующая Metal для отображения эффективных прогрессивных размытий, подобных тем, что использует сама Apple.
В этом проекте используется новый упрощенный Shader API для SwiftUI. Сначала автор написал шейдер Metal, который эффективно создает гауссово размытие для представления с правильным распределением гауссовых весов. Затем модифицировал его так, чтобы он изменял радиус размытия по вертикальной или горизонтальной оси, задавая значения смещения и интерполяции. Учитывая, что шейдер применяется через собственный API для SwiftUI, он ограничен этим API. Это означает, что он может применяться только к чистым представлениям SwiftUI, исключая представления, поддерживающие UIKit, такие как ScrollView.
Glur на GItHub: https://github.com/joogps/Glur
Платформа: iOS
⭐️: 820
В этом проекте используется новый упрощенный Shader API для SwiftUI. Сначала автор написал шейдер Metal, который эффективно создает гауссово размытие для представления с правильным распределением гауссовых весов. Затем модифицировал его так, чтобы он изменял радиус размытия по вертикальной или горизонтальной оси, задавая значения смещения и интерполяции. Учитывая, что шейдер применяется через собственный API для SwiftUI, он ограничен этим API. Это означает, что он может применяться только к чистым представлениям SwiftUI, исключая представления, поддерживающие UIKit, такие как ScrollView.
Glur на GItHub: https://github.com/joogps/Glur
Платформа: iOS
⭐️: 820
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Как с помощью ChatGPT реализовать раскраску во Flutter
Недавно появилась задача - реализовать фичу с раскраской картинок. Сегодня мы рассмотрим, как реализовать такую раскраску для растровых изображений с помощью алгоритма flood fill. Посмотрим, что уже есть на pub.dev, заглянем немного в теорию этого алгоритма, реализуем его на dart с помощью ChatGPT и применим во Flutter приложении.
Статья: https://habr.com/ru/articles/791886/
Платформа: кроссплатформа
Недавно появилась задача - реализовать фичу с раскраской картинок. Сегодня мы рассмотрим, как реализовать такую раскраску для растровых изображений с помощью алгоритма flood fill. Посмотрим, что уже есть на pub.dev, заглянем немного в теорию этого алгоритма, реализуем его на dart с помощью ChatGPT и применим во Flutter приложении.
Статья: https://habr.com/ru/articles/791886/
Платформа: кроссплатформа
Работаем с размером шрифта для обеспечения доступности
Если пользователь увеличит размер шрифта, это может вызвать проблемы, например, с переполнением или обрезанием текста. Мы рассмотрим некоторые из этих проблем в этой статье.
Статья: https://apptractor.ru/info/articles/rabotaem-s-razmerom-shrifta-dlya-obespecheniya-dostupnosti.html
Платформа: Android
Если пользователь увеличит размер шрифта, это может вызвать проблемы, например, с переполнением или обрезанием текста. Мы рассмотрим некоторые из этих проблем в этой статье.
Статья: https://apptractor.ru/info/articles/rabotaem-s-razmerom-shrifta-dlya-obespecheniya-dostupnosti.html
Платформа: Android
Записываем видео App Preview в симуляторе Xcode
Создание качественного видеоролика для предварительного просмотра приложения может занять много времени, тем более что у Apple есть несколько спецификаций, которым должно соответствовать ваше видео. Например, его продолжительность должна составлять от 15 до 30 секунд, а в видео должен присутствовать звук, даже если он выключен. К счастью, есть простой способ создать правильный ролик.
Статья: https://apptractor.ru/info/articles/zapisyvaem-video-app-preview-v-simulyatore-xcode.html
Платформа: iOS
Создание качественного видеоролика для предварительного просмотра приложения может занять много времени, тем более что у Apple есть несколько спецификаций, которым должно соответствовать ваше видео. Например, его продолжительность должна составлять от 15 до 30 секунд, а в видео должен присутствовать звук, даже если он выключен. К счастью, есть простой способ создать правильный ролик.
Статья: https://apptractor.ru/info/articles/zapisyvaem-video-app-preview-v-simulyatore-xcode.html
Платформа: iOS
Podcaster - минималистичное приложение для прослушивания подкастов, демонстрирующее использование Jetpack Media3 в реальном offline-first приложении. Кроме Media3, в приложении есть доступ к миллионам подкастов, подписка на подкасты по URL-адресу RSS-ленты, изменяющаяся скорость воспроизведения, загрузка для воспроизведения в автономном режиме, автоматическое фоновое обновление/синхронизация подписок, продолжение воспроизведения эпизодов с того места, на котором вы остановились, динамические темы Material3 и светлые/темные темы.
Podcaster на GitHub: https://github.com/mr3y-the-programmer/Podcaster
Платформа: Android
⭐️: 7
Podcaster на GitHub: https://github.com/mr3y-the-programmer/Podcaster
Платформа: Android
⭐️: 7
🔥1
На помойку? Никак нет! Пишем нативные приложения для дешевых китайских телефонов
Если сейчас приехать в пункт приема металлолома, то можно обнаружить просто огромные кучи различных телефонов и прочих электронных «отходов», которые стоят под открытым небом и ждут, когда придёт их черёд окончательного разложения. Однако при ближайшем рассмотрении выясняется, что многие девайсы оказываются полностью рабочими даже после недельного лежания под палящим солнцем и проливными дождями, а сдали их в чермет по причинам «не нужен, надоел, купил новый» и т. п. Я не считаю это правильным, ведь даже в простые кнопочные звонилки имеется возможность вдохнуть новую жизнь, если знать один интересный, но малоизвестный факт: для них можно писать нативные приложения на C и использовать железо телефона в своих целях. А это, на минуточку, как минимум: дисплей с подсветкой, вибромотор, динамик, клавиатура и GSM-радиомодуль с возможностью выхода в сеть. Сегодня мы с вами: узнаем, на каких аппаратных платформах работают китайские телефоны, какие существуют программные платформы и где взять для них SDK, а в практической части мы напишем 2D-игру с нуля, которая будет работать на многих китайских кнопочниках.
Статья: https://habr.com/ru/companies/timeweb/articles/791072/
Платформа: разработка
Если сейчас приехать в пункт приема металлолома, то можно обнаружить просто огромные кучи различных телефонов и прочих электронных «отходов», которые стоят под открытым небом и ждут, когда придёт их черёд окончательного разложения. Однако при ближайшем рассмотрении выясняется, что многие девайсы оказываются полностью рабочими даже после недельного лежания под палящим солнцем и проливными дождями, а сдали их в чермет по причинам «не нужен, надоел, купил новый» и т. п. Я не считаю это правильным, ведь даже в простые кнопочные звонилки имеется возможность вдохнуть новую жизнь, если знать один интересный, но малоизвестный факт: для них можно писать нативные приложения на C и использовать железо телефона в своих целях. А это, на минуточку, как минимум: дисплей с подсветкой, вибромотор, динамик, клавиатура и GSM-радиомодуль с возможностью выхода в сеть. Сегодня мы с вами: узнаем, на каких аппаратных платформах работают китайские телефоны, какие существуют программные платформы и где взять для них SDK, а в практической части мы напишем 2D-игру с нуля, которая будет работать на многих китайских кнопочниках.
Статья: https://habr.com/ru/companies/timeweb/articles/791072/
Платформа: разработка
👍2
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы посмотрели/послушали интересного про разработку?
🌐 @AppFiles
•
(iOS Ru)
Как поддерживать недельный релизный цикл и ничего не забывать•
(iOS En)
SwiftUI: Stretchy Slider Like in iOS 17•
(iOS En)
How To Save A Struct In SwiftData•
(iOS En)
Introducing Vortex: High-performance particle effects for SwiftUI•
(iOS En)
PencilKit and SwiftUI: Build a Collaborative Drawing App•
(iOS En)
SwiftUI: Universal Hero Effect•
(And Ru)
Мобильные игры в продуктовых приложениях•
(And Ru)
Разбор кода приложения по доставке пиццы•
(And Ru)
Запускаем автотесты Android на EMCEE•
(And En)
Now in Android: 99 - Jetpack Compose, Google AI on Samsung Galaxy, Play recovery tools, and more•
(And En)
The Ultimate Beginners Guide to Realm DB on Android (CRUD with Multi-Relations)•
(And En)
How to Implement Swipe to Delete with Material3•
(And En)
Intersection Types in Kotlin•
(Crs En)
Build Swift Windows News App with WinSDK•
(Dev En)
Google Cloud region is Johannesburg, MobileDiffusion, and more dev news!Что вы посмотрели/послушали интересного про разработку?
🌐 @AppFiles
AppTractor
Как поддерживать недельный релизный цикл и ничего не забывать
Доклад о том, как устроен цикл релизов в iOS-команде Яндекс Go.
Вопросы с собеседований: Что такое модификатор памяти weak в Swift
Модификатор памяти
Вот несколько ситуаций, когда использование слабых ссылок может быть уместным:
1. Связи между объектами, которые могут образовать циклическую зависимость: Если два объекта имеют взаимную зависимость, но один из них должен быть освобожден, когда другой удаляется, используйте слабую ссылку для предотвращения циклической зависимости и утечек памяти.
2. Долгосрочные ссылки на объекты в коллекциях: Если объекты добавляются в коллекцию, которая долго существует и может содержать объекты дольше, чем нужно, используйте слабые ссылки, чтобы не удерживать объекты в памяти дольше, чем это необходимо.
3. Взаимодействие с делегатами или замыканиями, которые могут удерживать объект: Если объект содержит ссылку на делегата или замыкание, которое, в свою очередь, имеет сильную ссылку на этот объект, используйте слабую ссылку для предотвращения циклической зависимости.
4. Слабые ссылки в блоках замыканий: При использовании замыканий, которые могут захватывать объекты и удерживать их в памяти, используйте слабые ссылки для предотвращения утечек памяти.
5. Связь между родителем и дочерними объектами: В некоторых случаях, когда родительский объект должен иметь ссылку на дочерние объекты, но эти дочерние объекты могут существовать и без родительского, использование слабых ссылок помогает предотвратить удержание родителя в памяти дочерними объектами.
Подробнее: https://apptractor.ru/info/techhype/weak.html
Платформа: вопросы с собеседований
Модификатор памяти
weak
в Swift используется для создания ссылок на объекты без увеличения счетчика ссылок, что позволяет объектам освобождаться из памяти, когда на них больше никто не ссылается. Другими словами, это способ создания ссылок на объекты без сохранения их в памяти, если на них больше нет активных ссылок. Это помогает избежать проблем с утечками памяти и циклическими зависимостями в коде на Swift.Вот несколько ситуаций, когда использование слабых ссылок может быть уместным:
1. Связи между объектами, которые могут образовать циклическую зависимость: Если два объекта имеют взаимную зависимость, но один из них должен быть освобожден, когда другой удаляется, используйте слабую ссылку для предотвращения циклической зависимости и утечек памяти.
2. Долгосрочные ссылки на объекты в коллекциях: Если объекты добавляются в коллекцию, которая долго существует и может содержать объекты дольше, чем нужно, используйте слабые ссылки, чтобы не удерживать объекты в памяти дольше, чем это необходимо.
3. Взаимодействие с делегатами или замыканиями, которые могут удерживать объект: Если объект содержит ссылку на делегата или замыкание, которое, в свою очередь, имеет сильную ссылку на этот объект, используйте слабую ссылку для предотвращения циклической зависимости.
4. Слабые ссылки в блоках замыканий: При использовании замыканий, которые могут захватывать объекты и удерживать их в памяти, используйте слабые ссылки для предотвращения утечек памяти.
5. Связь между родителем и дочерними объектами: В некоторых случаях, когда родительский объект должен иметь ссылку на дочерние объекты, но эти дочерние объекты могут существовать и без родительского, использование слабых ссылок помогает предотвратить удержание родителя в памяти дочерними объектами.
Подробнее: https://apptractor.ru/info/techhype/weak.html
Платформа: вопросы с собеседований
❤2
Delta - это приложение для iOS, которое позволяет эмулировать и играть в видеоигры для нескольких классических игровых систем, включая Game Boy Advance, Nintendo 64 и Nintendo DS. Delta является духовным наследником GBA4iOS - эмулятора Game Boy Advance для iOS-устройств, который автор этого проекта с Полом Торсеном сделали еще в школе. Но Delta переделана с нуля, с современными функциями iOS и поддержкой большего количества систем.
Delta на GitHub: https://github.com/rileytestut/Delta
Платформа: iOS
⭐️: 2.7K
Delta на GitHub: https://github.com/rileytestut/Delta
Платформа: iOS
⭐️: 2.7K
Масштабирование iOS в Bumble: вызовы
Эта статья — первая в серии из трех. В ней мы расскажем о работе, проделанной в течение 2022 и 2023 годов и направленной на решение проблем масштабирования наших производственных приложений для iOS.
Статья: https://apptractor.ru/info/articles/masshtabirovanie-ios-v-bumble-vyzovy.html
Платформа: iOS
Эта статья — первая в серии из трех. В ней мы расскажем о работе, проделанной в течение 2022 и 2023 годов и направленной на решение проблем масштабирования наших производственных приложений для iOS.
Статья: https://apptractor.ru/info/articles/masshtabirovanie-ios-v-bumble-vyzovy.html
Платформа: iOS
Предварительный просмотр представлений Jetpack Compose за считанные секунды
Если вы когда-либо тратили драгоценное время на создание фиктивных классов с многочисленными параметрами для сложных предварительных просмотров Compose или реализовывали мобильную функциональность без готового бэкенда, эта библиотека может стать вашим помощником номер один.
Представляем вам Preview Generator, созданный с помощью KSP (Kotlin Symbol Processing) и доступный в репозитории Sonatype.
Статья: https://apptractor.ru/info/articles/predvaritelnyy-prosmotr-predstavleniy-jetpack-compose-za-schitannye-sekundy.html
Платформа: Android
Если вы когда-либо тратили драгоценное время на создание фиктивных классов с многочисленными параметрами для сложных предварительных просмотров Compose или реализовывали мобильную функциональность без готового бэкенда, эта библиотека может стать вашим помощником номер один.
Представляем вам Preview Generator, созданный с помощью KSP (Kotlin Symbol Processing) и доступный в репозитории Sonatype.
Статья: https://apptractor.ru/info/articles/predvaritelnyy-prosmotr-predstavleniy-jetpack-compose-za-schitannye-sekundy.html
Платформа: Android
❤1
Kotlin Cheatsheet (Шпаргалка по Kotlin) - это краткое справочное руководство, содержащее описание наиболее важных синтаксисов и функций Kotlin. Большая часть информации в этой шпаргалке взята из официальной документации по Kotlin, при этом она избегает подробных объяснений. Однако эта шпаргалка как раз и предназначена для быстрого ознакомления, а не для предоставления подробной информации.
Kotlin Cheatsheet на GitHub: https://github.com/alidehkhodaei/kotlin-cheat-sheet
Платформа: Android
⭐️: 202
Kotlin Cheatsheet на GitHub: https://github.com/alidehkhodaei/kotlin-cheat-sheet
Платформа: Android
⭐️: 202
👍2
Material Design 3 для Compose 1.2
Вышел релиз 1.2 Compose Material 3, в котором появились новые компоненты, некоторые изменения в старых компонентах и расширение системы цветов Material3.
Статья: https://apptractor.ru/info/articles/material-design-3-dlya-compose-1-2.html
Платформа: Android
Вышел релиз 1.2 Compose Material 3, в котором появились новые компоненты, некоторые изменения в старых компонентах и расширение системы цветов Material3.
Статья: https://apptractor.ru/info/articles/material-design-3-dlya-compose-1-2.html
Платформа: Android