OneClickStudio

OneClickStudio

Пикабушник
Дата рождения: 6 августа
leonid65
leonid65 и еще 1 донатер

Отремонтировать компьютер

Друзья! Основной компьютер для программирования (стационарный ПК) приказал долго жить, и в нем требуется заменить блок питания и материнскую плату. Если пост (или серия) окажутся полезны для вас, сказать "спасибо" можно через систему донатов. Обязательный отчет по завершении сбора будет опубликован в сообществе.

500 8 500
из 9 000 собрано осталось собрать
2315 рейтинг 238 подписчиков 39 подписок 48 постов 9 в горячем
Награды:
С Днем рождения, Пикабу!5 лет на Пикабу
15

Волна по "Честной цене" - тру приложение для Android ч.3

Здорово, пикубушники и пикабушницы.

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

Напомню, давным давно мы заловились с товарищем @Stich.626 чтобы сделать единообразное и бесплатное мобильное приложение + сайт для расчета ценников в магазинах, которое решили не бросать, любить и лелеять, насколько это возможно.

Волна по "Честной цене" - тру приложение для Android ч.3 Цены, Приложение на Android, Программирование, Rustore, Google Play, Длиннопост

0 - Что делаем сегодня?

В данном посте мы добавляем функционал сравнения ценников, смотрим отзывы пикабушников из магазинов приложений, и конечно же внедряем новые удобства на основе этих самых отзывов (иначе зачем мы их читаем). Готовы? Поехали!

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

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

https://play.google.com/store/apps/details?id=ru.oneclickstu...

https://www.rustore.ru/catalog/app/ru.oneclickstudio.fairpri...

1 - Разбираемся с понятием сравнения

Итак, в самом начале давайте поразмышляем, зачем вообще нам может быть полезен такой раздел со сравнением, и обусловлена ли необходимость в нем как такового (потому что у нас уже есть прекрасный список, который хоть чуть чуть, но выполняет эти задачи):

  • Когда мы сравниваем один (или несколько) ценников на товарах, обычно мы смотрим их по схожим характеристикам. Например, мы хотим узнать, какое самое дешевое молоко из представленного в магазине. Или пиво. Или хлеб. Или что вы там вечером едите :)

  • В связи с этим у нас формируется некий "паттерн" поведения пользователя в реальной жизни. Ага, я увидел пельмени по 450 рублей за 500 грамм, теперь я хочу сравнить другие пельмени, и посмотреть, что дешевле в пересчете на килограмм.

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

  • Другими словами, было бы очень удобно "на лету" подсвечивать самое выгодное предложение (каким нибудь зеленым цветом), но при этом ограничить расчеты по одному типу (к сожалению, пельмени не измеряются в литрах, а жаль)

1.1 - Макет, рисуйся!

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

Волна по "Честной цене" - тру приложение для Android ч.3 Цены, Приложение на Android, Программирование, Rustore, Google Play, Длиннопост

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

Для этого немного немного поправим данный слой, добавим новую кнопку, и иконки для наглядности, и выделим функцию шеринга (если ей еще кто то пользуется в этом веке). Действия объясняются буквально одной строкой для вьюх типа Button:

android:drawableLeft="@drawable/back_48px"

1.2 Экран активности

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

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

Передаем мы, напомню, сведения из последнего расчета

Волна по "Честной цене" - тру приложение для Android ч.3 Цены, Приложение на Android, Программирование, Rustore, Google Play, Длиннопост

Экран с тестовыми сведениями для наглядности

Что мы можем тут узреть:

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

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

  3. Еще одна карточка для ввода значений, и добавления их к нашему списку. Постарался уместить ее в одну строку для быстроты ввода, при этом не нарушая читабельности (везде ясно что где вводится)

1.3 Принимаем и передаем сведения

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

Intent intent = new Intent(MainActivity.this, CompareActivity.class);
intent.putExtra("get_compare_price", compare_price);
intent.putExtra("get_compare_weight", compare_weight);
intent.putExtra("get_compare_type", compare_type);
intent.putExtra("get_compare_result", compare_result);
startActivity(intent);

А в следующей активности мы уже запрашиваем эти сведения в onCreate, дополнительно убеждаемся в том что запрошенные поля не пустые (чтобы не получить NullPointerException, если приложение будет выгружено из памяти), и помещаем их на форму через метод добавления первого пункта.

get_compare_price = intent.getStringExtra("get_compare_price");
get_compare_weight = intent.getStringExtra("get_compare_weight");
get_compare_type = intent.getStringExtra("get_compare_type");
get_compare_result = intent.getStringExtra("get_compare_result");

Bundle extra = intent.getExtras();
if (extra !=null) {
SetFirstCompareItem();
}

1.4. Возвращаем значения расчетов к изначальному виду

Когда мы передавали результат из одного экрана на другой, то мы поневоле изменили тип передаваемых сведений. Был double при передаче, а стал String.

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

Поэтому мы меняем типы обратно, посредством

Double.parseDouble(имя_переменной)

1.5. Считаем!

Теперь, когда мы готовы к подсчетам, выполняем стандартные действия из предыдущего экрана, ограничивая размер списка 5 элементами.

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

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

При этом, обновился тип для формирования цены - раньше он указывался без привязки с региону, и в некоторых местах цена была с запятой (123,45), а где то с точкой (123.45)

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

String.format(Locale.ENGLISH, "%.2f", price) + " ₽"

1.6 Новые удобства

Чтобы считать было еще удобнее, добавим метод, который после каждого добавления по кнопке (или по клавише с клавиатуры) вновь активирует текстовые поля. Вроде мелочь, а необходимости тыкать по новой в графу цены больше не будет:

private void ClearInputs() {
getInputPriceItemCompare = findViewById(R.id.getInputPriceItemCompare);
getInputWeightGRCompare = findViewById(R.id.getInputWeightGRCompare);

getInputPriceItemCompare.setText("");
getInputWeightGRCompare.setText("");

getInputWeightGRCompare.clearFocus();
getInputPriceItemCompare.requestFocus();
}

2. Новые удобства из отзывов

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

Волна по "Честной цене" - тру приложение для Android ч.3 Цены, Приложение на Android, Программирование, Rustore, Google Play, Длиннопост

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

