uk
Feedback
AppFiles - Mobile Development

AppFiles - Mobile Development

Відкрити в Telegram

Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.

Показати більше
2 176
Підписники
Немає даних24 години
+47 днів
+930 день
Архів дописів
Как устроен системный калькулятор. Приложение написано на сценах. Root-контроллер называется DisplayViewController. Лейбл с в
+2
Как устроен системный калькулятор. Приложение написано на сценах. Root-контроллер называется DisplayViewController. Лейбл с введенными цифрами обернули в контейнер DisplayView и добавили жесты LongPress, Swipe и Tap. Клавиатуру сделали обычный вью и назвали CalculatorKeypadView. Кнопки сделаны как UIButton. Все кнопки - объекты одного класса, даже измененный 0. Контейнер лейаутится через AutoLayout, а вот сетку с кнопками расставили с помощью фреймов. #ViewHierarchy

Чему мы научились, используя KMM для iOS В этой статье я рассказал о некоторых основных задачах и проблемах, с которыми мы ст
Чему мы научились, используя KMM для iOS В этой статье я рассказал о некоторых основных задачах и проблемах, с которыми мы столкнулись при работе с KMM на iOS. Не обо всем, но вполне достаточно, чтобы дать вам представление о KMM. Несмотря на проблемы и более длительное, чем ожидалось, время разработки, MVP был успешным, и у нас был рабочий модуль KMM, который использовался на двух платформах сразу. Мы продолжали работать с КММ, и теперь он с большим успехом используется в продакшене. KMM все еще может быть в ранней стадии разработки, но если вы проявите упорство, несмотря на все трудности, вы, безусловно, сможете использовать его. Моей целью при изложении проблем было не напугать вас, а поделиться с вами трудностями использования KMM в сегодняшнем состоянии. Статья 🇷🇺: https://apptractor.ru/kmmios Платформа: iOS/кроссплатформа 👋: 688

Flutter vs натив: почему мы переходим с первого на второй Наступил момент, когда наш продукт из стартапа с документооборотом
Flutter vs натив: почему мы переходим с первого на второй Наступил момент, когда наш продукт из стартапа с документооборотом решил перерасти в долгоиграющий проект, бизнесу захотелось перейти от количественного к качественному: более нативного поведения и вообще, чтобы ставили только пять звёзд. Как убедить бизнес, что нужно всё переписать на Native? И вообще надо ли? А что будет с командой? Захотят ли спецы на Flutter возвращаться на старый добрый Native-стек? Статья 🇷🇺: https://apptractor.ru/fltntv Платформа: разработка ⬆️: +19

Siren - библиотека уведомляет пользователя о том, что вышла новая версия приложения и предлагает обновиться. Данные берет из
Siren - библиотека уведомляет пользователя о том, что вышла новая версия приложения и предлагает обновиться. Данные берет из App Store, есть три вида предупреждений, настраиваемые правила показа, проверка совместимости устройства, локализация на более чем 40 языков. Библиотека на GitHub: https://github.com/ArtSabintsev/Siren Платформа: iOS ⭐️: 3.9К

Тренды Android-разработки 2022 - текстовая расшифровка видео Android Broadcast Вот и наступил 2022 год, а это значит, что нам
Тренды Android-разработки 2022 - текстовая расшифровка видео Android Broadcast Вот и наступил 2022 год, а это значит, что нам нужно определить тренды и вектор развития — куда в этом году стоит развиваться Android-разработчикам, что будет интересного, какую архитектуру использовать, нужны ли еще Android View, что там с Compose, готов ли он уже к продакшн и или мы уже опаздываем? На все эти вопросы отвечаем в этой статье. Статья 🇷🇺: https://apptractor.ru/drddev2022 Платформа: Android

Как справляться с техническим долгом в масштабе суперприложения Во Flo каждая команда ориентирована на продукт, даже платформ
Как справляться с техническим долгом в масштабе суперприложения Во Flo каждая команда ориентирована на продукт, даже платформенные команды. Сосредоточение внимания на продукте очень важно, но оно должно соответствовать скорости разработки, которая со временем может снижаться, давая меньше возможностей экспериментировать или приносить пользу. В этой статье Директор по инжинирингу во Flo рассказывает, как в компании работают с техническим долгом и как эволюционная архитектура и SRE помогают сбалансировать инновации и качество в мобильной разработке. Статья 🇬🇧: https://apptractor.ru/flodbt Платформа: разработка 👋: 233

