Как стать автором
Поиск
Написать публикацию
Обновить
124.5

Android *

Пишем под самую популярную мобильную ОС

Сначала показывать
Порог рейтинга
Уровень сложности

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

Время на прочтение4 мин
Количество просмотров5.2K
В нашем новом дайджесте модульная разработка, чаты и карточки, полмиллиарда на Arcade, ульи и роботележки, ярость, время, ловушки и многое другое. Подключайтесь!

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

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

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

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

Создание калькулятора чаевых на Kotlin: как это работает?

Время на прочтение6 мин
Количество просмотров14K

Рассказываем, как создать простое приложение для расчета чаевых на языке Kotlin. Если точнее, то Kotlin 1.3.21, Android 4, Android Studio 3. Статья будет интересной, в первую очередь, для тех, кто начинает свой путь в разработке Android-приложений. Она позволяет понять, что и как работает внутри приложения.

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

Как работать с ViewPager2

Время на прочтение4 мин
Количество просмотров32K

Как работать с ViewPager2


Прошло не так много времени с тех пор, как 7 февраля 2019 года Google выпустила альфа-версию Android ViewPager2. Более подробную информацию об этом релизе можно найти здесь. А сейчас давайте посмотрим, что из себя представляет ViewPager2.

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

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

Время на прочтение26 мин
Количество просмотров8.2K
Для уважаемых читателей GeekTimes очередная (четвёртая) долгожданная статья о том, что будет, если снова замешать ардуинку, ESP8266, WI-FI, приправить смартфоном на Android и посыпать сверх JAVA приложением.

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

image

Кому интересно, добро пожаловать под кат.

Cloud Firestore + Android это просто

Время на прочтение4 мин
Количество просмотров30K

Не так давно Google зарелизил Cloud Firestore. Cloud Firestore — это облачная NoSQL база данных, которую Google позиционирует как замену Realtime Database. В этой статье я хочу рассказать как начать ей пользоваться.

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

Определяем породу собаки: полный цикл разработки, от нейросети на Питоне до приложения на Google Play

Время на прочтение27 мин
Количество просмотров24K
Прогресс в области нейросетей вообще и распознавания образов в частности, привел к тому, что может показаться, будто создание нейросетевого приложения для работы с изображениями — это рутинная задача. В некотором смысле, так и есть — если вам пришла в голову идея, связанныя с распознаватием образов, не сомневайтесь, что кто-то уже что-то подобное написал. Все, что от вас требуется, это найти в Гугле соответствующий кусок кода и «скомпилировать» его у автора.

Однако, все еще есть многочисленные детали, делающие задачу не столько неразрешимой, сколько… нудной, я бы сказал. Отнимающей слишком много времени, особенно если вы — новичок, которому нужно руководство, step-by-step, проект, выполненный прямо на ваших глазах, и выполненный от начала и до конца. Без обычных в таких случаях «пропустим эту очевидную часть» отговорок.

В этой статье мы рассмотрим задачу создания определителя пород собак (Dog Breed Identifier): создадим и обучим нейросеть, а затем портируем ее на Java для Android и опубликуем на Google Play.

Если вы хотите посмотреть на готовый результат, вот он: NeuroDog App на Google Play.

Веб сайт с моей робототехникой (в процессе): robotics.snowcron.com.
Веб сайт с самой программой, включая руководство: NeuroDog User Guide.

А вот скриншот программы:

image

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

Робо-футболист от начинающих. Соревнования в МФТИ. Android & Arduino & Bluetooth

Время на прочтение6 мин
Количество просмотров4.8K
Данная статья является полу-сиквелом к работе Love, Death and Robots «Машинка на Arduino, управляемая Android-устройством по Bluetooth, — полный цикл», состоящей из двух частей (раз, два). Вещи, описанные там, были немного доработаны-переделаны, а сам робот из ездящей машинки превратился в футболиста. В общем, есть интересный материал о том, как делать не надо.

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

Секреты API Android-устройств. Доклад Яндекса

Время на прочтение10 мин
Количество просмотров12K
Одна из главных сложностей Android-разработки — фрагментация. Практически каждый производитель меняет Android под свои нужды. Разработчик Андрей Макеев перечислил отличия между реализациями вендоров и оригинальным Android Open Source Project. Из доклада можно узнать, как извлечь пользу из индивидуальных особенностей прошивок на разных устройствах.


— Программированием я занимаюсь со школы, под Android разрабатываю года три. Из них год я провел в Яндексе, участвовал в таких проектах, как Лончер и Телефон.

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

Время на прочтение4 мин
Количество просмотров6.3K
На этой неделе мы говорим про Continuous Integration, переход из веб-разработки в игры, темные темы, юнит-тесты, новый топ зарабатывающих и многомиллиардную индустрию изготовления ключей.

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

Reaktive — мультиплатформенная библиотека для реактивного Kotlin

Время на прочтение5 мин
Количество просмотров10K


Многие сегодня любят реактивное программирование. В нём масса плюсов: и отсутствие так называемого "callback hell", и встроенный механизм обработки ошибок, и функциональный стиль программирования, который уменьшает вероятность багов. Значительно проще писать многопоточный код и легче управлять потоками данных (объединять, разделять и преобразовывать).

Для многих языков программирования существует своя реактивная библиотека: RxJava для JVM, RxJS — для JavaScript, RxSwift — для iOS, Rx.NET и т. д.

Но что мы имеем для Kotlin? Было бы логично предположить, что RxKotlin. И, действительно, такая библиотека существует, но это всего лишь набор расширений (extensions) для RxJava2, так называемый «сахар».

А в идеале хотелось бы иметь решение, соответствующее следующим критериям:

  • мультиплатформенность — чтобы иметь возможность писать мультиплатформенные библиотеки с использованием реактивного программирования и распространять их внутри компании;
  • Null safety — система типов Kotlin защищает нас от «ошибки на миллиард долларов», так что значения null должны быть допустимы (например, Observable<String?>);
  • ковариантность и контравариантность — ещё одна очень полезная особенность Kotlin, дающая возможность, например, безопасно привести тип Observable<String> к Observable<CharSequence>.

Мы в Badoo решили не ждать у моря погоды и сделали такую библиотеку. Как вы уже могли догадаться, назвали мы её Reaktive и выложили на GitHub.

В этой статье мы подробнее рассмотрим ожидания от реактивного программирования на Kotlin и увидим, насколько им соответствуют возможности Reaktive.
Читать дальше →

Эволюция CI в команде мобильной разработки

Время на прочтение15 мин
Количество просмотров13K
Сегодня большинство программных продуктов разрабатываются в командах. Условия успеха командной разработки можно представить в виде простой схемы.



Написав код, вы должны убедиться, что он:

  1. Работает.
  2. Ничего не ломает, в том числе код, который написали ваши коллеги.

Если оба условия выполняются, то вы на пути к успеху. Чтобы легко проверять эти условия и не сворачивать с выгодного пути, придумали Continuous Integration.

CI — это рабочий процесс, при котором вы как можно чаще интегрируете свой код в общий код продукта. И не просто интегрируете, а еще и постоянно проверяете, что все работает. Так как проверять нужно много и часто, стоит задуматься об автоматизации. Можно все проверять на ручной тяге, но не стоит, и вот почему.

Ближайшие события

Raspberry-pi-танк и GPS навигация

Время на прочтение4 мин
Количество просмотров17K
После экспериментов с искуственным интеллектом автопилот моего танка решил сделать шаг назад и научиться ориентироваться по старым добрым спутникам.
Читать дальше →

Как при помощи 2 видов unit-тестов сделать приложение более стабильным

Время на прочтение5 мин
Количество просмотров8.3K
Привет, Habr. Меня зовут Илья Смирнов, я Android-разработчик в компании FINCH. Хочу показать вам несколько примеров работы с Unit-тестами, которые мы наработали у себя в команде.

В наших проектах используется два вида Unit-тестов: проверка на соответствие и проверка на вызов. Остановимся на каждом из них более подробно.
Читать дальше →

IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров

Время на прочтение5 мин
Количество просмотров18K
Это – обзор нового в IntelliJ IDEA 2019.1. Ссылки в заголовках ведут на соотвествующие разделы на сайте, где всё описано детально, но на английском.

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

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

Время на прочтение4 мин
Количество просмотров6.7K
В нашем новом дайджесте за неделю рассказ про сложные отношения с издателем, про еще более сложную Android-разработку, материалы про модульность, Hype-driven превращения, новинки Snapchat для разработчиков и многое другое.

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

Обзор самых интересных докладов CodeFest 2019: версия True Engineering

Время на прочтение13 мин
Количество просмотров5.4K
В Новосибирске прошла юбилейная, десятая конференция CodeFest. Программа была очень насыщенной: десять секций о разработке, тестировании, дизайне, управлении и развитии. Сотрудники True Engineering два дня конспектировали доклады, теперь хотим поделиться этой пользой с вами.

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


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

Kaspersky Mobile Talks #1. Многомодульность

Время на прочтение8 мин
Количество просмотров9.8K

В конце февраля мы запустили новый формат встреч Android-разработчиков Kaspersky Mobile Talks. Основное отличие от обычных митапов — здесь вместо сотни слушателей и красивых презентаций на несколько различных тем собрались «бывалые» разработчики, чтобы обсудить всего лишь одну тему: как они реализуют многомодульность в своих приложениях, с какими проблемами сталкиваются, и как их решают.


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

Кодогенерация в Dart. Часть 2. Аннотации, source_gen и build_runner

Время на прочтение7 мин
Количество просмотров9.6K

В первой части мы выяснили зачем нужна кодогенерация и перечислили необходимые инструменты для кодогенерации в Dart. Во второй части мы узнаем как создавать и использовать аннотации в Dart, а также как использовать source_gen и build_runner, чтобы для запуска кодогенерации.


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

Вклад авторов