Мобильная разработка – Telegram
Мобильная разработка
13.9K subscribers
853 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
OAuth в мобильных приложениях

Для авторизации пользователя с помощью соцсетей используется протокол OAuth. Поэтому мобильным разработчикам приходится разбираться с работой OAuth.

В статье рассмотрены основные нюансы OAuth, а также настройка OAuth в Android-приложении с использованием библиотеки AppAuth:

https://habr.com/ru/company/kts/blog/654029/

#android #ios
👍6🔥5
Фичи Kotlin: полезные и не очень

В Kotlin есть много разных фичей: расширения, вывод типов, лямбды с ресивером, функциональные типы. Многие из этих фичей делают жизнь программиста сильно проще. Но есть и субъективное мнение, что некоторые из этих возможностей могут доставлять головную боль.

В этом докладе разработчик рассматривает некоторые фичи Kotlin типа синтаксического сахара, библиотек и некоторых моментов дизайна языка и оценивает их полезность и элегантность: https://youtu.be/X0M_I8p9jJ0

Доклад будет особенно полезен Java-разработчикам, которые рассматривают переход на Kotlin в своих проектах.

#kotlin
👍25
Масштабируемая модульная архитектура для iOS

Автор статьи не рассказывает здесь о UI-архитектурах типа MVVM, MVP, VIPER, VIP. Когда речь идёт о больших приложениях, то архитектура — это то, как происходит взаимодействие между компонентами. Также важный момент в архитектуре больших приложений — возможность добавлять новые фичи и тестировать компоненты без высокой вероятность сломать что-то в другом месте приложения.

На примере простого приложения с фильмами автор показывает пример такой архитектуры: https://tprg.ru/IuS4

#ios
👍141🔥1👏1
​​VK проводит Weekend Offer для мобильных разработчиков

Процесс получения Weekend Offer:

С 21 по 31 марта представители компании свяжутся с кандидатами и договорятся о звонке на 15–30 минут для согласования времени технического собеседования.
2 апреля Андрей Сумин, технический директор «Почты Mail.ru», подробнее расскажет о задачах, которые вам предстоит решать в команде, а позже пройдут технические собеседования.
3 апреля руководители направлений ещё раз ответят на все вопросы и проведут финальные собеседования, после которых выберут лучших кандидатов и предложат им оффер, бонусом к которому идёт з/п с самого старта.

Подать заявку и узнать все подробности о работе: https://vk.cc/cc6ds2.

#вакансии #android #ios
👎34💩15👍8
​​Актуализация данных в списках Flutter-приложения

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

В статье на примере приложения с примитивным списком показано, как реализовать обновляющийся список:

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

#flutter #начинающим
👍71
This media is not supported in your browser
VIEW IN TELEGRAM
Кастомизируемая панель вкладок для SwiftUI

Библиотека AxisTabView позволяет создать панель вкладок с различными стилями. С её помощью вы можете настроить размер панели и элементов, а также кастомизировать их форму.

Как использовать (пример iOS-приложения внутри): https://github.com/jasudev/AxisTabView

#ios #swiftui #библиотеки #ui
👍12🤯1
​​Руководство по Drag and Drop в Android

Функция Drag and drop позволяет перемещать View или данные между View. Чтобы освоить работу с фичей, рекомендуем почитать гайд, где объясняется, как реализовать возможность перемещения маски на зелёного робота:

https://www.raywenderlich.com/24508555-android-drag-and-drop-tutorial-moving-views-and-data

#android #начинающим
👍11
​​Устройтесь мобильным разработчиком в «Альфа-банк»

«Альфа-Банк» активно расширяет команду мобильной разработки и ищет Android и iOS-разработчиков уровня Middle+.

Что требуется:
— опыт коммерческой разработки мобильных приложений от 2-х лет;
— знание iOS SDK и/или Android SDK, Java или Kotlin;
— умение писать чистый код и держать фокус на результате.

Что предлагают:
— welcome-бонус 250 000 рублей (до вычета НДФЛ) за уровень Middle+ сразу после выхода на работу (уровень подтверждается на техническом интервью);
— стабильный и прозрачный доход + квартальная премия по результатам KPI;
— гибкий график работы.

Если вы готовы привносить свои идеи, не боитесь работать с новыми технологиями и способны самостоятельно принимать решения, то откликайтесь на вакансию на сайте или напишите напрямую рекрутеру: @sabusya95

#вакансии
👎21👍6🤮4💩2🔥1
Создание контроллера на половину экрана в iOS

В 24-минутном видео пошагово объясняется, как реализовать двумя способами half-sheet контроллер:

— с помощью UISheetPresentationController для iOS 15 и выше;
— собственное решение:

https://youtu.be/J6mZ6vJHPFg

#ios #начинающим
👍4
Исследуем отзыв разрешений в Android 13

В сборке Developer Preview 2 у приложений появилась возможность отзывать runtime-разрешения, которые ранее были выданы пользователем. Делается это с помощью двух API:

revokeOwnPermissionOnKill(String) для одного permission;
revokeOwnPermissionOnKill(Collection) для нескольких permissions.