Lucilla — это библиотека для полнотекстового поиска в памяти для Kotlin. Она позволяет вам создавать индекс для данных, которые не нужно сохранять в базе и выполнять поисковые запросы по нему, чтобы быстро найти соответствующие документы. Есть расширенный конвейер обработки текста с поддержкой токенизации, стемминга, удаления пунктуации и т.п., расширяемая обработка текста с настраиваемыми шагами, ранжирование результатов поиска с использованием оценок, настраиваемый анализ документов с возможностью игнорировать нежелательные поля. Библиотека на GitHub: https://github.com/haroldadmin/lucilla Платформа: Android/Kotlin ⭐️: 52

Обзор решений для навигации в iOS Навигация в iOS это сложно. Нужно уметь открывать целые цепочки экранов, проверять, не откр
Обзор решений для навигации в iOS Навигация в iOS это сложно. Нужно уметь открывать целые цепочки экранов, проверять, не открыт ли уже этот экран, передавать аргументы, анимировать переходы, навешивать интерсепторы на авторизацию, поддерживать диплинки и многое другое! В этом видео HH.ru формализует критерии выбора библиотеки мечты для навигации и прогоняет через них самые мощные из текущих решений. Видео: https://apptractor.ru/iosnav Платформа: iOS

Butterfly помогает создавать адаптивные и отзывчивые пользовательские интерфейсы для Android с помощью Jetpack WindowManager.
Butterfly помогает создавать адаптивные и отзывчивые пользовательские интерфейсы для Android с помощью Jetpack WindowManager. Кроме того, библиотека поддерживает полезные функции для интеграции Jetpack Compose и LiveData. Библиотека на GitHub: https://github.com/GetStream/butterfly Платформа: Android ⭐️: 106

Импакт-анализ на примере Android-проекта Одной из самых дорогих по времени операций на CI-сервере является прогон автотестов.
Импакт-анализ на примере Android-проекта Одной из самых дорогих по времени операций на CI-сервере является прогон автотестов. Есть множество способов их ускорения, например, распараллеливание выполнения по нескольким CI-агентам и/или эмуляторам, полная эмуляция внешнего окружения (backend/сервисы Google/вебсокеты), тонкая настройка эмуляторов (отключение анимации/Headless-сборки/отключение снепшотов) и так далее. Сегодня поговорим про импакт-анализ или запуск только тех тестов, которые связаны с последними изменениями в коде. Расскажу какие шаги нужны для импакт-анализа и как мы реализовали это в нашем проекте. Статья: https://apptractor.ru/pktnlz Платформа: Android/тестирование ⬆️: +22

4 малоизвестные функции Swift Многие разработчики работают со стандартными функциями и часто не подозревают о многих выдающих
4 малоизвестные функции Swift Многие разработчики работают со стандартными функциями и часто не подозревают о многих выдающихся возможностях, скрытых в знакомых языках и библиотеках. Эти возможности могут быть уже знакомы некоторым читателям, но для меня они в последнее время стали небольшим открытием. Статья: https://apptractor.ru/4swft Платформа: iOS/Swift 👋: 525

Исправление снижения производительности до того, как оно произойдет В этом посте описывается, как команда Netflix TVUI реализ
Исправление снижения производительности до того, как оно произойдет В этом посте описывается, как команда Netflix TVUI реализовала надежную стратегию для быстрого и легкого обнаружения аномалий производительности до того, как они будут выпущены, а часто даже до того, как они будут приняты в кодовую базу. Статья: https://apptractor.ru/ntflxprf Платформа: тестирование

Skailer - красивый музыкальный плеер, сделанный с помощью SwiftUI и демонстрирующий неоморфизм и использование MVVM-архитекту
Skailer - красивый музыкальный плеер, сделанный с помощью SwiftUI и демонстрирующий неоморфизм и использование MVVM-архитектуры. Плагин на GitHub: https://github.com/jijotp/MusicPlayer Платформа: iOS ⭐️: 4

Как меня разорили мои облачные расходы Я был и остаюсь ярым сторонником «облака». Я создал Have I Been Pwned (HIBP) как cloud
Как меня разорили мои облачные расходы Я был и остаюсь ярым сторонником «облака». Я создал Have I Been Pwned (HIBP) как cloud-first сервис, в котором использовались преимущества современных облачных парадигм, таких как Azure Table Storage, для значительного снижения затрат при сумасшедшем уровне производительности, которого я никогда раньше не мог достичь. Я написал много статей о том, как делать большие дела за небольшие деньги, и говорил по всему миру о большом успехе, которого я добился с помощью этих подходов. Один из таких докладов был «Как я поимел свои облачные расходы», поэтому кажется уместным, что сегодня я пишу о полной противоположности — о том, как мои облачные затраты поимели меня. Статья: https://apptractor.ru/cldpwnd Платформа: облако

Faradle - игра типа Wordle, сделанная на Jetpack Compose. Проект на GitHub: https://github.com/adibfara/Faradle Платформа: An
Faradle - игра типа Wordle, сделанная на Jetpack Compose. Проект на GitHub: https://github.com/adibfara/Faradle Платформа: Android ⭐️: 80

Введение в Jetpack DataStore DataStore — это библиотека хранения данных Jetpack, которая обеспечивает безопасный и последоват
Введение в Jetpack DataStore DataStore — это библиотека хранения данных Jetpack, которая обеспечивает безопасный и последовательный способ хранения небольших объемов данных, таких как настройки или состояние приложения. Он основан на корутинах Kotlin и Flow, которые обеспечивают асинхронное хранение данных. DataStore призван заменить SharedPreferences, поскольку является потокобезопасным и неблокирующимся. Он предоставляет две разные реализации: Proto DataStore, в котором хранятся типизированные объекты (поддерживаемые буферами протокола), и Preferences DataStore, в котором хранятся пары ключ-значение. В этой статье более подробно рассматривается DataStore — как он работает, какие реализации предоставляет и каковы разные варианты его использования. Мы также рассмотрим, какие преимущества и улучшения он дает по сравнению с SharedPreferences, и почему это делает DataStore достойным вашего внимания. Статья: https://apptractor.ru/info/articles/jetpack-datastore.html Платформа: Android

Учебный курс по GitHub Actions на YouTube Курс посвящен GitHub как платформе автоматизации. Фактически, он научит вас, как на
Учебный курс по GitHub Actions на YouTube Курс посвящен GitHub как платформе автоматизации. Фактически, он научит вас, как написать свой первый конвейер рабочего процесса с GitHub Actions и GitHub API для автоматизированного создания, тестирования и развертывания ПО. Есть 4 видео: 1. Написание вашего первого workflow с помощью GitHub Actions и GitHub API. 2. Создание конвейеров непрерывной интеграции (CI) Python и NodeJS с помощью GitHub Actions. 3. Непрерывное развертывание (CD) с помощью GitHub Actions. 4. Управляйте инфраструктурой AWS с помощью Terraform как профессиональный DevOps-инженер. Видео: https://apptractor.ru/gthbact

Swimat - плагин Xcode для форматирования вашего кода Swift. Плагин на GitHub: https://github.com/Jintin/Swimat Платформа: iOS ⭐️: 1.5К

Новые стенания про Google Play. «Ваше приложение нарушает правила Google Play»: сводки из ада Маркет Google Play хорошо всем
Новые стенания про Google Play. «Ваше приложение нарушает правила Google Play»: сводки из ада Маркет Google Play хорошо всем известен. Он предустановлен на всех Android-девайсах, которые продаются в магазинах, так что приток пользователей там максимальный. Однако этим преимущества, собственно говоря, и исчерпываются. Проблема Google Play, впрочем, заключается не в деньгах, а в некомпетентности сотрудников. Статья: https://apptractor.ru/prgp Платформа: Android ⬆️: +22

WindowState — это компонент для Jetpack Compose от Microsoft, который помогает вам легко получить сведения о состоянии окон н
WindowState — это компонент для Jetpack Compose от Microsoft, который помогает вам легко получить сведения о состоянии окон на устройствах с двумя, складными или большими экранами с помощью библиотеки Google Jetpack WindowManager. Компонент предоставляет текущую информацию об окне в виде состояния Compose, включая положение складывания, ориентацию и классы размера окна. Для устройств с двумя экранами и складных устройств, сочетающих различные положения и ориентации складывания, компонент представляем четыре положения дисплея, чтобы можно было воспользоваться преимуществами этих новых форм-факторов: Двойной книжный, Двойной альбомный, Одиночный портретный, Одиночный альбомный. Библиотека на GitHub: https://github.com/microsoft/surface-duo-compose-sdk/tree/main/WindowState Платформа: Android ⭐️: 9