Как стать автором
Обновить

Обновление Android Jetpack: Activity Result API и рефакторинг Fragment

Время на прочтение 3 мин
Количество просмотров 4.2K
Блог компании Android Broadcast Разработка под Android *

Привет! С вами Android Broadcast. Прошли 2 недели и очередной релиз библиотек Jetpack от Google уже с нами. Вышло долгожданное исправление множества багов в Fragment из-за рефакторинга внутри FragmentManager, Activity Result API и много другого. Все самое интересное вы найдете в статье, а все подробности можете найти на сайте

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Telegram запустил продажу никнеймов за Toncoin

Время на прочтение 1 мин
Количество просмотров 7.7K
Мессенджеры *Финансы в IT Криптовалюты IT-компании

Telegram запустил Fragment — платформу для продажи никнеймов для мессенджера. Выставленные на аукцион свободные ники продаются за Toncoin (TON). На текущий момент самый дорогой ник в списке — casino. Его стоимость составляет 52,5 тыс TON или ₽6,19 млн. В списке платформы находятся все зарегистрированные имена, даже тех, кто активно пользуется Telegram. Однако никнеймы активных пользователей не выставлены на аукцион.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 7

Инструкция: как купить и продать никнейм Telegram на аукционе Fragment

Время на прочтение 3 мин
Количество просмотров 37K
Мессенджеры *Управление продажами *Финансы в IT Криптовалюты

В конце октября Павел Дуров рассказал о запуске платформы Fragment для покупки и продажи никнеймов Telegram в рамках аукционов. Покупать и продавать можно как личные юзернеймы, так и названия групп и каналов. «Код Дурова» опубликовал подробную инструкцию по покупке и продаже.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 0

На аукционе Fragment продали никнейм @news за $1,7 млн

Время на прочтение 1 мин
Количество просмотров 1.9K
Мессенджеры *Финансы в IT Криптовалюты

На аукционе по продаже никнеймов в Telegram новый рекорд: ник @news продали за 994 тыс. TON (или за $1,7 млн). До него самым дорогим лотом был @auto, купленный за $1,6 млн.

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 1

Инструкция: как купить анонимный виртуальный номер +888 и регистрироваться в Telegram без СИМ-карты

Время на прочтение 3 мин
Количество просмотров 86K
Информационная безопасность *Мессенджеры *Монетизация веб-сервисов *Социальные сети и сообщества Финансы в IT

6 декабря 2022 года в Telegram стала доступна регистрация в мессенджере без физической СИМ-карты. На площадке Fragment примерно за 990 рублей (9 TON) можно купить случайный анонимный номер +888 ХХХХ ХХХХ, собственность которого реализована через NFT. Заплатив один раз, пользователь будет владеть номером, пока не продаст его на аукционе. «Код Дурова» опубликовал подробную инструкцию, как купить анонимный виртуальный номер +888 и регистрироваться в Telegram без СИМ-карты. Можно привязать номер +888 к своему текущему аккаунту Telegram или создать с ним новый.

Читать далее
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 57

Юзернейм @sber купили на аукционе Fragment (Telegram) за 471 000 TON ($846 тыс.)

Время на прочтение 2 мин
Количество просмотров 6.2K
Мессенджеры *Монетизация веб-сервисов *Социальные сети и сообщества Финансы в IT IT-компании


5 декабря 2022 года анонимный покупатель приобрёл юзернейм sber на аукционе Telegram на площадке Fragment за 471 000 TON ($846 тыс. или примерно 54 млн рублей).
Читать дальше →
Всего голосов 7: ↑4 и ↓3 +1
Комментарии 23

Транзакции фрагментов и потеря состояния активности

Время на прочтение 4 мин
Количество просмотров 12K
Разработка под Android *
Для тех, кто не сталкивался с этой проблемой, поясню на примере — в конце длительной фоновой операции вы показываете диалог (да Google не рекомендует так делать, но заказчик требует). Если до показа диалога вы свернете приложение нажав клавишу Home, то во время показа диалога произойдет исключение IllegalStateException. То же самое произойдет в случае показа диалога ожидания и скрытия его по завершению фоновой активности — вызов метода dismiss() после сохранения состояния вызовет исключение.



Лучшая статья на эту тему, которую я нашел погуглив проблему это Fragment Transactions & Activity State Loss. Статья объясняет проблему, но дает только общие советы, сама проблема остается нерешенной. Возможно кому-то из хабражителей будет интересно сделать перевод статьи, а пока расскажу вкратце ее смысл. Система Android обладает возможностью завершить любую активность вашего приложения и ее фрагменты при нехватке памяти. Чтобы скрыть от пользователя этот прискорбный факт, Android сохраняет состояние активности и восстанавливает его при необходимости, так что пользователь даже не замечает какие катаклизмы происходили на уровне кода. Когда вы пытаетесь отобразить диалог после сохранения состояния, по сути вы нарушаете сохраненное состояние и такая активность не может быть восстановлена. Android решает это простейшим для себя способом — выкидывает исключение и не позволяет закомитить транзакцию фрагментов. А ваше приложение просто крашится.

Читать дальше →
Всего голосов 17: ↑14 и ↓3 +11
Комментарии 15

Возврат результата выполнения из DialogFragment во Fragment минуя Activity

Время на прочтение 3 мин
Количество просмотров 31K
Разработка под Android *
Из песочницы

Введение


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

В официальном Guide по Dialogs есть раздел PassingEvents. В нем рассказано, как вернуть результат работы DialogFragment в вызывающую Activity. Для этого создается дополнительный интерфейс. Activity реализует этот интерфейс, а у DialogFrament есть ссылка на Activity.

Если инициатором вызова DialogFragment является другой Fragment, то в таком подходе нам придется сначала отправить результат в Activity, а потом уже из Activity в заинтересованный в данных Fragment. Отсюда и минусы:
  • Activity знает о деталях реализации фрагмента (сегодня это дополнительный диалог, а завтра можем реализовать все на одном фрагменте);
  • дополнительный код (больше кода = больше возможностей для ошибок).

Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 15

Сохранение состояния фрагментов (Fragment)

Время на прочтение 4 мин
Количество просмотров 53K
Разработка под Android *
Туториал
Из песочницы
Распространенной проблемой является некорректное поведение приложения при повороте девайса. Дело в том что при повороте Activity-host (Activity которое является родителем для фрагмента) уничтожается. В тот момент когда этот процесс происходит FragmentManager отвечает за уничтожение дочернего фрагмента. FragmentManager запускает методы угасающего жизненного цикла фрагмента: onPause(), onStop() и onDestroy().

В случае если в контроллере нашего дочернего фрагмента, к примеру, есть объект Media-Player, то в методе фрагмента Fragment.onDestroy() экземпляр нашего звонко играющего Media-Player-а прервет воспроизведение медиа данных. Первое, что приходит в голову, сохранить состояние объекта Media-Player вызвав Fragment.onSaveInstanceState(Bundle), что сохранит данные, а новое Activity загрузит их. Однако, сохранение состояния объекта MediaPlayer и его последующее восстановление, все равно, прерывает воспроизведение и заставляет акул ненависти сновать в головах пользователей.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 16

История URL, часть 2: путь, фрагмент, запрос и авторизация

Время на прочтение 11 мин
Количество просмотров 23K
Разработка веб-сайтов *
Перевод

mosaic web browser


URL'ы не должны были стать тем, чем стали: мудрёным способом идентифицировать сайт в интернете для пользователя. К сожалению, мы не смогли стандартизировать URN, который мог бы стать более полезной системой наименования. Считать, что современная система URL достаточно хороша — это как боготворить командную строку DOS и говорить, что все люди просто должны научиться пользоваться командной строкой. Оконные интерфейсы были придуманы, чтобы пользоваться компьютерами стало проще, и чтобы сделать их популярнее. Такие же мысли должны привести нас к более хорошему методу определения сайтов в Вебе.

— Дейл Догэрти, 1996

Есть несколько вариантов определения слова "интернет". Один из них — это система компьютеров, соединенных через компьютерную сеть. Такая версия интернета появилась в 1969 году с созданием ARPANET. Почта, файлы и чат работали в этой сети еще до создания HTTP, HTML и веб-браузера.


В 1992 году Тим Бернерс-Ли создал три штуки, благодаря которым родилось то, что мы считаем интернетом: протокол HTTP, HTML и URL. Его целью было воплотить понятие гипертекста в реальности. Гипертекст, в двух словах — это возможность создавать документы, которые ссылаются друг на друга. В те годы идея гипертекста считалась панацеей из научной фантастики, заодно с гипермедиа, и любыми другими словами с приставкой «гипер».

Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 7

История в каждой вкладке или multiple backstack

Время на прочтение 4 мин
Количество просмотров 5.7K
Разработка под Android *


Проблема


С выходом android 3.0 (Api Level 11) в android появились фрагменты, и так уж у разработчиков google получилось, что для них поддерживается только один backstack. Не всегда дизайнеры и заказчики хотят учитывать эту особенность. А иногда просто хотят полную копию уже существующего ios приложения.

Допустим нам нужно сделать подобие Tab Bar на android, в том числе с сохранением истории в каждой вкладке. Но у нас один backstack, и что же нам делать? Задача кажется невозможной.
Как сделать то, что невозможно?
Всего голосов 13: ↑8 и ↓5 +3
Комментарии 20

Разбираемся с Conductor

Время на прочтение 10 мин
Количество просмотров 14K
Разработка под Android *
Из песочницы

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


Conductor позиционируется как замена стандартным фрагментам. Основная идея обернуть View и дать доступ к методам жизненного цикла. Conductor имеет свой жизненный цикл, который сильно проще чем у фрагметов, но и в нём есть свои хитрости (об этом дальше).


Основные преимущества, которые даёт Conductor:


  • Упрощение кода
  • Транзакции выполняются мгновенно
  • Возможность построить приложение на одной Activity
  • Не ограничивает в выборе архитектуры приложения
  • Легко встраиваемые анимации
  • Отсутствие необходимости сохранять состояния между изменениями конфигураций

Так же в коробке вы получите:


  • Работа с бэкстеком
  • Стандартные коллбеки активити легко доступны
  • Несколько стандартных анимаций
  • Привязка жизненного цикла к RxJava
  • Быстрая интеграция с ViewPager

Далее мы с вами разберём несколько типовых кейсов использования, которые встречаются почти во всех приложения и попробуем разобраться в жизненном цикле контроллера.


Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 1

Лицензия на вождение болида, или почему приложения должны быть Single-Activity

Время на прочтение 14 мин
Количество просмотров 54K
Блог компании red_mad_robot Разработка под Android *

image


На AppsConf 2018, которая прошла 8-9 октября, я выступил с докладом про создание андроид-приложений целиком в одном Activity. Хотя тема известная, существует много предубеждений относительно такого выбора — переполненный зал и количество вопросов после выступления тому подтверждение. Чтобы не ждать видеозаписи, я решил сделать статью с расшифровкой выступления.



О чем я расскажу


  1. Почему и зачем надо переходить на Single-Activity
  2. Универсальный подход для решения задач, которые вы привыкли решать на нескольких Activity
  3. Примеры стандартных бизнес задач
  4. Узкие места, где обычно подпирают код, а не делают все честно
Читать дальше →
Всего голосов 43: ↑40 и ↓3 +37
Комментарии 84

Как в Android'е передать переменную из фрагмента в активность?

Время на прочтение 4 мин
Количество просмотров 15K
Java *Разработка под Android *Kotlin *
Из песочницы
Рассказ о том, как в Android'е передать информацию из фрагмента (Fragment) в активность (Activity). Информация будет полезной для новичков (джуниоров), осваивающих программирование для Android, и вряд ли будет интересной для миддлов и сеньоров.

Запускаем IDE (integrated development environment) Android Studio. Создаём новый проект: File -> New -> New Project. Выбираем «Empty Activity», жмём «Next».
Читать дальше →
Всего голосов 29: ↑17 и ↓12 +5
Комментарии 26

Навигация для Android с использованием Navigation Architecture Component: пошаговое руководство

Время на прочтение 6 мин
Количество просмотров 32K
Разработка мобильных приложений *Разработка под Android *Kotlin *Дизайн мобильных приложений *
Туториал
Попробуем, пользуясь официальным руководством и примерами кода, построить работающую систему навигации для будущего многоэкранного приложения в соответствии со стандартами Navigation Architecture Component. Статья включает следующие разделы:

Часть 1. Подготовительные работы
— 1.1. Создание проекта
— 1.2. Зависимости (Dependencies)
— 1.3. Страницы: создание фрагментов
— 1.4. Адреса: файл ресурсов типа «Navigation»
— 1.5. Фрейм: виджет NavHostFragment

Часть 2. Элементы навигации
— 2.1. Навигация с помощью кнопок
— 2.2. Боковое меню (Drawer)
— 2.3. Панель инструментов: Toolbar вместо ActionBar
— 2.4. Нижнее меню (Bottom Navigation)
— 2.5. Всплывающее меню (Overflow Menu)

Краткие выводы и ссылка на github
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 5

Hidden mistakes with Shared Element Transitions

Время на прочтение 4 мин
Количество просмотров 8.4K
Блог компании red_mad_robot Разработка мобильных приложений *Разработка под Android *


There is a good practice to make your application beautiful and live, and nowadays there are a lot of tools and ways to achieve this. One of them is Shared Element Transition.

In this article I’ll cover a few mistakes which have cost me a lot of time; I’ll show how to avoid them if you decide to implement this kind of transitions with Fragments on application.
Read more →
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 4

Отправка событий из ViewModel в Activity/Fragment в MVVM

Время на прочтение 7 мин
Количество просмотров 6.9K
Блог компании Home Credit Bank Разработка мобильных приложений *
Туториал
Сегодня речь пойдет о том, как обмениваться события между Activities/Fragments и ViewModel в MVVM. Для получения данных из ViewModel, рекомендуется в Activity/Fragment подписываться на данные LiveData, находящиеся во ViewModel. Но что делать для отправки единичных (и не только) событий, таких как показать уведомление или, например, открыть другой фрагмент?


Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 10

Новости Android разработки 15.02.2021

Время на прочтение 5 мин
Количество просмотров 2.3K
Блог компании Android Broadcast Разработка под Android *

Новости Android разработки: обновление Android Jetpack, Activity Result API, рефакторинг Fragment, модуляризация 2021 и др.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 0

Получаем результат правильно (Часть 2). Fragment Result API

Время на прочтение 6 мин
Количество просмотров 10K
Блог компании e-legion Разработка мобильных приложений *Разработка под Android *
Туториал

Мы продолжаем рассказ о новинках библиотеки Jetpack, призванных упростить обмен данными между компонентами Android приложения. Первая часть была посвящена передаче данных из Activity и новому Api Activity Result.  

На этот раз посмотрим, какое решение Google предлагает для Fragment. Ввиду популярности паттерна “Single Activity” работа с фрагментами представляет большой практический интерес для многих Android-разработчиков.

“Как передать данные между двумя фрагментами?” - частый вопрос на собеседованиях. Ответить на него можно по-разному: создание общей ViewModel, имплементация интерфейса в Activity, использование targetFragment и другие способы. 

С появлением Fragment Result Api в этот список добавился простой способ передачи небольшого объема информации из одного фрагмента в другой. Например, возвращение результата какого-либо пользовательского сценария. Мы разберем, как применять новый Api на практике, но сначала немного теории.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Jetpack Fragment 1.4: Multi Back Stack, StrictMode

Время на прочтение 5 мин
Количество просмотров 3.4K
Блог компании Surf Разработка под Android *

Из статьи вы узнаете про новинки Jetpack Fragment 1.4: поддержку множественного back stack, FragmentStrictMode, новый менеджер состояний Fragment. Также расскажем, какие улучшения произошли под капотом.

Читать
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 4
1