Как стать автором
Обновить
11
0
Артём @kolipass

Мобильный разработчик

Отправить сообщение

Как получать доход с Google Play на расчётный счёт ООО

Время на прочтение3 мин
Количество просмотров56K
Эта статья будет интересна российским компаниям, которые продают приложения через Google Play. У меня такая компания, и на своём опыте расскажу, как мы настроили денежные потоки с GP, чтобы они были легальными. Если вы не белые и не пушистые, т.е. считаете, что налоги можно не платить, то смело закрывайте эту статью.

Проблема:
Доходы с Google Play – такие же доходы, с них нужно платить налоги. Не все разработчики знают, как настроить получение доходов так, чтобы удовлетворять требованиям НК РФ.

Решение:
Получать доход на ИП либо на ООО и официально платить подоходный.
Если интересно про ИП читайте здесь и здесь.
В этой статье про получение доходов на счёт ООО.

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

Настройка
Google Play ведёт расчёты в USD, поэтому вам понадобится валютный расчётный счёт. Открыть валютный счёт можно в любом нормальном банке. Позвоните туда, Вам объяснят процедуру. Открыть счёт обойдётся в 2-3 т.р.
Когда Вам откроют валютный счёт, Вы получите реквизиты счёта. Вам понадобятся:
1. Название банка по-английски
2. БИК
3. Номер открытого счёта
4. BIC банка (или ещё его называют SWIFT)
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии15

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

Время на прочтение20 мин
Количество просмотров99K
Привет.

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

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

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

RESTful API под Android: pattern B

Время на прочтение12 мин
Количество просмотров54K
Совсем недавно, на собеседовании в Яндексе, мне довелось обсуждать организацию Rest-взаимодействия в Android-приложениях. В ходе обсуждения всплыл вопрос – почему из трех паттернов, предложенных на Google IO 2010 Virgil Dobjanschi, первый используется существенно чаще двух других. Вопрос меня заинтересовал.

Поскольку тема обсуждения достаточно узкоспециализированная, я с позволения читателей пропущу слова о том, насколько правильная архитектура Rest-взаимодействия важна в Android-приложениях и как часто Android-разработчики сталкиваются с подобными задачами.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии21

Подробно о задачах Gradle

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


Перевод второй главы свободно распространяемой книги Building and Testing with Gradle

Задача (task) является основным компонентом процесса сборки в файле билда Gradle. Задачи представляют собой именованные наборы инструкций билда, которые Gradle запускает выполняя сборку приложения. При сравнении с другими билд-системами, задачи могут показаться знакомой абстракцией. Однако Gradle предоставляет более развитую модель, в отличие от той, которая вам уже может быть знакома. По сравнению с традиционными возможностями объявления операций билда, связанных зависимостями, задачи Gradle являются полнофункциональными объектами, которыми вы при желании можете управлять программно.

Рассмотрим какими способами можно определить задачу, два ключевых подхода к определению задач и программный интерфейс, который мы можем использовать для гибкой настройки.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии4

Конкурс разработчиков для Epson Moverio BT-200

Время на прочтение4 мин
Количество просмотров5.2K
Уважаемые хабражители!


(Пост дополнен информацией о типе аккаунта в PayPal, который требуется для вывода средств от продаж приложений в Moverio Apps Market.)

Наверняка многие из вас в курсе, что в продажу поступили видеоочки Epson Moverio BT-200, о которых мы уже неоднократно рассказывали на Хабре. Запуск получился ошеломляющим! Желающих стать их обладателями настолько много, что мы еле успеваем выпускать видеоочки в достаточном количестве!

Epson BT-200 — это уникальное устройство, которое сочетает в себе гибкость платформы Android с необычным дизайном бинокулярных видеоочков. По этой причине специально для них был создан магазин приложений Moverio Apps Market, на котором разработчики могут опубликовать, а пользователи — скачать приложения, оптимизированные для Moverio BT-200.

В связи с данным обстоятельством мы решили организовать конкурс разработчиков Android-приложений для Epson Moverio BT-200. И так как, на наш взгляд, Хабр — лучшее место для поиска талантливых Android-разработчиков, то мы решили провести конкурс именно здесь!
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии2

Работа с графическими объектами в Android

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

Нажав кнопку «Далее», вы найдете перевод четырех небольших учебных материалов, посвященных различным техникам обработки и генерации изображений в Android; в трех из них имеется исходный код тестовых программ и справочный материал к нему. На наш взгляд, эти пособия могут оказаться полезными всем, кто занимается разработкой приложений и игр под Android.
Под катом находятся следующие статьи:
  • Пример кластеризованного шейдинга в Android
  • Знакомство с RenderScript. Учебное пособие
  • Знакомство с OpenCL для Android. Учебное пособие
  • Тесселяция для OpenGL ES 3.1 на Android
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии0