Чтобы добавить такой способ на нажатие из экранной клавиатуры, воспользуемся объявлением слушателя для наших полей, которые уже есть в форме:

TextInputEditText.OnEditorActionListener

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

К сожалению, устройств (и версий андроида) настолько много, что у одних может показываться галочка (ОК), а у кого то стрелка вперед (NEXT). Чтобы этого избежать, дайте два определим реакцию на обе клавиши:

public boolean onEditorAction (TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_ACTION_NEXT) {
AfterStart();
return true;
}
return false;
}

Тут стоить дать несколько слов о методе AfterStart(), ведь ранее мы использовали другой способ BtnStart(View view)

Как не трудно догадаться, методы сами по себе отличаются, и один унаследован (и объявлен) в слое (View), где мы верстали экран, поэтому вызвать метод, который объявлен в коде мы не можем.

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

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

3. Что по багам?

3.1 Уже передав версии в релиз, я обнаружил, что часть сведений, которые мы меняли для нового экрана остались в старом формате. Это видно по скриншоту в самом начале:

Волна по "Честной цене" - тру приложение для Android ч.3 Цены, Приложение на Android, Программирование, Rustore, Google Play, Длиннопост

Этот тип данных поступает в формате String, поэтому часть текста будет обрезаться, если число само по себе ровное (без копеек)

А если же наоборот, передать сумму с копейками, то в новом экране покажется правильный формат, но он по все равно не тот, публикуется как String, а должен быть double

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

3.2 Для экрана сравнения хорошо бы добавить (в заголовке) что мы вообще сравниваем - килограммы, литры, или штуки. Думаю будет полезно, и главное наглядно

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

И конечно же предлагайте свои варианты, смотрите, оценивайте, считайте.

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

Всем бобра!

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

Теперь точно пока!

Показать полностью 4
76

Как я у Яндекса два раза ноутбук купил - и ни один не получил. Часть два - разгибаем Яндекс обратно

UPD:

Забыл, куда писать то - complaint@market.yandex.ru

Привет, человеки. Очень коротко напомню, про что говорили в прошлый раз:

1) В начале февраля заказал ноутбук на Яндексе: да не простой, а по уценке, Б/У. Ну.. так бывает, когда денег нет. Но мне его так и не привезли, и отменили в одностороннем порядке.

2) Ладно, заказываем второй (почти такой же, и у того же самого продавца) - но нет, и тут начались косяки.

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

Как я у Яндекса два раза ноутбук купил - и ни один не получил. Часть два - разгибаем Яндекс обратно Яндекс Маркет, Доставка, Посылка, Защита прав потребителей, Длиннопост

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

Ссылки на документ находятся в конце поста, если чо.

Что по тексту претензии?

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

Итак, мы заказали.. да вообще что нибудь, и это что-то к нам не пришло вовремя, хотя дата доставки указывает на обратное. В данном случае нас очень огорчает срок передачи товара потребителю - за это отвечает Яндекс (в лице его контрагентов, служб доставок и т.д.), и нас к сожалению вообще не волнует, что у них там случилось.

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

В претензии мы ссылаемся на п. 3 ст. 23.1 закона о защите прав потребителей (в нем сказано про начисление 0.5% за каждый просроченный день), + на правила продажи товаров дистанционным способом (в них говорится про то, что срок доставки нельзя нарушать, потому что они прописаны при оформлении заказа)

Как я у Яндекса два раза ноутбук купил - и ни один не получил. Часть два - разгибаем Яндекс обратно Яндекс Маркет, Доставка, Посылка, Защита прав потребителей, Длиннопост

А вот и те самые разделы, про что мы говорили.

Ну и что же нам ответили на это?

Как я у Яндекса два раза ноутбук купил - и ни один не получил. Часть два - разгибаем Яндекс обратно Яндекс Маркет, Доставка, Посылка, Защита прав потребителей, Длиннопост

Теперь вы снова знаете как меня звать

Ответ полный воды (действительно, мы нарушили и бла-бла), но ответ в конце меня удовлетворяет = когда заказ дойдет, скинь нам реквизиты, мы переведем тебе неустойку на карту.

И теперь мне почему то пофигу, когда он уже прийдет.

Давайте подведем кратенький итог:

Если доставку выполняет Яндекс, но товар предоставляет продавец, то претензия по доставке направляется к Яндексу, претензии по качеству - продавцу.

Если и товар, и доставка полностью от Яндекса, то ответственность соответственно лежит на них

Если и товар, и продавец это не Яндекс, то обращаться надо непосредственно к продавцу, Маркет вас развернет, и будет полностью прав.

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

Зову вот этих ребят, т.к. они просили их упомянуть

@arl1n, @RuRob, @user8453694, @getaptex,

В следующем посте расскажу по претензии, которую мне отменили в одностороннем порядке, но так как там история еще не окончена, результатом Яндекса я еще не удовлетворен. Ну и жду ответа от них.

Все спасибо, всем бобра

Ссылка на документ

https://cloud.mail.ru/public/NqWQ/rt8SiVifY

Показать полностью 3
10

Как я у Яндекса два раза ноутбук купил - и ни один не получил

Привет, пикабушники и пикабуняшки.

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

Прям очень коротко для Лиги Лени - в феврале я пожелал купить себе ноутбук. Да непростой, а целый Б/У по уценке (ну что поделать, жизнь такая, денег нет). Но мне его не привезли, и отменил заказ сам Яндекс (не продавец). И доставка тоже от Яндекса. Ну да бог с ним, деньги же вернули. Я заказываю второй (прям почти такой же) - и что? А что было - читаем дальше))

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

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

Ничего не предвещало беды

И действительно, все хорошо, но только поначалу. Выбираем ноутбук. оплачиваем его (в сплит), и проверяем что пришла отбивка на почту. Пришло:

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

Ну все - теперь вы знаете как меня звать. И то что у меня денег нет))

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

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

HP EliteBook 745 G4 14 - Хороший агрегат, отсутствие русской раскладки не пугает, да еще в хорошем состоянии, и можно потом проапрейдить. Шик же!

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

Но нет. Где то через дней 5 вечером на почту прилетает письмо счаcтья:

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

Внимательно отнеситесь к срокам в письмах - сейчас сказано, что деньги вернут за 2-3 дня (банковских, как принято)

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

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

А теперь мы тебе вернем их только через 10 дней (банковских). Но это НЕ точно, потому что твой банк - твои проблемы.

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

Поэтому закроем глазки, и сделаем вид, как будто мы ничего не видели (Яндекс, кстати, так делает постоянно, и вы увидите это по переписке с поддержкой)

Но что же делать, когда проблема возникла у Яндекса, а покупателя это не должно волновать?

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

Теперь еще и знаете, сколько стоил мой первый по счету БУ ноутбук.

Также немного оффтопа. Так как Яндекс сам по себе является маркетплейсом (как всякие ВБ, Озоны и тому подобные), то соответственно у них много много.. разных продавцов. Скорее всего, вы это и так знаете, и простите меня за тафтологию и напоминание.

Но! Продавец добросовестно все упаковал и сдал ребятам на доставку (доставка Яндекса), и проблема возникла (почему то) именно на складе Яндекса. Что разворачивает наш диван на 180 градусов.

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

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

Я бы еще добавил, что вдвойне нехорошо, когда этот же ноутбук (!) появился обратно в продаже, а потом опять был продан. Но я к сожалению не додумался сделать скрины его доступности, поэтому факты не смогу предоставить, и не буду настаивать, чтобы вы мне поверили.

Моя прекрасная поддержка

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

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

Чтобы не допустить того, что я не показываю часть разговора, на каждом скрине будет кусок из предыдущего

* Читать голосом Николая Дроздова *

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

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

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

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

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

Ладно, как было выше упомянуто - тупое травоядное (я) получило промокод на следующий заказ, поэтому я дождался возврата средств (написать, кстати, про Яндекс.Пэй?), и оформил новый заказ с учетом этой скидки.

Но я проиграл в части заказанного товара. Сравните, что было, и что осталось:

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

Вроде тот же HP EliteBook 745 G4 14, но теряем в процессоре и видеоядре. Хоть и сэкономили, но мне кажется такой даунгрейд аукнется мне в будущем

Ладно, все также отбиваются письма на почту и чеки об оплате, но перед этим, я вежливо.

ВЕЖЛИВО, МАТЬ ЕГО))

прошу скинуть мне трек номера.

Чтоб спокойнее было.

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

Там у меня еще посылка была, я на нее тоже трек попросил. Ее, кстати, также не смогли вовремя привезти.

И вот, спустя почти 4 недели срока доставки, наступает день Х. Посылки нет.

Опять пролюбили? Хитрый читатель уже догадывается, что я отслеживаю посылку в той службе доставки, где было создано отправление:

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

И вот тут дата доставки уже другая (но еще не факт, что окончательная)

С такими вводными идем к нашим любимым роботам Яндекса:

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

Мы пока молчим про то, что знаем, что дата сдвинулась. Ну может скажут сами

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

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

Как я у Яндекса два раза ноутбук купил - и ни один не получил Яндекс Маркет, Доставка, Посылка, Яндекс, Длиннопост

В конце мне уже надоело, я сказал что знаю про то что изменена дата, и вы в телевизоре ща будете

Вместо итога

Теперь, когда мы все это прочитали, пора сделать короткие выводы из вышеупомянутого сервиса. Наверное проще по пунктам:

  1. Следовало бы довести дело до конца с первым заказом? Наверное да, прецедентов по таким ситуациям достаточно, а если оперировать.. ну именно фактами околоюридическими (ни разу не юрист), то обязательства покупателя и продавца были исполнены, но сторона перевозчика в лице Яндекса (которая перепоручает это еще кому то).. Не смогла. Формулировка такая, другой не дали. Дайте коммент на этот счет, как было бы "верняковее" поступить

  2. Придёт ли заказ? Нуууу, по словам Яндекса конечно придёт (но это не точно), но в какие сроки, какая фаза луны будет в это время, или в каком настроении курьер будет - никто не знает.

  3. Стоит ли верить службе так называемой "поддержки", Да ни в коем случае! Почти доподлинно известно, что сотрудник поддержки может "влезть" в заказ, и посмотреть актуализированные сведения по заказу -> увидеть трек -> а система только потом рассылает оттуда выгрузку по трек номерам, если что то не успевает прийти вовремя. Мое мнение - либо не позволяет скрипт, либо слишком поверхностно.. вообще все слишком поверхностно делается в Яндексе

  4. Стоило ли спускать всех собак на них? Разумеется. При нормальном стечении обстоятельств сейчас я был бы сидел у ноутбука (более выгодного по спецификациям) и без заморочек.

Что в целом?

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

Как заказывали люди, так и будут. НО! Данным постом я хотел бы подчеркнуть тот факт, что надо обязывать компании следовать букве закона, и выполнять предписанные (ими самими) обязательства. Хотя бы в доставке, на которую они и подписались

Конкретно я не смог. Повелся на скидку, и может быть чуть большую лояльность (нет). Ну а вы сможете, при должном желании и упорстве.

Всем спасибо.

Показать полностью 14
18

Волна по "Честной цене" - тру приложение для Android ч.2

Привет, пикабушники и пикабушницы.

Напомню, два месяца назад мы заловились с товарищем @Stich.626 чтобы сделать единообразное + бесплатное мобильное приложение и сайт для расчета ценников в магазинах, которое решили не бросать, любить и лелеять, насколько это возможно.

В этом посте пойдет речь про обновление мобильной программы, и технические аспекты ее написания (все таки сообщество для разработчиков). Поехали!

Волна по "Честной цене" - тру приложение для Android ч.2 Android, Приложение, Программа, Смартфон, Google, Программирование, Rustore, Длиннопост

Недооцененный баннер в Goggle Play

0 - Че там по отзывам

Перед выпуском обновления мы разумеется лезем в обе консоли разработчиков (приложение есть как в Google Play, так и в RuStore), и занимаемся вычитыванием того, что вы там понарасказывали в них, и какие хотелки запрашиваете.

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

А для всего остального есть MasterCard система тестирования и многочисленные метрики.

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

Сегодня вопросом списка с историей мы и займемся.

1 - Нарисуй меня полностью!

Волна по "Честной цене" - тру приложение для Android ч.2 Android, Приложение, Программа, Смартфон, Google, Программирование, Rustore, Длиннопост

