Мобильная разработка – 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
Как сделать автотесты на Swift комфортными для тестировщиков

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

В этой статье Игорь Бессараб из IW Group рассказывает, как их команде с помощью iOS-разработчиков удалось настроить XCUITest и освоить нативные автотесты:

https://tproger.ru/articles/kak-sdelat-avtotesty-na-swift-komfortnymi-dlja-testirovshhikov/

#swift
This media is not supported in your browser
VIEW IN TELEGRAM
Руководство по App Shortcuts на Android

Вероятно, вы уже знакомы с App Shortcuts и встречали их в проектах. Популярные приложения, такие как Instagram или WhatsApp, используют Shortcut Manager API для легкого создания ярлыков.

В этом руководстве рассматривается, как реализовать и управлять тремя различными типами ярлыков, а именно:

1. Static — статические ярлыки создаются через xml и не могут быть изменены.
2. Dynamic — динамические ярлыки, которы могут обновляться во время выполнения.
3. Pinned — закреплённые ярлыки часто используются для быстрой навигации в приложении.

Подробнее: https://tprg.ru/mx2D

#android
6👍2
Серия статей по Fragment API

Часть 1. Транзакции:
— разбор функций из Fragment-ktx,
— оптимизация транзакций,
— способы управления видимостью и жизненным циклом фрагментов.

Часть 2. (Не) создаем инстанс:
— создание фрагментов в XML,
— добавление зависимостей в конструктор через FragmentFactory,
— транзакции без создания Fragment.

Часть 3. Навигация:
— множественный backstack,
— особенности работы OnBackPressedDispatcher,
— что такое Primary Navigation Fragment и Fragment Result API.

Часть 4. Анимации и меню:
— создание shared element transitions,
— три метода addMenuProvider() для добавления MenuProvider,
— правила работы с анимациями.

#android
👍112🔥1
Аудит кода для Flutter-приложений

Небольшое руководство, как провести Code Audit проектов на Flutter: анализ производительности, UI, I/O и многое другое. Большинство советов можно использовать и для проверки нативных приложений:

https://chililabs.io/blog/flutter-mobile-app-code-audit

В статье не разбирается аудит безопасности системы, т.к. для этого чаще используются сторонние сервисы. Однако если вы хотите ознакомиться с этой темой, то в репозитории MASVS собраны все основы.

#flutter
👍3
Google представила KataOS

Google анонсировала новую операционную систему для обеспечения безопасности встраиваемых устройств , т.к. по результатам Google Research Team, именно они чаще всего подвержены хакерским атакам.

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

Источник:

https://opensource.googleblog.com/2022/10/announcing-kataos-and-sparrow.html

#новости
👍7
Тенденции мирового IT-рынка от Gartner на 2023 год

Gartner — это исследовательская компания, которая специализируются в области информационных технологий. Каждый год Gartner выпускает список ключевых технологических трендов, которые имеют решающее значение для бизнеса в течение следующих 36 месяцев.

На 2023 год в список вошли суперприложения (SuperApps). По прогнозам компании, к 2027 году более 50% населения будут активно использовать многофункциональные мобильные приложения.

Отчёт Gartner можно скачать на сайте бесплатно. В нём также указываются основные показатели для развития супераппов.

#исследование
👍7
Реализации FaceID и TouchID на iOS

Сторонние приложения могут использовать API, предоставленные Apple, чтобы запрашивать у пользователя аутентификацию посредством Face ID или Touch ID.

Swift обрабатывает аутентификацию с помощью фреймворка LocalAuthentication и класса LAContext. Также можно настроить кнопку отмены и кнопку отображения пароля в качестве запасного варианта.

В этой статье автор подробно рассказал, как настроить FaceID и TouchID, а также реализовал простой SwiftUI-дизайн:

https://tprg.ru/MCSR

#ios #swift
👍11
Почему BMW выбрала Flutter для разработки собственных приложений?

В течение многих лет BMW в основном фокусировались только на iOS-платформе для BMW & MINI Connected приложений. Однако в 2018 году стало понятно, что расхождения в функциональности и дизайне между приложениями на iOS и Android стали слишком большими.

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

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

https://tprg.ru/Agwp

#flutter
🤡28👍14💩4🔥1
Дизайн систем: Google Material Design и не только