На примере простого приложения вы сможете лучше понять, как работать с новыми API:

https://yggr.medium.com/exploring-android-13-downgradable-permission-5ca79bfcee2b

#android
👍8
Sliver во Flutter, или как работает скролл

Flutter обладает большими возможностями по кастомизации экрана приложения. Например, с помощью фреймворка можно создать собственный эффект скролла элементов.

Однако для реализации кастомного скролла нужно понимать сам механизм скролла в Flutter. Во «внутренностях» фреймворка покопался Михаил Зотьев из Surf и поделился результатами в выступлении на Dart UP.

Доклад можно как посмотреть, так и почитать в виде статьи.

#flutter #доклады
👍5
Разбираемся с DI в Jetpack Compose

В Compose встроен CompositionLocal, который может выполнять роль DI. Но так ли он хорош, чтобы заменить Dagger 2 и другие DI-инструменты? Или же у него другое направление работы? Ответ — в видео:

https://youtu.be/vOpy_5I_C7k

#compose #android
👍7💩1
Android-разработчики смогут узнать класс производительности устройств

Performance class отображает уровень производительности и общих возможностей устройства пользователя. Благодаря этому можно изменять настройки графики и функциональность приложения под определённые группы, чтобы добиться оптимальной производительности.

Информацию к классе производительности устройства на Android 11 (API level 30) и выше выдаёт новая библиотека Jetpack Core Performance (пока в альфе).

В статье можно узнать подробности о новой фиче.

#android
👍10💩1
Интеграция Huawei Mobile Services в существующее приложение

Устройствами от Huawei пользуется существенное количество российских пользователей. Кроме того, из-за возникшего дефицита электроники в России продажи устройств Huawei за первую половину марта выросли на 300%.

Если вы задумались о публикации приложения в App Gallery, то вам будет полезен опыт ребят из hh. Они со второй попытки смогли внедрить в релизные сборки Huawei Mobile Services и собрали интересную статистику:

https://youtu.be/TSlJEUh7UY4

Однако стоит учесть, что Google Play стал присылать предупреждения разработчикам, если в их приложении встроена поддержка HMS. Поэтому будет необходимо делать две отдельные сборки под Google Play и App Gallery.

#android #hms
👍6💩6👏1
Стоит ли публиковать больше материалов по HMS и публикации в App Gallery?
Anonymous Poll
68%
Да 👍
32%
Нет 👎
💩9😁4
Работа с клавиатурой в Jetpack Compose

Когда пользователь вводит данные в приложении, вызывается клавиатура. Однако она может перекрыть элементы интерфейса или же мешать вводу данных в нескольких полях.

Как решить проблему:

https://dev.to/tkuenneth/keyboard-handling-in-jetpack-compose-2593

#android #compose
👍9😁1
Передвигаем элементы в Compose без рекомпозиции

В Jetpack Compose 1.2 появится функция movableContentOf, которая позволяет перемещать элементы без необходимости их перекомпоновки. Например, с помощью функции можно легко ряд элементов превратить в столбец.

Как работать с новой функцией: https://betterprogramming.pub/exploring-movablecontentof-in-jetpack-compose-6807a43047cd

#android #compose
🔥7👍1
Внедрение Kotlin Multiplatform Mobile: опыт QIWI

Мы не раз писали про KMM. Платформа позволяет написать бизнес-логику приложения на Kotlin и затем использовать ее на разных платформах. При этом UI-слой пишется отдельно под каждую из них.

Разработчики из QIWI попробовали технологию в деле и поделились своим опытом. Если вкратце, то технология им показалась многообещающей, но без проблем не обошлось.

Подробнее: https://habr.com/ru/company/qiwi/blog/658275/

#kmm #android #ios
👍8
Как защитить Android-приложение от реверс-инжиниринга

Нельзя полностью защитить приложение от хакерских атак. Однако существуют инструменты, которые помогут существенно затруднить захват пользовательских данных со стороны клиента.

Подробнее об инструментах против реверс-инжиниринга:

https://proandroiddev.com/how-to-prevent-hackers-from-reverse-engineering-your-android-apps-2981661ab1c2

#android #безопасность
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Создание кастомного индикатора загрузки в UIKit

В гайде объясняется, как реализовать собственный спиннер с помощью двух классов фреймворка СoreAnimations — CAShapeLayer и CAReplicatorLayer:

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

#ios #ui
👍13🔥32👎2💩2😁1
На этой неделе прошла новость, что ориентировочно 9 мая в России запустится магазин приложений NashStore для Android. Как сообщается, его запускают в условиях, когда пользователи из России не могут совершать покупки в Google Play, а разработчики — получить выплаты.

Как думаете, приживётся ли проект? Стали бы потенциально выпускать там свои приложения в текущих условиях?

К слову, подобный проект уже существовал раньше — «Яндекс.Store». Магазин приложений предустанавливался на некоторые модели Android-устройств и проработал до августа 2020 года. Пользовались ли им когда-нибудь?

Просим в комментариях воздержаться от обсуждения политики и оскорблений участников. Мы целиком за конструктивное общение в сообществе.

#чат
🤮54😁13👍12💩5🤔3😢1🎉1