Karhin’s Blog
Apps, Design and Music
Later ↑

Как я провёл 2021 год

Это был очень сложный год и, наверное, один из самых сложных в моей жизни. Но что-то хорошее было, было же?

Окончание магистратуры

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

Написал одну большую книжку, чтобы дали книжку поменьше.

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

Кстати, учёба была весёлой. Разобрался с функциональным программированием и вспомнил математическое, потыкал кубы данных, написал нейросеть своими руками и поделал много других интересных вещей.

На вручении подкидывания шапочек не было, а просто пришёл, расписался и забрал диплом. Заскучал и купил себе уже устаревший 12 айфон. Не знаю, кто про это рассказывает после 2015 года, но чему-то же надо радоваться? Кстати, переход с базовой модели на Pro более ощутим, чем прыжки с Xr на 11, с 11 на 12 и так далее.

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

Два месяца в Лиде

Прикольнулся и устроил себе самоизоляцию в Лиде на два месяца. Я уже и забыл, как это клёво жить в доме и родном городе. Первое время напрягало, что все магазины закрываются в 10 вечера, а весь движ останавливается ещё раньше, но быстро привык.

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

Я фанат пиццы. Перепробовал почти все пиццы в Лиде. Какие выводы сделал? Если очень хочется, то у Тутаки неплохая. Всё остальное какое-то совсем плохое и вообще нет нормального сервиса с быстрой доставкой.

На первой Пицца Смайл, а остальные от Тутаки.

В процессе самоизоляции начал писать Artykul и вообще писать много кода. В перерывах много гулял. Лида очень компактный город: из одной части города в противоположную можно пройти пешком за 40-50 минут. Сейчас не очень понимаю, почему ездил на автобусах, когда в ней жил и учился в школе.

Попросил лебедей попозировать, они не отказали.
Котя пьёт водичку из ведра, как и ты утром 1 января.
Тори, которой уже 13 лет, встречает после моего отсутствия.

Ходьба

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

Статистика за холодный декабрь.

Ещё один приятный бонус от прогулок заключается в том, что лучше узнаёшь город и место в котором живёшь. В общем, я амбассадор НКО “Ходить каждый день в любую погоду” и всех призываю к этому.

Первое фото рядом с ботаническим садом. На втором фото национальная библиотека.
Блин, ну вот только собирался.

В 2021 году впервые взял полноценный отпуск на две недели за несколько лет. Я вообще так не отдыхал со второго курса университета, когда начал совмещать учёбу с работой. Знаете чем я занимался каждый день? Гулял.

Томатное пиво

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

Первое нормальное, второе так себе и третье вообще ни о чём.

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

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

Клёво, что появляется всё больше крафтового пива и нормальных заведений. SPIN Bar моё любимое, всем советую, если есть или будете в Минске.

Поделки

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

В любом случае, то, что увидело свет:

  • Этот блог и две его итерации.
  • Artykul почти увидел свет, но до сих пор в бете.
  • Мудкэт ну вот почти-почти в бете.

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

  • Периодик. Трекер подписок и периодических платежей.
  • Справы. Таск трекер для дел, которые нужно сделать сейчас, а не через тысячу лет.
  • Телехаб. Телеграм каналы с дискавером, которого до сих пор нет в официальном приложении. Судя по политике сервиса, нам не по пути.
  • Папера. Грустная история про сервис блогов с нормальным редактором.
  • Фотоникс. Эксперимент с подходом к редактированию фотографий.

Короче, за целый год я запустил только блог.

Уточкам всё равно, что сегодня 31 декабря.

Первый iPhone

Возле первого айфона часто вижу приписки «Революционный», «Прорывной» и так далее. У меня совсем другое мнение по этому поводу: большая часть аргументов по поводу его исключительности притянута за уши.

Архивные фотографии первого айфона с сайта Apple.

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

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

Айфон не был первым телефоном с таким дисплеем, им был LG Prada. И он даже умел записывать видео. Первый айфон не умел.

Фотографии LG Prada с Mobile Review.

В революционном первом айфоне не было сторонних приложений, только встроенные от Apple. Ну вот не выпустили инструменты для разработчиков и не разработали песочницу для них. Получилось такое MVP, где почти всё есть, но ничего нет. App Store появился только с релизом айфона 3G.

Альтернативой являлись веб-приложения. Это было крутое решение на несколько лет вперёд, но, к сожалению, сами Apple полностью забили на них, чтобы не создавать конкуренцию своему же магазину App Store.

Google наоборот последние несколько лет продвигает Progressive Web Application. Это веб-сайты, которые вы можете установить на домашний экран и они даже могут работать без интернета. На Android с Chrome в большинстве случаев они могут заменить нативные приложения, ведь веб-сайты теперь даже пуши присылать умеют, а на iPhone и iPad не умеют, потому что потому.

Первым прорывным айфоном я считаю 3GS. А первый айфон был устройством без нормальной камеры и записи видео, без сторонних приложений, без вменяемой мультиязычности, без поддержки режима модема. Для первой настройки требовалось подключение к компьютеру, а прикол про то, что буфер обмена в iOS появился только в спустя два года, вы и так, наверное, слышали.

Прерываемые анимации

Анимации - это весело и красиво, но восприятие даже самой эффектной анимации может испортить их реализация. Анимации в интерфейсе должны быть прерываемыми и не блокировать взаимодействие с приложением.

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

Успеваю словить улетающий экран приложения.

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

Всё заблокировано, пока проигрывается анимация.

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

Если интересно посмотреть или почитать про анимации, то вот несколько ссылок. Они про iOS, но всё, что в них описывается, будет интересно дизайнерам и разработчикам под Android.

  • Лекция Designing Fluid Interfaces про то, как делать отзывчивые интерфейсы.
  • Custom paging в iOS. Реализация собственной пагинации в iOS с поиском опорной точки на основе скорости жеста.
  • Вытягивающаяся карточка. Развитие предыдущего способа реализации собственной пагинации, но теперь для вытягивающихся карточек.
  • Механика замедления в UIScrollView. Про математику в Scroll View iOS, которая делает его отзывчивым и естественным.

Контекстные меню в приложениях

Увидел в твиттере скриншоты приложения с таким контекстным меню.

Твит от @JPEGuin.

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

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

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

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

В Human Interface Guidelines есть про это отдельный пункт, который подходит под любую платформу.

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

Telegram выдвинул разработчикам ультиматум

Пришло сообщение из рассылки Телеграма для разработчиков.

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

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

Вольный перевод на русский язык:

Дорогой разработчик!

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

Поддержка идентификаторов Int64

В связи с быстрым ростом, Телеграм переходит с 32-битных идентификаторов на 64-битные, чтобы пользователи могли продолжить создавать миллионы групп, каналов и ботов. Необходимо обеспечить поддержку новых идентификаторов как можно быстрее, чтобы пользователи не заметили проблем.

Убедитесь, что ваше приложение поддерживает этот слой API.

Рекламные сообщения

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

Мы просим вас убедиться в том, что рекламные сообщения поддерживаются и корректно отображаются в вашем приложении до 1 января 2022 года. К сожалению, Телеграм не может финансово поддерживать приложения, в которых есть поддержка каналов, но нет поддержки рекламных сообщений. Такие приложения будут отключены.

Необходимые API методы доступны здесь.

Вы можете подробнее прочитать про рекламные сообщения здесь.

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

Команда Телеграм

Earlier ↓