This media is not supported in your browser
VIEW IN TELEGRAM
Создаем моки при помощи SwiftMockGenerator
SwiftMockGeneratorForXcode — расширение для Xcode, которое позволяет создавать моки, пустышки, стабы и шпионов в несколько кликов для проведения юнит-тестирования.
— Моки имитируют исходящее взаимодействие;
— Стабы предоставляют готовые ответы для разных сценариев.
Материалы:
🔗 Страница на GitHub
#ios
SwiftMockGeneratorForXcode — расширение для Xcode, которое позволяет создавать моки, пустышки, стабы и шпионов в несколько кликов для проведения юнит-тестирования.
— Моки имитируют исходящее взаимодействие;
— Стабы предоставляют готовые ответы для разных сценариев.
Материалы:
🔗 Страница на GitHub
#ios
👍3
Нюансы OAuth в мобильных приложениях
На Habr вышел большой лонгрид на тему OAuth в мобильных приложениях под Android. В качестве нюансов реализации автор выделяет:
— Открытие страницы логина: через WebView, внешний браузер или ChromeCustomTabs/SafariVC;
— Обновление токенов: не забыть указать
— Отсутствие браузера: спойлер, он все равно понадобится для использования ССТ;
— Logout: нужно очистить токены, файлы и кэши.
Реализовать OAuth в Android можно с помощью SDK или вручную. Именно второй способ рассматривается в статье. Из плюсом можно отметить то, что мы получаем полный контроль над реализацией (в отличие от SDK). Однако, код придется писать ручками с нуля, не забывая про все описанные выше нюансы.
Материалы:
🔗 Статья на Habr
#android
На Habr вышел большой лонгрид на тему OAuth в мобильных приложениях под Android. В качестве нюансов реализации автор выделяет:
— Открытие страницы логина: через WebView, внешний браузер или ChromeCustomTabs/SafariVC;
— Обновление токенов: не забыть указать
grant_type=refresh_token и refresh_token;— Отсутствие браузера: спойлер, он все равно понадобится для использования ССТ;
— Logout: нужно очистить токены, файлы и кэши.
Реализовать OAuth в Android можно с помощью SDK или вручную. Именно второй способ рассматривается в статье. Из плюсом можно отметить то, что мы получаем полный контроль над реализацией (в отличие от SDK). Однако, код придется писать ручками с нуля, не забывая про все описанные выше нюансы.
Материалы:
🔗 Статья на Habr
#android
Хабр
OAuth в мобильных приложениях
Привет! Меня зовут Мялкин Максим, я занимаюсь мобильной разработкой в KTS . Ни один сервис не обходится без логина. Часто в мобильных приложениях требуется интегрировать вход через сторонние соцсети —...
This media is not supported in your browser
VIEW IN TELEGRAM
Рисуем на холсте в Android-приложении
Sketchbook — это библиотека Jetpack Compose для рисования контуров и изображений на холсте. Предоставляет необходимый функционал для взаимодействия с холстом: выбор цвета, палитру и дополнительные фичи.
Материалы:
👉 Проект на GitHub
👉 Демо-версия по работе с изображениями
#android #ui
Sketchbook — это библиотека Jetpack Compose для рисования контуров и изображений на холсте. Предоставляет необходимый функционал для взаимодействия с холстом: выбор цвета, палитру и дополнительные фичи.
Материалы:
👉 Проект на GitHub
👉 Демо-версия по работе с изображениями
#android #ui
Регулярные выражения в Kotlin
Regexp нужны для облегчения работы со строками. С их помощью можно не только проверять, но и производить различные манипуляции более простым способом. Предлагаю вам ознакомиться со статьей, которая представляет из себя подробный гайд по работе с regexp.
Вы узнаете:
→ Как создать объект Regex
→ Методы регулярных выражений
→ Как предопределять классы и группы
→ Про логические операторы
Материалы:
🔗 Статья про регулярные выражения в Kotlin
#android #kotlin
Regexp нужны для облегчения работы со строками. С их помощью можно не только проверять, но и производить различные манипуляции более простым способом. Предлагаю вам ознакомиться со статьей, которая представляет из себя подробный гайд по работе с regexp.
Вы узнаете:
→ Как создать объект Regex
→ Методы регулярных выражений
→ Как предопределять классы и группы
→ Про логические операторы
Материалы:
🔗 Статья про регулярные выражения в Kotlin
#android #kotlin
kodeco.com
Regular Expressions in Kotlin
Learn how to improve your strings manipulation with the power of regular expressions in Kotlin. You’ll love them!
👍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
Rive, ранее известный, как 2Dimensions — инструмент, который позволяет создавать красочных персонажей или интерфейсы. Также с его помощью удобно добавлять загрузочные файлы в приложения.
Материалы:
→ Официальный сайт Rive
#flutter
Наглядное пособие для шорткатов для XCode
Автор вдохновился референсом от Tower и создал русскоязычную версию шорткатов для XCode с помощью Sketch по следующим разделам:
— Навигация
— Поиск
— Вкладки
— Редактирование
— Навигатор
— Документация
— Отладка
— Запуск
Материалы:
🔗GitHub проекта
🔗pdf-версия файла
#ios
Автор вдохновился референсом от 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
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
Kotlin Multiplatform Mobile позволяет сделать компоненты общими для всех платформ, благодаря чему изменения и корректировки происходят одновременно на Android и iOS. Стоит упомянуть и нативную производительность, то есть Kotlin компилируется в Objective-C и bytecode. В статье Qiwi делятся своим опытом внедрения KMM, а также подробно описывают проблемы, с которыми столкнулись (большая их часть возникла с iOS-платформой).
Материалы:
🔗Статья на Habr
#crossplatform
Хабр
Как мы в QIWI внедряли Kotlin Multiplatform Mobile (KMM)
Привет, Хабр! Меня зовут Кирилл Васильев, и я хотел бы рассказать, как мы в QIWI внедряли Kotlin Multiplatform Mobile (KMM). КММ — это технология кроссплатформенной разработки, позволяющая...
This media is not supported in your browser
VIEW IN TELEGRAM
Вот так нужно заканчивать трудовую неделю!
👍5🤬1
Учимся работать со справочниками в iOS
Может ли работа со справочниками быть простой и быстрой? Оказывается может. Рекомендую ознакомиться со статьей, в которой автор делится опытом перехода на SQLite и библиотеку SQLite.swift для справочников. Благодаря такому решению удалось:
1. Избавиться от большего количество JSON-файлов
2. Уменьшить вес приложения на 15мб
3. Упростить процесс обновления справочника
Материалы:
→ Статья про справочники в iOS
#ios
Может ли работа со справочниками быть простой и быстрой? Оказывается может. Рекомендую ознакомиться со статьей, в которой автор делится опытом перехода на SQLite и библиотеку SQLite.swift для справочников. Благодаря такому решению удалось:
1. Избавиться от большего количество JSON-файлов
2. Уменьшить вес приложения на 15мб
3. Упростить процесс обновления справочника
Материалы:
→ Статья про справочники в iOS
#ios
Хабр
Справочники в iOS: храним, обновляем, используем
Всем привет! Меня зовут Саша, и я iOS-разработчик в hh.ru . Страны, города, профобласти, языки, валюты – всё это названия справочников внутри нашего мобильного приложения. Они очень редко...
Библиотека для создания превью страниц
Unfurl — библиотека для Android, которая извлекает метаданные веб-страниц и генерирует их превью.
Материалы:
🔗GitHub проекта
#android
Unfurl — библиотека для Android, которая извлекает метаданные веб-страниц и генерирует их превью.
Материалы:
🔗GitHub проекта
#android
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Гайд по созданию кастомного лоадера в UIKit
При создании кастомизированного лоадера автор использовал фреймворк для работы с анимациями, CoreAnimation, стандартные инструменты UIKit, а также UIBezierPath — класс, который создает контекст для рисования и содержит все необходимые для этого инструменты.
Материалы:
👉 Исходный код
👉 Гайд на Habr
#ios #swift
При создании кастомизированного лоадера автор использовал фреймворк для работы с анимациями, CoreAnimation, стандартные инструменты UIKit, а также UIBezierPath — класс, который создает контекст для рисования и содержит все необходимые для этого инструменты.
Материалы:
👉 Исходный код
👉 Гайд на Habr
#ios #swift
😁1
Как работают корутины в Kotlin
Корутины — асинхронные операции в Android, которые используются для управления асинхронными задачами. С их помощью можно достаточно просто переключаться между потоками и обрабатывать исключения. Предлагаю взглянуть на механизм корутин изнутри с помощью статьи, прикрепленной ниже. Хороший разработчик должен знать все о работе инструментов, с которыми работает.
Материалы:
👉 Статья о том, как работают suspend под капотом
#android #kotlin
Корутины — асинхронные операции в Android, которые используются для управления асинхронными задачами. С их помощью можно достаточно просто переключаться между потоками и обрабатывать исключения. Предлагаю взглянуть на механизм корутин изнутри с помощью статьи, прикрепленной ниже. Хороший разработчик должен знать все о работе инструментов, с которыми работает.
Материалы:
👉 Статья о том, как работают suspend под капотом
#android #kotlin
Хабр
Kotlin, как работает suspend под капотом
Как компилятор преобразует suspend код, чтобы корутины можно было приостанавливать и возобновлять? Корутины в Kotlin представлены ключевым словом suspend . Интересно, что там...
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Свайпы как в Telegram
Fragula 2 — это расширение библиотеки NavComponent, позволяющее реализовать паттерн swipe-to-dismiss в приложении. По сути представляет собой ViewPager2 с кастомной анимацией. Вскоре автор обещает добавить вертикальный скролл.
Материалы:
🔗 GitHub проекта
#android
Fragula 2 — это расширение библиотеки NavComponent, позволяющее реализовать паттерн swipe-to-dismiss в приложении. По сути представляет собой ViewPager2 с кастомной анимацией. Вскоре автор обещает добавить вертикальный скролл.
Материалы:
🔗 GitHub проекта
#android
👍5
Структурированный параллелизм в Swift
Как вы знаете, каждая строчка кода выполняется последовательно и не может быть выполнена, пока не завершится выполнение предыдущей. Но что, если нам нужно добиться другого поведения? Structured Concurrency — механизм, с помощью которого можно параллельно выполнять отдельные элементы задач. Он будет полезен при решении задач:
— Ожидание зависимостей
— Разные типы результатов
— Неструктурированные и detached
Подробнее с механизмом и примерами решения задач можно ознакомиться в статье ниже.
Материалы:
🔗 Статья на Хабр
#ios #swift
Как вы знаете, каждая строчка кода выполняется последовательно и не может быть выполнена, пока не завершится выполнение предыдущей. Но что, если нам нужно добиться другого поведения? Structured Concurrency — механизм, с помощью которого можно параллельно выполнять отдельные элементы задач. Он будет полезен при решении задач:
— Ожидание зависимостей
— Разные типы результатов
— Неструктурированные и detached
Подробнее с механизмом и примерами решения задач можно ознакомиться в статье ниже.
Материалы:
🔗 Статья на Хабр
#ios #swift
Хабр
Структурированный параллелизм (structured concurrency) в Swift
Узнайте, как работать с объектом Task для безопасного выполнения асинхронных операций с использованием новых API параллелизма в Swift. Узнайте, как работать с объектом Task для безопасного выполнения...
👍1
Функциональное тестирование в Android
Функциональное тестирование — вид тестирования, с помощью которого можно установить соответствие разработанного продукта исходным функциональным требованиям.
+ Позволяет выявить системные ошибки;
+ Гарантирует выполнение всех или большей части требований;
+ Улучшает качество продукта;
+ Снижает риски, в том числе финансовые, связанные с проектом.
Инструментами для проведения функционального тестирования являются JUnit и Mockito. Подробнее можно ознакомиться в статье, прикрепленной ниже.
Материалы:
📰 Статья на Medium
#android
Функциональное тестирование — вид тестирования, с помощью которого можно установить соответствие разработанного продукта исходным функциональным требованиям.
+ Позволяет выявить системные ошибки;
+ Гарантирует выполнение всех или большей части требований;
+ Улучшает качество продукта;
+ Снижает риски, в том числе финансовые, связанные с проектом.
Инструментами для проведения функционального тестирования являются JUnit и Mockito. Подробнее можно ознакомиться в статье, прикрепленной ниже.
Материалы:
📰 Статья на Medium
#android
Medium
Getting started with writing functional test cases in Android
Software testing is the process of evaluating and verifying that a software product or application does what it is supposed to do. The…