Первичный вход в приложение

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

  • Заглушку на основе RelativeLayout, которая показывается, когда еще не было произведено ни одного расчёта;

  • Сам список ListView, который находится внутри карточки, но невидим до тех пор, пока мы не начнем что либо считать.

Волна по "Честной цене" - тру приложение для Android ч.2 Android, Приложение, Программа, Смартфон, Google, Программирование, Rustore, Длиннопост

Вариация макета при наличии расчетов

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

Дело в том, что ListView (древнейший из компонентов андроида, кста) в своем базовом варианте очень плохо выглядит. Настолько плохо, что если использовать его "как есть", то потом можно выхватить от пользователей лучи поноса:

Волна по "Честной цене" - тру приложение для Android ч.2 Android, Приложение, Программа, Смартфон, Google, Программирование, Rustore, Длиннопост

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

Этот же файл, кстати, мы потом переопределим в адаптере, когда доберемся до кода.

Волна по "Честной цене" - тру приложение для Android ч.2 Android, Приложение, Программа, Смартфон, Google, Программирование, Rustore, Длиннопост

В нашем случае получилась довольно простая адаптация, в которой:

  • Был добавлен корневой LinearLayout, позиционирующий дочерние элементы по горизонтали, с суммарным весом 9

  • Внутренние (дочерние) блоки, два из которых тоже на основе LinearLayout (но уже вертикально ориентированные), и еще один TextView, который нуждается только в центрировании

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

Но перед этим пойдем посмотрим, как это выглядит без учета логики на эмуляторе:

Волна по "Честной цене" - тру приложение для Android ч.2 Android, Приложение, Программа, Смартфон, Google, Программирование, Rustore, Длиннопост

2 - Пишем внутренности

На виртуальном телефоне неожиданностей не произошло, отображается все так как хотелось, поэтому двигаемся в кодильню файл основной активности:

Волна по "Честной цене" - тру приложение для Android ч.2 Android, Приложение, Программа, Смартфон, Google, Программирование, Rustore, Длиннопост

Перво - наперво, нам нужно уяснить несколько логических моментов:

  • При открытии приложения список уже есть, и поэтому он создается в onCreate. Но он пустой, так как мы еще не наполняли его данными.

  • Список уже знает, какими данными он будет наполняться (проставлены id и назначен наш кастомный слой), поэтому для него также создан адаптер, базирующийся на SimpleAdapter, который берет данные из HashMap. Он очень удобен (лично для меня), т.к. его можно в дальнейшем наполнять чем угодно: картинками, другими слоями, чекбоксами, и т.д.

  • Пока пользователь (ты) не начал ничего вводить, смысла показывать его тоже нет, поэтому мы изначально установили заданную видимость заглушки и списка в макете (не в коде). Заглушку видно, список нет.

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

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

Например, для расчета по килограммам это будет выглядеть так:

list.add(new PriceMap(price_0 + " ₽", getInputWeightGR.getText().toString() + " гр.", String.format("%.2f", result_0) + " ₽", "За килограмм"));

((BaseAdapter)adapter).notifyDataSetChanged();

Волна по "Честной цене" - тру приложение для Android ч.2 Android, Приложение, Программа, Смартфон, Google, Программирование, Rustore, Длиннопост

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

3. Доделываем

Волна по "Честной цене" - тру приложение для Android ч.2 Android, Приложение, Программа, Смартфон, Google, Программирование, Rustore, Длиннопост

Всего то 48 предупреждений.

Нам остается пройтись по инспектору, чтобы приложение выглядело не как гавно в глазах IDE более менее сносным (студия сама может проверить, что нужно улучшить или доправить):

  • Забиваем строковые ресурсы в string;

  • Раскладываем код по полочкам. Активности переносим в пакет activities, адаптеры в adapters;

  • Убираем код, который не использовали, или комментим его в TODO

  • Меняем индексы в приложении, добавляем информацию что мы там накрутили;

  • Обновляем пакеты, проверяем что из-за них ничего не поломалось.

  • Формируем AppBundle для Google Play, APK для RuStore (вторые еще толком не научились, а первые уже требуют).

И еще напоследок расшифрую некоторые моменты, которые я не упомянул до этого:

В приложении нет специального параметра (типа boolean до объявления в onCreate, или иного в SharedPrefs, например) для отображения или скрытия блока с заглушкой, так как мы полагаемся на жизненный цикл Android. Другими словами, если приложение было выгружено из памяти, или закрыто, нам не надо сохранять состояние списка, он все равно пересоздаст себя вместе с активностью. Если приложение разворачивается после скрытия (onResume), то все восстановится.

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

ListView сам по себе является вертикально прокручиваемым по типу ScrollView, поэтому мы сохранили логику прокрутки внутри карточки, и заблаговременно сообщили слою Coordinator через параметр android:nestedScrollingEnabled="true", что вот ты, собака, должен (и будешь) прокручиваться. И даже ничего не сломали в плане юзабилити, пользователю понятно, что там внутри прокручивается список, т.к. есть соответствующая полоса прокрутки.

4 - Что дальше?

Дальше хотелось бы добавить оставшиеся вещи, в той очередности как я их вижу сейчас:

  1. Сохранение результатов в свой собственный список + назначение названия. Например, хлеб в пятерке и в ашане;

  2. Сравнение показателей по выбору их из истории, или из сохраненного списка;

  3. Смена валюты через настройки, т.к. приложение опубликовано в 15 странах.

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

https://play.google.com/store/apps/details?id=ru.oneclickstu...

https://apps.rustore.ru/app/ru.oneclickstudio.fairprice

https://oneclickstudio.ru/

На этом усе, всем спасибо, все свободны.

Показать полностью 8
15

Волна по "Честной цене" - тру приложение для Android ч.1

Привет, Пикабуняне. Наверное все уже в курсе про волну постов из заголовка (насчет честной цены), а кто не знает - скоро узнаете, и вам очень быстро надоест.

"ШО, ОПЯТЬ? еще одна каловая масса в виде АПК?" Спросили бы вы, и были бы абсолютно правы. НО есть нюанс:

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

.

А еще мы скооперировались с товарищем @Stich.626, чтобы все было по красоте.

