Search
Write a publication
Pull to refresh
14
0
Владислав Шипугин @shipa_o

Android-разработчик

Send message

MVP на стероидах: заставляем робота писать код за вас

Reading time2 min
Views23K
В статье «Moxy — реализация MVP под Android с щепоткой магии» мы рассказывали, как побороть проблему жизненного цикла и разделить код своего Android-проекта на слои. Однако MVP (даже при умной кодогенерации view state в Moxy) заставляет писать огромное количество лишнего кода (создавать связанные друг с другом классы и интерфейсы presenter и view). На самом деле эту работу за вас должен делать робот! :) Настало время еще сильнее уменьшить boilerplate при помощи кастомизации шаблонов Android Studio под Moxy.

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

Generics в Kotlin vs. Generics в JAVA: cходства, различия, особенности

Reading time7 min
Views52K

Эта статья про Generics в Kotlin — особенности их использования, сходства и различия с Generics в Java.

В двух словах про Generics
Если коротко, то Generics — это способ сказать, что класс, интерфейс или метод будут работать не с каким-то конкретным типом, а просто с каким-то. С каким именно будет определено из контекста. Например:

public interface List<E> extends Collection<E> {
	//...
}

Заранее неизвестно, объекты какого класса будут содержаться в списке, но это определится при его использовании:

List<String> list = new ArrayList<>();

Теперь это не просто список, а список строк. Generics помогают обеспечить типобезопасность: в List можно попытаться положить любой объект, но в List<String> — только String или один из его потомков.

Я разделю рассказ про Generics на две части: собственно Generics и использование Wildcards. Пока речь не заходит про Wildcards, использование Generics в Kotlin мало чем отличается от Java.
Читать дальше →

Как мы делали Зимнюю Стажировку по iOS- и Android-разработке в Redmadrobot

Reading time5 min
Views9.3K
Привет, Хабр! Пришло время отчитаться о второй стажировке для разработчиков, которую мы завершили в конце марта. Если в прошлый раз, летом, программа была ориентирована на ребят уровня intern и junior, то на этот раз мы взяли планку выше и собрали стажеров junior и middle. Было круто, но постараться пришлось всем, и нам, и (в особенности) стажерам :)


Superman firmach о файловой структуре проекта
Как это было

Исследовательское тестирование: когда его стоит применять и как это делать

Reading time6 min
Views68K


Многие скептически относятся к исследовательскому тестированию, так как считают, что это пустая трата времени и ресурсов. Но на самом деле это не так. В этой статье я расскажу, когда исследовательское тестирование принесет проекту пользу. В русскоязычной литературе дается очень много различных определений для термина «исследовательское тестирование». Нередко под этим понятием подразумевается ad-hoc тестирование и наоборот. Почему так сложилось исторически можно узнать там — Исследовательское тестирование 3.0. Чтобы при чтении статьи не возникало путаницы, сверим часы и зафиксируем определения.

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

Gradle: управляя зависимостями

Reading time10 min
Views138K
Управление зависимостями – одна из наиболее важных функций в арсенале систем сборки. С приходом Gradle в качестве основной системы сборки Android-проектов в части управления зависимостями произошёл существенный сдвиг, закончилась эпоха ручного копирования JAR-файлов и долгих танцев с бубном вокруг сбоящих конфигураций проекта.



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

Внимание много текста и изображений

Gradle: 5 полезностей для разработчика

Reading time6 min
Views44K
Привет, Хабр! Настало время, когда можно сказать, что «new build system» Gradle является стандартом отрасли Android-разработки. Инструмент сделан настолько просто и удобно, что большинство разработчиков не испытает трудностей, даже не зная, как он устроен, и какие дополнительные возможности в нём есть — возникающие проблемы легко решаются с помощью 5 минут на StackOverflow, путем копирования «магического кода» в конфигурационные файлы. Возможно, в том числе из-за этого не все разработчики изучают Gradle детально и не знают о многих его полезных возможностях, которые существенно облегчают жизнь.


Сегодня рассмотрим пять таких полезностей

Charles: незаменимый тул в арсенале QA-инженера

Reading time5 min
Views235K

Для тестирования мобильных приложений, работающих с удаленными серверами, QA-инженеру приходится держать под рукой множество разных тестовых аккаунтов, логов, запросов и ответов. Реальность такова, что не всегда удается договориться о предоставлении нужных тестовых данных в срок. Чаще всего серверные разработчики будут незнакомыми вам людьми по ту сторону Скайпа. В таких ситуациях приходится своими руками подменять ответ сервера перед его передачей в приложение.

