mobDev()
157 subscribers
62 photos
5 videos
98 links
🔥 Твой фид мобильной разработки
➡️ Новости, статьи, видео, квизы
👨‍💻 #android #ios #crossplatform
Download Telegram
Пишем качественные юнит-тесты для iOS

Полезные рекомендации по написанию юнит-тестов на Swift: нейминг, настройка, фильтры, запуск и немного про XCTAssert

Здесь также блок документации по методам setUp() и tearDown(), которым как по мне в статье уделено недостаточно внимания

#ios
👍3
😁7
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
👍5
Как построить динамичный UI приложения на Json? 🤔

Конечно же, с помощью Jetpack Compose.

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

Остается лишь вопрос "зачем?", но ответ есть — как минимум, этот метод позволяет запустить полноценный Server-Side Rendering: бэк отправляет Json-файл, клиент считывает его и отрисовывает динамический UI на устройстве.

#android
👍3
Flutter или Native — опыт разработчиков Ozon Tech

Команда мобильного приложения Ozon ушла в нативную разработку после года на Flutter. Почему — читайте в статье на хабре

Причины вкратце:
— Опасность остановки поддержки (гугл известны внезапными объявлениями технологий deprecated, и на фоне роста популярности KMM, Flutter может в скором времени стать одним из них)
— Несовершенство Dart (до сих пор завозят технологии, которые уже давно есть на Kotlin и Swift)
— Рендеринг UI (поведение некоторых визуальных компонентов Flutter отличается от принятого на каждой из платформ)

Подробнее — по ссылке

#flutter #crossplatform
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядная демонстрация работы Hot reload на Flutter — догружаем файлы кода прямо в запущенную Dart Virtual Machine

#android #flutter
😁9
Цикл подробных статей про корутины в Kotlin

Все мы очень любим корутины (так ведь?), поэтому сохраняйте этот список себе: цикл из 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
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Еще одна анимация загрузки, в этот раз для 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
👍2
Эта ошибка едва не стоила разработчику жизни...
3 технологии Android-разработки, которые умрут в 2022 💀

Интересный материал на медиуме: автор прогнозирует 3 технологии разработки, которые станут неактуальны до конца этого года. Вытеснят их (вполне ожидаемо) вездесущий Jetpack Compose, корутины и StateFlow.

Если вкратце, то прощаться по мнению автора пора со следующими технологиями:

— Android View на XML (→ Jetpack Compose)
— LiveData (→ StateFlow)
— Activity Lifecycle APIs (→ Lifecycle Aware Coroutine)

При прочтении конечно стоит помнить, что все это лишь прогнозы, хотя такой исход по итогам 2022 на самом деле вполне вероятен.

#android
👍4
Kotlin 1.6.20 уже на подходе, и вот как будет выглядеть Context Receiver

Фича все еще значится в стадии прототипа, поэтому не исключено, что это не финальная версия.

В любом случае, попробовать новый синтаксис на JVM можно будет уже скоро, сразу после релиза 1.6.20

Полный список ожидаемых изменений в 1.6.20 — здесь

#android
Microsoft Snippet — библиотека для измерения времени исполнения кода

Оптимизация времени выполнения кода — важная задача, от выполнения которой напрямую зависит опыт использования приложения: многие пользователи и вовсе могут отказаться от продолжения работы с ним из-за слишком долгих загрузок

Несколько технологий для такого замера уже существуют (среди них Hugo, Android Profiler и TimeLogger), однако полного функционала ни одна из них не предлагает — например, Hugo позволяет замерять только отдельные методы, а Android Profiler и вовсе затормаживает работу приложения

Решение пришло откуда не ждали, а именно от разработчика из Microsoft — он создал библиотеку Microsoft Snippet, которая позволяет отслеживать блоки кода любого размера и не требует много ресурсов

Посмотреть, как работает Snippet, можно здесь

#android #lib
Подробный гайд по Concurrency и Multithreading на iOS

Большой гайд про параллелизм и многопоточность. Прочитать стоит в первую очередь тем, плохо ориентируется в теме — материал объясняется подобно и со множеством примеров.

Что внутри?

👉 Main thread vs. background thread
👉 Async/await and Actor
👉 GCD vs. OperationQueue
👉 Group dispatch / DispatchGroup

#ios
👍3
Планы на завтра: дождаться, пока студия придет в себя после Invalidate Caches
This media is not supported in your browser
VIEW IN TELEGRAM
Набор базовых анимаций на Jetpack Compose

4 стандартные анимации для Compose в одном репозитории:

— счетчик с поворотом
— idle лайк
— индикатор загрузки
— кнопка голосового набора

Сами анимации лежат здесь, а в блоге также есть подробная статья с примерами кода

#android #compose
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядная визуализация данных. AsyncTask -> Loader -> LiveData -> StateFlow

#android
😁8
В интернет слили скриншоты распределения ресурсов на твоем компьютере 🙈
😁10🤯1