?

Log in

No account? Create an account

Разработка под Android - есть несколько мест в группе с 8 апреля

Apr. 5th, 2017 | 11:32 am

Еще осталось несколько мест в группе, стартующей с 8 апреля. Подробности здесь:

http://jollydroid.ru/course/android_programming_essential

Link | Leave a comment | Share

Короткометражки

Nov. 10th, 2016 | 12:10 pm

Я очень люблю короткий метр. Для единомышленников хочу поделиться хорошей коллекцией.

http://www.girafferalph.com/

Link | Leave a comment | Share

User Experience и плохой дизайн. Размышления наемного разработчика

Oct. 1st, 2016 | 02:07 pm

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

Особо много вопросов вызвало так называемое "боковое меню". Первое, что бросилось в глаза, что нарушен паттерн navigation drawer. То есть присланный дизайнерами вариант не подходит под описание, данное Google, хотя занимает то же место и выполняет те же функции. И у меня все внутри протестует против того, чтобы делать не по гайдлайну. Почему?

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

Пошел смотреть, а как оно у гигантов?






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

Ответа “из учебника” у меня нет. Хотя я и учебников по этой теме не читал. Но есть собственные соображения.

Сначала два воспоминания. У меня есть мама. Она вообще не компьютерный человек, но жизнь на месте не стоит, и у нее однажды появился ноутбук. Живем мы далеко друг от друга, она попросила объяснить что-то очень простое (для меня). И я по телефону объясняю в бытовых для меня понятиях, очень просто, как мне кажется.
- Уменьши окошко…
- Как?
- А, ты же не умеешь. Возьми мышкой угол окна и перетащи...
- Угол? Окна? Что здесь окно? Смотри, здесь написано…
Для меня это было потрясение. Мамин “глаз” не видел окна на экране. Для нее это просто линии и цветовые пятна, которые на тот момент ни в какие окна и рамки не складывались. А вот читала она всегда, поэтому она могла прочитать все надписи. Еще раз. Надписи она видела, а окна - нет.

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

Что это значит? Что паттерн - он не просто описание в гайдлайне. Он в моем сознании. Это такой "материальный" объект в нематериальном мире. И если я его в процессе обучения достаточно уплотнил и привык к нему, то могу даже забыть, что это ненастоящий объект.

А в материально мире тоже паттерны, или там их нет, потому что все материальное, и они не нужны? Похоже, что они есть. Прихожу в гости, хочу сесть. Что я ищу? Правильно, стул. Он может выглядеть как угодно, но я точно знаю, что это стул. И если я его нахожу, я сразу знаю, что с ним можно делать. Более того, это даже ожидается, что я знаю, что делать со стулом, и если есть разрешение в этом месте сесть, я это сделаю без посторонней помощи.

Встречаются дизайнерские поделки. Которые стулья, но как стулья не узнаются. Все видели, если не на выставке современного искусства, то на картинках точно. Что у вас при виде этого, особенно в гостях? “Можно ли на этом сидеть? Оно не упадет? А на этом вообще сидят, и если я сяду, а не буду выглядеть дураком или варваром? Оно мне штаны не порвет? Долго ли можно высидеть на этой штуке?” После изучения собственной задницей этого предмета реакций может быть три:
- “Крутой дизайн”. Что значит, что внешний вид гораздо важнее функций стула. То есть это уже не стул странный, а скульптура в интерьере, на которой еще можно посидеть.
- “Круто придумали”. Что значит, что они придумали какое-то улучшение, которое мне понравилось.
- “Идиоты”. Что возникает в случае, если оно по удобству использования стало хуже, чем просто стул, и внешний вид это не компенсирует. Горе от ума. Встречается значительно чаще всех предыдущих случаев.

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

Может ли сложиться жизнь так, чтобы паттерна стула не было? Конечно. В азиатских странах есть подушки, циновки, коврики. Им на стульях неудобно. А про сидение на полу и ковриках все очевидно, удобно, и, возможно, они какое-то время назад даже не задумывались, как можно иначе?

