Search
Write a publication
Pull to refresh
0
0
Xcam @Xcam

User

Send message

Введение в RxJava: Создание последовательности

Reading time8 min
Views67K
image

Теперь, когда мы понимаем основные принципы Rx, настало время научиться создавать и управлять последовательностями. Стиль управления последовательностями был позаимствован у оригинального C# LINQ, который в свою очередь был вдохновлен функциональным программироанием. Мы поделим все операции по темам, которые отсортированы в порядке возрастания сложности операций. Большинство операторов Rx управляют уже существующими последовательностями, но для начала мы научимся их создавать.

Читать дальше →

ТОП-5 докладов с конференции по мобильной разработке Mobius 2015

Reading time4 min
Views9.8K


В прошлом году в Питере мы провели Mobius 2015 – конференцию для опытных разработчиков под мобильные платформы. Конференция собрала порядка 250 разработчиков, из которых примерно 150 пишут под Android, 120 – под iOS, и около 100 – под остальные платформы (как вам такая арифметика?).

Мероприятие — действительно уникальное, все-таки хардкорные мобильные конференции в России можно пересчитать по пальцам одной руки столяра. А в Mobius ключевой фичей были и остаются доклады.

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

Итак, поехали.
Читать дальше →

Зачем нужна денормализация баз данных, и когда ее использовать

Reading time8 min
Views88K


В нашем блоге на Хабре мы не только рассказываем о развитии своего продукта — биллинга для операторов связи «Гидра», но и публикуем материалы о работе с инфраструктурой и использовании технологий.

Недавно мы писали об использовании Clojure и MongoDB, а сегодня речь пойдет о плюсах и минусах денормализации баз данных. Разработчик баз данных и финансовый аналитик Эмил Дркушич (Emil Drkušić) написал в блоге компании Vertabelo материал о том, зачем, как и когда использовать этот подход. Мы представляем вашему вниманию главные тезисы этой заметки.
Читать дальше →

Кюветы Android, Часть 2: SDK и Libraries

Reading time10 min
Views23K
Разрабатывая под Android, всегда нужно быть начеку. Шаг влево / шаг вправо — и вот прошел ещё один час за дебагом. Кюветы могут быть какие угодно: начиная от обычных багов в SDK и заканчивая неочевидными именами методов с контекстно зависимым результатом (да-да, Fragment.getFragmentManager(), это я о тебе).

В предыдущей статье были описаны кюветы «на поверхности» SDK, в которые угодить очень легко. На этот же раз кюветы будут поглубже, помудрёнее и поспецифичнее. Также будет несколько моментов, связанных с Retrofit 2 & Gson.
image
Читать дальше →

Асинхронные операции и пересоздание Activity в Android

Reading time11 min
Views17K
В одной статье на хабре (274635) было продемонстрировано любопытное решение для передачи объекта из onSaveInstanceState в onRestoreInstanceState без сериализации. Там используется метод writeStrongBinder(IBInder) класса android.os.Parcel.

Такое решение корректно функционирует до тех пор, пока Android не выгрузит ваше приложение. А он вправе это сделать.
…system may safely kill its process to reclaim memory for other foreground or visible processes…
(http://developer.android.com/intl/ru/reference/android/app/Activity.html)

Читать дальше →

Сравнительное тестирование девяти ORM для Android

Reading time7 min
Views33K
На просторах интернета много отрывочной информации о той или иной ORM для Андроид. Пока что мне не попадалось качественное сравнение ведущих ORM. Существующие статьи попахивают пиаром той или иной системы и ставят в невыгодное положение своих конкурентов либо некорректной постановкой тестирования, либо вообще использованием заведомо неверных настроек, либо не включением в тестирование сильных соперников.

Данное тестирование проведено было скорее для собственного интереса. Т.к. ORM много, все они разные, и хотелось бы иметь объективное представление о существующих системах.
Читать дальше →

Разбираемся с многопоточностью в RxJava

Reading time10 min
Views59K

Когда описывают преимущества RxJava, всегда упоминают об удобстве организации работы многопоточного приложения средствами RxJava. То, как использовать операторы subscribeOn и observeOn, можно прочитать практически в каждой статье, посвященной основам RxJava. Например, здесь хорошо описаны случаи, когда использовать методы subscribeOn и когда observeOn. Однако, на практике часто приходится сталкиваться с проблемами, для которых нужно более глубокое понимание того, что именно делают методы subscribeOn и observeOn. В этой статье я хотел бы рассмотреть ряд вопросов, которые иногда возникают при использовании этих операторов.
Читать дальше →

Лямбда-выражения Java 8 — это замыкания?

Reading time6 min
Views58K
Развернутый ответ на вопрос, вынесенный в заглавие поста, приводится в статье Брюса Эккеля в редакции от 25 ноября 2015 года. Мы решили разместить здесь перевод этой статьи и поинтересоваться, что вы думаете о функциональном программировании в Java, а также об актуальности такой книги:



Приятного чтения!

Читать дальше →

После небольшого перерыва мобильная секция на DUMP возвращается

Reading time3 min
Views3.4K
И на этот раз мы постарались сделать секцию более хардкорной и практичной. Ни одного доклада для менеджеров, никаких «как попасть в топ аппстора». Будем обсуждать самые горячие темы в мобильной разработке под iOS и Android, а также поговорим про нетрадиционные способы создания мобильных приложений.

Мобильные разработчики во главе с программным директором Митей Полищуком из Яндекса приготовили для вас насыщенную программу. По катом подробно о том, что ждет мобильных разработчиков в Екатеринбурге 8 апреля.
Читать дальше →

Отчёт с Android Devs Meetup 17 марта

Reading time1 min
Views8.3K
image

17 марта в нашем офисе прошла новая встреча Android-разработчиков — Android Devs Meetup, на которой выступили аж четыре докладчика. И по уже сложившейся традиции предлагаем всем желающим посмотреть видеозаписи и презентации выступлений.
Читать дальше →

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

Reading time4 min
Views58K
Распространенной проблемой является некорректное поведение приложения при повороте девайса. Дело в том что при повороте Activity-host (Activity которое является родителем для фрагмента) уничтожается. В тот момент когда этот процесс происходит FragmentManager отвечает за уничтожение дочернего фрагмента. FragmentManager запускает методы угасающего жизненного цикла фрагмента: onPause(), onStop() и onDestroy().

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

Android архитектура клиент-серверного приложения

Reading time13 min
Views106K
Клиент-серверные приложения являются самыми распространенными и в то же время самыми сложными в разработке. Проблемы возникают на любом этапе, от выбора средств для выполнения запросов до методов кэширования результата. Если вы хотите узнать, как можно грамотно организовать сложную архитектуру, которая обеспечит стабильную работу вашего приложения, прошу под кат.


Читать дальше →

Построение Android приложений шаг за шагом, часть третья

Reading time13 min
Views50K


В первой и второй частях статьи мы создали приложение для работы с Github, внедрили Dagger 2 и покрыли код unit тестами. В заключительной части мы напишем интеграционные и функциональные тесты, рассмотрим технику TDD и напишем с ее применением новую функциональность, а также подскажем, что читать дальше.
Читать дальше →

Dagger 2. Часть вторая. Custom scopes, Component dependencies, Subcomponents

Reading time8 min
Views123K

Всем привет!
Продолжаем наш цикл статей о Dagger 2. Если вы еще не ознакомились с первой частью, немедленно сделайте это :)
Большое спасибо за отзывы и комментарии по первой части.
В данной статье мы поговорим о custom scopes, о связывании компонентов через component dependencies и subcomponents. А также затронем такой немаловажный вопрос, как архитектура мобильного приложения, и как Dagger 2 помогает нам выстраивать более правильную, модульнонезависимую архитектуру.
Всем заинтересовавшихся прошу под кат!

Читать дальше →

Пять шагов по оптимизации производительности приложения для Андроид

Reading time6 min
Views31K
В этой небольшой статье я хочу поделиться с вами опытом, как программно оптимизировать производительность приложения Андроид за 5 простых шагов на примере создания цифровой версии игры «Корона Эмбера».

До создания серьезных приложения со сложной структурой View и Layout'ов мы особо не задумывались над тем, как простые и логичные действия в стиле «смотрите, я набросал дизайн из лэйаутов» могут серьезно замедлить работу всей программы.

Помимо прочего, задача с «Короной Эмбера» осложнялась еще и тем, что игра, которую мы задумали перенести на Андроид платформу, была сама по себе достаточно насыщенной различными компонентами, которые как-то надо было умещать на игровом поле или рядом с ним.

В статье я собрал наш успешный опыт и облёк его в удобную и читабельную форму, полезную для тех, кто все еще гуглит «как программно оптимизировать приложение под Андроид» или «почему мое приложение лагает».
Читать дальше →

Вступление в Реактивное Программирование, которое вы пропустили

Reading time5 min
Views91K
Ну что ж, вы решили выучить новую вещь, которая называется Реактивное программирование (Reactive Programming), а в частности — его имплементацию в виде Rx, Bacon.js, RAC или чего-то другого.
Читать дальше →

Коаны о программировании

Reading time4 min
Views36K
От переводчика: The Codeless Code — сборник побасенок о философии программирования. Побасенки в сборнике разные — некоторые весьма кровожадные, некоторые достаточно хардкорные с технической точки зрения (родной язык автора — Java), но встречаются очень емкие. Представляю вам перевод семи наиболее полюбившихся мне историй, остальные 30+ (новые добавляются каждую неделю) можно найти на сайте.

Пустяк


Три дня и три ночи мастер не появлялся из своей кельи. На четвертый день монахи отправили послушника проведать его.

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

Мастер ответил: «Здесь есть изъян, и я размышляю, как лучше его исправить.»
Читать дальше →

Приглашаем на Android Devs Meetup 17 марта

Reading time1 min
Views4.6K


Приглашаем всех неравнодушных разработчиков на Android Devs Meetup, который состоится 17 марта, в четверг, в московском офисе Mail.Ru Group. В программе — доклады специалистов из Mail.Ru Group, ABBYY и Redmadrobot, а также общение с коллегами по сфере на актуальные темы.
Читать дальше →

Архитектура Android приложений

Reading time8 min
Views76K

Наше путешествие от стандартных Activity и AsyncTask'ов к современной MVP архитектуре с применением RxJava.



Код проекта должен быть разделён на независимые модули, работающие друг с другом как хорошо смазанный механизм — фото Честера Альвареза.

Экосистема средств разработки под Android развивается очень быстро. Каждую неделю кто-то создаёт новые инструменты, обновляет существующие библиотеки, пишет новые статьи, или выступает с докладами. Если вы уедете в отпуск на месяц, то к моменту вашего возвращения уже будет опубликована свежая версия Support Library и/или Google Play Services.

Я занимаюсь разработкой Android-приложений в компании ribot в течение последних трёх лет, и всё это время и архитектура наших приложений, и используемые нами технологии, постоянно развивались и улучшались. Эта статья проведёт вас путём, пройденным нами, показав вынесенные нами уроки, совершенные нами ошибки, и рассуждения, которые привели ко всем этим архитектурным изменениям.
Читать дальше →

Превью Android N: API и инструменты разработчиков

Reading time4 min
Views33K
Привет, Хабр! Сегодня у нас в программе кое-что особенное. Новые версии ПО важны для пользователей: они предоставляют доступ к новым возможностям на их устройствах. Но ещё важнее получить своевременный доступ к новому ПО для разработчиков. Использовать новейшие инструменты, API, проверить приложение на совместимость, одним из первых внедрить самые свежие и крутые наработки… В общем, мы рады представить вам тестовую версию Android N для разработчиков!



Чем ещё важен выход тестовой версии для разработчиков? Тем, что именно разработчики понимают, как важен грамотный и своевременный фидбэк. Один хороший багрепорт может сохранить вам кучу времени, поэтому мы решили выпустить девелопер-превью намного раньше, чем делали это в прошлых версиях.  
А что нового в Android N?

Information

Rating
10,481-st
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity