Как стать автором
Обновить
20
0
Борис Кафтанатий @kaftanati

Пользователь

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

Пишем действительно тестируемый код

Время на прочтение18 мин
Количество просмотров19K
Что такое тестируемый код? Каких правил стоит придерживаться для его написания? Как начать писать такой код, если кодовая база к этому не готова?

Статья с большим количеством примеров кода и иллюстраций, в основе которой – выступление Антона на конференции Mobius 2017 в Питере. Антон является разработчиком Android-приложений в Juno, и в своей работе затрагивает множество смежных технологий. Этот доклад не об Android и не о Kotlin, он о тестировании в целом, об идеях, которые лежат над платформой и над языком и которые могут быть адаптированы к любому контексту.


Налоги при продаже приложений и рекламы Google

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

Продолжаем серию заметок о налогах при монетизации мобильных приложений на зарубежных площадках.

В прошлой статье Какие налоги нужно платить при выводе доходов от приложений в Apple iTunes мы кратко изложили алгоритм расчета налогов при получении дохода в iTunes Apple. Теперь предлагаем обсудить налоги с продаж приложений Google Play и рекламы Google AdSense.

Руководствоваться будем следующими договорами с Гугл, которые есть в официальном русском переводе на сайте корпорации:


Подробности под катом.
Читать дальше →

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

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

Sql, RegExp, Gradle — что их объединяет? Всё это примеры использования проблемно-ориентированных языков или DSL (domain-specific language). Каждый такой язык решает свою узконаправленную задачу, например, запрос данных из БД, поиск совпадений в тексте или описание процесса сборки приложения. Язык Kotlin предоставляет большое количество возможностей для создания собственного проблемно-ориентированного языка. В ходе статьи мы разберемся, какие инструменты есть в арсенале программиста, и реализуем DSL для предложенной предметной области.


Весь синтаксис, представленный в статье, я объясню максимально просто, однако, материал рассчитан на практикующих инженеров, которые рассматривают Kotlin, как язык для построения проблемно-ориентированных языков. В конце статьи будут приведены недостатки, к которым нужно быть готовым. Используемый в статье код актуален для Kotlin версии 1.1.4-3 и доступен на GitHub.


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

Планирование задач в Android с использованием JobScheduler и IntentService

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


Иногда при разработке под OS Android возникает необходимость выполнять ресурсоемкие операции периодически, регулярно или по запросу, и для этих операций важно, например, наличие интернета или чтобы устройство "не спало". Чаще всего при решении подобных задач применяются AlarmManager, WakefulBroadcastReceiver, либо же вообще WakeLock контролируется вручную. Все это не рекомендуется в документации для разработчиков под Android, а WakefulBroadcastReceiver уже отмечен как deprecated с API level 26.0.0.


Что же мы можем сделать, чтобы следовать рекомендациям Google и создавать приложения с более гибким поведением на версиях Android 5.0+, в которых энергосбережению уделяется все больше внимания? Если вы готовы выставить минимальный API level 21.0.0 для своего приложения, предлагаю под катом пример использования JobScheduler в связке с IntentService для последовательного выполнения трудоемких задач.

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

Какие налоги нужно платить при выводе доходов от приложений в Apple iTunes

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

Разработчики постоянно задают нам вопросы о налогах, которые должны платить при выводе средств на российское лицо по договору с Apple. Поводом беспокойства служит известный Налог на Гугл, введенный с начала 2017 года.

Поэтому мы разместили в свободном доступе перевод последней редакции Apple Developer Program License Agreement Schedule 2 и подготовили налоговые комментарии к нему.

Кому интересно, смотрим далее.
Читать дальше →

30 новых ресурсов для android-разработчика (лето 2017)

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

Компания EDISON Software профессионально занимается разработкой Android-приложений. Вот некоторые крупные проекты:


Полезные статьи на Хабре по Android:


(Пост из серии «просмотреть и добавить в избранное»)
Читать дальше →

5 правил работы с суммами

Время на прочтение8 мин
Количество просмотров82K
В современном программном обеспечении очень часто возникает необходимость выполнять различные операции с всевозможными суммами денег. Однако до сих пор мне нигде не попадалось документации, в которой были бы сведены воедино основные правила представления сумм и реализации финансовых вычислений. В этой статье я попробую сформулировать те правила, которые составил сам на основании личного опыта.


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

