![](http://webcf.waybackmachine.org/web/20210606140127im_/https://habrastorage.org/getpro/habr/avatars/e7d/d1f/7ae/e7dd1f7ae26609981edce6deabc5d751.png)
Дайджест интересных материалов для мобильного разработчика #396 (31 мая — 6 июня)
- Блог компании Productivity Inside,
- Разработка под iOS,
- Разработка мобильных приложений,
- Разработка под Android
![](https://webcf.waybackmachine.org/web/20210606140127im_/https://habrastorage.org/webt/c6/iv/md/c6ivmdfipbhhndwbn7sd_sxhce8.jpeg)
Когда вы создаете различные формы (например: регистрации или входа) на Flutter, вы не заморачиваетесь с кастомизацией компонентов, потому что мы можем изменить любое поле формы под свой стиль.
Помимо кастомизации, Flutter предоставляет возможность обработки ошибок и валидации полей формы.
И сегодня мы постараемся разобраться с этой темой на небольшом примере.
Ну что ж, погнали!
Наконец-то мы добрались до одной из самых важных тем, без которой идти дальше нет смысла.
План довольно простой: нам предстоит познакомиться с клиент-серверной архитектурой и реализовать получение списка постов.
В конце мы правильно организуем файлы наших страниц и вынесем элемент списка в отдельный файл.
Полетели!
Привет! Меня зовут Ксения Кайшева, я пишу приложения под Android в компании 65apps. Сегодня расскажу о новой возможности, которая позволяет централизованно описывать зависимости на проектах с системой сборки Gradle.
Всем добрый денек! Надеюсь после первых трех статей, эта вам покажется не менее полезной.
Сегодня я постараюсь простым языком объяснить MVC паттерн.
И конечно же покажу все на практике!
Поехали!
Поздравляю, по крайней мере, всех живущих в Сибири с наступлением лета!)))
Сегодня довольно непростая тема - навигация.
Мы рассмотрим как устроена навигация в Flutter, что вообще нужно чтобы перейти с одного экраны на другой и конечно же не забудем о передачи аргументов между экранами.
И напоследок весьма распространенный use case: создание BottomNavigationBar.
'Ну что ж не будем терять ни минуты, начинаем!
PendingIntent являются важной частью фреймворка Android, но большинство доступных ресурсов для разработчиков сосредоточены на деталях их имплементации — «ссылка на токен, поддерживаемый системой» — а не на их использовании.
Поскольку Android 12 содержит важные нововведения в отношении отложенных намерений, включая определение того, является ли PendingIntent
изменяемым или неизменяемым, я подумал, что будет полезно рассказать о том, что делают отложенные намерения, как система использует их, и почему вам иногда может понадобиться изменяемый PendingIntent
.
С тех пор, как команда Google AndroidX представила на замену библиотеки SharedPreferences новую библиотеку DataStore, прошел почти год, однако популяризация новой либы явно не стоит в активных задачах. Иначе я не могу объяснить 1) неполноценный гайд, следуя лишь по которому, у вас вообще не соберется проект из-за отсутствия всех необходимых зависимостей и дополнительных build-задач для системы сборки, и 2) отсутствие не hello-world подобных примеров в CodeLabs, кроме одного, и то, заточенного не под пример использования библиотеки с нуля, а под миграцию с SharedPreferences на Preferences DataStore. Аналогично все статьи на Medium буквально или другими словами повторяют все то же, что написано в гайде Google, либо используют неправильные подходы для работы с DataStore, предлагая заворачивать асинхронный io-код в runBlocking прямо на ui-потоке.
А еще неплохо бы соединить "тыл" с "фронтом", так сказать: у Google имеется библиотека AndroidX Preferences, которая позволяет в два клика накидать готовый material-design фрагмент для управления настройками приложения, чтобы излюбленным способом кодогенерации освободить разработчика от написания boilerplate. Однако эта библиотека в качестве хранилища предлагает использовать устаревшие нынче SharedPreferences, а официального гайда по соединению с DataStore нет. В этой заметке я хотел бы своим способом устранить два описанных недостатка.
Прошло Google I/O и мы узнали абсолютно всё про новую версию Android. Основной упор в релизе был сделан на усиление безопасности ОС и приватности данных, а также провели редизайн системы. Очень хорошо поработали с поддержкой новых современных стандартов Media, причём минимизировали объем боли, которую будут испытывать флагманские устройства из-за старых или бюджетных смартфонов. App Widgets воскресили и сделали улучшения, которые просили еще с первой версии Android.
Добрый денек!
Мы продолжаем изучать Flutter.
И в этой статье мы познакомимся с файлом pubspec.yaml, а также поработаем с Flutter в командной строке.
Ну что ж, приступим!
Всем привет, меня зовут Иван, я Android-разработчик. Сегодня хочу поделится своим опытом работы с RxJava2 и рассказать, как происходит инициализация цепочки. Почему я вообще решил поднять эту тему? Пообщавшись со знакомыми разработчиками, я понял, что не каждый кто использует этот инструмент понимает, как он работает. И тогда я решил разобраться как же устроены подписки в RxJava2 и в какой последовательности вся работа инициализируется. Я не нашел ни одной статьи, поясняющей это. В свете этого я полез в исходники, чтобы посмотреть, как же все работает и набросал для себя небольшую шпаргалку, которая выросла в данную статью.
В этой статье я не буду описывать что такое Observable
, Observer
и все остальные сущности, которые используются в RxJava2. Если вы решили прочитать данную статью, то я предполагаю, что вы уже знакомы с этой информацией. А если вы всё же не знакомы с этими понятия, то я рекомендую перед началом чтения ознакомиться с ними.
Вот с чего можно начать:
Исследуем RxJava 2 для Android
Давайте посмотрим, как работает простейшая цепочка.
Добрый день всем желающим познакомиться с Flutter!
У меня появилось горячее желание поделиться с вам моими знаниями, которые я накопил за несколько месяцев.
Возможно мой опыт совсем мал по сравнению с гуру программистами, я все же попытаюсь сделать что-нибудь полезное для вас.
Результатом нашей работы будет небольшое Flutter приложение, которое будет брать данные из JSONPlaceholder.
Скоро выходит Android 12, но в этом августе уже с 11-й версии разработчикам придётся использовать новые стандарты доступа приложений к внешним файлам. Если раньше можно было просто поставить флаг, что ваше приложение не поддерживает нововведения, то скоро они станут обязательными для всех. Главный фокус — повышение безопасности.
Переход на новую версию API — довольно трудоёмкая операция, требующая больших затрат на ее поддержку при введении крупных апдейтов. Под катом расскажу немного про наш переход и возникшие при этом трудности.
У платформодержателей мобильных сторов множество причин для блокировок. Если напрямую с этим не сталкиваться, то, кажется, что все просто - не нарушай описанные правила и все будет отлично. На деле не все блокировки легко предугадать простым следованием гайдлайнов.
Мы продолжаем рассказ о новинках библиотеки Jetpack, призванных упростить обмен данными между компонентами Android приложения. Первая часть была посвящена передаче данных из Activity и новому Api Activity Result.
На этот раз посмотрим, какое решение Google предлагает для Fragment. Ввиду популярности паттерна “Single Activity” работа с фрагментами представляет большой практический интерес для многих Android-разработчиков.
“Как передать данные между двумя фрагментами?” - частый вопрос на собеседованиях. Ответить на него можно по-разному: создание общей ViewModel, имплементация интерфейса в Activity, использование targetFragment и другие способы.
С появлением Fragment Result Api в этот список добавился простой способ передачи небольшого объема информации из одного фрагмента в другой. Например, возвращение результата какого-либо пользовательского сценария. Мы разберем, как применять новый Api на практике, но сначала немного теории.
После праздничных каникул (это было в январе) я решил немного поработать Android разработчиком на пол ставки, дабы совмещать работу с учебой.
Ещё в декабре я познакомился с главным программистом IT-компании, которая находится в Сочи.
Я не буду оглашать имя компании в целях корпоративной тайны, это не суть. Компания довольно молодая, и поэтому использует более новые технологии. Я был удивлен, когда мне ответили, что им нужен Flutter разработчик, а не Java/Kotlin.
Так я и познакомился с Flutter.
Если вы регулярно читаете Хабр, то вам попадались статьи в духе: бросайте всё и начинайте изучать Swift, Kotlin или Flutter прямо сейчас. Давайте разбираться, правда ли стоит переобуваться в мобильного разработчика. Мы попросили спикеров, программный комитет и разработчиков взглянуть на сферу мобильной разработки с разных ракурсов и приоткрыть завесу тайны грядущей конференции Мир. Труд. Мобайл. В конце приятный бонус для читателей Хабра и подробности программы.