mobDev()
157 subscribers
62 photos
5 videos
98 links
🔥 Твой фид мобильной разработки
➡️ Новости, статьи, видео, квизы
👨‍💻 #android #ios #crossplatform
Download Telegram
🥲🥲🥲
😢10
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем моки при помощи SwiftMockGenerator

SwiftMockGeneratorForXcode — расширение для Xcode, которое позволяет создавать моки, пустышки, стабы и шпионов в несколько кликов для проведения юнит-тестирования.

Моки имитируют исходящее взаимодействие;
Стабы предоставляют готовые ответы для разных сценариев.

Материалы:
🔗 Страница на GitHub

#ios
👍3
Нюансы OAuth в мобильных приложениях

На Habr вышел большой лонгрид на тему OAuth в мобильных приложениях под Android. В качестве нюансов реализации автор выделяет:

— Открытие страницы логина: через WebView, внешний браузер или ChromeCustomTabs/SafariVC;

— Обновление токенов: не забыть указать grant_type=refresh_token и refresh_token;

— Отсутствие браузера: спойлер, он все равно понадобится для использования ССТ;

— Logout: нужно очистить токены, файлы и кэши.

Реализовать OAuth в Android можно с помощью SDK или вручную. Именно второй способ рассматривается в статье. Из плюсом можно отметить то, что мы получаем полный контроль над реализацией (в отличие от SDK). Однако, код придется писать ручками с нуля, не забывая про все описанные выше нюансы.

Материалы:
🔗 Статья на Habr

#android
This media is not supported in your browser
VIEW IN TELEGRAM
Рисуем на холсте в Android-приложении

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

Материалы:
👉 Проект на GitHub
👉 Демо-версия по работе с изображениями

#android #ui
Регулярные выражения в Kotlin

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

Вы узнаете:
→ Как создать объект Regex
→ Методы регулярных выражений
→ Как предопределять классы и группы
→ Про логические операторы

Материалы:
🔗 Статья про регулярные выражения в Kotlin

#android #kotlin
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Когда начал собираться домой в пятницу вечером…
🔥6😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Инструмент для создания анимаций на Flutter

Rive, ранее известный, как 2Dimensions — инструмент, который позволяет создавать красочных персонажей или интерфейсы. Также с его помощью удобно добавлять загрузочные файлы в приложения.

Материалы:
Официальный сайт Rive

#flutter
Наглядное пособие для шорткатов для XCode

Автор вдохновился референсом от Tower и создал русскоязычную версию шорткатов для XCode с помощью Sketch по следующим разделам:
— Навигация
— Поиск
— Вкладки
— Редактирование
— Навигатор
— Документация
— Отладка
— Запуск

Материалы:
🔗GitHub проекта
🔗pdf-версия файла

#ios
This media is not supported in your browser
VIEW IN TELEGRAM
Используем Drag and Drop в Android

Drag and Drop позволяет пользователям самостоятельно взаимодействовать с элементами интерфейса. Предлагаю ознакомиться с гайдом, из которого вы узнаете:

— Как создавать Drag and Drop операции
— Как кастомизировать тени
— Как перетаскивать объекты по экрану в новую область

Материалы:
👉 Гайд по Drag and Drop в Android

#android
👍1
Qiwi поделились опытом по внедрению KMM

Kotlin Multiplatform Mobile позволяет сделать компоненты общими для всех платформ, благодаря чему изменения и корректировки происходят одновременно на Android и iOS. Стоит упомянуть и нативную производительность, то есть Kotlin компилируется в Objective-C и bytecode. В статье Qiwi делятся своим опытом внедрения KMM, а также подробно описывают проблемы, с которыми столкнулись (большая их часть возникла с iOS-платформой).

Материалы:
🔗Статья на Habr

#crossplatform
This media is not supported in your browser
VIEW IN TELEGRAM
Вот так нужно заканчивать трудовую неделю!
👍5🤬1
Учимся работать со справочниками в iOS

Может ли работа со справочниками быть простой и быстрой? Оказывается может. Рекомендую ознакомиться со статьей, в которой автор делится опытом перехода на SQLite и библиотеку SQLite.swift для справочников. Благодаря такому решению удалось:

1. Избавиться от большего количество JSON-файлов
2. Уменьшить вес приложения на 15мб
3. Упростить процесс обновления справочника

Материалы:
Статья про справочники в iOS

#ios
Библиотека для создания превью страниц

Unfurl — библиотека для Android, которая извлекает метаданные веб-страниц и генерирует их превью.

Материалы:
🔗GitHub проекта

#android
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Гайд по созданию кастомного лоадера в UIKit

При создании кастомизированного лоадера автор использовал фреймворк для работы с анимациями, CoreAnimation, стандартные инструменты UIKit, а также UIBezierPath — класс, который создает контекст для рисования и содержит все необходимые для этого инструменты.

Материалы:
👉 Исходный код
👉 Гайд на Habr

#ios #swift
😁1
И вот так каждый раз 🥲
👍4
Как работают корутины в Kotlin

Корутины — асинхронные операции в Android, которые используются для управления асинхронными задачами. С их помощью можно достаточно просто переключаться между потоками и обрабатывать исключения. Предлагаю взглянуть на механизм корутин изнутри с помощью статьи, прикрепленной ниже. Хороший разработчик должен знать все о работе инструментов, с которыми работает.

Материалы:
👉 Статья о том, как работают suspend под капотом

#android #kotlin
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Свайпы как в Telegram

Fragula 2 — это расширение библиотеки NavComponent, позволяющее реализовать паттерн swipe-to-dismiss в приложении. По сути представляет собой ViewPager2 с кастомной анимацией. Вскоре автор обещает добавить вертикальный скролл.

Материалы:
🔗 GitHub проекта

#android
👍5
Структурированный параллелизм в Swift

Как вы знаете, каждая строчка кода выполняется последовательно и не может быть выполнена, пока не завершится выполнение предыдущей. Но что, если нам нужно добиться другого поведения? Structured Concurrency — механизм, с помощью которого можно параллельно выполнять отдельные элементы задач. Он будет полезен при решении задач:
— Ожидание зависимостей
— Разные типы результатов
— Неструктурированные и detached

Подробнее с механизмом и примерами решения задач можно ознакомиться в статье ниже.

Материалы:
🔗 Статья на Хабр

#ios #swift
👍1
Ищем код, который не используется в приложении

Periphery — инструмент, который предназначен для определения неиспользуемого кода в проекте на Swift. Он строит собственный граф проекта и на его основе определяет декларации, на которые нет ссылок.

Материалы:
👉 GitHub проекта

#ios #swift
Всем хороших выходных!
👍4
Функциональное тестирование в Android

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

+ Позволяет выявить системные ошибки;
+ Гарантирует выполнение всех или большей части требований;
+ Улучшает качество продукта;
+ Снижает риски, в том числе финансовые, связанные с проектом.

Инструментами для проведения функционального тестирования являются JUnit и Mockito. Подробнее можно ознакомиться в статье, прикрепленной ниже.

Материалы:
📰 Статья на Medium

#android