Одни компании используют Material Design для создания пользовательских интерфейсов, другие — создают собственную систему дизайна, например, Spotify.

А что, если вы создаёте UI-библиотеку и нужно подготовить её для работы с разными системами? В статье рассматривается архитектура и реализации данного кейса во ViewModel и Fragment:

https://tprg.ru/5Tpf

#android
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация горизонтальной анимации на Swift 5

Руководство по созданию динамической анимации с изменением изображений на заднем плане. Автор статьи подробно рассказал про процесс создания, начиная с настройки Storyboard до подсчёта интервалов между слайдами:

Часть 1: https://tprg.ru/1QsN
Часть 2: https://tprg.ru/nmi0
Часть 3: https://tprg.ru/SMAr

#swiftui
👍8😍4
Доклад от Google по Kotlin

Компания постепенно переходит на Kotlin для внутренних сервисов. Java по-прежнему обеспечивает доступ к большей части уже существующей системам, однако Google продолжает работать над изменениями — задействовано 1000 сотрудников.

В этом докладе рассматриваются проблемы, с которыми столкнулись разработчики, и причины, по которым Google добавила Kotlin:

https://youtu.be/o14wGByBRAQ

#kotlin
🔥14🍾1
Часто задаваемые вопросы на собеседовании по Android

Автор статьи часто принимает участие в интервью с международными компаниями и стартапами, поэтому составил базовый список вопросов для собеседования
Senior-разработчика по Java, Kotlin, Android и другим темам. Не все вопросы дотягивают до уровня Senior (и даже Middle), но проверить себя стоит:

https://tprg.ru/uDfE

Кстати, Google тоже делает квизы, которые доступны всем разработчикам, кто хочет проверить свои знания по определё‎нным темам.

#собеседование #android
👍16
Чистая Архитектура для Flutter приложений

В статье рассматривается, как используя подход Роберта Мартина (автор книги «Чистый код»), создать каркас CRM-приложения на Flutter и контролируемо внедрять изменения:

https://tprg.ru/oygr

#flutter
👍12💩4
Передача цифровых данных по рации с помощью мобильного приложения

Можно ли расширить функционал рации до передачи текстовых сообщений? Автор статьи реализовал приложение, которое позволяет обмениваться сообщениями с помощью встроенных динамика и микрофона на Android.

В приложении только два Activity: передатчик и приёмник. Также в статье затронуты темы по формированию звука, сохранению сигнала, фильтрации и реализации скользящей средней:

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

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

iOS-разработчик
Где: Москва
Опыт: можно без опыта

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

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

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

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

#вакансии #работа
👎7👍5💩3
Умная камера Яндекса: интервью с разработчиком

Недавно Android Broadcast провели интервью с Романом Жуковым, в котором обсудили возможности и технологии, которые использовались в умной камере Яндекс. А также:

— Jetpack CameraX,
— развитие Camera API в Android,
— сложности разработки.

Камера распознаёт предметы, сканирует документы и рассказывает, где купить тот или иной предмет.

Ссылка на интервью: https://youtu.be/Tf_XcWoRky8

#интервью
👍8👎3
Реализуем собственный ColorWheel на Android

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

Подробнее в статье: https://habr.com/ru/post/694852/

#android
👍6
Jetpack Microbenchmark — тестируем производительность кода

Работая с библиотекой Microbenchmark, можно оценить производительность приложения и разрешить спорные ситуации во время проверки кода:

В этой статье рассматривается, как устроена и работает Jetpack Microbenchmark, а также примеры её использования:

https://tprg.ru/7Soc

#android
👍6
Руководство по реализации режима «Картинка в картинке (PiP)» на Android

В этой статье автор поделился, как всего за 5 шагов можно настроить PiP в приложении. Для начала нужно добавить в Manifest файл поддержку PiP, установив для атрибута android:supports PictureInPicture значение true.

Также в конце статьи автор даёт советы, на которые следует обратить внимание при реализации фичи:

https://tprg.ru/ZN4d

#android
👍8❤‍🔥11
Что надо учитывать, создавая тёмную тему приложения?

Во многих приложениях используются тёмные темы и это уже давно не тренд, а инструмент для повышения вовлеченности пользователей.

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

https://habr.com/ru/company/ispmanager/blog/694412/

#исследование
👍12