Pull to refresh
0
0
Send message

Дайджест интересных материалов для мобильного разработчика #229 (6 ноября — 12 ноября)

Reading time4 min
Views10K
В новой подборке мы обозреваем материалы прошедшей короткой недели: продуктизацию мозга, хаос в тестах, разностороннюю разработку Badoo, пустые экраны и полные архитектуры.

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments2

Русское издание книги Programming Interviews Exposed

Reading time2 min
Views8.9K
Добрый день!

Сегодня мы представляем одну из последних новинок нашего издательства — книгу «Работа мечты для программиста. Тестовые задачи и вопросы при собеседовании в ведущих IT-компаниях». Русское название, возможно, оказалось слишком «маркетинговым», но содержание от этого не страдает — книга переиздается на Западе уже более 10 лет и заслуженно все эти годы возглавляет рейтинги IT-литературы.

image

Предлагаем вашему вниманию информацию о книге, а также тестовое задание, которое вы можете попробовать решить самостоятельно.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments10

Процесс найма глазами разработчиков: результаты опроса «Моего круга»

Reading time8 min
Views27K
image

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

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

Надеемся, наше небольшое исследование пригодится рекрутерам, которые сегодня бьются за разработчиков, в их нелёгком, но благородном деле!
Читать дальше →
Total votes 50: ↑46 and ↓4+42
Comments132

30 новых ресурсов для android-разработчика (лето 2017)

Reading time3 min
Views12K
image

Компания EDISON Software профессионально занимается разработкой Android-приложений. Вот некоторые крупные проекты:


Полезные статьи на Хабре по Android:


(Пост из серии «просмотреть и добавить в избранное»)
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments2

Библиотека Reamp: обезболивающее для ваших Android-приложений

Reading time9 min
Views10K

Однажды мы в компании EastBanc Technologies устали бороться с теми архитектурными проблемами, которые возникают в Android-разработке и решили все исправить:). Мы хотели найти решение, которое удовлетворит всем нашим требованиям.


И, как это часто бывает, готового решения тогда не нашлось и нам пришлось сделать собственную библиотеку, которая уже приносит счастье нам, и может помочь и вам.


Какие проблемы решали:


  • Уйти от жизненного цикла экранов, будь то Activity, Fragment или View
  • Уйти от необходимости писать код для сохранения и восстановления состояния для каждого экрана
  • Повысить стабильность: защититься от досадных крешей и утечек памяти
  • Повысить переиспользуемость кода между телефонным UI и планшетным UI

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments17

Разработка прибыльной Android игры двумя школьниками

Reading time6 min
Views196K
В данной статье хочу рассказать вам об опыте разработки одной простенькой игры под Android, которая многократно окупилась еще на стадии разработки!

image

Читать дальше →
Total votes 147: ↑138 and ↓9+129
Comments145

Как объяснить бабушке, что такое Agile за 15 минут с картинками

Reading time7 min
Views1.2M
«Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера.»
— закон Хофштадтера

image

Самый просматриваемый ролик на YouTube по теме agile. 744 625 просмотров на момент публикации данной статьи. Легкий стиль изложения, картинки и всего 15 минут — лучшее что я видел. TED отдыхает.
Total votes 72: ↑63 and ↓9+54
Comments36

PUSH-авторизация в сервисах с помощью мобильного приложения

Reading time4 min
Views9.9K

Мы рады представить сообществу сервис PushAuth, который позволяет Вашим клиентам авторизироваться с помощью PUSH-сообщений на мобильном устройстве!



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

Total votes 11: ↑10 and ↓1+9
Comments11

Dagger2 и архитектурный компонент «ViewModel»

Reading time7 min
Views18K

ViewModel — это компонент из набора библиотек под названием Android Architecture Components, которые были представлены на Google I/O 2017. ViewModel — предназначена для хранения и управления данными связанных с представлением, а также с возможностью “пережить” пересоздание активити (например переворот экрана).


На Хабре уже была хорошая статья посвящена ViewModel, где можно ознакомится с данной темой более детально.


В данной статье будет рассмотрены варианты инжекта(предоставление) зависимостей в компонент ViewModel с использованием Dagger 2. Проблема заключается в том, что получение ViewModel должно осуществляться специальным образом, что в свою очередь накладывает некоторые ограничения, которые связанные с предоставлением зависимостей в сам класс ViewModel, а также предоставление ViewModel в качестве зависимости. Данная статья также возможно будет интересна тем, кто интересуется практическим применением такой функциональности Dagger, как multibinding.

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments4

Избавляемся от рутины RecyclerView.Adapter с помощью DataBinding

Reading time5 min
Views22K


RecyclerView — основной UI элемент практически любого приложения. Написание адаптеров и ViewHolder'ов зачастую слишком рутинная работа и содержит достаточно boilerplate кода. В этой статье я хочу показать как с использованием DataBinding и паттерна MVVM можно написать абстрактный адаптер и напрочь забыть про ViewHolder'ы, inflate, ручной биндинг и прочую рутину.

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments4

Избавляемся от библиотек сохранения состояния фрагмента с помощью чистого kotlin

Reading time2 min
Views6.4K
image

Android библиотеки вспомогательной кодогенерации, такие как Android Annotations или мой любимый Icepick, которые разработчики привыкли использовать для упрощения написания, не готовы были сразу подружиться с Kotlin-кодом, так как большинство из них требует держать поля с модификатором package private. Конечно, ничего страшного писать

@JvmField @State
internal var carName: String? = null

вместо

@State String carName;

Но лучше вспомнить, что Kotlin к нам пришёл для упрощением кода, а не наоборот.
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments6

ReactiveX 2.0 с примерами, или грокаем реактивное программирование 2.0. Часть 1: Observable vs Flowable, Backpressure

Reading time16 min
Views64K
image

Привет, меня зовут Алексей. Я пишу Backend'ы на Kotlin, а также занимаюсь разработкой Android приложений. Продолжительное время я страдал: мучался с CallBack Hell'ом, императивным стилем, синхронизацией потоков и прочими классическими проблемами Java на Android. Это была огромная боль. И я начал искать какое-то решение, чтобы как-то избавится от этой боли. И приходит счастливый случай — я встречаю нарастающий хайп по RxJava. Попробовав, не могу остановиться по сей день. На момент написания данной статьи, релизнулась RxJava 2.0 и появилось стойкое желание разобраться в нововведениях. На официальном источнике, в Github Wiki, появилась глава RxJava 2.0: What's different in 2.0. Но, к сожалению, я не обладатель "беглого" английского, и чтение настолько важной доки заняло время. Накопились некоторые заметки, появился концепт, которым я хочу поделиться. Но чтобы не стать "Арт-директором Арт-пространства" и не принести банальный перевод, а какой-то профит, данная статья будет смесь туториала и перевода вики, приправленное реальными примерами юзкейсов на RxKotlin.


Так как подходы к разработке Web и Android приложений отличаются, как соответственно и контекст использования Rx, разговор буду вести в контексте Android разработки. Кого заинтересовал, прошу под кат.

Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments2

Android string.xml — несколько вещей, которые стоит помнить

Reading time3 min
Views30K

Доброго времени суток! Представляю вашему вниманию вольный перевод статьи от GDE (Google developer expert) Dmytro Danylyk. Собственно, вот оригинал. Статья описывает правильные подходы для работы со strings.xml и особенно полезно это будет разработчикам, которые разрабатывают мультиязыковые приложения. Прошу под кат.


Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments32

Dagger 2.11 & Android

Reading time8 min
Views49K

В данной статье рассматривается использование специализированного модуля Dagger 2 под android и подразумевается, что у вас есть наличие базовых знаний по Dagger 2.


В Dagger 2.10 был представлен новый модуль специально для Android. Данный модуль поставляется как дополнение, состоящий из дополнительной библиотеки и компилятора.
В версии 2.11 были некоторые небольшие изменения, в частности некоторые классы, были переименованы, поэтому будет использоваться именно эта версия.

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments12