Волна по "Честной цене" - тру приложение для Android ч.1 Android, Приложение на Android, Цены, Законопроект, Длиннопост

Вглядись, и узри

Вот об этом сегодня и поговорим.

Поэтому кто дочитал, здравствуйте, и встречайте: Еще одна итерация одного и того же калькулятора честная цена в правильном исполнении:

Для ЛЛ - Понимаю, не всем интересно читать технические тонкости, поэтому можете потыкать ссылки, и посмотреть скриншоты.

https://apps.rustore.ru/app/ru.oneclickstudio.fairprice - RuStore

https://play.google.com/store/apps/details?id=ru.oneclickstudio.fairprice - Google Play

https://проверьцену.рф

Волна по "Честной цене" - тру приложение для Android ч.1 Android, Приложение на Android, Цены, Законопроект, Длиннопост

Немного предыстории.

4 дня назад я вписался в одном из активных постов @Stich.626, , и дал комментарий на предмет оформления приложения - калькулятора, чтобы вы, дорогие мои могли считать килограммы / штуки / литры в свое удовольствие. А обещания надо держать, особенно на пикабухе.

С данным товарищем (Stich.626), кстати, активно общаемся, и продолжаем улучшать сайт и мобильное приложения, доводя его до логического идеала. Каждый со своей стороны, разумеется.

Так вот. Вернувшись через те же 4 дня, я офигел, сколько клонов уже выпустилось за это время:

Волна по "Честной цене" - тру приложение для Android ч.1 Android, Приложение на Android, Цены, Законопроект, Длиннопост

Сколько-сколько ?

Если перечитывать и упоминать всех всех, которые уже что то сделал / делает на эту тему, то список будет немаленький, но упомяну парочку:

@Meantol21, Рукотворное (и смехотворное) ТЗ со смайликами, но меня порадовало. Передаю ему такой же упоротый привет:

приВеТиКИ 🥑🧅🍾🥃🥂🥄😗😍😙☺😛😘🙃😗☺😛😀😉🤣🤑🎃🤖👹💩💩👹👻🥴👻🙄🤕🙄🤕✍💪🦶💪✍💅💄💅💄🦶💪🤙🧜‍♂️🤵🧞‍♀️🧛‍♀️🧝‍♀️🧝‍♂️🧟‍♂️🧤👟🧤🥾⛑️👟🧣🥻👢👘🕶🕶👜🎒¯\_(ツ)_/¯🥑🧅

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

@wasd37, сделал приложение для iOS, но я к сожалению более не яблокофил, хотя в свое время хотел учить плюсы, когда свифта еще не было. Могу только покидать лучи добра и стремления в освоении (без сарказма)

Ну да ладно, перейдем к написанию в студии:

Волна по "Честной цене" - тру приложение для Android ч.1 Android, Приложение на Android, Цены, Законопроект, Длиннопост

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

Так вот, в базовом понимании приложение делится на модули, на которые мы будем натягивать функционал и всю красоту. Модулей у нас установлено аж несколько штук:

  • AppCompat - Для поддержки и совместимости со старыми SDK (предыдущими версиями Android)

  • Material - Библиотека поддержки для MaterialYou, M2

  • Transformation - Библиотека для анимации (ну я сам не умею в них)

  • YandexMetrika - Собственно, для аналитики: ошибки, кол-во устройств и т.д.

Рекламы, как видите, не завезли

После установки модулей нас встречает экран первой (и пока единственной) активности (MainActivity) - ниже все общие классы.

Приложение целиком, кстати, получилось всего на 200+ строк, это не много

Волна по "Честной цене" - тру приложение для Android ч.1 Android, Приложение на Android, Цены, Законопроект, Длиннопост

По названию, кстати, каждого из методов можно примерно понять, что происходит

Базовый расчет всей радости выполняется по достаточно простому принципу:

X / Y * 1000 Для килограммовых товаров и литров

X / Y Для штучных товаров

Далее, мы верстаем внешний вид, руководствуясь гайдлайнами из последней версии материального дизайна M3

https://m3.material.io/

Волна по "Честной цене" - тру приложение для Android ч.1 Android, Приложение на Android, Цены, Законопроект, Длиннопост

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

Именно поэтому слои идут задом наперед (activity_main это родительский слой, content_main соответственно дочерний)

Волна по "Честной цене" - тру приложение для Android ч.1 Android, Приложение на Android, Цены, Законопроект, Длиннопост

Для дополнительной красоты было добавлено напоминание, что делать (вдруг вы забудете) - его же планируется использовать в дальнейшем для уведомлений

Волна по "Честной цене" - тру приложение для Android ч.1 Android, Приложение на Android, Цены, Законопроект, Длиннопост

Сам баннер скрывается посредством SharedPreferences = просто надежно, сердито.

Казалось, бы конец. Но предстоят обновления и исправления:

Текущие баги:

  • При перевороте экрана введенные поля сбрасываются (нет сохранения текущего состояния активности)

  • При нажатии кнопки "Новый расчет" не сбрасываются поля ввода (это нужно для удобства)

  • Не написан кусок кода для функциональности истории

  • Не написан кусок кода для функциональности шэринга

  • За кнопкой настроек спрятана магия

Что хотелось бы добавить:

  • Сейчас приложение доступно для 15 стран бывшего СССР. Почему бы не добавить валюты и для других пользователей

  • В приложении нет упоминания, что оно родилось на Пикабу. Считаю, должно быть

  • Сбор статистики по городам (Самое дороге молоко... в Выборге!). По большому счету это информационный шум, но все же

  • Свой виджет для перехода к рассчету

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

Потестировать бесплатно без рекламы и СМС можно вот тут:

https://apps.rustore.ru/app/ru.oneclickstudio.fairprice - RuStore

https://play.google.com/store/apps/details?id=ru.oneclickstudio.fairprice - Google Play

https://проверьцену.рф

Показать полностью 7
285

Ответ на пост «Никогда такого не было и вот опять...»3

Я тоже находил баг, но правда не на Пикуабушке (орфография правильная), а в Тинькоффе. Привет, им, кстати, @Tinkoff.ru, передавайте вашей поддержке лучи поноса. Чето аж нахлынуло, и чукча не писатель.

Дело вот как было:

