AppFiles - Mobile Development
2.01K subscribers
2.56K photos
33 videos
8 files
3.45K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
SVGView - парсер SVG для SwiftUI. Фреймворк может анализировать файлы SVG и представлять их содержимое в SwiftUI. Он предоставляет вам возможность не только показывать файлы SVG, но и добавлять к ним интерактивность, обрабатывать ввод пользователя и использовать SwiftUI для придания им движения.

Библиотека на GitHub: https://github.com/exyte/SVGView
Платформа: iOS
⭐️: 67
Почему мы отказались от модульного тестирования классов и перешли на поведенческий подход

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

• Тесты классов делают изменения болезненными
• Тесты классов не проверяют фактическое поведение
• Тесты классов сложно понять

Перевод статьи: https://apptractor.ru/bhvrltst
Платформа: тестирование
👋: 407
Этапы работы Jetpack Compose

Как и большинство UI-фреймворков, Compose рендерит кадр в несколько различных этапов. В системе Android View есть 3 этапа: Measure, Layout и Drawing. Compose очень похож, но имеет важный дополнительный этап Composition в начале.

Статья: https://apptractor.ru/cmpstn
Платформа: Android
⬆️: 11
AvatarView - библиотека для работы с изображениями профилей или аватаров в Android-приложениях. Поддерживает загрузку нескольких изображений профиля, границы, индикаторы, плейсхолдеры или просто отображение инициалов.

Библиотека на GitHub: https://github.com/getStream/avatarview-android
Платформа: Android
⭐️: 92
Оценка эффективности страниц в Airbnb на Android

Собственная оценка эффективности страницы (Page Performance Score, PPS) Airbnb предназначена для отражения сложных и комплексных реалий эффективности работы приложений путем сбора множества ориентированных на пользователя показателей эффективности и объединения их в единую оценку от 0 до 100. В этом посте мы подробно рассмотрим, как мы определяем и реализуем эти метрики на Android.

Перевод статьи: https://apptractor.ru/bnbdrpf
Платформа: Android
👋: 86
SupportDocs - библиотека для создания и показа справочных материалов в iOS-приложении. Работает все на основе GitHub - вы пишете там документацию с разметкой, GitHub Pages превращает ее в страницы, GitHub Action генерит JSON, SupportDocs скачивает и показывает пользователям.

Библиотека на GitHub: https://github.com/psalzAppDev/TwoSlideOverSupport
Платформа: iOS
⭐️: 1
Вертел я ваши UIView

В этой статье разбирают все основные возможности работы с базовым классом CALayer. Теперь можно смело приступать к анимациям и создавать крутые интерфейсы.

Статья: https://apptractor.ru/vrtuivw
Платформа: iOS
⬆️: 11
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Ratingbar - настраиваемая форма с оценками на Jetpack Compose.

Библиотека на GitHub: https://github.com/a914-gowtham/compose-ratingbar
Платформа: Android
⭐️: 38
TimelineView - настраиваемая и простая в использовании библиотека для показа временной шкалы в Android-приложении. Может использоваться как автономный View или как декоратор RecyclerView.

Библиотека на GitHub: https://github.com/lriccardo/TimelineView
Платформа: Android
⭐️: 33
Как создать собственный анимированный Tab Bar для iOS-приложения

Каждый UI-дизайнер любит красивые и анимированные панели вкладок. С другой стороны, это кошмар для разработчика, который должен реализовать этот дизайн. Конечно, будет проще использовать нативный таб бар Apple и сосредоточиться на более интересных вещах, таких как реализация бизнес-логики. Но что, если нам нужно создать настраиваемую панель вкладок? С чего начать?

Статья: https://apptractor.ru/tbbrios
Платформа: iOS
👋: 29
Масштабируем Jetpack Compose Navigation

В одном из моих личных проектов я решил использовать Jetpack Compose в качестве основной технологии. Это означало, что моё приложение будет иметь одну Activity, а вся навигация будет выполняться с помощью Compose. Когда я начал планировать проект, библиотеки Compose Navigation ещё не было, как не было и способа внедрить ViewModel в Composable без использования компонентов Activity, Fragment или View.

Но примерно за полгода до публикации этой статьи появилась библиотека Jetpack Compose Navigation, и Dagger-Hilt стал поддерживать Compose. Сегодня я расскажу о моём пути: поделюсь видением проблемы масштабируемости навигации на примерах Google и предложу её возможное решение.

