Мобильная разработка – Telegram
Мобильная разработка
13.9K subscribers
857 photos
238 videos
2.96K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Самые раздражающие ошибки при разработке на Android

1. «The project is using an unsupported version of Gradle»

Один из возможных способов решения — проверить версию Gradle на Android Studio и сравнить совпадает ли она с установленной на вашей системе.

2. «Could not access the package manager. Is the system running?»

Проблема тайминга или блокировки экрана. Часто решается просто при перезапуске программы.

3. «Install Failed Insufficient Storage»

Стоит проверить APK файлы и убедиться, что предыдущая версия приложения была удалена.

Предлагаем дополнить список. С какими ошибками вы чаще всего встречались при программировании?

#android
👍19👎21
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать Google Map с использованием Jetpack Compose

Для разработки приложения нужно:

— настроить Google Cloud, чтобы сгенерировать ключ для использования Google Maps SDK API,
— добавить запрос на доступ к местоположению,
— настроить геолокацию,
— с помощью LocationCallback() получить местоположение пользователя.

В этой статье вы найдете пошаговую инструкцию:

https://tprg.ru/Mvdp

#android
7👍3🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
PokeCardCompose: приложение с карточками покемонов на Android

Проект PokeCardCompose был создан на основе архитектуры MVI с использованием Koin и Jetpack Compose. Приложение получает данные из сети с помощью Ktor и сохраняет в БД.

Детальнее о стеке используемых технологий читайте здесь:

https://androidrepo.com/repo/lopspower-PokeCardCompose

P.S. покемоны не прилагаются к архитектуре проекта

#android
👍9👎5😁2
UI-тесты: Шпаргалка по Compose

Переходя с View на Compose, можно легко потеряться в многообразии API для тестирования. В этой шпаргалке собраны все основные API для покрытия приложения UI тестами:

https://tprg.ru/tPJ3

#android #compose
👍16
This media is not supported in your browser
VIEW IN TELEGRAM
Полезные библиотеки на GitHub для iOS-разработчиков

1. SSZipArchive — простой Utility-класс для сжатия и распаковки файлов. С помощью ZipArchive можно открывать защищённые паролем zip-архивы, а также создавать большие (>4,3 Гб) zip-файлы.

2. YPImagePicker — image-picker в стиле Instagram. Эта библиотека даёт возможность обрабатывать изображения, видео из галереи или сделать фото из приложения.

3. SwiftCharts — фреймворк для создания диаграмм в приложении. В этой библиотеке можно найти все виды диаграмм: простые, вертикальные, линейные и настроить стиль диаграммы.

4. Flex — библиотека с набором встроенных инструментов для отладки. С помощью панели инструментов вы можете просматривать и изменять практически любую часть приложения.

#ios
👍8👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать свою анимацию с помощью SwiftUI? Гайд для начинающих

Анимация ожидания или загрузки показывает пользователю, что приложение не зависло/не закрылось, а просто ждет ответа с сервера. Такой вид анимации давно используется в YouTube, чтобы отвлечь пользователя, пока загружается контент.

По ссылке пример создания анимации загрузки:

https://tprg.ru/IAbi

#swiftui
👍3
Создаём приложение с прогнозом погоды на Flutter

Для реализации проекта вам понадобится:
— любая среда разработки, в которой установлен Flutter SDK,
— аккаунт на сайте Tomorrow.io для доступа к данным о погоде,
— базовое понимание Dart и Flutter.

В приложение всего один экран, на котором отображается текущая погода и ежедневный прогноз на 4 дня для определенного местоположения. В этой статье автор подробно разобрал процесс разработки:

https://habr.com/ru/post/656033/

#flutter
👍13
Иерархия модулей в Android

В многомодульном приложении разработчики могут сталкиваться с проблемами в зависимостях между модулями или навигации по проекту.

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

Подробнее о том, как выстроить связи между модулями в Android:

https://tprg.ru/F4Sl

#android
👍131
Google празднует 5-летие с Kotlin

Прошло 5 лет с того момента, как на Google I/O объявили о поддержке Kotlin в Android Studio. В честь этого события в блоге Android Developers вышла статья о проделанной работе Kotlin Foundation за эти годы.

В статье сотрудники Google и JetBrains поделились своим мнением о Kotlin, Jetpack Compose, Android KTX и рассказали о перспективах дальнейшего развития Kotlin.

#kotlin #android
👍30🎉6👎3🔥1💩1
Реализация паттерна State Machine и MVI

Наверняка вы слышали про паттерн State Machine, который часто сравнивают с шаблоном State. Данный паттерн используется для создания объектов, поведение которых меняется в зависимости от состояния. Сам набор этих состояний предопределён и конечен.

В этой серии статей разбирается шаблон State Machine с архитектурой MVI:

Часть 1: https://tprg.ru/EiVB
Часть 2: https://tprg.ru/taGk
Часть 3: https://tprg.ru/YUql

#android
👍6
Вышли новые беты для разработчиков iOS

— iOS 16 beta 7 — больших изменений нет, но Apple исправила некоторые баги в: Airplay, SwiftUI, Accessibility. Некоторые методы в UIViewController объявили устаревшими и заменили, как и MKMapLandscape в Maps. Детальнее: https://tprg.ru/yOCX

Также вчера выпустили:
— iPadOS 16 beta 7,
— watchOS 9 beta 7,
— Xcode 14 beta 6.

#ios
👍5💩3👎1
Анимация Lottie на Kotlin

Библиотека LottieFiles использует анимации, экспортированные в виде файлов JSON из Adobe After Effect. С помощью этой библиотеки вы можете добавить любую анимацию в ваш проект.

В этом видео разбирается, как использовать Lottie:

https://youtu.be/1pEyWkTVwBY

#kotlin
👍29💩3❤‍🔥2🤡2
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать Slack-приложение на Android

С помощью Jetpack Compose и Stream Chat SDK можно реализовать своё приложение, похожее на Slack. Внутри проекта также используются корутины и библиотека Hilt.

Исходники: https://github.com/GetStream/stream-slack-clone-android

#android
👍11
Обход средств защиты в iOS-приложениях

На Хабре вышла интересная статья об инструментах, которые помогают обходить средства защиты Jailbreak Detection и SSL-pinning.

Для обхода проверок на Jailbreak автор использовал специальное приложение SecureStorev2, где установил твики A-Bypass и Liberty. Также в статье был протестирован скрипт из Frida CodeShare для байпаса и приведены примеры обхода вручную:

https://habr.com/ru/company/dsec/blog/676094/

#ios
👍10
Подборка актуальных вакансий

iOS-разработчик
Где: удалённо
Опыт: можно без опыта

Android-разработчик
Где: Удалённо
Опыт: от 2 лет

iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет

Senior Android-разработчик
Где: Москва
Опыт: от 3 лет

Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет

Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет

Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет

#вакансии #работа
👎12💩7👍2🔥1
Как исправить устаревшие Android API

В этой статье автор делится опытом по исправлению неподдерживаемых функции и API на примерах замены:

— устаревшего конструктора без параметров Handler,
— метода setHasOptionsMenu() на интерфейс MenuProvider,
— метода startActivityForResult() на другие Activity Result API и launcher.

Реализация и примеры здесь:

https://tprg.ru/Sw2V

#android
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Меню Apple Watch на Jetpack Compose

Используя Jetpack Compose можно реализовать практически любой UI-дизайн, даже если это меню Apple Watch. Как создать двумерную сетку из элементов, Scale-анимацию, drag-жест для правильного смещения контента и многое другое — в этой статье:

https://tprg.ru/8X3Y

#android
👍3🎉1🤮1
This media is not supported in your browser
VIEW IN TELEGRAM
Практический пример создания View-компонента на SwiftUI

В этой статье пошаговое руководство как создать собственный Custom View для городов, используя Sruct, Computed Property и несколько функций, чтобы рассчитать количество лайков и поездок: https://tprg.ru/L71J

#swiftUI
👍5
Ускоренная сборка с помощью Kotlin Symbol Processing

Kotlin Symbol Processing (KSP) — это упрощённый API для разработки легковесных плагинов компиляции и процессоров аннотаций. KSP похож на Kotlin Annotation Processing Tool, но работает быстрее.

В статье рассматривается реализация KSP с использованием аннотаций, SymbolProcessor, Resolver и KotlinPoet:

https://tprg.ru/OgZQ

#kotlin #android
👍4💩21
This media is not supported in your browser
VIEW IN TELEGRAM
Объясняем Kotlin Multiplatform на крестиках-ноликах

KMM позволяет разработчикам объединить всю бизнес-логику в единые модули и запускать один и тот же код на разных платформах. За последние несколько лет эту модель обсуждают всё чаще.

Разработчик Тихон Устинов рассказал о плюсах и минусах работы с KMM в проекте, а также на примере создания игры «крестики-нолики» для Android, iOS и JS продемонстрировал, как применять KMM:

https://habr.com/ru/company/rostelecom/blog/682160/

#kmm #android #ios
🔥14👍3💩1
Повышаем производительность приложения с Baseline Profile

Baseline profile — это классы и методы, которые заранее скомпилированы и установлены вместе с приложением.
Частичная компиляция позволяет ускорить время запуска и производительность.

В отличие от ART Cloud Profile, Baseline profile создаётся во время сборки, поэтому его легче протестировать. Для генерации данного профиля можно использовать библиотеку Macrobenchmark.

Подробнее в статье: https://tprg.ru/6DHA

#android