Чтобы редактировать выдачу сервера и воспроизводить сложные тестовые сценарии в QA Redmadrobot, мы используем Charles.
Читать дальше →

Как мы впервые делали стажировку по iOS и Android-разработке в Redmadrobot

Reading time4 min
Views17K
В мае мы писали, что открываем набор на стажировку для iOS и Android-разработчиков. Опыт был для нас необычный, новый и интересный.


И вот что из этого получилось

Deep Linking для мобильных приложений

Reading time8 min
Views143K
На WWDC 2015 инженеры компании Apple заявили, что пересмотрели подход к Deep Linking, в прошлом году компания Google анонсировала App Index — как новый взгляд на глубинные ссылки, в начале 2015 года в мире мобильной разработки заговорили о контекстных Deep Links. Что это за инструмент и как с ним работать применительно к iOS — расскажу в этой статье.

Что это?


Один из способов увеличения конверсии при продвижении IT-продукта — уменьшение барьеров для достижения пользователями искомой цели. В мобильной разработке эта проблема еще актуальней. При использовании e-mail, push или sms-рассылок с информацией о промо-акциях упрощение доступа к функционалу приложения просто необходимо. В такой ситуации просто запуск приложения из внешнего источника — не решение, ведь промо-акция — это конкретное спец.предложение в конкретном разделе. Чтобы после запуска приложения пользователю не пришлось по нему бродить, искать и раздражаться, нужен дополнительный инструмент, предопределяющий навигацию. И такой инструмент есть.
Deep Linking (глубинное связывание) — технология, благодаря которой пользователь может перемещаться между приложениями в заранее определенные разделы.


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

Стажировка в Redmadrobot: жаркая, летняя, интересная

Reading time3 min
Views22K
Мы открываем набор жаждущих знаний и дела разработчиков, с которыми хотим провести лето на море в Москве. Боевой курс мобильной разработки с погружением в бассейн реальные проекты и роботы-менторы.

image

Подробнее — под катом.
Читать дальше →

Runscope: удобный тул для тестирования API

Reading time3 min
Views33K

Back-end не всегда функционирует так идеально, как указано в API-спецификации. Например, кто-нибудь забывает внести обязательный параметр в JSON-строку выдачи или вместо «0» решает вписать null. Если такие данные проникают в мобильное приложение, последствия могут быть самые неприятные.
Сегодня я расскажу об инструменте, который используется для выявления таких случаев. Это Runscope.
Читать дальше →

Material Design: на Луну и обратно

Reading time11 min
Views391K
“Это унылое диалоговое окно действительно нужно?”



В этой статье я изложил главные принципы Material Design и дал советы по их воплощению. Текст написан по следам мастер-класса для разработчиков, который мы, Роботы, устраивали совместно с российским офисом Google (Think Mobile).


Когда-то все продукты Google выглядели по-разному плохо. Даже один продукт на разных платформах выглядел неконсистентно.

Все стало меняться в 2011 году, когда в Google начали усиленно работать над унификацией визуальной части экосистемы своих продуктов и назвали все это Project Kennedy.

При чем тут Кеннеди?
Легенда такова: президент Кеннеди инициировал программу полёта человека на Луну (если верить, что этот полёт когда-либо был). А большой начальник в Google Ларри Пейдж исповедует принцип, что продукты нет смысла улучшать на 10% — они должны быть в 10 раз лучше, чем у конкурентов. Если уж запускать продукт, то сразу на Луну. Вот и здесь было решено круто всё переделать.

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

Инструментарий бизнес-аналитика: личный опыт

Reading time5 min
Views53K


Мы не раз рассказывали, как первый же крупный клиент чуть не убил весь наш бизнес. Тогда одной из явных дыр, наряду с QA (Quality Assurance), был BA (Business Analysis). До появления в нашем портфеле по-настоящему больших проектов необходимости в глубоком анализе бизнес-требований заказчика и выработки системных решений для их удовлетворения не было. Сейчас в Redmadrobot три бизнес-аналитика, которые определяют точки развития мобилити-проектов, исходя из бизнес-задач клиентов.
Один из наших BA — Семен Заморов — поделился своим Toolset, набором программ, которые помогают ему выполнять работу еще быстрее.
Читать дальше →

Тестирование своего приложения — 9 полезных советов для разработчика

Reading time5 min
Views26K


