Начинаем тестирование со Сканером Доступности
В этой статье мы рассмотрели Accessibility Scanner — инструмент для проверки некоторых аспектов доступности приложений для Android. Хотя он не гарантирует полной доступности приложений, это отличный инструмент для поиска малозаметных проблем.
Статья: https://apptractor.ru/info/articles/accessibility-scanner.html
Платформа: Android
В этой статье мы рассмотрели Accessibility Scanner — инструмент для проверки некоторых аспектов доступности приложений для Android. Хотя он не гарантирует полной доступности приложений, это отличный инструмент для поиска малозаметных проблем.
Статья: https://apptractor.ru/info/articles/accessibility-scanner.html
Платформа: Android
Apollo Kotlin (ранее известный как Apollo Android) - это клиент GraphQL, который генерирует модели Kotlin и Java из запросов GraphQL.
Apollo Kotlin выполняет запросы и мутации на сервере GraphQL и возвращает результаты в виде типов Kotlin, специфичных для запроса. Это означает, что вам не нужно разбирать JSON, передавать Maps и заставлять клиентов вручную приводить значения к нужному типу. Вам также не нужно писать типы моделей самостоятельно, потому что они генерируются из определений GraphQL, которые использует ваш пользовательский интерфейс.
Поскольку сгенерированные типы зависят от запроса, вы можете получить доступ только к тем данным, которые вы указали в запросе. Если вы не запрашиваете определенное поле в запросе, вы не сможете получить доступ к соответствующему свойству возвращаемой структуры данных.
Эта библиотека разработана в первую очередь для Android, но вы можете использовать ее в любом приложении на Java/Kotlin, включая мультиплатформенные.
Apollo Kotlin на GitHub: https://github.com/apollographql/apollo-kotlin
Платформа: Android
⭐️: 3.6K
Apollo Kotlin выполняет запросы и мутации на сервере GraphQL и возвращает результаты в виде типов Kotlin, специфичных для запроса. Это означает, что вам не нужно разбирать JSON, передавать Maps и заставлять клиентов вручную приводить значения к нужному типу. Вам также не нужно писать типы моделей самостоятельно, потому что они генерируются из определений GraphQL, которые использует ваш пользовательский интерфейс.
Поскольку сгенерированные типы зависят от запроса, вы можете получить доступ только к тем данным, которые вы указали в запросе. Если вы не запрашиваете определенное поле в запросе, вы не сможете получить доступ к соответствующему свойству возвращаемой структуры данных.
Эта библиотека разработана в первую очередь для Android, но вы можете использовать ее в любом приложении на Java/Kotlin, включая мультиплатформенные.
Apollo Kotlin на GitHub: https://github.com/apollographql/apollo-kotlin
Платформа: Android
⭐️: 3.6K
🔥1
Введение в Изоляцию в Swift
Недавно кто-то задал мне вопрос об изоляции акторов. Конкретные детали не так важны, но я действительно задумался над этим вопросом, потому что, конечно, любой тут начнет испытывать трудности. Изоляция является центральным элементом работы параллелизма в Swift, но это совершенно новая концепция.
Несмотря на новизну, она использует в основном знакомые механизмы. Вероятно, вы уже понимаете то, как работает изоляция, просто пока не осознаете этого.
Вот описание концепций в самых простых терминах, которые я смог придумать.
Статья: https://apptractor.ru/info/articles/vvedenie-v-izolyatsiyu-v-swift.html
Платформа: iOS
Недавно кто-то задал мне вопрос об изоляции акторов. Конкретные детали не так важны, но я действительно задумался над этим вопросом, потому что, конечно, любой тут начнет испытывать трудности. Изоляция является центральным элементом работы параллелизма в Swift, но это совершенно новая концепция.
Несмотря на новизну, она использует в основном знакомые механизмы. Вероятно, вы уже понимаете то, как работает изоляция, просто пока не осознаете этого.
Вот описание концепций в самых простых терминах, которые я смог придумать.
Статья: https://apptractor.ru/info/articles/vvedenie-v-izolyatsiyu-v-swift.html
Платформа: iOS
Что делать, если в проекте нечего делать: 3 совета разработчикам
Нам всем, даже когда мы любим нашу работу, любим компанию, на которую работаем, и никогда не сменили бы нашу текущую работу на другую, время от времени становится скучно. Это жизнь, всегда есть взлеты и падения, и мобильному разработчику очень просто свалиться в состояние «я понятия не имею, что делать теперь, когда продукт вышел».
Статья: https://apptractor.ru/info/articles/chto-delat-esli-v-proekte-nechego-delat-3-soveta-android-razrabotchikam.html
Платформа: разработка
Нам всем, даже когда мы любим нашу работу, любим компанию, на которую работаем, и никогда не сменили бы нашу текущую работу на другую, время от времени становится скучно. Это жизнь, всегда есть взлеты и падения, и мобильному разработчику очень просто свалиться в состояние «я понятия не имею, что делать теперь, когда продукт вышел».
Статья: https://apptractor.ru/info/articles/chto-delat-esli-v-proekte-nechego-delat-3-soveta-android-razrabotchikam.html
Платформа: разработка
Loopover - это сложная 2D головоломка в стиле кубика Рубика. Цель игры - поставить каждую ячейку на свое место. Любая ячейка, выходящая за пределы поля, "закручивается" обратно на другую сторону. В игру можно играть в 4 разных размерах: 3x3, 4x4, 5x5 и 6x6.
Loopover на GitHub: https://github.com/typicel/loopover-ios
Платформа: iOS
⭐️: 3
Loopover на GitHub: https://github.com/typicel/loopover-ios
Платформа: iOS
⭐️: 3
Optional в Swift: 5 вещей, которые вы должны знать
Optional лежат в основе Swift и существуют с первой версии языка. Опциональное значение позволяет нам писать чистый код и в то же время заботиться о возможных значениях nil.
Статья: https://apptractor.ru/info/articles/optional-v-swift-5-veschey-kotorye-vy-dolzhny-znat.html
Платформа: iOS
Optional лежат в основе Swift и существуют с первой версии языка. Опциональное значение позволяет нам писать чистый код и в то же время заботиться о возможных значениях nil.
Статья: https://apptractor.ru/info/articles/optional-v-swift-5-veschey-kotorye-vy-dolzhny-znat.html
Платформа: iOS
Как увеличить шрифт так, чтобы контейнер не поехал? Адаптация UI/UX для людей с проблемами зрения в XML и Compose
Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я продолжу рассказывать о современных подходах разработки адаптивного UI/UX для людей с ограниченными возможностями, разных национальностей и особенностями развития. В этой статьей я расскажу про разработку интерфейсов в XML и Compose для варьирующего размера шрифта. А также покажу почему атрибут contentDescription так важен.
Статья: https://habr.com/ru/articles/798473/
Платформа: Android
Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я продолжу рассказывать о современных подходах разработки адаптивного UI/UX для людей с ограниченными возможностями, разных национальностей и особенностями развития. В этой статьей я расскажу про разработку интерфейсов в XML и Compose для варьирующего размера шрифта. А также покажу почему атрибут contentDescription так важен.
Статья: https://habr.com/ru/articles/798473/
Платформа: Android
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы интересного посмотрели/послушали про разработку на этой неделе? 🌐 @AppFiles
•
(iOS Ru)
Minimal Widget Product: путь к эффективной и гибкой реализации виджетов•
(iOS Ru)
Уроки Swift: UITextField с анимированным плейсхолдером•
(iOS En)
Paging ScrollView in SwiftUI for iOS 17•
(iOS En)
Visual Effect API - Stacked Cards - ScrollView•
(iOS En)
Custom Calendar Tallies in SwiftUI•
(iOS En)
Minimal Login Setup With Firebase Email Authentication•
(And Ru)
Разработка новостного приложения. Часть 3•
(And Ru)
Hilt в многомодульный проект — пособие по внедрению зависимостей для новичков•
(And En)
THIS Is How You Create Custom Shapes in Jetpack Compose•
(And En)
New Android 15 Changes, App Update Prompts & AI Document Scanning•
(And En)
Lyricist & Voyager - Navigating the Compose Multiverse•
(And En)
Imperative, declarative, object oriented, functional: four of a Kotlin kind •
(Crs Ru)
Сериализация и десериализация — вошли и вышли•
(Crs Ru)
Адаптивная вёрстка во Flutter•
(Dev Ru)
Я.Субботник по мобильной разработке•
(Dev En)
Firebase’s Release Monitoring dashboard, Dart 3.3 release, and more dev news!•
(Dev En)
Learn C# – Full Course with Mini-Projects•
(Anl Ru)
Avito Analytics meetupЧто вы интересного посмотрели/послушали про разработку на этой неделе? 🌐 @AppFiles
AppTractor
Minimal Widget Product: путь к эффективной и гибкой реализации виджетов
Предлагаю погрузиться в мир виджетов, разработанных с помощью WidgetKit.
Legado - читалка электронных книг для Android. Поддерживает TXT и EPUB, может сама скачивать контент из веба в соответствии с пользовательскими правилами, настраиваемые шрифты, фоны и прочее, может читать вслух через сторонние сервисы и множество прочих функций.
Legado на GitHub: https://github.com/gedoor/legado
Платформа: Android
⭐️: 22.5K
Legado на GitHub: https://github.com/gedoor/legado
Платформа: Android
⭐️: 22.5K
👍1
DetailsPro - это no-code инструмент проектирования на основе SwiftUI.
• Создавайте с помощью таких представлений SwiftUI, как VStack, Text, Image и др.
• Создавайте реальные дизайны без написания кода
• Экспорт в Xcode, Swift Playgrounds и др.
Сайт: https://detailspro.app/
Платформа: iOS
• Создавайте с помощью таких представлений SwiftUI, как VStack, Text, Image и др.
• Создавайте реальные дизайны без написания кода
• Экспорт в Xcode, Swift Playgrounds и др.
Сайт: https://detailspro.app/
Платформа: iOS
🤯4
Concurrency Recipes - практические решения проблем с использованием Swift Concurrency.
Swift Concurrency может быть очень сложным в использовании. Было бы удобно задокументировать и поделиться решениями и опасностями, с которыми вы можете столкнуться в его использовании. Вряд ли этот репозиторий является исчерпывающим или представленные в нем решения безусловно великолепны. Но он развивается и точно сможет помочь вам в понимании сложного фреймворка.
Concurrency Recipes на GitHub: https://github.com/mattmassicotte/ConcurrencyRecipes
Платформа: iOS
⭐️: 505
Swift Concurrency может быть очень сложным в использовании. Было бы удобно задокументировать и поделиться решениями и опасностями, с которыми вы можете столкнуться в его использовании. Вряд ли этот репозиторий является исчерпывающим или представленные в нем решения безусловно великолепны. Но он развивается и точно сможет помочь вам в понимании сложного фреймворка.
Concurrency Recipes на GitHub: https://github.com/mattmassicotte/ConcurrencyRecipes
Платформа: iOS
⭐️: 505
GitHub
GitHub - mattmassicotte/ConcurrencyRecipes: Practical solutions to problems with Swift Concurrency
Practical solutions to problems with Swift Concurrency - mattmassicotte/ConcurrencyRecipes
❤1
Чистка Android-проекта для уменьшения размера APK, ускорения сборки и улучшения опыта разработки
В любом программном проекте разработка — это непрерывный процесс, и со временем кодовая база растет и становится все сложнее. Эта сложность может привести к замедлению времени сборки, увеличению размера APK и менее продуктивному опыту разработки. В этом руководстве мы рассмотрим некоторые методы поддержания чистоты и эффективности вашего Android-проекта.
Статья: https://apptractor.ru/info/articles/chistka-android-proekta-dlya-umensheniya-razmera-apk-uskoreniya-sborki-i-uluchsheniya-opyta-razrabotki.html
Платформа: Android
В любом программном проекте разработка — это непрерывный процесс, и со временем кодовая база растет и становится все сложнее. Эта сложность может привести к замедлению времени сборки, увеличению размера APK и менее продуктивному опыту разработки. В этом руководстве мы рассмотрим некоторые методы поддержания чистоты и эффективности вашего Android-проекта.
Статья: https://apptractor.ru/info/articles/chistka-android-proekta-dlya-umensheniya-razmera-apk-uskoreniya-sborki-i-uluchsheniya-opyta-razrabotki.html
Платформа: Android
У каждого кода запах особый: 8 причин, почему ваш код плохо пахнет
Вероятно, большая часть кода, который вы когда-либо видели, немного попахивает. В худшем случае код просто воняет. Скорее всего, это в свой код неприятный запах вы добавили сами. Но чем именно пахнет код?
Плохой запах — это поверхностный признак того, что может быть глубинной проблемой с вашей системой или качеством кода. В большинстве случаев плохой запах требует определенного рефакторинга. Хотя плохо пахнущие программы и работают, но это показатель низкого качества кода.
В этой статье мы рассмотрим восемь распространенных ошибок, приводящих к тому, что код начинает пованивать.
Статья: https://apptractor.ru/info/articles/your-code-smell.html
Платформа: программирование
Вероятно, большая часть кода, который вы когда-либо видели, немного попахивает. В худшем случае код просто воняет. Скорее всего, это в свой код неприятный запах вы добавили сами. Но чем именно пахнет код?
Плохой запах — это поверхностный признак того, что может быть глубинной проблемой с вашей системой или качеством кода. В большинстве случаев плохой запах требует определенного рефакторинга. Хотя плохо пахнущие программы и работают, но это показатель низкого качества кода.
В этой статье мы рассмотрим восемь распространенных ошибок, приводящих к тому, что код начинает пованивать.
Статья: https://apptractor.ru/info/articles/your-code-smell.html
Платформа: программирование
Прекратите спорить в Code Review — начните внедрять с правилами линтера
Правила линтинга выступают в качестве письменных соглашений об архитектуре кодовой базы и установленных лучших и необходимых практиках команды. Они помогают поддерживать последовательность кодовой базы, устраняя двусмысленности, защищают наши проекты от мелких ошибок и значительно ускоряют написание и рецензирование кода.
Благодаря Konsist мы на Android наконец-то получили долгожданный инструмент, который делает написание правил линтинга простым и доступным, не требующим сложного обучения. Инструмент, который, безусловно, является важной вехой в написании пользовательских правил, благодаря своей гениальной идее переосмыслить их как юнит-тесты.
Статья: https://apptractor.ru/info/articles/prekratite-sporit-v-code-review-nachnite-vnedryat-s-pravilami-lintera.html
Платформа: Android
Правила линтинга выступают в качестве письменных соглашений об архитектуре кодовой базы и установленных лучших и необходимых практиках команды. Они помогают поддерживать последовательность кодовой базы, устраняя двусмысленности, защищают наши проекты от мелких ошибок и значительно ускоряют написание и рецензирование кода.
Благодаря Konsist мы на Android наконец-то получили долгожданный инструмент, который делает написание правил линтинга простым и доступным, не требующим сложного обучения. Инструмент, который, безусловно, является важной вехой в написании пользовательских правил, благодаря своей гениальной идее переосмыслить их как юнит-тесты.
Статья: https://apptractor.ru/info/articles/prekratite-sporit-v-code-review-nachnite-vnedryat-s-pravilami-lintera.html
Платформа: Android
Kotest - это гибкий и элегантный мультиплатформенный фреймворк для тестирования Kotlin с широким спектром утверждений (assertion) и интегрированным тестированием свойств. Есть встроенная поддержка корутинов на каждом уровне, возможность использования функций в качестве обратных вызовов жизненного цикла теста, широкие возможности расширения, расширенная оценка условий, мощное тестирование на основе данных и многое другое. Библиотека утверждений Kotest - это первая мультиплатформенная библиотека утверждений для Kotlin с более чем 300 утверждениями. Она оснащена инспекторами коллекций, помощниками недетерминированных тестов, мягкими утверждениями, модулями для arrow, json, kotlinx-datetime. Ну а модуль тестирования свойств Kotest - это продвинутая мультиплатформенная библиотека тестов свойств с более чем 50 встроенными генераторами.
Kotest на GitHub: https://github.com/kotest/kotest
Платформа: Android/тестирование
⭐️: 4.2K
Kotest на GitHub: https://github.com/kotest/kotest
Платформа: Android/тестирование
⭐️: 4.2K
Кот в мешке: мастерство обработки ошибок внешних ключей SQLite
Сталкивались с загадочными ошибками
Статья: https://habr.com/ru/companies/kts/articles/798607/
Платформа: Android
Сталкивались с загадочными ошибками
Foreign Key
в SQLite для Android? Сегодня мы раскроем завесу тайны и расскажем как извлекать подробную информацию об ошибках этого типа.Статья: https://habr.com/ru/companies/kts/articles/798607/
Платформа: Android
Разработка, управляемая тестами (TDD), для исправления ошибок
Разработка, управляемая тестами — это отличная техника, позволяющая увеличить покрытие кода тестами и одновременно повысить качество кода. Поначалу писать неудачные тесты может быть утомительно, но в результате вы получите более полную реализацию функции, которая охватывает все ожидаемые результаты. Если использовать тесты в сочетании с исправлением ошибок, вы повысите свою уверенность и будете уверены, что ошибка не вернется в будущем.
Статья: https://apptractor.ru/info/articles/razrabotka-upravlyaemaya-testami-tdd-dlya-ispravleniya-oshibok.html
Платформа: потрындеть
Разработка, управляемая тестами — это отличная техника, позволяющая увеличить покрытие кода тестами и одновременно повысить качество кода. Поначалу писать неудачные тесты может быть утомительно, но в результате вы получите более полную реализацию функции, которая охватывает все ожидаемые результаты. Если использовать тесты в сочетании с исправлением ошибок, вы повысите свою уверенность и будете уверены, что ошибка не вернется в будущем.
Статья: https://apptractor.ru/info/articles/razrabotka-upravlyaemaya-testami-tdd-dlya-ispravleniya-oshibok.html
Платформа: потрындеть
This media is not supported in your browser
VIEW IN TELEGRAM
Swift Translate - это CLI-инструмент и плагин Swift Package, который упрощает локализацию вашего приложения. Он деконструирует ваши каталоги строк и отправляет их в модель GPT-3.5-Turbo от OpenAI для перевода. Переводит отдельные каталоги строк или все каталоги в папке, поддерживает два десятка языков, сложные каталоги строк с вариациями и заменами множественного числа и устройств, перевод совершенно новых каталогов или заполнение недостающих переводов для существующих каталогов.
Swift Translate на GItHub: https://github.com/hidden-spectrum/swift-translate
Платформа: iOS
⭐️: 13
Swift Translate на GItHub: https://github.com/hidden-spectrum/swift-translate
Платформа: iOS
⭐️: 13
Автоматизируем рутину в Android разработке: плагин для создания шаблонного кода на примере создания -api -impl модулей
Меня зовут Алексей, я ведущий разработчик платформенной команды и по совместительству лид архитектурной компетенции в проекте Альфа-Бизнес. Сегодня я расскажу, как можно автоматизировать повторяющуюся работу в андроид-разработке при помощи плагина для Android Studio.
Статья: https://habr.com/ru/companies/alfa/articles/799873/
Платформа: Android
Меня зовут Алексей, я ведущий разработчик платформенной команды и по совместительству лид архитектурной компетенции в проекте Альфа-Бизнес. Сегодня я расскажу, как можно автоматизировать повторяющуюся работу в андроид-разработке при помощи плагина для Android Studio.
Статья: https://habr.com/ru/companies/alfa/articles/799873/
Платформа: Android
Swift Playdate Examples - технические демки и руководства по разработке игр на Swift для приставки Playdate.
Playdate - это миниатюрная портативная игровая консоль с ручкой, разработанная компанией Panic, оснащенная процессором Cortex M7 и 1-битным дисплеем с разрешением 400х240. Panic предоставляет SDK для создания игр Playdate на языках C и Lua с соответствующим симулятором. Большинство игр Playdate традиционно пишутся на Lua для простоты разработки, но могут возникнуть проблемы с производительностью, которые требуют дополнительной сложности при использовании C.
Встраиваемый Swift решает эту проблему, сочетая высокоуровневую эргономику с низкоуровневой производительностью, а также обеспечивая гарантии безопасности памяти, что повышает производительность и устраняет распространенный источник ошибок.
Swift Playdate Examples на GitHub: https://github.com/apple/swift-playdate-examples
Платформа: разработка
⭐️: 192
Playdate - это миниатюрная портативная игровая консоль с ручкой, разработанная компанией Panic, оснащенная процессором Cortex M7 и 1-битным дисплеем с разрешением 400х240. Panic предоставляет SDK для создания игр Playdate на языках C и Lua с соответствующим симулятором. Большинство игр Playdate традиционно пишутся на Lua для простоты разработки, но могут возникнуть проблемы с производительностью, которые требуют дополнительной сложности при использовании C.
Встраиваемый Swift решает эту проблему, сочетая высокоуровневую эргономику с низкоуровневой производительностью, а также обеспечивая гарантии безопасности памяти, что повышает производительность и устраняет распространенный источник ошибок.
Swift Playdate Examples на GitHub: https://github.com/apple/swift-playdate-examples
Платформа: разработка
⭐️: 192
Appteka - это альтернативный магазин приложений для Android от Игоря Солкина, Lead of Mobile Design Platform в Авито. Фичи магазина: может извлекать APK, установленные на вашем Android-устройстве, и переносить их на SD-карту, быстрый и простой в использовании, извлекает практически все приложения, включая системные, не требует ROOT-доступа, загружает Apk в специальный Appteka.Store, предусмотрена опция поиска приложений, поддержка функций Android 9.0, возможность резервного копирования и установки Apk с SD-карты, чат в реальном времени для обсуждения приложений.
Appteka на GitHub: https://github.com/solkin/appteka-android
Платформа: Android
⭐️: 230
Appteka на GitHub: https://github.com/solkin/appteka-android
Платформа: Android
⭐️: 230
👍3🤮1