Цвет в дизайне интерфейсов: инструкция по применению

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


Как создать чистый интерфейс, используя всего лишь один цвет? Вы узнаете из этой статьи. Перевод «Я люблю ИП».


Будучи по большому счёту дизайнером-самоучкой, мне всегда было интересно, почему так много статей и сайтов говорят о теории цвета и цветовых палитрах. По моему опыту, вероятность сделать красивый дизайн, использую «сплит-комплиментарную палитру», стремится к нулю.


У меня есть другое мнение на этот счёт: теория цвета бесполезна.


Но если теория цвета не является прочной основой для выбора цвета в дизайне интерфейсов, то что тогда является?


Вот вам мой ответ: модификация цвета. Всё дело в небольших изменениях цвета, а не в их выборе из цветового круга.


Другими словами: основным навыком в придании цвета дизайну интерфейсов является умение модифицировать один основной цвет во множество различных вариаций.


Я знаю, что это звучит немного странно. Но послушайте меня, я дам вам практическую инструкцию для адаптации цвета в вашем дизайне.


Вы готовы? Тогда поехали.

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

Анатомия аналитики от Google

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

Всем привет!
Мы — разработчики (гордо звучит, не правда ли?), и мы активно пилим новые фичи, правим баги и стараемся сделать наш продукт лучше. Но чтобы понять, а как именно пользователь использует наш продукт, какие фишки продукта ему по душе, а какие — не очень, мы используем аналитику. Есть много разных средств, но в этой статье я бы хотел поговорить именно об аналитике от Google, которая активно развивается и меняется. Старого часового по имени Google Analytics сменяет новый боец — Google Analytics for Firebase (в девичестве — Firebase Analytics).
Уже даже в названиях вы можете уловить этот ветер перемен. А ветер перемен всегда порождает некоторый информационный вакуум, в который попадают разного рода слухи, далеко не всегда достоверные при этом.
Поэтому давайте попробуем разобраться подробно, а что сейчас с этой аналитикой, чем пользоваться-то в итоге. И как вообще дальше жить.
Если про Google Analytics информации довольно много, и она систематизирована (чего только стоит этот ресурс, идеальная справка), то у Google Analytics for Firebase типичная болезнь молодого и активно развивающегося продукта — информации мало, она разрознена и иногда даже противоречива. И я в свое время потратил немало сил и времени, чтобы разобраться, что к чему.
Собственно главная цель данной статьи — это систематизация знаний и нынешнего состояния Google Analytics for Firebase. Некоторая «дорожная карта» Google Analytics for Firebase.
Уверен, данная «карта» сэкономит вам прилично времени и нервов =)

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

Шпаргалка по тестированию требований к мобильным приложениям

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

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


Статья ориентирована на тестировщиков, которых просят провести ревью ТЗ и найти в нём несоответствия, и на аналитиков, которым разработчики после прочтения ТЗ часто задают вопросы формата: «А что должно быть, если …?».

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

Как стать лучшим разработчиком приложений Андроид: 31 совет

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

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

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

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

Переведено в Alconost
Читать дальше →

30+ инструментов для профессиональной разработки приложений под Android

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

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

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

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

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

Локализация приложения — обязательный пункт в списке задач каждого разработчика на 2017 год. Почему? Потому что все чаще оказывается, что это — эффективный способ получить долю на рынке и увеличить продажи во всем мире. Неважно, с какой локализации вы начинали: сделайте ее правильно для китайского рынка — и вы сорвете банк.

Китай с 2013 года — мировой лидер по количеству владельцев смартфонов, а сегодня это уже крупнейший в мире рынок приложений. Здесь речь идет о доходах в размерах более 25 млрд. долларов по состоянию на 2016 год и 42 млрд. долларов — к 2020 году (согласно прогнозам).

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

Звучит заманчиво, правда? Но не обольщайтесь: от создания приложения до выхода его в китайских магазинах приложений нужно пройти долгий путь. Локализация приложений для Китая — это совсем не просто: вам придется приспособить приложение для совершенно другого потребителя, у которого мало или вообще нет ничего общего с теми, кто использует ваше приложение сейчас.

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

Переведено в Alconost
Читать дальше →

