AppFiles - Mobile Development
1.99K subscribers
2.54K photos
33 videos
8 files
3.42K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Ultron - это простой и мощный фреймворк для разработки UI-тестов для Android. Он делает ваши тесты простыми, стабильными и поддерживаемыми. Ultron основан на Espresso, UI Automator и фреймворке тестирования Compose UI. Он предоставляет множество новых замечательных возможностей и дает вам полный контроль над вашими тестами, легко настраивается и расширяется.

Ultron на GitHub: https://github.com/open-tool/ultron
Статья: https://habr.com/ru/articles/730144/
Платформа: Android
⭐️: 36
👍1
Обработка сетевых вызовов в Swift с помощью Moya

Moya - это сетевая библиотека Swift, построенная поверх Alamofire. Она выполняет сетевые вызовы без прямого взаимодействия с Alamofire и ориентирована на выполнение сетевых запросов типобезопасным способом с использованием перечислений (например, enum).

Статья: https://medium.com/simform-engineering/handling-network-calls-in-swift-with-moya-c82908c93e5
Платформа: iOS
🤷1
Ускоряем дебаг в разы. Зачем и как использовать брейкпоинты

Когда я только начинал заниматься Android-разработкой, я не понимал истинную силу брейкпоинтов. Отладку я делал всегда через Timber и чувствовал себя прекрасно. Но однажды друг показал мне их истинную силу, и я понял, что зря их не ценил.

Сейчас я покажу эту силу и вам.

Статья: https://habr.com/ru/companies/agima/articles/730008/
Платформа: Android
😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Показываем расширяемые текстовые поля в SwiftUI

Традиционно в iOS и macOS существует два вида элементов управления вводом текста: текстовые поля и текстовые представления. Разница между ними заключается в том, что текстовое поле принимает одну строку текста, а текстовое представление обеспечивает многострочное редактирование текста.

Хотя в macOS возможно - но не так часто - переопределить поведение текстового поля по умолчанию и игнорировать правило одной строки с помощью AppKit, в iOS такого не было. Но все это до iOS 16 и macOS 13 (Ventura), где в четвертой ревизии SwiftUI появилась функция, которую большинство разработчиков назвали бы... подарком. Речь идет о текстовых полях, которые могут расширяться как по горизонтали, так и по вертикали, что приводит к появлению нескольких строк, когда применяется последний вариант.

Плохая новость о расширяемых текстовых полях, также называемых прокручиваемыми текстовыми полями, заключается в том, что они не обеспечивают обратной совместимости. Мы не можем использовать их в проектах, поддерживающих iOS версии ниже 16 и macOS версии ниже 13. В таких случаях нам остается прибегнуть к уже готовым решениям, таким как текстовые представления.

Статья: https://serialcoder.dev/text-tutorials/swiftui/presenting-expandable-textfields-in-swiftui/
Платформа: iOS
1
HealthGPT - экспериментальное приложение для iOS, которое позволяет пользователям взаимодействовать с данными о своем здоровье, хранящимися в приложении Apple Health, используя естественный язык.

Построенное на базе CardinalKit, CardinalKitTemplateApplication и OpenAI. HealthGPT предлагает простое в расширении решение для тех, кто хочет создавать большие приложения на основе языковых моделей в экосистеме Apple Health.

Особенности:

• Интерфейс в стиле чата для удобного взаимодействия с медицинскими данными
• Интеграция с приложением Apple Health для обеспечения беспрепятственного использования своих данных
• Расширяемая архитектура на основе CardinalKit для легкой настройки
• Доступ к GPT-3.5 + GPT-4 через модуль OpenAI Swift
• Встроенная поддержка запросов о сне, количестве шагов, активной энергии, минутах тренировки, частоте сердечных сокращений и массе тела.

HealthGPT на GitHub: https://github.com/StanfordBDHG/HealthGPT
Платформа: iOS
⭐️: 690
2 000 импортов: организация SwiftPM-модулей в моих приложениях

Как организовать Swift-модули ваших приложений для ясности и удобства с помощью скрытой (неофициальной) функции Swift. Практичное решение для приложений малого и среднего размера.