Простой способ модификации Android приложения

Время на прочтение3 мин
Количество просмотров57K
Бывает после релиза приложения его исходники куда-то деваются. Правда ведь, такое постоянно случается? И ничего не остается кроме как декомпилировать его и подправить несколько сотен строк кода и все это нужно сделать максимально быстро.

Вот и у меня появилась задача модифицировать приложение имея всего лишь его apk. И те, кто занимался декомпиляцией приложений знают насколько тяжело его потом скомпилировать.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии14

Библиотека для совершения покупок внутри приложений (Android In-App Billing v.3)

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

Checkout («касса», «кассовый аппарат») — это библиотека для совершения покупок внутри приложений на базе Android In-App Billing v.3. Основная цель — уменьшить время разработчика, затрачиваемое на внедрение платежей в Андроид приложения. Проект был вдохновлён библиотекой Volley, и проектировался для того, чтобы быть максимально простым в использовании, быстрым и гибким.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии22

Photo Widget своими руками

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


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

Многим пользователям смартфонов Xperia нравится красивый трёхмерный стандартный виджет фотографий. С точки зрения терминологии андроид, это не AppWidget, а простой View, очень похожий на виджет. Его можно с большой натяжкой назвать «плагином» к стандартному лаунчеру Xperia Home, поэтому в списке виджетов других лаунчеров его нет. В этом посте я расскажу, как можно сделать похожий виджет.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии2

Разработка мобильного ПО: проблемы интеграции

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


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

С подробностями Егор Тафланиди, Redmadrobot.

Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии3

Реактивное программирование под Android

Время на прочтение10 мин
Количество просмотров90K
Отказоустойчивость, отзывчивость, ориентированность на события и масштабируемость — четыре принципа нынче популярного реактивного программирования. Именно следуя им создаётся backend больших систем с одновременной поддержкой десятков тысяч соединений.

Отзывчивость, простота, гибкость и расширяемость кода — принципы, которые можно закрепить за реактивным UI.

Наверняка, если совместить реактивные backend и UI, то можно получить качественный продукт. Именно его мы и попытались сделать, разрабатывая 2GIS Dialer — звонилки, которая работает через API и при этом должна оставаться быстрой и удобной.


Читать дальше →
Всего голосов 52: ↑49 и ↓3+46
Комментарии58

Раскрашиваем значки от гугла

Время на прочтение5 мин
Количество просмотров20K
Дизайн приложения — очень важная часть разработки. Google значительно его упрощает, предоставляя в свободном доступе около 150 готовых значков, заготовленных под разную плотность пикселей. Однако по умолчанию они серого цвета. Сделано это специально для того, чтобы дизайнер сам раскрасил их. Но если мы хотим просто придать значкам некоторый цвет — нет смысла редактировать каждый отдельно. Проще написать скрипт, который сделает работу за нас.

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

Сразу оговорюсь — вполне возможно, что средствами Adobe Illustrator можно сделать всё то, о чём написано в статье и уже есть готовые скрипты. Но его нет под линуксом и вообще он дорого стоит. Думаю, что пользователи Linux и сторонники свободного ПО оценят мой подход.


Читать дальше →
Всего голосов 36: ↑26 и ↓10+16
Комментарии18

Основы безопасности операционной системы Android. Безопасность на уровне Application Framework. Binder IPC

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

Вступление


После небольшого перерыва я продолжаю объяснять базовые принципы как обеспечивается безопасность в операционной системе Android. Сегодня я начну описывать безопасность на уровне Application Framework. Но чтобы понять данную тему, вначале необходимо рассмотреть как в Android реализован механизм межпроцессного взаимодействия (Inter-Process Communication (IPC)). Этот механизм называется Binder IPC, и сегодня мы будем рассматривать его особенности. Все, кому интересно, добро пожаловать!
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии7

Создание репортов о тестировании Android-приложений с помощью Spoon и Emma

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

Тестирование — один из самых важных этапов при разработке приложения. И приложения на Android не есть исключением. При написании кода обычно нужно его просматривать и задуматься над тем, как же его протестировать потом. Представим ситуацию, когда вам нужно покрыть тестами ваш проект, который полностью написан. Чаще всего, это не так-то просто. Скорее всего, ваш код просто-напросто не был реализован так, чтобы его было легко тестировать. Это означает, что вам придётся делать изменения в нём, чтобы сделать его поддающимся тестированию… не разрушив никакой функциональности (собственно это в наше время и называется рефакторингом (refactoring)).
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии10