- Захотел я купить у них футболку. Ни разу не инвестор, но фраза прикольная, да и все таки клиент же. Вот такую, как на картинке.

Ответ на пост «Никогда такого не было и вот опять...» Сила Пикабу, Несправедливость, Скриншот, Комментарии на Пикабу, Мат, Т-Банк, Ответ на пост, Длиннопост

- Сказано сделано, топаем на сайт (у них есть отдельный субдомен именно под мерч), заполняем нужные поля, оплачиваем их картой.

- Ииии ничего! Платеж вываливается в ошибку, даже не доходя до стадии подтверждения (ну вы знаете, надо подтвердить СМСкой, или через Push код, который приходит на телефон)

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

- Лезем в отладчик (тут скрины постить не буду, ибо не надо), и смотрим, куда летят запросы (ну может быть интернет хромает, и где то что то отвалилось). А там!

Чуваки из Тинька просто поставили в свой же магазин тестовый терминал (DEMO), и все нормально.

То есть кто нибудь должен был (наверное) засуетиться - как же, где заказы на мерч?

Ответ на пост «Никогда такого не было и вот опять...» Сила Пикабу, Несправедливость, Скриншот, Комментарии на Пикабу, Мат, Т-Банк, Ответ на пост, Длиннопост

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

Ну и пишу в поддержку

Ответ на пост «Никогда такого не было и вот опять...» Сила Пикабу, Несправедливость, Скриншот, Комментарии на Пикабу, Мат, Т-Банк, Ответ на пост, Длиннопост

Для ЛЛ, далее (Я) это я, (Т) это соответственно какое то ругательство, предложите ваш вариант

Я - Ребят, вот вам скриншоты с коротким описанием и методами, вызывающими ошибку, магазин не принимает заказы вообще ни с каких карт.

Я - Кстати, если у вас есть система багхантеров, то с вас футболка

Т -

Ответ на пост «Никогда такого не было и вот опять...» Сила Пикабу, Несправедливость, Скриншот, Комментарии на Пикабу, Мат, Т-Банк, Ответ на пост, Длиннопост

Разумеется, проблему приняли, и закрыли тикет буквально на следующий день, пока я дрых

Ответ на пост «Никогда такого не было и вот опять...» Сила Пикабу, Несправедливость, Скриншот, Комментарии на Пикабу, Мат, Т-Банк, Ответ на пост, Длиннопост

Т - Мы знаем о ситуации, но не знаем когда починим, и вообще читай картинку выше

Т - Это, мы там когда нибудь все починим, но ты с сайта не заказывай, а иди в раздел "Город", и покупай там (опять смотрим картинку с лошадью)

Ответ на пост «Никогда такого не было и вот опять...» Сила Пикабу, Несправедливость, Скриншот, Комментарии на Пикабу, Мат, Т-Банк, Ответ на пост, Длиннопост

Кстати, я все таки проверил раздел "Город". Доставки в мой город там нет (и не будет), а на сайте была возможность привезти курьерской службой (Сдек'ом)

Купил ли я футболку? Конечно же нет

Подарили ли мне футболку? Божечки, я вас умоляю. Такие взрослые, а в сказки верите.

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

Показать полностью 6
14

Тайная жизнь Android разработчика в санкциях. Часть #3

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

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

Для ЛЛ - Это серия постов о том, как мы попробуем с нуля написать мобильное приложение, интегрировать его с Российскими сервисами, и учесть все юридические тонкости, соблюдая законодательство в текущих санкционных реалиях.

Вот теперь погнали!

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

0 - Без пол литра никак

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

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

Этот костыль работает, но то, как все неуклюже крутится вокруг статуса самозанятого, и непосредственно вокруг вас (как самозанятого) вызывает трепетный ужас.

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

Другими словами, каждый придумывает свой блэк джек с проститутками:

  • Каждый сервис горазд запросить свой пакет документов и подтверждающих процедур: сканы подписанных и распечатанных PDF файлов, фотографии договоров, фотография лица (или паспорта), подтверждение по видео, указание родства всех домашних животных, и это только начало;

  • Некоторым площадкам абсолютно пофигу, самозанятый ты, или нет, даже если регистрация в этих сервисах уже подразумевает получение дохода (и не спросят - "а ты точно самозанятый?"). Возможно я слишком скептически к этому отношусь, и может все-таки вместе с паспортом это и делается, но об этом мы не узнаем.

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

1 - Регистрация самозанятого

Начнем с самого простого. Для того, чтобы получить статус самозанятого, необходимо иметь подтвержденный аккаунт на Госуслугах, и пройти на сайт https://lknpd.nalog.ru

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

На сайте мы выбираем одноименный раздел, и жмакаем "Войти через ЕСИА". Далее, нас попросят повторно авторизоваться в вышеуказанном сервисе, получить СМСку, дать разрешение на использование ваших данных, и предупредят, что всё - вот прям щас ты станешь самозанятым

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

даже сайт НПД не знает, как все-таки правильно пишутся Госуслуги. Додумайте сами.

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

В нем мы заполним следующие поля в разделе "Профиль":

  • Регион преимущественного ведения деятельности, если не подхватился автоматически (регион проживания)

  • Вид деятельности (для себя указал программист Java)

  • СНИЛС (по желанию)

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

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

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

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

  • Юкасса или Юмани - для приема средств (присутствует в списке только Юмани, в противовес я подключил Юкассу)

  • и Яндекс рекламная сеть - для монетизации приложений (в списке партнеров отображается как Яндекс)

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

То есть мы еще должны знать, что мы хотим подключить, даже если этого тут нет. Жесть.

Ладно, скачем на наших костылях дальше. Простите за его постоянное упоминание)

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

2 - Регистрация в партнерской сети

Партнерская сеть от большого маленького брата не будет ни для кого удивлением - реклама на Пикабу показывается от них, сервис это также Российский. Для подключения к системе нам надо завести аккаунт Яндекса у этих ребят, а затем перейти на страничку партнеров https://partner.yandex.ru/

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

да да, с проверенными

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

Вместо этого проделываем те процедуры, которые нам доступны (пока что первые два шага):

  • Заполняем большую анкету

  • Добавляем сайт или приложение в список. Но так как у нас еще ничего еще нет, мы просто вводим название приложения и остаемся на этом шаге.

  • После появления приложения в магазине надо пройти его модерацию

  • Добавляем реквизиты банка, куда будет отправляться вознаграждение

  • Ждем пока все будет проверено, и договор будет считаться активным

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

К настройке же рекламных блоков мы еще вернемся, как и вернемся к обсуждению медийных площадок в целом (запланировано на следующий пост)

3 - регистрация в магазине приложений RuStore

Вот тут то у меня загорелась пятая точка, а глаз начал немного дергаться. Следите за скринами моей переписки с поддержкой (напомню, сервис разрабатывался с Минцифры, и изначально должен поддерживать работу с самозанятыми):

Для справки - я начал писать ребятам, когда сайт только вышел в бету, и регистрация была только по запросу на почтовый ящик (подсуетился первым, и пожалел). Карл, это было в мае 2022!

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

Компанию создали, но возник нюанс

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

Мое негодование сливается со стадией принятия. Ладно, как физическое лицо я могу сделать ЭЦП, если так мы решили заморочится, и все таки хотим попасть в крутой Российский стор

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

Сорьки за шакалов. Получаю такой же ответ, в стиле чо докопался:

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

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

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

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

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

Которая(!) настолько забагованная, что ничего не сохраняет, и я ее переписывал раз 10.

Ладно, мы все сохранили, получили заветное письмо, и теперь нам надо подтвердить личность. Через видео звонок!

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

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

Хорошо. Время примерно позволяет, (о том, что у меня на стационарном ПК нет вебки и наступает ночь я промолчу), садимся с телефоном и ждем.

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

Ждем еще часик, потом пол часа в режиме включенной камеры, немножно нервничаем

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

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

И наконец, наша консоль готова, можно добавлять приложения.

Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост
Тайная жизнь Android разработчика в санкциях. Часть #3 IT, Программирование, Android, Приложение на Android, Длиннопост

4 - в качестве итога

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

Имея на руках невероятное количество подтверждённых аккаунтов и сервисов (у меня получилось 3 аккаунта не считая тех, что я не расписал) мы все равно столкнемся с дичью = все это можно было бы конечно упростить, но никто этого делать не будет.

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

А я благодарю вас за прочтение этой простыни

Друзья! В этом посте я не рассмотрел два шага - это регистрация в магазине Google Play (в период санкций) + регистрация в системе ЮКасса (тоже треш, но без такого фанатизма). Если это все таки вам интересно -> отпишите в комментариях, добавлю отдельно.

Как обычно, буду рад вашим вопросам / пожеланиям в комментах.

P.S. Никаких ссылок не даю, т.к. никто не любит рекламу, также как и не прошу подписаться на телегу. А вот символ рубля в конце поста я оставлю - для тех, кому написанное окажется немного полезным.

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

  • Введение

  • Подготовка устройств для работы и тестирования, концепция приложения

  • Регистрация самозанятого + регистрация в Ю.Касса + регистрация в RuStore (сейчас тут)

  • Выбор медийных площадок и интеграция

  • Пакеты и библиотеки, которыми будем (и которыми можно) пользоваться

  • Написание каркаса приложения, верстка основных экранов

  • Условная логика без подключения к БД

  • Графические материалы, баннеры для магазинов

Показать полностью 18
14

Тайная жизнь Android разработчика в санкциях. Часть #2

Привет, пикабушечники!

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

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

Также напомню, что наша второстепенная цель (помимо написания самой программы, и небольшого заработка на рекламе в итоге) - не опуститься до уровня сайтов Mail.ру, чтобы не получилось как на картинке:

Тайная жизнь Android разработчика в санкциях. Часть #2 IT, Программирование, Приложение на Android, Android, Гифка, Длиннопост

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

Лирическое отступление готово, погнали!

Концепция приложения

Тут важно определится, о чем будет приложение, какие функции оно будет выполнять, и как взаимодействовать с пользователем.

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

Тайная жизнь Android разработчика в санкциях. Часть #2 IT, Программирование, Приложение на Android, Android, Гифка, Длиннопост

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

Да ты что, скажете вы, у нас же все магазины завалены этим гавном! И будете правы, но мы с вами не такие, и постараемся привнести в этот мрак что то хорошее.

Форматы работы приложения:

  • Одиночное прохождение (аналог карьеры)

  • Прохождение с друзьями, где телефон передается участникам по кругу (гусары, молчать!)

  • Случайный вопрос

Механика работы:

  • Варианты вопросов - текстовые, графические, с дальнейшим пояснением (ответом) - мы же все таки будем рассказывать пользователю, почему его выбор был неверен, и расширять его кругозор?

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

  • За правильные ответы начисляется виртуальная валюта (возьмем за основу какие нибудь монетки)

  • Для разблокировки следующей стадии необходимо сколько-то таких монеток накопить, или увеличить посредством модификатора x2 (чувствуете маркетинговые задатки?)

простите, не удержался)

Тайная жизнь Android разработчика в санкциях. Часть #2 IT, Программирование, Приложение на Android, Android, Гифка, Длиннопост
  • Для прохождения уровня в спокойном режиме необходимо ответить правильно на 50% вопросов, либо нивелировать это x2 бонусами за ответы. Иначе придётся перепройти уровень, чтобы догнать необходимое количество ответов. При этом я предполагаю, что надо сами вопросы "помешать", чтобы они откладывались в памяти у игрока

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

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

Лично мне для реализации графических вопросов понравился цикл статей, тут, на пикабу, от @Polyglot, которые носят название WhatIsThisThing. Оттуда можно подчерпнуть интересные вопросы, и ответы на них.

Разумеется, я написал ему в ВК с разрешением на использование перевода, но пока не получил ответа. Может быть тут увидит)

Тайная жизнь Android разработчика в санкциях. Часть #2 IT, Программирование, Приложение на Android, Android, Гифка, Длиннопост

Подготовка устройств для тестирования

Как бы банально не звучало, нам потребуется 1-2 реальных устройства, на которых мы будем проверять работу приложения, помимо встроенного эмулятора в студии. Работа последнего, кроме всего хорошего, может вызвать подтормаживания на слабых машинах, но об этом мы поговорим немного ниже. В моем случае устройств вышло чуть больше чем 2, но основные из них вот такие:

