AppFiles - Mobile Development
Ir al canal en Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Mostrar más2 174
Suscriptores
Sin datos24 horas
+47 días
+930 días
Archivo de publicaciones
Стабилизируем, моделируем, модернизируем: масштабирование мобильной кодовой базы Slack
Когда вам нужно начать переделывать базу кода, чтобы решить проблему технического долга? Каков наилучший способ устранения широко распространенных несоответствий и устаревших шаблонов? Как вы можете внести значительные архитектурные улучшения в сложное приложение, продолжая добавлять новые фичи?
С этими вопросами столкнулись разработчики Slack в начале 2020 года, когда поняли, что технический долг в мобильных кодовых базах Slack настолько замедлил разработку, что это повлияло на разработку продуктов, и для решения этой проблемы потребуется серьезный рефакторинг.
Это история из двух частей о кросс-функциональной инициативе, которую запустили в компании для решения этих вопросов.
Статьи: первая и вторая
Платформа: iOS/Android
Apple выпускает подробные туториалы в течение последних нескольких лет. Мы уже видели «Введение в SwiftUI», затем углубленные «Разработка приложений для iOS», а в этом руководстве Apple разбирает конкретный пример работы приложения About Me на SwiftUI. Темы:
• Навигация
• Представление контента
• Получение контента с сервера
• Отклик на действия пользователя
Все это с кодом и пошаговыми объяснениями.
Туториал: https://developer.apple.com/tutorials/Sample-Apps
Платформа: iOS
MaterialChipSetWidget - библиотека Kotlin, которая позволяет создавать несколько подменю или одно меню, состоящее из нескольких чипов.
MaterialChipSetWidget на GitHub: https://github.com/JustinGeorgeJoseph/MaterialChipsetWidget
Платформа: Android
⭐️: 15
UIViewCanvas - пакет, который просто добавляет отображение SwiftUI (SwiftUI PreviewProvider) в Xcode к стандартным UIView или ViewController-ам.
UIViewCanvas на GitHub: https://github.com/outrowender/UIViewCanvas
Платформа: iOS
⭐️: 8
Реализация сетевой части в пошаговой игре
Ни к чему не обязывающая, но забавная статья о реализации сетевого обновления в пошаговой игре. На самом высоком уровне - об архитектуре того, как передавать сообщения между сервером и игроками.
Перевод: https://apptractor.ru/svrdnrvn
Платформа: игры
Unfurl - библиотека извлекает метаданные веб-страницы и генерит ее превью, как в Slack.
Unfurl на GitHub: https://github.com/saket/unfurl
Платформа: Android
⭐️: 181
Как один Android-разработчик за месяц сократил время запуска приложения Lyft 21%
Lyft уделяет особое внимание качеству приложений. Как райдшеринговая компания, предоставляющая жизненно важные, срочные услуги десяткам миллионов пассажиров и сотням тысяч водителей, они должны быть такими. В таком масштабе каждое замедление, пропущенный кадр или сбой приложения могут привести к потере времени тысяч пользователей. Даже незначительная заминка повлияет на множество едущих (или везущих) пользователей. К счастью, команда разработчиков Lyft внимательно следит за производительностью своего приложения. Так они впервые заметили замедление времени запуска Android-приложения для своих водителей.
Перевод: https://apptractor.ru/lyft21
Платформа: Android
SwiftLint - инструмент для соблюдения стилей и соглашений Swift, частично основанный на теперь заархивированном GitHub Swift Style Guide. SwiftLint применяет правила, которые общеприняты в сообществе Swift. Эти правила хорошо описаны в популярных руководствах по стилю, таких как, например, Ray Wenderlich Swift Style Guide.
SwiftLint на GitHub: https://github.com/realm/SwiftLint
Платформа: iOS/Swift
⭐️: 15.9К
Repost from Код Воробья для iOS разработчиков
Как устроено приложение Настройки. Сделано нативно.
Сделали на сценах. Root это split-контроллер, проявляется на 5.5+ айфоне и айпадах. Домашний экран назвали
UIPrefsListController.
Ячейки, иконки и аксесуары установлены в дефотные вьюхи. На втором скрине кликабельный текст в футере сделали через кастомную футер-вью. Кнопку добавили через формат-текст в UITextView.
Когда доступно обновление, на домашнем экране появляется ячейка с красным кружком. Это сделали картинкой с лейблом, класс назвали BadgedTableViewCell. Ячейка аккаунта названа UIAppleAccountCell.
Иконки ячеек установлены в дефолтный контейнер. Библиотека SPSettingsIcons генерирует такие иконки для SFSymbols кодом.
#ViewHierarchyКак защитить Android-приложения от реверс-инжиниринга и утечки данных
Простые советы о том, как хоть немного защитить приложение от взлома:
• Обнаружение несанкционированного доступа
• SafetyNet
• ProGuard
• Шифрование данных пользователя
• Шифрование базы данных
Статья: https://apptractor.ru/rvrsdrd
Платформа: Android
👋: 74
Groceries Store - готовый продуктовый магазин с заказом продуктов. Основная цель этого проекта — продемонстрировать современные навыки разработки Android в реальной производственной среде, сократить время обучения при переходе в мир разработки Android.
Groceries Store на GitHub: https://github.com/hieuwu/android-groceries-store
Платформа: Android
⭐️: 50
А вот иной подход для борьбы с клавиатурой - встраивать все в ScrollView.
Каждый экран в вашем приложении должен быть прокручиваемым.
В этой статье я расскажу вам, почему каждый основной экран вашего приложения должен быть встроен в ScrollView.
Как? Все в моем приложении нужно прокручивать, скажете вы?! Да, раньше я соглашался с вами, но за последние пять лет я понял, что это почти всегда верное предположение.
Я собираюсь объяснить, почему почти каждый экран в вашем приложении должен быть встроен во что-то вроде UIKit UIScrollView, UITableView или UICollectionView (или ScrollView, List или Form в SwiftUI).
Статья: https://apptractor.ru/scrlvw
Платформа: iOS
Используем новый keyboardLayoutGuide, чтобы защитить View от перекрытия клавиатурой
Мы рассмотрим новый способ решения очень старой проблемы, появившийся в iOS 15. Заключается она в положении UITextField при появлении клавиатуры.
Статья: https://apptractor.ru/keyboardlayoutguide
Платформа: iOS
Swift Async Algorithms — это open-source пакет Apple с асинхронными последовательностями и расширенными алгоритмами. Этот пакет предлагает три основные цели: интеграция с async/await, основа для алгоритмов, основанных на времени, кроссплатформенный и открытый исходный код.
Swift Async Algorithms на GitHub: https://github.com/SwiftKickMobile/SwiftMessages
Платформа: iOS/Swift
⭐️: 649
Stream Draw — это многопользовательская игра с рисованием и чатом в реальном времени, полностью созданная с помощью Jetpack Compose. Внутри: Jetpack Compose + Coroutines + Flow, Compose Chat SDK for Messaging, Hilt, Retrofit2 & OkHttp3, Moshi, Timber и прочее.
Stream Draw на GitHub: https://github.com/getStream/stream-draw-android
Платформа: Android
⭐️: 66
Как я занял третье место в конкурсе Telegram и выиграл $2000
Задача: Создать кроссплатформенный модуль на C++ для корректировки внешности. Создать приложение для iOS или Android, которое демонстрирует работу этого модуля, в режиме реального времени преобразовывая видео из фронтальной камеры.
Статья: https://apptractor.ru/tlg2000
Платформа: iOS
⬆️: +9
SwiftMessages - гибкая библиотека отображения представлений и контроллеров представлений для iOS.
View и View Controller-ы могут отображаться вверху, внизу или в центре экрана, поверх панелей навигации или вкладок. Есть интерактивные жесты закрытия, в том числе основанные на физике. Несколько режимов затемнения фона. И многое другое.
Кроме многочисленных параметров конфигурирования, SwiftMessages предоставляет несколько готовых красивых макетов и тем.
SwiftMessages на GitHub: https://github.com/SwiftKickMobile/SwiftMessages
Платформа: iOS
⭐️: 6.5K
Loop Habit Tracker - это мобильное приложение, которое помогает вам создавать и поддерживать хорошие привычки, позволяющие достигать долгосрочных целей. Подробные графики и статистика показывают, как со временем улучшались ваши привычки. Приложение полностью без рекламы и с открытым исходным кодом.
Loop на GitHub: https://github.com/iSoron/uhabits
Платформа: Android
⭐️: 4.8K
Как я сделал свой стартап в качестве соло-разработчика
У меня возникла идея создать приложение для кроссфит-тренировок для спортзалов и спортсменов. Я назвал его Dreamwod и запустил в App Store и Google Play. Я сделал два приложения, одно для iOS и одно для Android, внутренний API и веб-страницу компании. В этой статье будет рассказано о стеке технологий, способах работы, чему я научился и какие ошибки допустил.
Перевод: https://apptractor.ru/solostrt
Платформа: разработка
👋: 1К
SwiftUIX - расширения и дополнения к стандартной библиотеке SwiftUI. Библиотека пытается заполнить пробелы в еще относительно новой среде SwiftUI, предоставляя обширный набор компонентов, расширений и утилит, дополняющих стандартный декларативный фреймворк. Этот проект, является наиболее полным портом отсутствующей функциональности UIKit/AppKit, стремясь предоставить ее так, как сделала бы сама Apple.
SwiftUIX на GitHub: https://github.com/SwiftUIX/SwiftUIX
Платформа: iOS
⭐️: 4.4K
