Pull to refresh
1
0

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

Send message

Kaspresso tutorials. Часть 1. Запуск первого теста

Reading time 8 min
Views 16K

Всем привет! Мы запускаем большую серию статей-туториалов о Kaspresso в частности и UI-тестах под Android в общем. Статьи планируются разного уровня сложности: первые материалы будут рассчитаны на  людей, которые никогда не программировали и ничего не автоматизировали, в последних  вы найдете хардовые детали реализаций разных сложных механизмов и инфраструктуру. То есть в совокупности весь туториал будет полезен как для тех, кто лишь начинает поэтапное погружение в автоматизацию с Kaspresso, так и для опытных разработчиков, которые могут найти разные полезные детали реализаций или почерпнуть интересные практики.

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

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

Познавать Kaspresso
Total votes 14: ↑14 and ↓0 +14
Comments 8

Регулярные выражения (regexp) — основы

Reading time 21 min
Views 846K

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.

Читать далее
Total votes 59: ↑51 and ↓8 +43
Comments 76

Основные linux-команды для новичка

Reading time 14 min
Views 764K
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.

Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Читать дальше →
Total votes 80: ↑65 and ↓15 +50
Comments 170

Как работают денежные переводы с карты на карту

Reading time 6 min
Views 128K


Несмотря на то, что популярность данного вида переводов с каждым годом растёт все больше, в интернете очень мало информации о том как они работаю «изнутри» и в этой статье я простым языком расскажу что такое p2p-переводы, какие они бывают и как они устроены.
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 36

Запускаем OpenVPN в Докере за 2 секунды

Reading time 3 min
Views 71K
Привет, хабровчане! Сталкивались ли вы когда-либо с ситуацией, когда очень хотелось бы виртуально перенестись в другой город, страну или на другой континент? У меня такая необходимость возникает достаточно часто, поэтому возможность иметь свой VPN сервер, который можно запустить где угодно, за пару секунд, стоял достаточно остро.

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


Total votes 40: ↑31 and ↓9 +22
Comments 55

Cicerone — простая навигация в Андроид приложении

Reading time 8 min
Views 83K


На этой схеме не скелет древнего обитателя водных глубин и не схема метро какого-то мегаполиса, это карта переходов по экранам вполне реального Андроид приложения! Но, несмотря на сложность, нам удалось её удачно реализовать, а решение оформить в виде небольшой библиотеки, о которой и пойдет речь в статье.


Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Comments 29

Лицензия на вождение болида, или почему приложения должны быть Single-Activity

Reading time 14 min
Views 58K

image


На AppsConf 2018, которая прошла 8-9 октября, я выступил с докладом про создание андроид-приложений целиком в одном Activity. Хотя тема известная, существует много предубеждений относительно такого выбора — переполненный зал и количество вопросов после выступления тому подтверждение. Чтобы не ждать видеозаписи, я решил сделать статью с расшифровкой выступления.



О чем я расскажу


  1. Почему и зачем надо переходить на Single-Activity
  2. Универсальный подход для решения задач, которые вы привыкли решать на нескольких Activity
  3. Примеры стандартных бизнес задач
  4. Узкие места, где обычно подпирают код, а не делают все честно
Читать дальше →
Total votes 43: ↑40 and ↓3 +37
Comments 81

Манифест Чистого Программиста или краткий конспект книги «Чистый Код» Роберта Мартина

Reading time 8 min
Views 95K

Данная статья является конспектом книги "Чистый Код" Роберта Мартина и моим пониманием того, каким Чистый Код должен быть. Тут нет разделов о тестировании, TDD, о том какая должна быть архитектура и т.д. Здесь все только о том, каким должен быть Чистый Код.


Читать дальше →
Total votes 48: ↑44 and ↓4 +40
Comments 49

Kotlin DSL: Теория и Практика

Reading time 21 min
Views 15K
Разработка тестов приложения — не самое приятное занятие. Этот процесс занимает долгое время, требует большой концентрации и при этом крайне востребован. Язык Kotlin дает набор инструментов, который позволяет довольно легко построить собственный проблемно-ориентированный язык (DSL). Есть опыт, когда Kotlin DSL заменил билдеры и статические методы для тестирования модуля планирования ресурсов, что превратило добавление новых тестов и поддержку старых из рутины в увлекательный процесс.

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

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



Статья основана на докладе Ивана Осипова (i_osipov) на конференции JPoint. Дальнейшее повествование ведется от его лица. Иван работает программистом в компании Haulmont. Основной продукт компании – CUBA, платформа для разработки энтерпрайза и различных веб-приложений. В том числе на этой платформе делаются и аутсорсинговые проекты, среди которых недавно был проект в области образования, в котором Иван занимался построением расписания для образовательного учреждения. Так сложилось, что последние три года Иван так или иначе работает с планировщиками, и конкретно в Haulmont в течение года они этот самый планировщик тестируют.
Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Comments 10

Как уменьшить время сборки проекта, использующего Firebase Performance Plugin

Reading time 2 min
Views 4K
Firebase Performance Monitor — полезный инструмент, позволяющий сделать Андроид приложение лучше. Но при его подключении время сборки нашего проекта сразу увеличилось на 20-30 секунд, что, согласитесь, не мало.

Мы такие не одни, и я решил опубликовать решение, найденное на Медиуме. Надеюсь, оно поможет и вам сэкономить драгоценное время сборки проекта.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 1

Очень простое объяснение принципов SOLID

Reading time 5 min
Views 67K
Disclaimer: Всем можно, ну а я чем хуже?!

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