Тайная жизнь Android разработчика в санкциях. Часть #2 IT, Программирование, Приложение на Android, Android, Гифка, Длиннопост
  • Xiaomi Redmi 8 (3/32) с разблокированным загрузчиком, и кастомной прошивкой (Android 13), в которой нет сервисов Google. Вообще никаких. Идеальный вариант, чтобы проверять работу программ в период недоступности гуглософта.

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

  • Немного устаревший, но от этого не менее заводной Google Pixel 3, с наличием, как вы поняли, всех сервисов и свистоперделок от большого брата, т.к. телефон делали "те самые ребята". Последняя версия андроида, вышедшая на нем - 12

Для всех устройств активирован режим разработчика, отладка по USB и WiFi, что позволяет нам точно также, как и на эмуляторе, воспроизводить и отлавливать ошибки по мере их возникновения.

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

Устройство для работы

Не менее важным шагом будет подготовка того, где вы будете работать, будь то ноутбук, или стационарный ПК. Бытует мнение, что разработка для Android проходит исключительно на Windows системах (хз откуда такое взялось), но опытным путем было выяснено, что особо разницы нет, какая у вас ОС.

Другими словами, вы можете работать где хотите: на Unix - системах (MacOS, Linux), или традиционно, на винде. Тут же, кстати, я дополню принцип настройки самой студии, чтобы компиляция проходила быстрее, а возможности вашей техники полностью "раскрывались"

замазал имя устройства - чтобы без матов)

Тайная жизнь Android разработчика в санкциях. Часть #2 IT, Программирование, Приложение на Android, Android, Гифка, Длиннопост

Итак, для запуска студии, и компиляции приложений вам потребуется устройство с такими характеристиками (чем больше показатель, тем быстрее сборка и инспектирование кода):

Минимум

  • CPU (Athlon 200GE / Pentium G5400)

  • RAM (4GB - из них минимум 1GB для эмулятора)

  • HDD (от 10GB свободного места для SDK)

Рекомендуемо

  • CPU (Ryzen 3 / Core i3)

  • RAM (8GB - из них минимум 1.5GB для эмулятора)

  • SSD (от 10GB свободного места для SDK)

Зажравшийся разработчик

  • CPU (Ryzen 5-7 / Core i5-i7)

  • RAM (16GB+ - из них минимум 2GB для эмулятора)

  • SSD NVMe (от 10GB+ свободного места для SDK)

Я могу ошибаться от примерных характеристик, но имея опыт работы на самом верхней планке железа (Pentium G5400), и на самой нижней (Ryzen 5-7) с уверенностью скажу, что студия-то запуститься везде, но комфорт работы у вас будет кардинально отличаться.

Подготовка софта и Android Studio

картинка из ваших интернетов

Тайная жизнь Android разработчика в санкциях. Часть #2 IT, Программирование, Приложение на Android, Android, Гифка, Длиннопост

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

  • Intel Hyper Threading - технология, которая разделяет аппаратный поток одного ядра на два виртуальных. Благодаря ей система видит 4-ядерный процессор как 8-ядерный. Аналог есть и у AMD

  • Turbo Boost - говорит само за себя. Обеспечивает кратковременный разгон, и дает существенный буст при сборке, а еще греет ваши коленки, если вы работаете на ноутбуке

  • Виртуализация - на разных материнских платах и чипах называется по разному, включается в настройках BIOS / UEFI

  • Индексация и антивирусы. Потребуется отключить для вот таких папок (чтобы во время сборки ваш компьютер одновременно не проверял новые файлы на вирусы + запоминал их для быстрого поиска), чтобы значительно ускорить сборку.

  1. Директория SDK (устанавливаете вы, или по умолчанию)

  2. Директория студии (устанавливаете вы, или по умолчанию)

  3. Директория проектов (обязательно)

  4. ~/.gradle

  5. ~/.android

  6. ~/Android StudioX.X

  7. ~/lldb

Фух.

Дальше будет еще больше непонятных букв, так как теперь мы настраиваем Android Studio. Приготовьтесь!

Тайная жизнь Android разработчика в санкциях. Часть #2 IT, Программирование, Приложение на Android, Android, Гифка, Длиннопост

Все переменные вписываются в файле gradle.properties, а некоторые устанавливаются в настройках (File - Settings)

  • Instant Run - позволяет подменять ресурсы в уже установленном приложении "на лету". Эту функцию я посоветую не использовать, т.к. довольно редко она заменяет все правильно. На старых версиях студий выключалась в настройках (Build, Execution, Deployment -> Instant Run), теперь функции разделены: иконка на панели с символом А (Restart Activity), а также рядом, иконка подтверждения замены кода (Apply Code Changes)

Тайная жизнь Android разработчика в санкциях. Часть #2 IT, Программирование, Приложение на Android, Android, Гифка, Длиннопост
  • Параллельная сборка - просто включаем, если не активно по умолчанию. org.gradle.parallel=true

  • Gradle daemon - уменьшение времени на инициализацию ресурсов, но взамен более высокий расход памяти. Выбираем по мере необходимости - org.gradle.daemon=true

  • Увеличение размера heap - позволит компилятору использовать увеличенный объем оперативки. Также советую, но с оглядкой на вашу систему. Вписывать значения можно также самим - org.gradle.jvmargs=-Xms1024m -Xmx4096m -Dfile.encoding=UTF-8

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

Пока что на этом все, и спасибо за чтение. Буду рад вашим вопросам / пожеланиям в комментариях.

P.S. Никаких ссылок не даю, т.к. никто не любит рекламу, также как и не прошу подписаться на телегу. А вот символ рубля в конце поста я оставлю - для тех, кому написанное окажется немного полезным.

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

  • Введение

  • Подготовка устройств для работы и тестирования, концепция приложения (сейчас тут)

  • Регистрация самозанятого + регистрация в Ю.Касса + регистрация в RuStore

  • Выбор медийных площадок и интеграция

  • Пакеты и библиотеки, которыми будем (и которыми можно) пользоваться

  • Написание каркаса приложения, верстка основных экранов

  • Условная логика без подключения к БД

  • Графические материалы, баннеры для магазинов

Показать полностью 9
Отличная работа, все прочитано!