Шпаргалка или Must have для андроид разработчика

Reading time5 min
Views22K
Статья была создана для разработчиков которые желают найти новые инструменты и библиотеки для дальнейшего упрощения рутинной жизни.

Итак, начнем.

Butterknife


Библиотека была разработана компанией Square и сразу же прижилась у разработчиков. ButterKnife был создан на замену findViewById для того чтобы уменьшить и без того раздутые activity:

View someView = (View) findViewById(R.id.someView)

Вы только посмотрите какая длинная строка! А если это поле класса — то это целых две строки:

View someView; //Первая строка
...
@Override 
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        someView = (View) findViewById(R.id.someView); //Вторая строка
}

А теперь перейдем к ButterKnife. Вот простой пример кода с ButterKnife:

    @BindView(R.id.someView1) View view1;
    @BindView(R.id.someView2) View view2;
    @BindView(R.id.someView3) View view3;
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this); //Важная строка
    }

Все очень просто: с помощью аннотации @BindView мы говорим какая вьюха нам нужна, и потом главное не забыть про ButterKnife.bind(this);(Так делать нужно в активити, для других мест вроде holder или fragment это делают немного по-другому. Смотрите здесь.

Как добавить к проекту?
Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments41

Dagger 2.11 & Android. Часть 2

Reading time7 min
Views31K

В предыдущей статье мы рассмотрели, как мы можем использовать специальный модуль dagger-android для предоставления зависимостей в активити и фрагменты, а также организацию разных скоупов.


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


Модуль dagger-android позволяет заинжектить зависимости в следующие базовые компоненты андроида:


Activity, Fragment, Service, DaggerIntentService, BroadcastReceiver, ContentProvider.


Если мы используем классы из библиотеки поддержки (например AppCompatActivity, android.support.v4.app.Fragment), то нам надо использовать соответствующие классы из дополнительной даггер библиотеки поддержки (dagger-android-support).

Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments6

Итоги отбора в школу Android-разработчиков в Казани

Reading time3 min
Views6.3K


Больше чем два месяца назад мы анонсировали отбор в школу Android-разработчиков в Казани. За это время мы получили 575 заявок на участие и 70 выполненных тестовых заданий (невероятная цифра с учетом того, что задание было непростым, а почти 40% из тех, кто подавал заявку, вообще не имели опыта в разработке для Android).


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

Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments4

Переезд IT-шника в Германию: от А до Я

Reading time20 min
Views98K
Привет.

Germany Blue CardВ этом посте я хочу подробно рассказать о моём опыте переезда на работу PHP-разработчиком в Германию — от момента, когда есть просто желание переехать, но не знаешь что и как делать, до момента, когда уже переехал, вселился в квартиру и получил вид на жительство. Кроме того, в конце поста я приведу немного полезной информации и ссылок по переезду в некоторые другие страны.

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

Итак, если вы имеете IT-шное образование и вам интересна идея сваливания из печальной пост-совковой реальности, прошу под кат.
Читать дальше →
Total votes 211: ↑189 and ↓22+167
Comments163

Room: Хранение данных на Android для всех и каждого

Reading time5 min
Views107K

Room — это новый способ сохранить данные приложений в Android-приложении, представленный в этом году на Google I/O. Это часть новойAndroid Architecture, группа библиотек от Google, которые поддерживают уместную архитектуру приложений. Room предлагается в качестве альтернативы Realm, ORMLite, GreenDao и многим другим.


Room — это высокоуровневый интерфейс для низкоуровневых привязок SQLite, встроенных в Android, о которых вы можете узнать больше в документации. Он выполняет большую часть своей работы во время компиляции, создавая API-интерфейс поверх встроенного SQLite API, поэтому вам не нужно работать с Cursor или ContentResolver.

Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments7

Планирование задач в Андроид

Reading time4 min
Views43K

Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «Schedule tasks and jobs intelligently in Android» от Ankit Sinhal.


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

Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments12

Information

Rating
Does not participate
Registered
Activity