Статья: https://betterprogramming.pub/2-000-imports-organizing-my-apps-swiftpm-modules-f7c68c22ebd2
Платформа: iOS
Суперзарядка вашего (Android) терминала

Вот некоторые из трюков и инструментов, которые я нашел за годы работы. Все они вам, конечно, не понадобятся, но если вы внедрите один или два из них в свой рабочий процесс, это даст вам преимущества в работе, которую вы выполняете каждый день. По мере продвижения вы найдете те инструменты, которые подходят вам как перчатка. Отсюда можно спуститься в кроличью нору, и кто знает, куда она может привести. Одно можно сказать наверняка: в командной строке вы будете чувствовать себя как дома и станете лучше.

Статья: https://medium.com/asos-techblog/supercharge-your-android-terminal-experience-c71448bf40cc
Платформа: Android
👍1🔥1
Как мы стриминг пилили, или 5 неочевидных палок в колеса от Flutter

Да, какие-то проблемы были из-за нашей неопытности и молодости технологии — мы стартовали проект в 2020 году. Были специфичные для Flutter баги. И были засады, которые неспецифичные для Flutter, но специфичны для натива — поэтому нативные разработчики, не спешите скроллить ленту дальше.

Статья: https://habr.com/ru/companies/surfstudio/articles/730340/
Платформа: кроссплатформа/Flutter
FlorisBoard - это бесплатная клавиатура с открытым исходным кодом для устройств Android 7.0+. Ее цель - быть современной, удобной и настраиваемой, при этом полностью уважая конфиденциальность пользователя. В настоящее время находится в состоянии ранней бета-версии.

FlorisBoard на GitHub: https://github.com/florisboard/florisboard
Платформа: Android
⭐️: 4.1K
Схема кампуса в Android приложении

Еще на первом курсе я занялся разработкой мобильного приложения для просмотра расписания. Приложение росло, появлялись новые функции, и спустя 3 года им пользуются 5 тысяч студентов ежедневно, но в нем не хватало одной важной детали, а именно схемы территории. Институт большой, в нем 25 корпусов, и найти нужную аудиторию с первого раза непросто. А на сайте только картинки с номерами зданий. Где аудитория 24б-456? Как к ней пройти? Это приходится выяснять на месте перед парой и, возможно, опаздывать на нее. Похожие кейсы можно долго перечислять, и все они решаются интерактивной схемой, которая всегда будет под рукой.

Такие библиотеки уже есть, но все они стоят больших денег, а мое приложение денег не приносит, поэтому было принято волевое решение сделать все самостоятельно.

В статье до винтиков расскажу, как сделал кастомные карты и завернул в их android-библиотеку.

Статья: https://habr.com/ru/articles/729650/
Платформа: Android
3
Как Senior iOS-инженеры оформляют код: производительность и ясность

Эта статья - результат изучения Swift Style от The Pragmatic Bookshelf и жизненного опыта. Это руководство может пригодиться iOS-инженеру любого уровня.

Статья: https://medium.com/@james.daniel.isaiah/how-senior-ios-engineers-style-code-for-performance-and-clarity-467fa2a9d1f1
Платформа: iOS
Толковых каналов по iOS не так уж много. Поэтому, рекомендуем обратить внимание и подписаться на канал нашего коллеги – iOS / Swift Tips.

Там найдете: туториалы, best practices, материалы для подготовки к собесам, ну и конечно же архитектуре, куда без нее 💪

Несколько интересных постов с канала

• Swift iOS interview questions and answers
• 7 iOS Projects to Become a Better iOS Developer
• In-App Purchases in iOS

Подписывайтесь: @swift_tips
👍1
CustomView Android. Кольцевая диаграмма для отображения статистики

В этой статье мы пройдем все этапы реализации своей CustomView, с подробным описанием шагов, чтобы каждый смог повторить такое в своих проектах. Мы будем реализовывать кольцевую диаграмму для отображения какой-либо статистики, добавим много возможностей кастомизации диаграммы под любые виды задач, а также приправим это дело красивой анимацией отрисовки и сохранением состояния. Все будет написано на языке программирования Kotlin.