Что теперь можно сказать про паттерны интерфейсов приложений? Во-первых, сразу становится заметно усилие Гугла по уплотнению этих паттернов. Чтобы они стали такими же однозначными и повседневными, как окна в Windows. Для этого есть подробно расписанный гайдлайн, есть стандартные библиотеки, и есть родные приложения Андроида, которые используют эти паттерны. Пользователи привыкают к этим паттернам, разработчики их используют, потому что так проще, пользователи продолжают привыкать, и выбирают больше приложения, которые используют эти паттерны. Круг замкнулся.

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

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

В данном случае я проголосовал против.

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

Так вот оно что! Дизайнеры, да и те, кто ставил им задание, забыли про то, что дизайн, в смысле визуальный дизайн, всегда идет бок о бок с... черт, а как по-русски?... с user experience. Ила даже является его частью. А основа user experience для приложения зарождается на ранних этапах разработки, когда определяются целевая аудитория и сценарии, точнее пока не могу сказать.

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

Link | Leave a comment | Share

Кто из вас ходит в Москве танцевать сальсу?

Sep. 18th, 2016 | 03:19 pm

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

Link | Leave a comment | Share

Нужен программист на JavaScript

Jun. 17th, 2016 | 11:45 pm

Пишите в личку

Link | Leave a comment | Share

Первая группа стажирующихся в Jolly Droid опубликовала свой первый результат.

Jun. 8th, 2016 | 02:07 am

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

Я в течение последнего года читал курсы по разработке под Android в учебном центре “Специалист” при Бауманке. Подходил я к занятиям неформально, поэтому позволял себе рассказывать студентам то, что им было интересно. Старался ответить на все вопросы, на которые мог. Стало очевидно, что большая часть пришедших на курсы - это уже работающие взрослые люди, которые пришли получить новую профессию. Кто-то из-за того, что она лучше оплачивается, кто-то по велению души. Большая часть очень хочет устроиться на работу, и не знает как.

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

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

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

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

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

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

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

Оказалось, что настроение в коллективе хорошо чувствуется. А если есть сомнения, то всегда можно спросить. Мы обсудили и решили, что пора выпускать релиз. Ну хоть какой-нибудь. “Чтобы наконец нарисовать звездочку на фюзеляже” - пошутил кто-то. Я это ощущение знаю: нетерпелось достичь какой-нибудь победы. Сказано - сделано, объем релиза урезан, остальное доработано. Мы торжественно собрались в кафе и выложили первую версию в Google Play. Потом поправили пару багов и опять выложили.

Вот что у нас получилось:
https://play.google.com/store/apps/details?id=ru.jollydroid.raskraski

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

Выводы?

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

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

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

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

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

Вот такая история. Если интересны подробности - звоните или заходите в гости, расскажу. Пользуясь случаем, предложу:

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

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

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

- Если у вас есть желание присоединиться в том же формате с какими-то смежными дисциплинами, например разработка серверов, проектирование интерфейсов, тестирование, iOS и другие платформы, обращайтесь, обсудим. Интересно будет вести несколько групп и давать им возможность взаимодействовать друг с другом.

- Если вам есть еще что сказать или чем поделиться - пишите.

Link | Leave a comment {1} | Share

пропадает домен three-d.su. нужен кому?

May. 3rd, 2016 | 05:07 pm

Есть бесхозный домен three-d.su (и к нему сателит-опечатка tree-d.su). Регистрировал под так и не взлетевший проект. Завтра последний день оплаты. Если кому надо, могу отдать.

Link | Leave a comment | Share

Нужен старший школьник или студент поддерживать сайт

Mar. 12th, 2016 | 11:59 pm

Есть сайт, сделанный дедовским способом: статические HTML плюс Apache. Нужен человек, который бы выкладывал туда статьи: накопипастить разметку абзацев, скопировать файл, прописать ссылки в трех местах, залить в git. Каждая статья займет минут 20, плачу 200 рублей за статью.

Link | Leave a comment {9} | Share

нужен python-разработчик

Mar. 2nd, 2016 | 12:04 pm

Нужен разработчик серверной части на python. Задачи не сложные. Можно достаточно молодого. Лучше в Москве, но если есть опыт работы и способность понимать и быть понятным в переписке, то можно попробовать удаленно. Пишите мне.

Link | Leave a comment | Share

D&D 5ed, он же D&D next, в Москве, попробовать первый раз, куда податься?

Jan. 31st, 2016 | 06:56 pm

Сабж:)
Tags:

Link | Leave a comment | Share