Пишем качественные юнит-тесты для iOS
Полезные рекомендации по написанию юнит-тестов на Swift: нейминг, настройка, фильтры, запуск и немного про XCTAssert
Здесь также блок документации по методам setUp() и tearDown(), которым как по мне в статье уделено недостаточно внимания
#ios
Полезные рекомендации по написанию юнит-тестов на Swift: нейминг, настройка, фильтры, запуск и немного про XCTAssert
Здесь также блок документации по методам setUp() и tearDown(), которым как по мне в статье уделено недостаточно внимания
#ios
SwiftLee
Getting started with Unit Tests in Swift
Get started and learn how to write unit tests to validate your code. Best practices help you to be more productive by writing better tests.
👍3
Что выбираешь?
Anonymous Poll
51%
RxJava2,Dagger2,DataBinding
49%
Другие доброкачественные новообразования кожи
This media is not supported in your browser
VIEW IN TELEGRAM
Minesweeper на Jetpack Compose 💣
Старый-добрый Сапер, известный многим еще с первых версий Windows, получил очередное исполнение — в этот раз на Jetpack Compose
Помимо стандартных функций игры, в этой версии добавлены светлая/темная темы, удобное масштабирование, тактильный отклик и красивые анимации
Посмотреть на реализацию иукрасть адаптировать пару идей можно здесь:
https://github.com/JayaSuryaT/minesweeper-j-compose
#android
Старый-добрый Сапер, известный многим еще с первых версий Windows, получил очередное исполнение — в этот раз на Jetpack Compose
Помимо стандартных функций игры, в этой версии добавлены светлая/темная темы, удобное масштабирование, тактильный отклик и красивые анимации
Посмотреть на реализацию и
https://github.com/JayaSuryaT/minesweeper-j-compose
#android
👍5
Как построить динамичный UI приложения на Json? 🤔
Конечно же, с помощью Jetpack Compose.
Материал на медиуме подробно рассказывает, как устроен этот процесс, а по итогу выясняется, что способ действительно работает.
Остается лишь вопрос "зачем?", но ответ есть — как минимум, этот метод позволяет запустить полноценный Server-Side Rendering: бэк отправляет Json-файл, клиент считывает его и отрисовывает динамический UI на устройстве.
#android
Конечно же, с помощью Jetpack Compose.
Материал на медиуме подробно рассказывает, как устроен этот процесс, а по итогу выясняется, что способ действительно работает.
Остается лишь вопрос "зачем?", но ответ есть — как минимум, этот метод позволяет запустить полноценный Server-Side Rendering: бэк отправляет Json-файл, клиент считывает его и отрисовывает динамический UI на устройстве.
#android
Medium
Jetpack Compose Enables JSON Defined View Layout
Making a more dynamic layout from the server payload
👍3
Flutter или Native — опыт разработчиков Ozon Tech
Команда мобильного приложения Ozon ушла в нативную разработку после года на Flutter. Почему — читайте в статье на хабре
Причины вкратце:
— Опасность остановки поддержки (гугл известны внезапными объявлениями технологий deprecated, и на фоне роста популярности KMM, Flutter может в скором времени стать одним из них)
— Несовершенство Dart (до сих пор завозят технологии, которые уже давно есть на Kotlin и Swift)
— Рендеринг UI (поведение некоторых визуальных компонентов Flutter отличается от принятого на каждой из платформ)
Подробнее — по ссылке
#flutter #crossplatform
Команда мобильного приложения Ozon ушла в нативную разработку после года на Flutter. Почему — читайте в статье на хабре
Причины вкратце:
— Опасность остановки поддержки (гугл известны внезапными объявлениями технологий deprecated, и на фоне роста популярности KMM, Flutter может в скором времени стать одним из них)
— Несовершенство Dart (до сих пор завозят технологии, которые уже давно есть на Kotlin и Swift)
— Рендеринг UI (поведение некоторых визуальных компонентов Flutter отличается от принятого на каждой из платформ)
Подробнее — по ссылке
#flutter #crossplatform
Хабр
Flutter vs Native: почему мы переходим с первого на второй
Привет, Хабр! Меня зовут Сергей, я занимаюсь мобильной разработкой 13 лет и недавно стал руководителем разработки мобильного приложения «Пункты выдачи заказов» в Ozon. Невольно став сместителем...
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядная демонстрация работы Hot reload на Flutter — догружаем файлы кода прямо в запущенную Dart Virtual Machine
#android #flutter
#android #flutter
😁9
Цикл подробных статей про корутины в Kotlin
Все мы очень любим корутины (так ведь?), поэтому сохраняйте этот список себе: цикл из 5 статей от основ CoroutineContext до отмены корутин с примерами и пояснениями
👉 1. CoroutineContext
👉 2. CoroutineScope
👉 3. Structured Concurrency
👉 4. Exception Handling
👉 5. Cancellation
#android
Все мы очень любим корутины (так ведь?), поэтому сохраняйте этот список себе: цикл из 5 статей от основ CoroutineContext до отмены корутин с примерами и пояснениями
👉 1. CoroutineContext
👉 2. CoroutineScope
👉 3. Structured Concurrency
👉 4. Exception Handling
👉 5. Cancellation
#android
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Анимированный Splash Screen для Android 🔃
С приходом Android 12 мы наконец получили полноценный API для создания кастомизированных экранов загрузки. Если еще не попробовали, то сейчас самое время разобраться и внедрить технологию в свое приложение
Пара ссылок, чтобы лучше вникнуть в тему: здесь подробная документация по использованию с android developers, а здесь статья с более наглядным пояснением на хабре
#android
С приходом Android 12 мы наконец получили полноценный API для создания кастомизированных экранов загрузки. Если еще не попробовали, то сейчас самое время разобраться и внедрить технологию в свое приложение
Пара ссылок, чтобы лучше вникнуть в тему: здесь подробная документация по использованию с android developers, а здесь статья с более наглядным пояснением на хабре
#android
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Еще одна анимация загрузки, в этот раз для iOS
LiquidLoader — библиотека индикаторов загрузки. По умолчанию есть два варианта: круговой (GrowCircle) и линейный (GrowLine), но при желании можно покопаться и накастомить что-то свое
Реализация на Swift: https://github.com/yoavlt/LiquidLoader
#ios
LiquidLoader — библиотека индикаторов загрузки. По умолчанию есть два варианта: круговой (GrowCircle) и линейный (GrowLine), но при желании можно покопаться и накастомить что-то свое
Реализация на Swift: https://github.com/yoavlt/LiquidLoader
#ios
Уже более 500 мобильных приложений добавили слово "метавселенная" в свои названия 🌌
Если вы еще не устали от этого слова, скоро это может произойти: более 500 приложений из App Store и Google Play "обновили" свои названия с учетом нового тренда (в октябре прошедшего года их было всего 11).
Чаще всего слово "метавселенная" используют в своих названиях игры (107), финансовые приложения (101) и соцсети (70).
Впрочем, по факту никакого функционала метавселенной в большинстве из них нет, и это скорее маркетинговый ход, чем технически обоснованный шаг 🤷
Еще больше статистики здесь: https://habr.com/ru/news/t/649675/
#android #ios
Если вы еще не устали от этого слова, скоро это может произойти: более 500 приложений из App Store и Google Play "обновили" свои названия с учетом нового тренда (в октябре прошедшего года их было всего 11).
Чаще всего слово "метавселенная" используют в своих названиях игры (107), финансовые приложения (101) и соцсети (70).
Впрочем, по факту никакого функционала метавселенной в большинстве из них нет, и это скорее маркетинговый ход, чем технически обоснованный шаг 🤷
Еще больше статистики здесь: https://habr.com/ru/news/t/649675/
#android #ios
Хабр
Слово «метавселенная» в своё название добавили уже более 500 мобильных приложений
В настоящее время существует 552 мобильных приложения, которые содержат термин «метавселенная» в названии или описании, выяснили аналитики Sensor Tower. Многие из них добавили слово...
👍2
3 технологии Android-разработки, которые умрут в 2022 💀
Интересный материал на медиуме: автор прогнозирует 3 технологии разработки, которые станут неактуальны до конца этого года. Вытеснят их (вполне ожидаемо) вездесущий Jetpack Compose, корутины и StateFlow.
Если вкратце, то прощаться по мнению автора пора со следующими технологиями:
— Android View на XML (→ Jetpack Compose)
— LiveData (→ StateFlow)
— Activity Lifecycle APIs (→ Lifecycle Aware Coroutine)
При прочтении конечно стоит помнить, что все это лишь прогнозы, хотя такой исход по итогам 2022 на самом деле вполне вероятен.
#android
Интересный материал на медиуме: автор прогнозирует 3 технологии разработки, которые станут неактуальны до конца этого года. Вытеснят их (вполне ожидаемо) вездесущий Jetpack Compose, корутины и StateFlow.
Если вкратце, то прощаться по мнению автора пора со следующими технологиями:
— Android View на XML (→ Jetpack Compose)
— LiveData (→ StateFlow)
— Activity Lifecycle APIs (→ Lifecycle Aware Coroutine)
При прочтении конечно стоит помнить, что все это лишь прогнозы, хотя такой исход по итогам 2022 на самом деле вполне вероятен.
#android
Medium
3 Android Techs That Are Sunsetting in 2022
There were once the needed or popular. But it’ll be replaced.
👍4
Kotlin 1.6.20 уже на подходе, и вот как будет выглядеть Context Receiver
Фича все еще значится в стадии прототипа, поэтому не исключено, что это не финальная версия.
В любом случае, попробовать новый синтаксис на JVM можно будет уже скоро, сразу после релиза 1.6.20
Полный список ожидаемых изменений в 1.6.20 — здесь
#android
Фича все еще значится в стадии прототипа, поэтому не исключено, что это не финальная версия.
В любом случае, попробовать новый синтаксис на JVM можно будет уже скоро, сразу после релиза 1.6.20
Полный список ожидаемых изменений в 1.6.20 — здесь
#android
Microsoft Snippet — библиотека для измерения времени исполнения кода ⏲
Оптимизация времени выполнения кода — важная задача, от выполнения которой напрямую зависит опыт использования приложения: многие пользователи и вовсе могут отказаться от продолжения работы с ним из-за слишком долгих загрузок
Несколько технологий для такого замера уже существуют (среди них Hugo, Android Profiler и TimeLogger), однако полного функционала ни одна из них не предлагает — например, Hugo позволяет замерять только отдельные методы, а Android Profiler и вовсе затормаживает работу приложения
Решение пришло откуда не ждали, а именно от разработчика из Microsoft — он создал библиотеку Microsoft Snippet, которая позволяет отслеживать блоки кода любого размера и не требует много ресурсов
Посмотреть, как работает Snippet, можно здесь
#android #lib
Оптимизация времени выполнения кода — важная задача, от выполнения которой напрямую зависит опыт использования приложения: многие пользователи и вовсе могут отказаться от продолжения работы с ним из-за слишком долгих загрузок
Несколько технологий для такого замера уже существуют (среди них Hugo, Android Profiler и TimeLogger), однако полного функционала ни одна из них не предлагает — например, Hugo позволяет замерять только отдельные методы, а Android Profiler и вовсе затормаживает работу приложения
Решение пришло откуда не ждали, а именно от разработчика из Microsoft — он создал библиотеку Microsoft Snippet, которая позволяет отслеживать блоки кода любого размера и не требует много ресурсов
Посмотреть, как работает Snippet, можно здесь
#android #lib
Medium
Meet Microsoft Snippet — an Android Library for Measuring Code Execution Time
Improve the performance of your apps
Подробный гайд по Concurrency и Multithreading на iOS
Большой гайд про параллелизм и многопоточность. Прочитать стоит в первую очередь тем, плохо ориентируется в теме — материал объясняется подобно и со множеством примеров.
Что внутри?
👉 Main thread vs. background thread
👉 Async/await and Actor
👉 GCD vs. OperationQueue
👉 Group dispatch / DispatchGroup
#ios
Большой гайд про параллелизм и многопоточность. Прочитать стоит в первую очередь тем, плохо ориентируется в теме — материал объясняется подобно и со множеством примеров.
Что внутри?
👉 Main thread vs. background thread
👉 Async/await and Actor
👉 GCD vs. OperationQueue
👉 Group dispatch / DispatchGroup
#ios
Medium
The Complete Guide to Concurrency and Multithreading in iOS
Main thread vs. background thread. Async/await and Actor. GCD vs. OperationQueue. Group dispatch, how to empower background thread, and…
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Набор базовых анимаций на Jetpack Compose
4 стандартные анимации для Compose в одном репозитории:
— счетчик с поворотом
— idle лайк
— индикатор загрузки
— кнопка голосового набора
Сами анимации лежат здесь, а в блоге также есть подробная статья с примерами кода
#android #compose
4 стандартные анимации для Compose в одном репозитории:
— счетчик с поворотом
— idle лайк
— индикатор загрузки
— кнопка голосового набора
Сами анимации лежат здесь, а в блоге также есть подробная статья с примерами кода
#android #compose