Попробуем разобраться в этих принципах на пальцах, без примеров кода и СМС.
Читать дальше →
Total votes 60: ↑53 and ↓7 +46
Comments 60

Горячие клавиши Android Studio, которые могут увеличить вашу производительность на 100%

Reading time 2 min
Views 46K
Перевод заметки Шикара Ша с medium.com

Вступительный спойлер
Об авторе оригинала: Шикар Ша, Android-разработчик, сертифицированный Google (Shikhar Shah, Google Certified Android Developer).

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

За помощь в устранении синтаксических и пунктационных ошибок спасибо ЗаЕцу ;)

Перевод


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


Читать дальше →
Total votes 32: ↑26 and ↓6 +20
Comments 27

Navigation Architecture Component. Практический взгляд

Reading time 5 min
Views 21K


На недавнем Google IO 2018 в числе прочего было представлено решение, помогающее в реализации навигации в приложениях.


Сразу бросилось в глаза то, что граф навигации можно просмотреть в UI редакторе, чем-то напоминающем сториборды из iOS-разработки. Это действительно интересно и ново для Android-разработчиков.


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

Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Comments 7

Обновления Material Design: как жить дальше

Reading time 5 min
Views 67K
Могут ли кнопки быть шестиугольными?
image

Google I/O 2018 оставила огромное количество материала для осмысления. Что нового? Как жить дальше? Устарело ли моё приложение? Могут ли кнопки быть шестиугольными? Дизайнеры снова больше не нужны? Осмысливать приятней не спеша и маленькими порциями. Эта порция — про дизайн.
Читать дальше →
Total votes 41: ↑41 and ↓0 +41
Comments 29

Советы по оптимизации кода на Java: как не наступать на грабли

Reading time 10 min
Views 34K
Добрый вечер, коллеги.

Перевод статьи, который мы вам предложим сегодня, призван помочь ответить на вопрос: а назрела ли необходимость целой книги по оптимизации кода на Java? Надеемся, что материал не только покажется вам интересным, но и пригодится на практике. Пожалуйста, не забудьте проголосовать.
Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Comments 15

Навигация с архитектурными компонентами от Google. Часть 1. Знакомство

Reading time 8 min
Views 20K

Одной из проблем, с которыми сталкивается разработчик немного подразросшегося приложения — навигация между экранами. Когда сценарии становятся нелинейными, уже тяжело обойтись стандартными startActivity и changeFragment. Эту проблему каждый решал по-своему: делал какое-то свое решение для навигации, использовал стороннее (к примеру, Cicerone) или же оставлял все как есть и городил кучу флагов и if else. Это очень огорчало инженеров Google, и вот уже на Google I/O 2018 появилось решение Navigation, которое идёт в комплекте с остальными Архитектурными компонентами!


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


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

Android runtime permissions. Почему, зачем и как

Reading time 12 min
Views 120K
Часто при установке приложения на Android нам приходилось видеть, что оно запрашивает какое-то немыслимое количество разрешений. Например:



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

Некоторые разработчики, чтобы уменьшить недоверие, добавляют в описание приложения на Google Play информацию о том, зачем нужно то или иное разрешение.

К шестой версии Android ситуация поменялась. Теперь разрешения нужно запрашивать в процессе работы. О том, как этой новой возможностью пользоваться и ее некоторых подводных камнях будет рассказано далее.
Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Comments 13

Побеждаем Android Camera2 API с помощью RxJava2 (часть 2)

Reading time 8 min
Views 13K
image

Это вторая часть статьи, в которой я показываю, как использование RxJava2 помогает строить логику поверх асинхронного API. В качестве такого интерфейса я выбрал Android Camera2 API (и не пожалел!). Этот API не только асинхронен, но и таит в себе неочевидные особенности реализации, которые нигде толком не описаны. Так что статья нанесет читателю двойную пользу.

Для кого этот пост? Я рассчитываю, что читатель — умудрённый опытом, но всё ещё любознательный Android-разработчик. Очень желательны базовые знания о реактивном программировании (хорошее введение — здесь) и понимание Marble Diagrams. Пост будет полезен тем, кто хочет проникнуться реактивным подходом, а также тем, кто планирует использовать Camera2 API в своих проектах.  

Исходники проекта можно найти на GitHub.

Чтение первой части обязательно!
Читать дальше →
Total votes 48: ↑47 and ↓1 +46
Comments 5

Android Support Library 28. Что нового?

Reading time 10 min
Views 24K


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

  • RecyclerView selection — выбор элементов теперь из коробки;
  • Slices — новый способ отображать контент другого приложения;
  • новые элементы дизайна: BottomAppBar, ChipGroup и другие;
  • мелкие изменения одной строкой.
Читать дальше →
Total votes 37: ↑37 and ↓0 +37
Comments 22

Шпаргалки Java программиста 9: Java SE — Шпаргалка для собеседований и повторений

Reading time 32 min
Views 134K
Данная статья в первую очередь предназначена для подготовки к собеседованиям на позицию Java разработчика (на самом деле, это шпаргалка, которую я писал для себя в течении многих лет, и повторяю при каждом новом поиске работы).

Предполагается. что вы знакомы с многими функциями из Java SE, поэтому в основном информация дается кратко. Конечно, можно использовать эту статью и просто для обучения основам Java SE платформы (но в этом случае, после чтения статьи вам скорее всего придется обратиться к другим источникам).

image

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

Внимание: я не буду касаться вопросов по самому языку Java (вроде для чего нужно слово final или чем overriding отличается от overloading), это потребует отдельной статьи, это вопросы именно по Java SE (6-9) платформе.
Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Comments 10

Information

Rating
4,335-th
Registered
Activity