Runtime перекраска приложения

Время на прочтение5 мин
Количество просмотров6.3K
Привет, Хабр!

Недавно мне выпала интересная задача перекрасить приложение по JSON объекту, стянутому с сервера. Google диктует идею, что все цвета/темы прописаны в xml. Из-за чего легким движением руки не выйдет везде заменить какой-нибудь R.color.primary_button с синего на зеленый.

Если вам интересен небольшой пересказ недельного приключения по Resources, то добро пожаловать под кат.
Читать дальше →

Синглтоны и общие экземпляры

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


Каждый раз при обсуждении программного обеспечения с другими разработчиками всплывает тема синглтонов, особенно в контексте развития WordPress’а. Я часто пытаюсь объяснить, почему их надо избегать, даже если они считаются стандартным шаблоном.


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

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

7 советов по локализации инди-игры в Unity

Время на прочтение8 мин
Количество просмотров17K
Unity — один из самых популярных игровых движков среди независимых разработчиков. Это мощный инструмент, открывающий доступ в игровую индустрию даже самым мелким издателям и разработчикам-одиночкам.

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

Это относится и к локализации, благодаря которой вы можете познакомить со своей игрой весь мир. Однако нужно быть осторожным, ведь локализация игры — сложный процесс. Давайте рассмотрим наилучший способ выполнить её в Unity.

Итак, вы создали игру. Что дальше?

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

Игра уже почти в состоянии альфа-версии. Месяцами вы упорно работали над ней, до цели остался последний рывок, а финишная линия уже видна. Вы планируете потратить несколько следующих месяцев на полировку, настройку и балансировку своего шедевра, прежде чем показать его миру и заработать состояние. Но это не совсем верно. Ещё многое предстоит сделать. Фактически, перед вами скоро откроется совершенно новый мир, пока вы будете гуглить информацию о маркетинге, PR, создании сообщества и издании игры. Вы читали постмортемы, слышали страшные истории и смотрели видео с GDC об играх, разваливавшихся за пару последних месяцев разработки или пропавших в пучине после выпуска из-за недостаточной огласки или апатии. Теперь вас беспокоит судьба вашего замечательного творения, в которое вы вложили месяцы творческой работы и энергии. Страх постепенно овладевает вами. Ужас от того, что ваша игра может просто кануть в небытие.

Предстоит ещё многое сделать! Если вы похожи на меня, то у вас в чём-то не хватает опыта. Все мы обладаем разными навыками и хорошо справляемся со своей работой, но никто не может быть специалистом во всех областях. Например, я в первую очередь программист, и я могу заниматься заниматься массой других вещей (кроме графики, в ней я не силён), но создание бизнеса, маркетинг, PR и создание сообщества… Нет, для меня это всегда было загадкой, и я всегда игнорировал эти аспекты до последнего момента, после чего, наконец, заставлял себя сделать кое-как эту часть работы. Просто для меня это не очень интересная часть процесса разработки игры, и я думаю, что большинство с этим согласится. Кроме фанатов маркетинга, естественно.
Читать дальше →

30+ онлайн ресурсов для изучения программирования в 2022

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



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

«Фабричный метод» в разработке под Android. Лучший способ обработки пушей

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

В этой статье я бы хотел поговорить об одном из классических шаблонов проектирования в Android-разработке: фабричном методе (Fabric method). Изучать его мы будем на примере работы с Firebase Cloud Messaging (далее FCM). Цель — донести до начинающих разработчиков, пока не овладевших в полной мере всеми достоинствами ООП, важность применения приёмов объектно-ориентированного проектирования, как мы это сделали в Live Typing


image

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

Разбираемся с новыми архитектурными компонентами в Android

Время на прочтение11 мин
Количество просмотров24K
Гостевая статья от участника Google I\O 2017 и одного из лидеров GDG Kazan — Артура Василова (@Arturka).

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

Самым большим и интересным техническим обновлением лично для меня стали новые Architecture Components (не Android O, в котором мало чего интересного, и уж точно не Kotlin). Google сделал то, что должен был сделать уже очень давно — разработать стандарты архитектуры и предоставить их разработчикам. Что же, лучше поздно, чем никогда, и давайте разбираться с тем, насколько полезной может быть архитектура от Google.


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

Информация

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