AppFiles - Mobile Development
2K subscribers
2.55K photos
33 videos
8 files
3.44K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Swift Identified Collections - библиотека для производительной работы с коллекциями идентифицируемых элементов. Она позволяет упростить работу с массивами и избежать многих проблем, которые им присущи.

Библиотека на GitHub: https://github.com/pointfreeco/swift-identified-collections
Платформа: Swift/iOS
⭐️: 165
Не пишем код целый месяц и нам нормально

Праздничные дни для Додо Пиццы — дни высокой нагрузки. К таким дням мы готовимся заранее и заводим специальные правила.

Самое жаркое время — в декабре: много корпоративов, заказы становятся больше, но и прибыль выше. Во многих городах плохая погода — где-то снег только выпал и дороги не расчищены, где-то очень холодно. Всё вместе это создаёт нагрузку и на IT, и на бизнес. Чтобы быть готовыми, мы регулярно проводим нагрузочные тестирования, повышаем закупки ингредиентов, распределяем заказы по пиццериям и много чего ещё.

Для мобильных разработчиков конец года раньше тоже был особенным: с 23 по 27 декабря App Store закрывался на рождественские праздники. Расскажу, как эти ограничения влияют на разработку, какие ошибки мы совершили в прошлые годы и что меняется в расписании. Возможно, что-то из практик пригодится и вам: подсветит риски, поможет договориться о код-фризе с бизнесом.

Статья: https://apptractor.ru/ddncd
Платформа: разработка
⬆️: +17
Android Meetup СберМаркет Tech 9 декабря в 18:00📱

На митапе вы узнаете:
— Как интегрировать Swift в React Native? Что такое нативный компомент и как его написать с shadow view и yoga?
— Как организовать структуру пайплайнов и внедрить Continuous Integration в React Native проект?
— Зачем использовать JetpackCompose внутри React Native?
— Как эволюционировали архитектурные подходы в мобильной разработке?

Регистрация и подробности программы: https://sbermarket.timepad.ru/event/1851300/
Dadb - библиотека Kotlin/Java для прямого подключения к устройству Android без двоичного файла adb или сервера ADB.

Библиотека на GitHub: https://github.com/mobile-dev-inc/dadb
Платформа: Android
⭐️: 186
Дело об исчезнувшем покрытии кода

Однажды, после штатного обновления версий библиотек, когда-то достаточно популярный плагин JaCoCo перестал считать покрытие кода тестами на одном из наших проектов в Каруне. Усердный поиск хоть как-то похожих проблем не принёс результатов. Помощи ждать было неоткуда, поэтому нам пришлось погрузиться в вопрос. Как же мы смогли вернуть покрытие?

Ссылка: https://apptractor.ru/kvrg
Платформа: Android
⬆️: 11
Разработка SharePlay игры

SharePlay - это новый фреймворк, который Apple представила в iOS 15.1 и которая позволяет людям в FaceTime вместе смотреть фильмы или слушать музыку. Один человек инициирует сеанс SharePlay, и все остальные участники вызова могут присоединиться. После того, как все присоединились, фильм или музыка автоматически синхронизируются для всех участников сеанса, включая паузы и поиск контента. Поскольку вы участвуете в вызове FaceTime, вы можете видеть и слышать всех участников вызова, пока вы смотрите фильм или слушаете музыку.

Статья: https://apptractor.ru/shrpl
Платформа: iOS
Messenger Clone - простое приложение, позволяющее за минуты добавить в свое iOS-приложение чат. Оно использует MessageKit и хранит данные в Firebase Firestore. Дизайн приложения вдохновлен Facebook Messenger.

Проект на GitHub: https://github.com/instamobile/messenger-iOS-chat-swift-firestore
Платформа: iOS
⭐️: 490
Первый взгляд на Material You

Во время конференции I/O 2021 Google анонсировал новый этап Material Design — Material You (или M3). Этот новый дизайн, впервые появившийся в Android 12, ориентирован на кастомизацию, отзывчивость и доступность, делая устройства еще более личными.

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

Перевод статьи: https://apptractor.ru/mtrlu
Платформа: Android
👋: 148
Удивительная цена соответствия протоколу в Swift

Проверки соответствия протоколу - это когда среде выполнения необходимо проверить, соответствует ли переменная протоколу. В вашем коде это выглядит как myVar as? MyProtocol. Обратите внимание, что операции as? также могут использоваться для приведения переменных к непротокольным типам, и они не вызывают проверку соответствия протоколу. Это часть природы динамической среды выполнения Swift. Оператор as? указывает, что во время компиляции будет потрачено время из-за отсутствия гарантии типа.

Из релизных заметок мы знаем, что операции as? достаточно медленные и можно работать «значительно» быстрее, но насколько они медленны?

Статья: https://apptractor.ru/asconf
Платформа: Swift/iOS
Sketch - библиотека обработки изображений для Kotlin. Поддерживает поворот, ресайз, вырезание, закругление углов, добавление рамок, текста, эффектов и и т.п. Sketch не требует внешних зависимостей, таких как OpenCV или OCR. На самом деле это библиотека с нулевой зависимостью, разработанная для простоты и которая служит оберткой для Java AWT BufferedImage. Библиотека предоставляет асинхронный интерфейс для всех операций с изображениями.

Библиотека на GitHub: https://github.com/reugn/sketch
Платформа: Android
⭐️: 26
Android App Shortcuts: static, dynamic, and pinned shortcuts. Использование в реальном проекте

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

Статья: https://apptractor.ru/shrtcts
Платформа: Android
⬆️: 4
Как структурировать свой Swift-код

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

Позвольте представить вам метод, который я называю Код Бургера (Burger Code).

Перевод статьи: https://apptractor.ru/brgrcd
Платформа: программирование/Swift
👋: 545
Видео Mobius 2021 Moscow

В программе 13 докладов:

Martin Mitrevski — Training dynamic ML models on iOS 15
Роман Аймалетдинов — Код, рожденный умереть
Сергей Вихляев — Архитектура, и как ее готовить
«Своя игра»: Mobius edition
Ильмир Усманов — Kotlin IR: прошлое, настоящее и будущее
Анастасия Соколан — Вдохновившись SwiftUI, создаем дизайн систему на UIKit
Никита Типун — Как заваривать декларативный чай
Александр Верещагин (Devexperts) — Как мы внедряли Kotlin Multiplatform
Андрей Чупин — Ускоряем сетевой слой ВКонтакте с HTTP/3
Вадим Петров, Александр Семашко — Как мы ускоряли создание процессов в Android
Данис Тазетдинов — SharePlay и другие способы связать пользователей iOS друг с другом
Михаил Зотьев, Евгений Сатуров — Мифы и правдивые истории про Flutter
Виталий Фридман — Разочаровавшие паттерны мобильной разработки в 2021 году — как сделать их лучше

Видео: https://apptractor.ru/info/media/video-mobius-2021-moscow.html
Платформа: iOS/Android/CrossPlatform
ColorKit - библиотека для работы с цветами в iOS. ColorKit позволяет легко найти доминирующие цвета на картинке или фотографии, возвращая цветовую палитру наиболее распространенных цветов изображения. Кроме того, ColorKit позволяет создавать цветовые палитры из набора цветов. Эта функция особенно эффективна в сочетании с вычислением доминирующего цвета. Библиотека также умеет вычислять средний цвет для изображения, цветовую разницу, разницу в контрастности, работать с Hex-кодами цветов и т.п.

Библиотека на GitHub: https://github.com/Boris-Em/ColorKit
Платформа: iOS
⭐️: 431
Жизнь за пределами кода: как быть хорошим разработчиком, не программируя 24/7

Мы, как индустрия, находимся в опасном положении, когда не просто ожидаем, но требуем от людей работы даже после работы.

Пренебрегая кандидатами на позиции, так как они не участвуют в open source проектах, выбирая для увольнения того, у кого нет «домашнего» проекта, ожидая, что работники сами по себе станут учить новые технологии, фреймворки и языки.

Статья: https://apptractor.ru/cdng247
Платформа: программирование/психология
MortyComposeKMM - пример использования Kotlin Multiplatform, демонстрирующий использование GraphQL + Jetpack Compose или SwiftUI на примере "Рика и Морти".

Проект на GitHub: https://github.com/joreilly/MortyComposeKMM
Платформа: Android/iOS
⭐️: 193
Dogtector - это приложение для определения породы собак для iOS, использующее модель YOLOv5 в сочетании с декодером объектов на основе Metal, оптимизированным для сверхбыстрого обнаружения в реальном времени на устройствах iOS. Работает все на Swift 5.5 и через XCode. 13.1, используется SwiftUI и UIKit, Combine, CoreML, Metal.

Проект на GitHub: https://github.com/bpluta/Dogtector
Платформа: iOS
⭐️: 6
Pocket AutoML - учебное пособие по созданию Android-приложений для классификации изображений с помощью глубокого обучения. Это руководство позволит создать Android-приложение, которое будет использовать deep learning модель классификации изображений, натренированную в Pocket AutoML и экспортированную в формате TensorFlow Lite. Приложение будет непрерывно классифицировать изображения с тыловой камеры устройства.

Проект на GitHub: https://github.com/OutSorcerer/pocket-automl-android-tutorial
Платформа: Android
⭐️: 7