Статья: https://apptractor.ru/cmpsnv
Платформа: Android
⬆️: 16
Вы когда-нибудь хотели писать асинхронный код также просто, как синхронный? AwaitKit - это мощная Swift-библиотека, вдохновленная спецификацией Async/Await в ES8 (ECMAScript 2017), которая реализует мощный способ последовательного написания асинхронного кода. Внутри она использует PromiseKit для создания и управления промисами.

Библиотека на GitHub: https://github.com/tomCompsoft/AwaitKit
Платформа: iOS
⭐️: 0
JetBrains Fleet: переоцененный редактор или новое слово в IDE?

JetBrains анонсировала новый гибрид текстового редактора и IDE под названием JetBrains Fleet, и похоже, что весь Интернет сошел с ума из-за этого объявления. Эндрю Зуо написал статью о том, каким он видит новый редактор кода и сказал в ней, что во Fleet нет ничего нового. Статья собрала 1.4К апвоутов, однако в ней же ему быстро напихали комментариев и сказали, что он мыслит слишком узко. И это при том, что сам редактор никто еще не видел.

Статья: https://apptractor.ru/jbflt
Платформа: среда разработки
👋: 1.4К
Neon - простая аркадная игра на Jetpack Compose, Kotlin и корутинах.

Проект на GitHub: https://github.com/mariodujic/Neon
Платформа: Android
⭐️: 16
Ответ на интервью, который стоил мне работы в 314+ тысяч долларов

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

Статья: https://apptractor.ru/intrans
Платформа: собеседование
👋: 457
Кодогенерация DTO: зачем она нужна и как её настроить

Data Transfer Object — модель данных, которые мы передаём из одного слоя приложения в другой. В Яндекс Go активно используется DTO.

Правильно написанная модель позволяет разрабатывать разные слои приложения независимо — но нужно следить за актуальностью самой модели на каждом слое. Например, если ошибиться с названием переменной, то клиент не сможет декодировать полученные из сети данные и пользователь не увидит желаемые данные. Такую ошибку легко совершить, в n-й раз перепечатывая названия переменных под каждый слой — а разработчики и правда должны рутинно это делать при любом изменении (или расширении) исходного формата данных. Ещё сложнее заметить ошибку на код-ревью.

Поэтому разработчики решили добавить механизм, который сам бы составлял и переписывал код моделей DTO в зависимости от исходного формата.

Статья: https://apptractor.ru/yadto
Платформа: iOS
⬆️: 9
ProgressIndicatorView - различные индикаторы прогресса, созданные с помощью SwiftUI. Всего 5 индикаторов в одной библиотеке.

Библиотека на GitHub: https://github.com/exyte/ProgressIndicatorView
Платформа: iOS
⭐️: 19
2021 для iOS и macOS разработчиков — главное от Apple

Это был захватывающий год новых технологий и функций, призванных помочь разработчикам в создании невероятного опыта и упростить разработку. Apple подводит итоги года и представляет «технологический» обзор года для разработчиков.

Обзор: https://apptractor.ru/appl2021
Платформа: iOS
Fluid работает на основе ResultBuilder и собственного механизма разметки. С его помощью вы можете использовать декларативный синтаксис для создания пользовательского интерфейса с помощью UIKit.

Библиотека на GitHub: https://github.com/octree/Fluid
Платформа: iOS
⭐️: 5
5 вещей, на которые стоит обратить внимание iOS-разработчикам в 2022 году

В этом коротком посте я перечислил пять вещей, которые, как я считаю, помогут вам стать лучшим разработчиком в 2022 году. Или, скорее, в первой половине 2022 года. Я ожидаю, что Apple запустит несколько новых интересных вещей на WWDC в этом году, и они займут ваше внимание во второй половине года.

Перевод: https://apptractor.ru/ios2022
Платформа: iOS
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Contacts Android - самый простой способ получить полный доступ ко всем контактам в Android без необходимости иметь дело с Contacts Provider и курсорами. Библиотека написана на Kotlin с совместимостью с Java. В этом же репозитории находится документация и практические руководства по работе с контактами в Android.

Проект на GitHub: https://github.com/vestrel00/contacts-android
Платформа: Android
⭐️: 204