Pull to refresh
4
0
Кирилл @h32

User

Send message

Как написать первый автотест на Android-приложение

Level of difficulty Medium
Reading time 11 min
Views 10K

Всем привет! Меня зовут Стас, и я Senior QA в компании inDrive и наставник на курсе «Инженер по тестированию» в Яндекс Практикуме. Ещё веду телеграм-канал «Тестировщики нужны».

Многие начинающие автоматизаторы задаются вопросом: «Как же написать свой первый автотест на мобильное приложение?». В данной статье я и хотел бы ответить на этот вопрос. На самом деле, статей на эту тему написано довольно большое количество. Подробно рассказывается применение паттерна PageObject в написании тестов и многое другое. Но наша с вами задача — написать наш первый простенький тест на экран авторизации на языке Java. Поэтому давайте решим эту задачу вместе!

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 1

Как работа с ресурсами вызывает микрофризы

Reading time 10 min
Views 5.4K

Думаю, каждый из нас периодически сталкивается с непонятными микрофризами при взаимодействии с, казалось бы, простым UI…

Просто скролишь список, и тут — бац! Лагнуло! Сегодня я бы хотел разобрать одну из множества причин такого поведения — работу с ресурсами. Мы разберёмся, в каких случаях работа с ресурсами может стать проблемой. Почему это происходит и как лучше всего от этого избавится.

Читать далее
Total votes 23: ↑22 and ↓1 +21
Comments 9

Принципы построения многомодульных Android-приложений

Reading time 7 min
Views 14K

Эта статья - перевод недавно вышедшего гайда о модуляризации Android-приложений от Google.

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

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

Что мы используем для анализа Android-приложений

Reading time 8 min
Views 9.9K

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

Читать далее
Total votes 26: ↑26 and ↓0 +26
Comments 4

Как проверить доступность вводного предложения в iOS

Reading time 5 min
Views 2.7K

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


image


Всем привет, на связи Ренат из Apphud – сервиса, который упрощает работу с подписками в iOS-приложениях. Сегодня я расскажу, как определить, есть ли у отдельно взятого пользователя право активировать вводное предложение или нет.

Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Comments 4

Kodein. Основы

Reading time 20 min
Views 25K
Не нашел понятных гайдов для тех, кто Kodein видит в первый раз, а документация не во всех местах прозрачная и последовательная, поэтому хочу поделиться основными возможностями библиотеки с вами. Некоторые возможности библиотеки будут выпущены, но это в основном advanced часть. Здесь же вы найдете всё, чтобы по ходу чтения статьи нормально стартовать и начать внедрять зависимости с Kodein. Статья базируется на Kodein 5.3.0, так как Kodein 6.0.0 требует Support Library 28 или AndroidX и далеко не скоро все перейдут на них, так как многие сторонние библиотеки ещё не предлагают совместимых версий.

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

WebRTC #1 — Знакомимся

Reading time 3 min
Views 153K


Многие уже слышали о проекте WebRTC, некоторые даже используют его (или пытаются применять в существующих проектах), а кто-то злобно потирает руки, предвкушая постепенную расправу со Skype и Flash.

Погуглив в Хабре (хе-хе) я почему-то не нашел статей, которые углублялись в техническую сторону WebRTC, показывали бы примеры его использования.

Что же, я попытаюсь порадовать вас схемками, кодом. В общем, именно тем, что всем по вкусу. Так пройдем же под кат, мой любимый читатель.
Читать дальше →
Total votes 58: ↑56 and ↓2 +54
Comments 12

Многопоточность (concurrency) в Swift 3. GCD и Dispatch Queues

Reading time 28 min
Views 318K
Надо сказать, что многопоточность (сoncurrency) в iOS всегда входит в вопросы, задаваемые на интервью разработчикам iOS приложений, а также в число топ ошибок, которые делают программисты при разработке iOS приложений. Поэтому так важно владеть этим инструментом в совершенстве.
Итак, у вас есть приложение, оно работает на main thread (главном потоке), который отвечает за выполнение кода, отображающего ваш пользовательский интерфейс (UI). Как только вы начинаете добавлять к вашему приложению такие «затратные по времени» куски кода, как загрузка данных из сети или обработка изображений на main thread (главном потоке), то работа вашего UI начинает сильно замедляться и даже может привести к полному его «замораживанию».



Как можно изменить архитектуру приложения, чтобы таких проблем не возникало? В этом случае на помощь приходит многопоточность (сoncurrency), которая позволяет одновременно выполнять две или более независимые задачи (tasks): вычисления, загрузку данных из сети или с диска, обработку изображений и т.д.
Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Comments 14

Как я слил 1000$ в продвижение игры и что из этого получилось

Reading time 6 min
Views 60K


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

Для многих знакома ситуация, делал-делал, а кроме друзей так и никто и не увидел игру, а ведь так старался! Под катом не будет расплывчатых формулировок или предположений по продвижению. Конкретно ссылки — конкретно результат. Поехали!
Читать дальше →
Total votes 82: ↑81 and ↓1 +80
Comments 79

В App Store появилась категория «Инди». Но речь не об этом

Reading time 4 min
Views 4K
Эта статья — привет из прошлого. Все, о чем в ней рассказывается, было актуально лишь в один-единственный день, 20 сентября 2017 года, когда в App Store появилась категория «Инди», а также «Игры с AR», «Дети», «Викторины» (вместо «Любопытные мелочи» — наконец-то адекватный перевод!) и «Обучающие» (вместо «Образование»). Однако говорить мы будем не об этом, а о поисковой оптимизации для iOS11, а если точнее, о названиях категорий.
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 0

Руководство по выживанию в Steam для мобильных разработчиков

Reading time 11 min
Views 14K
Друзья, суровым разработчикам в Steam эта статья, вероятно, покажется наивной и поверхностной, но поверьте: в России есть множество разработчиков, которые настолько ориентированы на мобильные рынки, что совершенно не представляют, как работает этот ресурс. Если это ваша ситуация и вы сейчас резко ощутили желание заработать на новом рынке, то этот материал будет вам полезен. Приятного чтения!


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

Как сделать хороший ролик для App Store и Google Play

Reading time 8 min
Views 15K


Видео — это мощное средство для продвижения вашего приложения, и с выходом iOS 11 его роль становится ещё важнее. Мы в Alconost сформулировали рекомендации, которых следует придерживаться при создании видео для iOS App Store и Google Play Store. Между двумя указанными сторами есть важные отличия, о которых вам следует знать, чтобы увеличить отдачу от использования видео. Мы расскажем, как сделать ролик для страницы приложения в App Store с учётом всех новшеств iOS 11 и чем отличаются ролики для Google Play.
Total votes 10: ↑10 and ↓0 +10
Comments 2

Монетизация приложений в iOS 11: таргетируем встроенные покупки в новом App Store

Reading time 5 min
Views 11K


На WWDC’17 Apple показала обновленный интерфейс App Store и представила ряд нововведений. Среди них были продвигаемые встроенные покупки, которые с выходом iOS 11 будут выводится прямо в поиске и редакторских подборках наряду с приложениями.

В нашем случае это особенно актуальная вещь, так как в текущем проекте War Robots мы используем встроенные покупки, которые для нас стали самым оптимальным способом монетизации. Поэтому в нескольких новых играх, которые сейчас в разработке, мы также собираемся их использовать.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 5

Дизайн и математика игр-кликеров

Reading time 25 min
Views 85K
image

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

Что такое инкрементная игра?


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

В сущности, такова общая структура «инкрементной» игры. Она кажется простой, даже примитивной, но в игровом процессе есть неожиданная глубина и привлекательность. Стили игры могут быть разными — от коммерчески успешных и казуальных Clicker Heroes и AdVenture Capitalist до более экспериментальных или хардкорных примеров, таких как Candy Box, Cookie Clicker и Sandcastle Builder.


Cookie Clicker, самое начало.

Что же самое важное в инкрементной игре? Хотя в этом жанре есть множество вариаций и экспериментов, фундаментальными аспектами дизайна являются:

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

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

Покоряем Поднебесную: как вывести приложение на рынок Китая

Reading time 4 min
Views 9.6K
Израильская компания по мобильной аттрибуции AppsFlyer опубликовала 60-страничный гид по вхождению на китайский рынок мобильных приложений в 2017 году. Вот самое интересное из него:

  • Главное отличие китайского рынка мобильных приложений в том, что в 2010 году Google покинул страну, а вместе с ним исчез и Google Play. В результате в Китае свыше 300 магазинов приложений для Android, для каждого из которых необходимо переупаковывать APK. Магазины делятся на две группы: созданные операторами (пр. Tencent, Baidu, 360) и созданные производителями смартфонов (пр. Huawei, Xiaomi).
  • Зачем же заморачиваться с выходом на рынок Поднебесной? Интернетом в Китае пользуется 751 млн человек, это почти всё население Европы. С мобильных устройств в сеть выходит 724 млн пользователей, а это 96,3% всех интернет-пользователей в стране.
  • Как следствие, каждый третий владелец смартфона пользуется им как кошельком, т.е. оплачивает с помощью телефона покупки в магазинах, такси, билеты в кино и прочее. В среднем на одного клиента WeChat приходится по 55 мобильных транзакций в месяц.
  • Затраты на мобильную рекламу между первым кварталом 2016 и первым кварталом 2017 выросли на 90% (!) — это абсолютный мировой рекорд. К 2020 году прогнозируется, что к 2020 году объём затрат на mobile ads составит 70 с половиной миллиардов долларов.

Как же правильно запустить своё приложение или игру на китайском рынке?
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Comments 2

Сетевое кеширование в iOS. NSURLCache

Reading time 5 min
Views 21K
Данная тема важна при разработке любого приложения, взаимодействующего с сетью. Здесь грамотное использование возможностей системы может значительно улучшить взаимодействие пользователя с программой.

NSURLCache — это комплексное решение для кеширования сетевых запросов в оперативной памяти или на диске. В соответствии с документацией Apple, любой запрос с использованием NSURLConnection будет «пропущен» через NSURLCache.

Кеширование уменьшает количество необходимых обращений к сети, улучшает впечатление от работы с программой во время полного отсутствия интернета или проблем с сетевым соединением.
Читать дальше →
Total votes 17: ↑14 and ↓3 +11
Comments 3

Что нового нас ждет в Swift 4?

Reading time 9 min
Views 20K
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Comments 9

Как написать максимально хреновый бэкенд для мобильного приложения

Reading time 6 min
Views 62K


Известно, что практически ни одно мобильное приложение не обходится без бэкенда.


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


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


Приятного чтения.

Читать дальше →
Total votes 64: ↑50 and ↓14 +36
Comments 117

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

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


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

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

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

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

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


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

Information

Rating
Does not participate
Location
Гродно, Гродненская обл., Беларусь
Registered
Activity