AppFiles - Mobile Development
1.99K subscribers
2.53K photos
33 videos
8 files
3.41K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Чем различаются Dagger, Hilt и Koin

В этом видео (есть и статья) Паулина объясняет, чем различаются Dagger, Koin и Hilt, и каковы последствия этих различий. Рассматривается время сборки, производительность во время выполнения и обработка ошибок. Вы также узнаете, почему говорят, что Koin построен на основе Service Locator, а не в шаблоне внедрения зависимостей.

Платформа: Android
YouTube: 👍: 47
Medium: 👏 257
PermissionsSwiftUI отображает и обрабатывает разрешения в SwiftUI. Пользовательский интерфейс легко настраивается и напоминает стиль Apple. Работает с 12 разрешениями, есть дефолтные определения и иконки, но можно все сделать и свое. Доступно через Swift Package Manager.

Платформа: iOS
GitHub: https://github.com/jevonmao/PermissionsSwiftUI
⭐️: 98
Уроки самой страшной дизайн-катастрофы в американской истории

Не про код, но про важность UI/UX:

Проблемы начались с пульта управления реактором, который после засорения системы охлаждения станции загорелся шквалом сигнальных ламп и загудел хором звуковых сигналов. Одновременно зажглись буквально сотни сигналов и огней. Операторы поспешили их выключить, пытаясь разобраться в проблеме. Их начал накрывать туман замешательства. Они не могли понять, что происходит?! Сама панель не давала четкого представления о работе АЭС, бессмысленно группируя кусочки информации. Например, панель, показывающая утечки реактора, была рядом с панелью, сообщающей о проблемах лифта. Позже следователи обнаружили, что красные огни на панели управления могли означать четырнадцать разных вещей, плохих и хороших.

Платформа: ядерный реактор
Советы по реализации темного режима в iOS

Уже прошло достаточно времени с момента появления темного режима в iOS 13, и много было написано о динамических цветах, наборах цветов, динамических изображениях/материалах и других инструментах для поддержки этой новой функции. В этой статье автор, столкнувшись с некоторыми проблемами, погружается в возможности UIKit, которые могут быть полезны при реализации темной темы.

Платформа: iOS
Medium: 👏 325
Expenso - простое приложение для контроля расходов, созданное для демонстрации современных компонентов и MVVM архитектуры.

В Android-версии внутри: Kotlin, корутины, Android Architecture Components (Stateflow, Flow, ViewModel, Room, Jetpack Navigation, DataStore), Material Components for Android.

В iOS все попроще - SwiftUI и CoreData.

Платформа: iOS/Android
GitHub: https://github.com/Spikeysanju/Expenso
⭐️: 180
3 вещи, которые я перестала делать вручную в Android-разработке

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

Это:

1. Ручное обновление зависимостей.
2. Ручное форматирование кода и удаление неиспользуемых импортов
3. Ручная загрузка в Google Play

Платформа: Android
Medium: 👏 136
#ЧитателиПишут: На этой неделе писал про PermissionsSwiftUI - библиотеку запроса разрешений на SwiftUI. Оказывается, что это копия большой либы SPPermissions, которая делает тоже самое, но на чистом Swift. Запрос прав на 12 доступов, полная настройка UI, поддержка iPad, темный режим. Автор библиотеки - Иван, читатель канала, привет ему и спасибо за информацию.

Платформа: iOS
GitHub: https://github.com/varabeis/SPPermissions
⭐️: 4.2К
Самые популярные вопросы с собеседований Swift и iOS разработчиков 2021

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

Вот тут у нас есть некоторые технические вопросы с ответами.

Платформа: iOS
Medium: 👏 335

P.S. На фото видимо типичный iOS-разработчик, 35 лет 😀
Flutter пока не смог стать надежным кроссплатформенным решением

Автор статьи (мой перевод на русский) пытался сделать приложение на Flutter для iOS, но столкнулся с рядом ошибок. Вывод его - платформа пока не очень готова к серьезной работе. По крайней мере в разрезе тех функций, которые нужны ему.

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

Судя по тому немногому, что я вижу со стороны, я серьезно сомневаюсь, что Google удастся сделать разработку с Flutter таким же безупречным опытом, как нативная разработка.

Платформа: Flutter
Medium: 👏 1.4К
Boardgame.io - бесплатный открытый клиент-серверный движок для пошаговых многопользовательских “настольных” игр. Вы пишите простые функции, описывающие, как состояние игры изменяется при выполнении определенного хода, а движок делает все остальное, автоматически преобразуя их в игру и поддерживая все многопользовательские и игровые функции. Правда, все JS, но на нем делают и мобильные проекты.

Сайт: https://boardgame.io/
Контрольный список качества приложения

C первых дней появления мобильных приложений ожидания пользователей значительно выросли. Разработчики должны делать приложения не просто которые работают, но работают хорошо - от конфиденциальности до взаимодействия с пользователем. Этот раздел на сайте Google для разработчиков поможет вам быть в курсе последних требований и представляет собой чеклист с подробными руководствами в выбранных областях.

Платформа: Android
Сайт: https://developer.android.com/quality
#ЧитателиПишут: Еще одна библиотека от автора SPPermissions - SPAlert. Это попапы в стиле Apple Music или отзывов в AppStore. Есть Done, Heart, Error и другие заданные шаблоны, можно конечно делать и свои на основе кастомных изображений или SFSymbols. Поддерживается темный режим.

Платформа: iOS
GitHub: https://github.com/varabeis/SPAlert
⭐️: 970

Делитесь своими любимыми и интересными библиотеками!
Анти-паттерны RecyclerView

RecyclerView в разработке под Android - очень полезная first-party библиотека, которая заменяет традиционный ListView. За свою карьеру я видел несколько анти-шаблонов RecyclerView и недопонимание концепции его адаптера. Недавно просмотрев соответствующий фрагмент кода и подробно объяснившись с одним из моих младших разработчиков, я решил поделиться своими знаниями, поскольку считаю, что это концепции, которые должен понимать каждый Android-разработчик.

Платформа: Android
Medium: 👏 582
Примеры работы Jetpack Compose для десктопов. Два проекта от одного разработчика: stackzy для определения технологического стека приложения и name that color для определения цветов.

Внутри MVVM, Kotlin, корутины, Dagger2.

Платформа: Android
GitHub: https://github.com/theapache64/stackzy
GitHub: https://github.com/theapache64/name-that-color-desktop
⭐️: 146
Нанять тимлида

За время работы в Рамблере, Авито и JetBrains Егор Толстой прособеседовал семьдесят тимлидов и нанял шесть из них. У него появился список вопросов и кейсов, которые он разбирает с каждым кандидатом. Если вы ищете работу, то этот чек-лист поможет разобраться, что вас могут спросить на интервью.

Платформа: любая
Сайт: https://etolstoy.com/teamlead-interview/
WatchLayout - простой макет для UICollectionView, представляющий его элементы в виде кругов.

Платформа: iOS
GitHub: https://github.com/HocTran/WatchLayout
⭐️: 7
GitHub Actions для Android-разработки

Если вы разрабатываете приложения для Android, скорее всего, в какой-то момент своей карьеры вы столкнетесь с тем или иным видом CI. Если вы знакомы с фрагментацией Android, то большой выбор систем CI будет вам знаком.

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

Платформа: Android
Перевод: русский
Medium: 👏 536
OnTap - документация по SwiftUI “от разработчиков к разработчикам”. Основана на реальных задачах и содержит тысячи работающих примеров кода.

Платформа: iOS
Сайт: https://joinontap.com/
Reddit: 🔝793
Создавая серверную часть Uber: пошаговое руководство по проектированию системы

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

Платформа: Backend
Medium: 👏 1.2К
IridescentView - это кастомный ImageView, который применяет радужный переливчатый эффект к изображениям в соответствии с поворотом устройства. Наклон регистрируется акселерометром и используется для расчета эффекта.

Компонент доступен для Android Java и Xamarin.Android.

Платформа: Android
GitHub: https://github.com/alexandrehtrb/IridescentView
⭐️: 4