Статья: https://habr.com/ru/articles/730924/
Платформа: Android
👍3
В тему недавнего HealthGPT, CardinalKit - фреймворк с открытым исходным кодом для быстрой разработки современных, совместимых приложений для цифрового здравоохранения. CardinalKit представляет основанный на стандартах модульный подход к созданию приложений для цифрового здравоохранения.

CardinalKit на GitHub: https://github.com/StanfordBDHG/CardinalKit
Платформа: iOS
⭐️: 39
Ряд Фибоначчи и Мемоизация с примерами на Swift языке

Это удобно не только для рядов Фибоначчи, но и для всего, что связано с дорогостоящими вычислениями, которые можно сохранить, кэшировать и использовать в будущих результатах.

В этом и заключается сила мемоизации.

Она используется для самых разных вещей.

Ряд Фибоначчи - отличный пример. Когда дело доходит до реального интервью.

Я слышал, как людей просили воспроизвести ряд Фибоначчи.

Это не огромный алгоритм, он сводится к одной строчке и двум случаям: конец равен нулю и единице. Но мой совет - просто запомните эту строчку, потому что она демонстрирует такую вещь как рекурсия.

Статья: https://habr.com/ru/articles/731048/
Платформа: iOS
👍1
Circuit-фреймворк для Jetpack Compose и тестирование с Robolectric

Тестирование приложений Jetpack Compose обычно основано на использовании библиотеки Compose UI Test и создании юнит-тестов поверх библиотек мокирования или DI. Однако этот подход требует наличия эмулятора и не всегда применим для использования в конвейере CI/CD, где обычно используется Robolectric вместо настоящего Android Runtime. При этом нередко в тестах используется скриншотное тестирование (например, через использование captureToImage в Compose UI Test) и сравнение рендеров с образцом, что изначально недоступно в Robolectric из-за особенностей рендеринга. В этой статье мы рассмотрим использование библиотеки Roborazzi, которая решает эту проблему, совместно с новым подходом к архитектуре Jetpack Compose приложений, которая была предложена Slack в библиотеке Circuit.

Статья: https://habr.com/ru/companies/otus/articles/731150/
Платформа: Android
Проектирование с ограничениями — Live Activity и Dynamic Island

Apple запустила виджет Live Activity в iOS 14, а в iPhone 14 Pro добавила Dynamic Island. С помощью этих обновлений Apple пытается переизобрести доставку push-уведомлений на мобильных устройствах. После запуска сразу же стало очевидно, что Swiggy, приложение для доставки еды, которое отправляет множество уведомлений о ходе доставки, идеально подходит для использования этих новых функций. И вот теперь обе функции доступны для пользователей Swiggy.

Мы были потрясены демонстрацией Apple, но, углубившись, мы поняли, что это даже нечто большее. Эта статья рассказывает о том, как мы разрабатывали новейшие виджеты для наших пользователей.

Статья: https://apptractor.ru/info/articles/proektirovanie-s-ogranicheniyami-live-activity-i-dynamic-island.html
Платформа: iOS/Дизайн и прототипирование
This media is not supported in your browser
VIEW IN TELEGRAM
Animated Navigation Bar - панель навигации с несколькими предустановленными анимациями, написанная на Jetpack Compose.

Animated Navigation Bar на GitHub: https://github.com/exyte/AndroidAnimatedNavigationBar
Платформа: Android
⭐️: 55
👍2
Типизированная обработка ошибок в Kotlin

Обработка ошибок - это не rocket science. Она проста, но не всегда понятна. В этой статье рассматриваются некоторые популярные шаблоны логической обработки ошибок в языке программирования Kotlin. Мы рассмотрим практические примеры и влияние, которое они могут оказать на когнитивную сложность и сопровождаемость программы.

Статья: https://medium.com/@mitchellyuwono/typed-error-handling-in-kotlin-11ff25882880
Платформа: Android
👍1