Search
Write a publication
Pull to refresh
13
0
Юрий Кучанов @kuchanov

Разработчик под Android

Send message

Работа с ConstraintLayout через XML-разметку

Reading time22 min
Views131K

ConstraintLayout


Привет! Меня зовут Гавриил, я Android-лид Touch Instinct.


В марте Google выкатил релизное обновление ConstraintLayout. Презентовали его еще на прошлом Google I/O. С того момента прошел почти год, ConstraintLayout стал лучше, быстрее и оброс новыми возможностями. Например, приятно, что появилась возможность объединения элементов в цепи — это позволяет использовать ConstraintLayout вместо LinearLayout.


О всех новых и старых возможностях ConstraintLayout я и постараюсь рассказать в этой статье. Предупрежу сразу — статья будет длинная и других семи частей не будет. Про визуальный редактор ConstraintLayout в статье не будет ни слова — только XML-разметка (по старинке) и немного кода.

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

Инструкция по публикации Android-приложения в Google Play

Reading time12 min
Views403K
Вслед за инструкцией по публикации приложения в App Store выкладываем внутренний свод правил Лайв Тайпинг по публикации приложений в Google Play, составленный отделом менеджеров при активном участии тимлида отдела Android-разработки Александра Мирко. Вне зависимости от того, насколько ты крутой и опытный проджект-менеджер, всегда есть шанс забыть что-нибудь. Эта инструкция призвана облегчить вам жизнь.