Выжимаем максимум из DDMS

Время на прочтение6 мин
Количество просмотров35K
DDMS (Dalvik Debug Monitor Server) — безумно полезный инструмент для отладки приложений, который идет в комплекте с Android SDK, о котором почему-то особо и не сказано на хабре, впрочем как и в примерах google он представлен в очень скромном виде. Я бы хотел раскрыть его возможности и показать на что он способен. Вкратце:
  • изучать информацию о работающих потоках;
  • анализировать heap на количество свободной и занятой памяти;
  • анализировать какие объекты чаще создаются, их размер и другое (Allocation tracker);
  • находить проблемные участки кода, которые долго работают и требуют оптимизации (Method profiling). Это я советую знать всем.

Об этих вещах будет рассказано в рамках данной статьи. И для справки, менее интересное, что довольно тривиально и о чем НЕ будет рассказано в рамках данной статьи:
  • работать с файловой системой эмулятора или устройства;
  • находить информацию об ошибках (привет LogCat);
  • эмулировать звонки/смс/местоположение;
  • использовать инструмент Network Statistics.


Если заинтересовались, прошу под кат.
Всего голосов 34: ↑34 и ↓0+34
Комментарии6

Списки с разными типами элементов и разными провайдерами данных

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

Предисловие


Однажды понадобилось мне выводить в одном ListView карточки разных типов, да еще и полученные с сервера по разным API. Мол, пусть пользователь порадуется и в одной ленте новостей увидит:
  • карточки видео, с тамнейлами и описаниями;
  • карточки авторов или тегов, с большой кнопкой «подписаться».

Очевидно, что мастерить один большой layout, в котором учитывать все мыслимые варианты карточек — плохо, да и расширяться это будет так себе.



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



Ну и чтобы жизнь медом не казалась, серверное API менять нельзя.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии9

Синхронизация в Android приложениях. Часть вторая

Время на прочтение18 мин
Количество просмотров41K
account
Коллеги, добрый день. Продолжим тему, начатую в прошлой статье, где мы рассмотрели механизм создания аккаунта на устройстве. Это было первым необходимым условием для использования SyncAdapter Framework'а.

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

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

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

Чтобы настраивать автоматическую синхронизацию через определенные интервалы времени, нам потребуется экран настроек этого добра. Желательно, чтобы доступ к нему был не только из приложения, но и из системного экрана нашего аккаунта (как на скриншоте к статье). Используем для этого PreferenceFragment'ы. С функциональностью определились, приступим.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии2

Ввод паролей при сборке проектов с помощью gradle

Время на прочтение3 мин
Количество просмотров6K
При сборке проектов для Android Gradle позволяет указать некоторые параметры, позволяющие собрать и подписать пакет, готовый для загрузки в Google Play. Однако, вряд ли стоит загружать некоторые данные, такие как пароль от приватного ключа в публичный репозиторий. В статье, перевод которой ниже, автор рассматривает способы ввода приватной информации, такой как пароли, во время сборки проекта.

Gradle позволяет получить доступ к консоли с помощью метода System.console(). Консоль предоставляет метод для чтения паролей, поэтому для ввода пароля можно использовать:
def password = System.console().readPassword("\nPlease enter key passphrase: ")

Теперь можно использовать пароль в любом месте скрипта сборки, и все готово… ой, тогда это будет слишком короткий пост, поэтому теперь поговорим о проблемах.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии2

Генерируем и сканируем QR/BAR коды

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

В статье приводится короткий пример, как встроить в своё приложение генератор и/или сканер QR кодов (или штрих-кодов), и тем самым облегчить себе задачу передачи с устройства на устройство коротких объемов информации.

QR-коды пришли на смену устаревшим штрих-кодам (далее вместо 'Bar code') и все плотнее входят в нашу жизнь, их используют в десятках различных решений от передачи ссылок на сайт, до сложных систем авторизаций и покупок.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии7

Чистый Android: частые ошибки портирования с iOS

Время на прочтение3 мин
Количество просмотров15K
Многие разработчики хотят выпускать свои приложения под несколько платформ. Если вы планируете адаптировать программу под Android, нужно учитывать, что разные платформы придерживаются разных правил оформления и поведения. Визуальные решения, идеально вписывающиеся в окружение одной ОС, могут выглядеть чужеродными на другой. Несомненно, подход «один дизайн — много платформ» может сэкономить приличное количество времени, но при этом нужно понимать, что приложение наверняка получится чужеродным, что может оттолкнуть пользователей. Следующие приемы помогут вам избежать наиболее частых ловушек и подводных камней.
Читать дальше →
Всего голосов 56: ↑39 и ↓17+22
Комментарии12

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность