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

Меня зовут Евгений Плёнкин. Я iOS разработчик компании СберЗдоровье. В этом материале я расскажу, что такое автоматизированное тестирование, в чём его польза в iOS-разработке и не только, сколько и каких тестов должно быть, а также какой инструмент для автотестов в iOS есть.

Статья: https://habr.com/ru/companies/docdoc/articles/732102/
Платформа: iOS/тестирование
Firebase Firestore: основные правила безопасности

В этой статье мы рассмотрим основные правила обеспечения безопасности базы данных Firestore.

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

Перевод: https://apptractor.ru/info/articles/firebase-firestore-osnovnye-pravila-bezopasnosti.html
Платформа: Firebase
Производительность Android приложений Kotlin в сравнении с С++

В целом можно с уверенностью сказать, что существуют случаи, когда производительность нативного кода колоссально превосходит производительность JVM и, несмотря на некоторое усложнение проекта, имеет смысл реализовать с помощью NDK те модули программы, которые требуют сложных вычислений, особенно если необходимо проводить вычисления не с примитивными типами, а с объектами.

Статья: https://habr.com/ru/articles/732746/
Платформа: программирование/Kotlin
👍2
PlainApp - это приложение с открытым исходным кодом, которое позволяет управлять телефоном через веб-браузер. Доступ к файлам, видео, музыке, контактам, смс, звонкам и многому другому с вашего рабочего стола с помощью безопасного и простого в использовании веб-интерфейса.

PlainApp на GitHub: https://github.com/ismartcoding/plain-app
Платформа: Android
⭐️: 457
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Как я разрабатывал кастомный Segmented Control на SwiftUI

Привет, меня зовут Тёма Загоскин, я разрабатываю крутые штуки в Авиасейлс - сервисе по покупке дешевых авиабилетов. Год назад мы начали с нуля разрабатывать новый модуль, что позволило нам использовать модный молодежный SwiftUI. Казалось бы, идеальный инструмент для легкой верстки и красивых анимаций, поэтому очередная задача написать кастомный Segmented Control казалась тривиальной, тем более, что стандартный компонент кастомизируется буквально никак.

Статья: https://habr.com/ru/articles/732640/
Платформа: iOS
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Типы Диалогов в Jetpack Compose и как их использовать

Сегодня мы погрузимся в Диалоги. Мы начнем с технических аспектов, с того, как использовать их в Jetpack Compose, и со всех сочных моментов. Затем мы рассмотрим, какие существуют различные типы диалогов и как их использовать.

Простой туториал: https://www.composables.com/tutorials/dialogs
Платформа: Android
Queryable - библиотека асинхронных представления View в SwiftUI. Это property wrapper, который может инициировать представление View и ожидать завершения от асинхронной функции, при этом полностью скрывая обработку состояния от самого представления.

Это не только освобождает View от любого вида контекста (оно просто предоставляет ответ на запрос), но вы также можете передать buttonConfirmation вниз по иерархии представлений, чтобы любое дочернее представление могло удобно вызвать подтверждение без необходимости иметь дело с фактически отображаемым пользовательским интерфейсом. Он работает с оповещениями, диалогами подтверждения, sheets, fullScreenCover и кастомными оверлеями.

Queryable на GitHub: https://github.com/SwiftedMind/Queryable
Платформа: iOS
⭐️: 67
1
5-этапный процесс рефакторинга вашей старой, не поддающейся тестированию кодовой базы и улучшения ее качества

Вы застряли в замкнутом круге, когда у вас есть старая кодовая база, не поддающаяся тестированию, но вы не можете ее рефакторить из-за отсутствия тестового покрытия?

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

В этой статье мы рассмотрим 5-шаговый процесс, позволяющий разорвать этот цикл и улучшить качество вашей кодовой базы.

Статья: https://kotlintesting.com/5-step-process-to-refactor-legacy/
Платформа: Android
CoreData для базовых задач одним методом

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

Статья: https://habr.com/ru/companies/cleverpumpkin/articles/733038/
Платформа: iOS
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
SpinDot - анимации загрузки для Android-приложения. Есть 10 разных видов, полностью совместимо с Jetpack Compose и XML, ручное управление анимацией. Работает все начиная с API 21.

SpinDot на GitHub: https://github.com/hristogochev/spindot
Платформа: Android
⭐️: 9
Как оптимизировать приложение для Android для больших экранов (и чего НЕ делать!)

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

Статья от Google: https://android-developers.googleblog.com/2023/05/optimizing-your-android-app-for-large-screens.html
Платформа: Android
👍2
Аксиоматическое программирование в Swift для создания систем любого масштаба

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

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

Статья: https://betterprogramming.pub/axiomatic-and-brain-sized-coding-in-swift-for-creating-systems-of-any-scale-ec352e7d87a9
Платформа: iOS/Swift
SwiftUI предоставляет отличную встроенную поддержку для работы с состоянием, но объектно-ориентированный подход может сделать разделение кода сложным. Именно здесь могут помочь атомы.

Atoms - это мощная и гибкая библиотека управления атомарными состояниями для Swift, предназначенная для создания компактных, независимых глобальных компонентов состояния с легкой адаптацией и композицией.

Atoms обеспечивают более гранулированный уровень управления состоянием, позволяя вам сосредоточиться на том, что вам нужно, не беспокоясь о том, куда что поместить. Избегая больших наблюдаемых объектов с большим количеством публикуемых свойств, атомы помогают избежать узких мест в производительности из-за рендеринга, сохраняя единый источник истины в архитектуре вашего приложения.

Atoms на GitHub: https://github.com/bangerang/swift-atoms
Платформа: iOS
⭐️: 79
Как я получил сертификат Associate Android Developer

Хотите, чтобы Google официально подтвердил ваши скиллы разработчика Android? Все не так уж трудно: рассказываю, как это делается.

Статья: https://habr.com/ru/articles/733932/
Платформа: Android
👍21
Двойное соответствие протоколу

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

В этой небольшой статье я хочу поделиться тем, чему я научился.

Статья: https://alexanderweiss.dev/blog/2023-04-23-double-protocol-conformance
Платформа: iOS/Swift
Compose Rich Editor - библиотека редактора для Jetpack Compose и Compose Multiplatform, полностью настраиваемая и поддерживающая общие функции rich text редактора. Она построена на основе TextField и поможет вам легко создать текстовый редактор.

Compose Rich Editor на GitHub: https://github.com/MohamedRejeb/Compose-Rich-Editor
Платформа: Android
⭐️: 241
Реализуем Универсальные ссылки на iOS

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

Статья: https://apptractor.ru/info/articles/realizuem-universalnye-ssylki-na-ios.html
Платформа: iOS