Итак, что нужно сделать PM`y в ходе публикации:

  1. Создать аккаунт в Google Play Developer Console для заказчика, если у заказчика такового нет, или предложить произвести публикацию с нашего аккаунта.
  2. Оформить privacy policy.
  3. Подготовить маркетинговые материалы (иконка, скриншоты, APK, баннер, текст, проморолик).
  4. Обеспечить сборку наличием сертификата цифровой подписи.
  5. Настроить оплату за пользование приложения.
  6. Отправить сборку в Google Play.

Все подробности — под катом.

UPD от 25.04.2017: добавлены разделы про альфа- и бета-тестирование и поэтапное внедрение, дополнены разделы «Обеспечение сборки наличием цифровой подписи» и «Технические требования к apk-файлу», сделано замечание про ASO и внесены косметические правки.


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

Введение в машинное обучение с tensorflow

Reading time12 min
Views199K
Если мы в ближайшие пять лет построим машину с интеллектуальными возможностями одного человека, то ее преемник уже будет разумнее всего человечества вместе взятого. Через одно-два поколения они попросту перестанут обращать на нас внимание. Точно так же, как вы не обращаете внимания на муравьев у себя во дворе. Вы не уничтожаете их, но и не приручаете, они практически никак не влияют на вашу повседневную жизнь, но они там есть.
Сет Шостак

Введение.


Серия моих статей является расширенной версией того, что я хотел увидеть когда только решил познакомиться с нейронными сетями. Он рассчитан в первую очередь на программистов, желающих познакомится с tensorflow и нейронными сетями. Уж не знаю к счастью или к сожалению, но эта тема настолько обширна, что даже мало-мальски информативное описание требует большого объёма текста. Поэтому, я решил разделить повествование на 4 части:

  1. Введение, знакомство с tensorflow и базовыми алгоритмами (эта статья)
  2. Первые нейронные сети
  3. Свёрточные нейронные сети
  4. Рекуррентные нейронные сети

Изложенная ниже первая часть нацелена на то, чтобы объяснить азы работы с tensorflow и попутно рассказать, как машинное обучение работает впринципе, на примере tensorfolw. Во второй части мы наконец начнём проектировать и обучать нейронные сети, в т.ч. многослойные и обратим внимание на некоторые нюансы подготовки обучающих данных и выбора гиперпараметров. Поскольку свёрточные сети сейчас пользуются очень большой популярность, то третья часть выделена для подробного объяснения их работы. Ну, и в заключительной части планируется рассказ о рекуррентных моделях, на мой взгляд, — это самая сложная и интересная тема.
Читать дальше →

Google Maps — кастомизируй меня полностью

Reading time7 min
Views172K
image

→ Демо: ссылка
→ Исходники: ссылка

В первый раз столкнувшись с внедрением и кастомизацией Google Maps, я не нашел единой статьи, рассматривающей все необходимые моменты — информацию пришлось искать по крупицам, а что-то выдумывать самому. После чего и было решено написать эту статью, чтобы люди, ранее не работавшие со стилизацией Google Maps, но при этом ограниченные временными рамками (а может, и желанием) для полноценного изучения API, смогли быстро получить необходимую информацию и материалы. Тем более, что и те, кто обладает определенным опытом, смогут почерпнуть для себя из этой статьи какую-нибудь интересную фишку, к примеру — параллакс для элементов информационного окна.

В этой статье мы рассмотрим:

1. Внедрение Google Maps на сайт

  • Добавление через вставку iframe в разметку
  • Добавление через API

2. Кастомизация маркера

  • Инициализация маркера
  • Анимация маркера
  • Изображение маркера

3. Кастомизация информационного окна

  • Добавление информационного окна
  • Открытие информационного окна
  • Кастомизация элементов информационного окна
  • Параллакс-эффект для элементов в информационном окне

4. Кастомизация карты

  • Изменение цвета объектов карты
  • Кастомизация элементов управления
  • Маска для карты
Читать дальше →

Android Fingerprint API: приделываем аутентификацию по отпечатку

Reading time8 min
Views45K
Привет, Хабр! Прошло достаточно много времени, как появился Fingerprint API для Android, в сети много разрозненных сэмплов кода по его внедрению и использованию, но на Хабре по какой-то причине эту тему обходили стороной. На мой взгляд, настало время исправить это недоразумение. Всех заинтересовавшихся прошу под кат.


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

MaterialViewPager — пример создания уникального приложения

Reading time8 min
Views6.8K
Совсем недавно решил написать интересное приложение, с помощью которого можно просматривать новости с интернет-ресурсов и встал вопрос о том каким сделать интерфейс приложения. Идей море, но меня больше всего удивила работа одного разработчика с GitHub и называется его работа Material ViewPager. В использовании она очень проста и вот большая инструкция по установки.
Читать дальше →

Instant Run: как это работает?

Reading time6 min
Views22K

Всем привет! Данная статья является переводом заметки Android-разработчика и автора книги «Android 4. Программирование приложений для планшетных компьютеров и смартфонов» Рето Майера. Над переводом работал Android-отдел компании Лайв Тайпинг. Оригинальная статья доступна здесь.


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


Взять, к примеру, Instant Run. Это фича Android Studio, которая при помощи «магии» сокращает время, затрачиваемое на сборку и деплой инкрементальных изменений кода в процессе написания / тестирования / дебаггинга.


Я называю это магией потому, что со стороны всё выглядит именно так. После первого нажатия Run или Debug всё работает так, как того и следует ожидать. Однако каждый раз, когда в код вносятся изменения и снова нажимается кнопка Run или Debug (но в этот раз — с иконкой в виде молнии), изменения деплоятся на мой телефон настолько быстро, что я не успеваю это заметить.


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

Умоляю, не тратьте время на чтение плохих книг! И балансируйте-балансируйте-балансируйте…

Reading time4 min
Views7.1K
Давайте так – я не буду строить из себя гуру GTD и прочее-прочее. Я простой любитель железок, который получает кайф от написания топиков на Хабр/Гиктаймс (к сожалению, количество комментариев на Гиктаймс очень маленькое, но возврат Мегамозга сюда позволяет снова надеяться на нормальное общение).



Так вот, я не гуру и не коуч. Однако, в свои овер 35 лет, я понял одну простую штуку – не стоит дочитывать плохие книги. Этот потрясающий по своей новизне вывод следует из простого математического расчета:
Читать дальше →

Обзор новорождённой платформы Scorocode

Reading time5 min
Views16K


BaaS-платформы (Backend as a Service) сделали разработку и сопровождение backend'а для мобильных и веб-приложений достаточно простыми и предсказуемыми процессами. Одним из флагманов движения BaaS стала компания Parse, но в 2016 году она заявила о прекращении обслуживания клиентов с 2017 года.

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

AndroidAudit. Ваше Android-приложение как место преступления

Reading time11 min
Views11K


От переводчика: оценка процесса и результата разработки — достаточно субъективная вещь, если не используется какая-либо мера весов. Можно долго спорить: табы или пробелы, git или mercurial, maven или gradle, но такие споры все равно скатываются к вкусовщине и каким-то частным случаям. Другое дело — соблюдение однородности проекта, вот это уже вполне себе измеримая величина.
Плохая методология лучше её отсутствия.
Помимо общих вещей, найдутся и специфические, присуще только мобильной разработке, только под Android. Pedro Vicente Gómez Sánchez из Karumi в своей работе разобрал по косточкам основные технические области и задал меткие вопросы для правильной, объективной оценки разработки для платформы Android. Если появится задача: оценить чужой проект, то рекомендую воспользоваться его методологией. Я воспользовался этой методологией, как чек листом. На выходе получился вполне понятный не профессионалу документ, где напротив каждой категории — конкретная величина соответствия правильности от 0 до 1.

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

Сравнение eCPM рекламных сетей на личном опыте

Reading time6 min
Views30K
Рейтингов рекламных сетей много, и я не претендую на составление еще одного. Просто я уже давно выпускаю игры для iOS и Android и раньше применял во всех одну и ту же схему монетизации. Со временем она сильно устарела и перестала приносить стабильный доход. Пришлось что-то менять и усиленно экспериментировать с другими рекламными сетями. Именно этими экспериментами я и хочу поделиться. И сразу же хочу уточнить, что ниже речь пойдет в основном о российском трафике, который в моих приложениях составляет порядка 90%.
Читать дальше →

Сравнительное тестирование девяти ORM для Android

Reading time7 min
Views33K
На просторах интернета много отрывочной информации о той или иной ORM для Андроид. Пока что мне не попадалось качественное сравнение ведущих ORM. Существующие статьи попахивают пиаром той или иной системы и ставят в невыгодное положение своих конкурентов либо некорректной постановкой тестирования, либо вообще использованием заведомо неверных настроек, либо не включением в тестирование сильных соперников.

Данное тестирование проведено было скорее для собственного интереса. Т.к. ORM много, все они разные, и хотелось бы иметь объективное представление о существующих системах.
Читать дальше →

Работа с устройствами USB в Android

Reading time5 min
Views81K
В недавней статье на Geektimes в комментариях возник вопрос о поддержке в ОС Android периферии, подключенной к шине USB. Действительно, большинство вендорского ПО, к примеру, для работы с принтерами и МФУ, поддерживает только подключение по сети. Однако это не означает, что в самой ОС Android нет такой возможности — это означает лишь то, что большинство устройств не имеют полноценного USB хоста, и далеко не все имеют поддержку OTG. По сети же могут работать абсолютно все без исключения.
Читать дальше →

Как продать приложение, которое не приносит прибыль? И сколько оно стоит?

Reading time5 min
Views52K
Давайте посмотрим правде в глаза — заработать на инди-приложении становится все сложнее. Под катом я расскажу, как можно продать ваше приложение, если оно перестало приносить прибыль, и сколько можно получить. В долларах :)
Читать дальше →

Новые подкасты о профессиональной разработке под Android

Reading time3 min
Views23K
Привет, Хабрахабр! Мы долго думали, чем порадовать крупнейшее Dev-комьюнити рунета, и решили, что русскоязычные подкасты про Android-разработку от лучших разработчиков в индустрии — самое то. Собрать спикеров, подготовить темы и найти площадку для размещения было непросто, но мы справились. Встречайте!


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

Рекламные сети 3.0: как разработчику перестать раздражать пользователей и при этом заработать больше

Reading time12 min
Views36K
image
Широкий выбор мобильной рекламы: от мешающей до ужасающей. Во всяком случае до 2016 года.
Читать дальше →

Процедурно генерируемые карты мира на Unity C#, часть 1

Reading time5 min
Views74K
image

В этом цикле статей мы научимся создавать процедурно генерируемые карты мира с помощью Unity и C#. Цикл будет состоять из четырех статей.
Читать дальше →

Дурим DPI двумя скриптами

Reading time3 min
Views55K
Данная статья является лиш исследованием на тему и не должна использоваться как инструкция к действию.

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

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

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


Исходные данные:
Сайт(Адрес изменён): http://rutracker.og


Страница заглушка(Адрес изменён): http://198.51.100.0/...

Адрес страницы заглушки которая появляется при попытке открытия сайта. У каждого провайдера адрес страницы заглушки наверно разный.
Читать дальше →

Сжатие текстур в Android: сравнение форматов и примеры кода

Reading time11 min
Views39K
Назовите самый лучший формат сжатия текстур. Может это PNG, ETC, PVRTC, S3TC, или ещё какой-нибудь? Вопрос непростой, но очень важный. От ответа зависят качество визуального оформления, скорость работы и размеры Android-приложений. Дело осложняется тем, что универсального «самого лучшего формата» попросту не существует. Всё зависит от потребностей разработчика.



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

Пишем правильный манифест для сайта

Reading time3 min
Views98K
Думаю, многие знают о возможности добавления иконки сайта на рабочий стол мобильного устройства. Это удобно и причины могут быть разные (нету мобильного приложения, предоставляющего туже информацию, либо вы хотите сразу открыть определенную страницу сайта и т.д.). За некоторые свойства того, как будет отображаться сайт и как будет выглядеть иконка после добавления и отвечает файл манифеста.

Манифест для сайта – это простой JSON-файл, который позволяет вам настроить следующие вещи:
1. Какая будет иконка у пользователя, после того как он добавит ваш сайт на рабочий стол
2. Как будет запускаться ваш сайт (с адресной строкой, без нее или в полноэкранном режиме)
3. Splash screen
4. Цветовую тему
5. Ориентацию экрана
6. Начальный url
и многое другое
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity