Рубрика «android» - 10

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

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

Читать полностью »

imageПривет тебе! Меня зовут Максим и я работаю в отделе QA компании Trinity Digital. В сфере обеспечения качества я уже более двух лет, люблю мобильные приложения, их сложность и динамичность. В этой статье я попытался сделать относительно небольшой список инструментов, источников информации и скилов, которые тестировщик мобильных приложений всегда должен иметь при себе в нашем 2к17 году.

Если разбить статью на части, то она будет выглядеть так:

  • Источники информации для максимально успешного тестирования
  • Инструменты для упрощения жизни тестировщика
  • Hint’ы
  • Доставка и анализ приложений
  • Куда расти дальше, если постигли дзен

Читать полностью »

Конкурс для молодых разработчиков AR-приложений Epson Moverio BT-300 - 1

Несколько лет назад (ещё на Хабре) мы проводили конкурс разработчиков Android-приложений для наших видеоочков дополненной реальности Epson Moverio BT-200. По результатам конкурса объявили победителей, вручили призы и написали об этом пост. Приложения участников и победителей, кстати,  все еще красуются на нашем Маркете приложений Moverio Apps Market.

А вот в марте этого года в продажу поступили видеоочки дополненной реальности третьего поколения — Epson Moverio BT-300.

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

Читать полностью »

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

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

Читать полностью »

Всем привет! В прошлый раз мы разобрались с реализацией Subcomponent и случаями использования его на примере отдельно взятого экрана. Здесь будет несколько отсылок к той статье, поэтому лучше сначала ознакомиться с ней.

Сегодня же мы обсудим создание реальной авторизованной зоны приложения и работу с соцсетями. Конечно же не без помощи Dagger’а!

Интересно? Добро пожаловать под кат!

image

Читать полностью »

image
Не так давно везде говорили о проблеме поиска нужной информации в интернете. Сейчас появляется уже другая проблема — найти можно практически всё, что угодно, но что делать дальше? Если информация была нужна для разового использования, то проблемы нет — можно и забыть. А если она полезна не только «здесь и сейчас»? Многие используют онлайновые и офлайновые блокноты, закладки и даже персональные вики… Но лично у меня они все постепенно превращались в «кладбище информации», в которой тоже нужно постоянно что-то искать или постоянно всё организовывать и оптимизировать. Можно ли сохранять информацию, хотя бы в небольших объёмах, сразу в память? В человеческую память?
Сразу оговорюсь, что речь не о каких-то чудо-приёмах и чёрно-белой магии. Речь идёт о комбинации интервального повторения и довольно простых упражнений, реализованных в виде несложной программки для смартфона.

Читать полностью »

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

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

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 это делают немного по-другому. Смотрите здесь.

Как добавить к проекту?
Читать полностью »

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

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

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

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

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

Читать полностью »

В первой части статьи мы рассказали о геометрических ядрах в общем и объяснили, в чём их отличие от игровых графических движков. Далее представляем наше собственное 3D-ядро для работы с точной геометрией и тот программный продукт, который в итоге получился.

История российского геометрического ядра C3D

Началом работ над геометрическим моделированием в КОМПАС-3D официально считается 1995 год, именно тогда Николай Николаевич Голованов с группой коллег из коломенского офиса АСКОН заложили первые математические основы будущего ядра. Потребовалось четыре года, чтобы превратить математические алгоритмы в первый жизнеспособный продукт. С тех пор геометрическое ядро постоянно эволюционирует, обеспечивая функциональное развитие КОМПАС-3D и целого ряда других программных решений в России и за рубежом.

Scott Voltage Bike FR20

Велосипед Scott Voltage FR20, спроектированный в КОМПАС-3D с использованием геометрии C3D (автор модели: Алексей Богданов, г. Полтава)
Читать полностью »

Привет! Цель моей публикации — услышать больше голосов насчет новой идеи в управлении своим временем и своими задачами. Я специально не публикуюсь в хабе «Я пиарюсь», потому что это статья не про PR. Не буду указывать и название тудушки, как и названий приложений наших конкурентов (кому интересно, можете угадать нас). Я расскажу, как есть, и попрошу вас высказать свои мысли на этот счет. Верной ли мы дорогой идем. Нужны ли те новшества, которые мы планируем осуществить. Публика здесь думающая, а это сейчас и нужно.

Итак, мы с командой ребят из разных стран Читать полностью »