Сейчас в каталогах приложений Apple App Store и Google Play в совокупности размещено около 3 миллионов мобильных программ. Количество приложений стабильно растет, чего нельзя сказать о качестве подавляющего количества уже размещенных программ. Одна из причин такой ситуации — разработчики недостаточно хорошо тестируют приложения, во многом это происходит из-за отсутствия должного опыта.

Профессиональный тестировщик, конечно же, смог бы помочь довести мобильное приложение практически до идеального состояния. Но у большинства разработчиков обычно нет средств на оплату услуг такого профессионала. А пользователи не хотят мириться с плохим качеством. И если пользователь обнаруживает серьезную проблему (чрезмерное потребление энергии, краш приложения, зависание телефона), то 44% пользователей, по статистике, сразу удаляют приложение, не разбираясь с проблемой. 96% таких пользователей пишут плохой отзыв о программе. На самом деле, причин, по которым приложение удаляется, довольно много, мы уже писали об этом в своем блоге. Сейчас давайте поговорим о том, что можно предпринять, чтобы приложение работало, как нужно, радуя пользователя стабильностью, а разработчика — доходом от рекламы.
Читать дальше →

Резюме программистов. Часть 1 (плохие)

Reading time3 min
Views326K
Честно скажу, когда я искал работу, мое резюме смело можно было отнести к категории плохих. Да, там было несколько хороших секций (типа, а вот я написал 2 книжки и 30 статей), но также там была и таблица скилов со строчкой: C#, 1 year of experience, Intermediate (!).

Сейчас я читаю много резюме и приглашаю людей на интервью. За последние 3 года я провел около сотни интервью, а резюме повидал раз в 5 больше. Так что сейчас я довольно четко представляю, что я хочу видеть в резюме. Но для начала я расскажу, чего в резюме я видеть не хочу.

Шаблоны


Многие аутсорсинговые компании придумали себе шаблоны резюме. Мотивация, в принципе, понятна, они хотят все унифицировать чтобы использовать machine learning для извлечения хороших кандидатов все выглядели одинаково, как рядовые в строю. Однако, шаблоны эти одинаковы для всех позиций и составлены мудрыми CTO недалекими HR, которые понятия не имеют, что такое реально классный программист.

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

Реализация списка использованных библиотек в Android приложении. Попытка №2

Reading time2 min
Views8.2K
Совсем недавно наткнулся на статью на Хабре о том, как реализовать диалоговое окно со списком использованных библиотек. Мне предложенный вариант показался слишком сложным, да и сам список смотрелся криво. В связи с этим я решил поделиться более простым и элегантным способом реализации данного функционала.
Читать дальше →

Тотальная шаблонизация

Reading time9 min
Views28K


Когда собаке программисту нечего делать, он начинает все автоматизировать. Мне по роду своей деятельности приходится писать много кода и, конечно, хочется какие-то повторяющие вещи обобщить в виде библиотек, скриптов или шаблонов для Android Studio. О них и поговорим.

Поехали

Каждому по тысяче: еще раз о Testflight

Reading time2 min
Views60K
Трудно отыскать iOS-разработчика, никогда не пользовавшегося для тестирования своих приложений сервисом TestFlight, или хотя бы не слышавшего о нем. Его популярность в феврале этого года подтвердила сама Apple, купив компанию Burstly, благодаря которой в свое время появился TestFlight.



Как известно, Apple не из тех, кто бросает деньги на ветер — 9 сентября Apple представила TestFlight в App Store уже под своим брендом.
Читать дальше →

Быстрый старт Data Binding в Android

Reading time8 min
Views67K

Введение


Профессионально андроид-разработкой занимаюсь чуть больше года, до этого разрабатывал по Windows Phone и мне понравилась возможность связывать данные из вью модели с самим View при помощи механизма Bindings. А после изучения RX, многие задачи стали решаться более чисто, вью-модель полностью отделилась от View. Она стала оперировать только моделью, совсем не заботясь о том, как она будет отображаться.

В Android такой строгости я не заметил, Activity или Fragment как простейшие представители контроллера чаще всего имеют полный доступ как ко View, так и к модели, зачастуя решая, какой View будет видим, решая таким образом чисто вьюшные задачи. Поэтому я довольно радостно воспринял новость о появлении Data Binding в Android на прошедшем Google IO.



Пока что это только бета релиз, но уже можно протестировать функционал и увидеть направление, в котором двигаются разработчики из Google.
Читать дальше →

Итоги 2015 года для Android-разработчиков

Reading time8 min
Views19K
2015 год закончился, а это значит, что настала пора подвести итоги. Что же важного, полезного и интересного для Android-разработчиков произошло в ушедшем году — читайте в нашем блоге.


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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity