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

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

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Вышел Kotlin 1.6.0

Главное, что принёс нам новый релиз:
— стабилизированы фичи языка, добавленнные в Kotlin 1.5.30;
— улучшены повторные аннотации для Kotlin/JVM;
— экспериментальный Gradle-плагин Kover, который измеряет покрытие кода (альтернатива JaCoCo);
— новое экспериментальное управление памятью в Kotlin/Native;
— Kotlin/Native теперь поддерживает Xcode 13.

Подробнее об изменениях в блоге JetBrains: https://tprg.ru/PVR4

Если в Android Studio включены обновления, то новый Kotlin 1.6.0 установится автоматически.

#kotlin
Добавляем неоморфизм в Android-приложение

Неоморфизм призван отойти от стандартных Material-компонентов. Чтобы добавить его в своё приложение, можно воспользоваться библиотекой, которая изменяет стиль компонентов Jetpack Compose:

https://github.com/CuriousNikhil/neumorphic-compose

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

#android #compose #библиотеки #ui
Создание общего SDK чата на KMM

Kotlin Mobile Multiplatform дал возможность разработчикам переиспользовать бизнес-логику в приложениях для Android и iOS.

В последнее время появляется всё больше успешных кейсов, и один из них — реализация кроссплатформенного SDK чата. Ребятам понадобилось создать удобный канал связи, который охватывает Android, iOS и веб.

Вот, что у них получилось: https://tprg.ru/os8a

#kmm #android #ios
Основы Combine

Combine — реактивный Swift-фреймворк, который позволяет обрабатывать последовательности асинхронно появляющихся во времени значений values.

Фреймворк может показаться сложным, поскольку в его концепции фигурируют три ключевых понятия — Publishers, Subscribers и Operators.

Гайд поможет разобраться с основами и использованием Combine:

https://tprg.ru/T095

#ios
Большой курс лекций по Android для начинающих

Этим летом «Яндекс» открывал Школу мобильной разработки — курс по созданию полноценных мобильных приложений. Теперь записи лекций доступны бесплатно всем желающим:

https://tprg.ru/iMHp

В курсе освещены все важные для разработки приложений темы: основные Android-компоненты, асинхронная работа, архитектура приложений и тестов, работа с системой сборки Gradle и CI/CD.

Перед тем, как приступить к лекциям, рекомендуется освоить базу Android-разработки.

#android #начинающим
👍4🥰1
Подборка актуальных вакансий для Android-разработчиков

Android-разработчик в ОТР
Где: Удалённо
Стек: Android, Coroutines, Java, JSON, JUnit, Kotlin, Mockito, MVVM, REST API, RxJava

Android Software Engineer в Revolut
Где: Удалённо
Стек: Android, Dagger, Kotlin, Room, RxJava

Android-разработчик в Sportmaster Lab
Где: Москва, Санкт-Петербург, Новосибирск, можно удалённо
Стек: Android, Gradle, HTTP, Java, Kotlin, MVC, MVI, MVP, MVVM, Realm, REST API, Room, SQL, SQLite

#вакансии #работа
Неоморфизм и его проблемы

На днях мы рассказывали о библиотеке, которая добавляет неоморфизм в компоненты Jetpack Compose. Многим такой стиль не понравился.

Давайте разберёмся, почему неоморфизм вызывает много споров и применим ли стиль на практике:

https://tprg.ru/Gic6

#ui
Конфигурация сборки в Gradle: как это работает

В Android-приложениях основной системой сборки проекта является Gradle. Она выполняет важную задачу: собирает проект вместе со всеми зависимостями в единое приложение.

Знание того, как работает Gradle, поможет настроить сборку под конкретные требования. А разобраться в основах поможет статья:

https://tprg.ru/TEJm

Тот же материал, но в формате видео: https://youtu.be/GjPS4xDMmQY

#android #начинающим
Сколько чашек кофе успеваете выпить, пока проходит локальная сборка iOS-проекта?

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

Библиотека умеет в реализацию удалённого кэширования iOS-проектов, чтобы переиспользовать целевые артефакты из XCode, сгенерированные в CI-машинах.

По замерам разработчиков библиотеки, XCRemoteCache уменьшила время чистой сборки на 70%. Звучит серьёзно, не так ли?

Где почитать подробнее про XCRemoteCache: https://tprg.ru/INx3

#ios #библиотеки
Навигация в многомодульных приложениях на Jetpack Compose

Compose, навигация, многомодульная архитектура, инъекции зависимостей... Эти компоненты можно объединить в масштабируемой многомодульной архитектуре с помощью лучших практик Android-разработке. И в статье объясняется, как:

https://tprg.ru/5VyO

#android #compose
Не стоит доверять оценкам в App Store

Даже если это приложение от Apple.

В Сети обратили внимание на то, что рейтинг в App Store приложения Apple Podcasts вырос с 1,8 до 4,7 меньше чем за месяц. При этом приложение не получило существенных обновлений за этот период.

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

Если подобная ситуация произошла с официальным приложением от Apple, то сложно представить, на какие ухищрения идут настоящие мошеннические приложения, чтобы иметь высокий рейтинг и висеть в топе App Store.

#ios
Монетизировать Flutter-приложение стало проще

На этой неделе вышла первая стабильная версия Google Mobile Ads SDK для Flutter. SDK работает с рекламными платформами AdMob и Ad Manager и помогает внедрить в приложение различные виды рекламы: баннеры, видео с вознаграждением, Interstitial (реклама между действиями) и не только (кстати, мы уже рассказывали о видах мобильной рекламы).

Подробнее о способах монетизации Flutter-приложения: https://flutter.dev/monetization

#flutter
Простой генератор QR-кода для Android

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

В ролике разбирается, как написать простой генератор QR-кода, в котором одной кнопкой выводится готовый QR-код:

https://youtu.be/pQ1KYUJpCGU

#android #начинающим
Бесплатный курс по Flutter-разработке

Недавно мы рассказывали про свежий курс лекций от «Яндекса» по мобильной разработке. Помимо основного курса по Android-разработке, ребята проводили факультатив по фреймворку Flutter и уже выложили записи лекций:

https://tprg.ru/URGE

Вы познакомитесь с языком Dart и разберёте основные концепции Flutter: построение UI, работу с сетью, анимацию и популярные архитектурные подходы.

#flutter #курсы
Как работать с рекламными сетями в условиях IDFA

Введение рекламного идентификатора IDFA в iOS-приложения достаточно сильно изменило рынок мобильной рекламы. Теперь необходимо запрашивать доступ к персональным данным пользователя и обрабатывать оба варианта, когда пользователь:
— предоставил IDFA;
— отказался от отслеживания.

Подробнее о нюансах работы с IDFA:

https://tprg.ru/i5Hw

#ios
👍1
Фикс Retrofit для корутин

В Retrofit 2.6.0 появилась полноценная поддержка корутин. Однако на практике работа с сетью происходит не совсем асинхронно: в некоторых случаях становится перегружен main thread приложения.

Ребята из 65apps выявили причину такого поведения и выпустили фикс для suspend-функций. Подробнее — в статье:

https://tprg.ru/3UaS

#android
iOS-фреймворк для анимации прокрутки

Gemini предлагает множество типов анимации: круговую, кубическую и различные 3D-эффекты. При желании можно реализовать собственную анимацию на базе имеющихся.

Как использовать: https://github.com/shoheiyokoyama/Gemini

#ios
👍1
Модульность и DI в современном Android-приложении

Задумались над тем, чтобы разбить приложение на модули? Рекомендуем сначала ознакомиться с туториалом от «Яндекса»:

https://tprg.ru/ljsO

В нём вы узнаете, как можно грамотно разделить на модули, осуществить Dependency Injection между модулями и не налететь на подводные камни.

#android
Side Effects в Jetpack Compose

Side Effect или побочный эффект представляет собой изменение состояния Android-приложения, которое происходит за пределами области составной функции. На практике Side Effects помогают запускать корутины, управлять логикой в Compose и не только.

Подробнее о Side Effects в Compose:

https://youtu.be/NxwkaPdLQPk

#android #compose
Таймер с симуляцией волн

Нашли интересный проект на GitHub, где реализована красивая анимация волн, синхронизированная с таймером. Реализовано на Kotlin и Jetpack Compose.

Как это работает: https://github.com/manueldidonna/waves-timer-animation

#android #ui #compose
А точно ли UIKit про графический интерфейс?

UI приложения — это не только графический интерфейс, но и интерфейсы взаимодействия пользователя: тачскрин, клавиатура или мышь. И сам UIKit в iOS-приложении отвечает за последнее — распознавание и обработку пользовательских жестов.

Как же так, если у UIKit есть базовый класс UIView, через который мы настраиваем наш UI? Давайте разбираться:

https://tprg.ru/Pdow

#ios #начинающим
👍1