Подписчик @zkid18 прислал статью про дизайн приложений для iPhone X.
Автор рассказывает, что дизайнерам делать с выемкой и скругленными углами, и как с этими особенностями справляются дизайнеры Apple.
http://blog.maxrudberg.com/post/166045445103/ui-design-for-iphone-x-top-elements-and-the-notch
Автор рассказывает, что дизайнерам делать с выемкой и скругленными углами, и как с этими особенностями справляются дизайнеры Apple.
http://blog.maxrudberg.com/post/166045445103/ui-design-for-iphone-x-top-elements-and-the-notch
Хранить дату в SQL-базе, конвертируя Date в Long и обратно — плохая идея, если вам важны часовые пояса. Для этого лучше использовать отформатированную строку и SQL-функции для сортировки таких строк. Почитайте, как это можно сделать с помощью Room.
https://medium.com/@chrisbanes/room-time-2b4cf9672b98
https://medium.com/@chrisbanes/room-time-2b4cf9672b98
Medium
Room + Time
If you’ve started using Room (and you should if you haven’t), there’s a high probability that you will need to store + retrieve some kind…
Разбираю накопившиеся статьи и нахожу много интересного. Небольшие материалы, ради которых не хочется писать отдельный пост, буду публиковать в виде дайджестов.
Marcin Moskala пишет серию статей Kotlin programmer dictionary. В первой статье он объясняет различие между аргументами и параметрами. Во второй — между операторами (statement) и выражениями (expression).
Хорошие практики использования Dagger:
https://medium.com/square-corner-blog/keeping-the-daggers-sharp-%EF%B8%8F-230b3191c3f
Что такое корутины в Kotlin, как ими пользоваться, и чем они лучше обычных потоков:
kotlindevelopment.com/deep-dive-coroutines
Несколько примеров использования корутин:
https://proandroiddev.com/android-coroutine-recipes-33467a4302e9
Неочевидные грабли в Kotlin:
https://medium.freecodecamp.org/kotlin-pitfalls-and-how-to-avoid-them-7b0d3a2109ad
Marcin Moskala пишет серию статей Kotlin programmer dictionary. В первой статье он объясняет различие между аргументами и параметрами. Во второй — между операторами (statement) и выражениями (expression).
Хорошие практики использования Dagger:
https://medium.com/square-corner-blog/keeping-the-daggers-sharp-%EF%B8%8F-230b3191c3f
Что такое корутины в Kotlin, как ими пользоваться, и чем они лучше обычных потоков:
kotlindevelopment.com/deep-dive-coroutines
Несколько примеров использования корутин:
https://proandroiddev.com/android-coroutine-recipes-33467a4302e9
Неочевидные грабли в Kotlin:
https://medium.freecodecamp.org/kotlin-pitfalls-and-how-to-avoid-them-7b0d3a2109ad
Medium
Kotlin programmer dictionary
When I was writing a book about Kotlin with Igor Wojda, one of big challenges for us was to learn and fully understand technical terms. Of…
В прошлом году я искал способы прокачаться в дизайне и узнал про челлендж DailyUI. Каждый день тебе присылают задания — нарисовать экран управления умным домом, приложение для телевизора или логотип. Постишь результаты на Dribbble или в Twitter и получаешь фидбек от коммьюнити.
Я принялся за работу, но поначалу отнесся скептически. Мне казалось, что большинство людей, которые участвуют в DailyUI, стремятся выдать красивую картинку вместо юзабельного интерфейса. В процессе я смотрел на работы других дизайнеров и пытался понять, какие они совершили ошибки и как их избежать. Своими интерфейсами я делился с друзьями, которые помогали найти недочеты.
Каждый день был напряжённым — надо изучить новую предметную область, придумать концепт интерфейса и понять, как сделать его удобным. Такая плотная работа пошла на пользу, потому что опыт приходит, только когда работаешь на пределе.
Я протянул 27 дней из 100. За это время у меня накопилась несколько макетов, которые было не стыдно куда-то выложить. Мой редизайн приложения Google Play Music даже занял первое место в ежедневном топе на uplabs.com.
За время участия в DailyUI я многое делал впервые — рисовал лендинг, приложения для часов, делал анимации в After Effects. Освоить что-то новое за один день иногда удавалось с трудом, но оно того стоило. Выполнение непривычных заданий хорошо помогает развитию дизайнера.
У DailyUI есть и плохие стороны. За один день вряд ли можно сделать хороший макет. Зачастую задания делались, как попало, и мне было откровенно стыдно за результат. Не было тестирования на реальных пользователях и фидбека. Лайки и ретвиты работ, возможно, и означали, что кому-то понравилась картинка, но критиковать было некому.
DailyUI хорошо подойдет новичкам, которые хотят научиться работать в Sketch/Figma/AI и собрать первые работы для портфолио, но лучше выполнить чьё-нибудь тестовое задание или поучаствовать в конкурсах, где нужна продуманность дизайна — например, в Russian Design Cup. А ещё лучше придумать и запустить свой продукт. В результате вы получите самое главное — отзывы людей о работе с вашим интерфейсом.
Я принялся за работу, но поначалу отнесся скептически. Мне казалось, что большинство людей, которые участвуют в DailyUI, стремятся выдать красивую картинку вместо юзабельного интерфейса. В процессе я смотрел на работы других дизайнеров и пытался понять, какие они совершили ошибки и как их избежать. Своими интерфейсами я делился с друзьями, которые помогали найти недочеты.
Каждый день был напряжённым — надо изучить новую предметную область, придумать концепт интерфейса и понять, как сделать его удобным. Такая плотная работа пошла на пользу, потому что опыт приходит, только когда работаешь на пределе.
Я протянул 27 дней из 100. За это время у меня накопилась несколько макетов, которые было не стыдно куда-то выложить. Мой редизайн приложения Google Play Music даже занял первое место в ежедневном топе на uplabs.com.
За время участия в DailyUI я многое делал впервые — рисовал лендинг, приложения для часов, делал анимации в After Effects. Освоить что-то новое за один день иногда удавалось с трудом, но оно того стоило. Выполнение непривычных заданий хорошо помогает развитию дизайнера.
У DailyUI есть и плохие стороны. За один день вряд ли можно сделать хороший макет. Зачастую задания делались, как попало, и мне было откровенно стыдно за результат. Не было тестирования на реальных пользователях и фидбека. Лайки и ретвиты работ, возможно, и означали, что кому-то понравилась картинка, но критиковать было некому.
DailyUI хорошо подойдет новичкам, которые хотят научиться работать в Sketch/Figma/AI и собрать первые работы для портфолио, но лучше выполнить чьё-нибудь тестовое задание или поучаствовать в конкурсах, где нужна продуманность дизайна — например, в Russian Design Cup. А ещё лучше придумать и запустить свой продукт. В результате вы получите самое главное — отзывы людей о работе с вашим интерфейсом.
Daily UI Design Challenge, Inspiration, and Resources
Daily UI design challenge. Become a better designer in 100 days. Free design resources.
🔨 Haiku
Помните Lottie — ту штуку, которая рендерит анимации из After Effects и при этом со стороны кода подключается не сложнее статической картинки? Так вот недавно появился Haiku. Он тоже работает с Lottie, но при этом заточен под анимацию интерфейсов. Возможностей пока не так много, как в AE, но разработчики собираются это исправить.
Одна из киллер-фич — Live Design. Если обновить деталь анимации в Sketch, она изменится в Haiku и во всех приложениях.
Бета-версия пока только для macOS, но планируются клиенты для Windows, Linux и веба.
Подробнее в блоге Haiku:
https://medium.com/haiku-blog/lottie-without-after-effects-9c5a8e74c239
#инструмент
Помните Lottie — ту штуку, которая рендерит анимации из After Effects и при этом со стороны кода подключается не сложнее статической картинки? Так вот недавно появился Haiku. Он тоже работает с Lottie, но при этом заточен под анимацию интерфейсов. Возможностей пока не так много, как в AE, но разработчики собираются это исправить.
Одна из киллер-фич — Live Design. Если обновить деталь анимации в Sketch, она изменится в Haiku и во всех приложениях.
Бета-версия пока только для macOS, но планируются клиенты для Windows, Linux и веба.
Подробнее в блоге Haiku:
https://medium.com/haiku-blog/lottie-without-after-effects-9c5a8e74c239
#инструмент
Haikuforteams
What collaboration can be
Design, code, brand, and sell — Haiku's tools for teams help the world's most innovative companies create better, together.
Автор этой статьи сравнивает организацию Depedency Injection с помощью Dagger и нового фреймворка Koin.
Если коротко, то Koin круче, потому что:
- Подключается одной строчкой (вместо 7 у Dagger)
- Инициализируется тоже одной строчкой (вспомните свой класс Application)
- Не заставляет писать десятки аннотаций (потому что не использует кодогенерацию)
- Такой же быстрый, как Dagger
Выглядит очень лаконично, и я даже готов переписать на Koin свой заросший модулями пет проджект.
Если коротко, то Koin круче, потому что:
- Подключается одной строчкой (вместо 7 у Dagger)
- Инициализируется тоже одной строчкой (вспомните свой класс Application)
- Не заставляет писать десятки аннотаций (потому что не использует кодогенерацию)
- Такой же быстрый, как Dagger
Выглядит очень лаконично, и я даже готов переписать на Koin свой заросший модулями пет проджект.
Medium
Moving from Dagger to Koin — Simplify your Android development
The Koin framework has been started a while now (remember when I published its first lines in “Better dependency injection for Android”). I…
Разработчик из команды Runtastic пишет серию статей про устройство коллекций в Kotlin.
Первая статья про списки — сравниваем реализации, копаемся в байткоде и узнаём две вещи:
- Неизменяемые коллекции из Kotlin (
- Коллекции из Java (
https://www.runtastic.com/blog/en/tech/kotlin-collections-inside-part-1
Первая статья про списки — сравниваем реализации, копаемся в байткоде и узнаём две вещи:
- Неизменяемые коллекции из Kotlin (
List, EmptyList) могут быть неизменяемыми со стороны Java. Они выкидывают UnsupportedOperationException, если вызвать метод-мутатор из Java-кода. Это едиственный способ гарантировать immutability, если в проекте используются оба языка.- Коллекции из Java (
ArrayList) всегда изменяемы со стороны Kotlin.https://www.runtastic.com/blog/en/tech/kotlin-collections-inside-part-1
adidas Runtastic Blog
Programming Language: Insights into Kotlin Collections (Part I)
Learn everything about Kotlin collections structure and the way it's built up internally based on bytecode.
Попросили рассказать о конференции:
9 декабря состоится пятый #ITsubbotnik в Санкт-Петербурге
В секции Mobile вас ждут 2 доклада:
Евгений Камышанов на примере создания графического редактора покажет, как бороться со сложностью непривычных задач и как в этом помогут принципы ООД.
Николай Ашанин расскажет о подходах к распознаванию лиц и о том, как их применить в мобильной разработке.
#ITsubbotnik - это бесплатная конференция для опытных разработчиков и инженеров.
Приходите!
Регистрация здесь: https://epa.ms/itsubbotnik-winter
9 декабря состоится пятый #ITsubbotnik в Санкт-Петербурге
В секции Mobile вас ждут 2 доклада:
Евгений Камышанов на примере создания графического редактора покажет, как бороться со сложностью непривычных задач и как в этом помогут принципы ООД.
Николай Ашанин расскажет о подходах к распознаванию лиц и о том, как их применить в мобильной разработке.
#ITsubbotnik - это бесплатная конференция для опытных разработчиков и инженеров.
Приходите!
Регистрация здесь: https://epa.ms/itsubbotnik-winter
Сегодня и завтра команда разработчиков Kotlin отвечает на вопросы.
Спрашивают про будущее языка, новые фичи и поддержку разных платформ, спросите и вы.
reddit.com/r/Kotlin/comments/7hoytl/kotlin_team_ama_ask_us_anything
Спрашивают про будущее языка, новые фичи и поддержку разных платформ, спросите и вы.
reddit.com/r/Kotlin/comments/7hoytl/kotlin_team_ama_ask_us_anything
reddit
Kotlin Team AMA: Ask Us Anything
Hi everyone! We're the Kotlin team, and we're happy to answer any questions! Joining you today will be: * /u/mshafirov, the CEO of JetBrains *...
Realm добавили first-class поддержку Kotlin:
- Результаты запросов теперь могут быть только nullable
- Аннотацию @Required можно заменить nullable или non-null типом поля
- Некоторые статические функции заменили экстеншн-функциями (
- Ключевое слово
- Вместо передачи класса в метод можно использовать генерики (
https://realm.io/blog/realm-4-3-0-released-w-first-class-support-for-kotlin/
- Результаты запросов теперь могут быть только nullable
- Аннотацию @Required можно заменить nullable или non-null типом поля
- Некоторые статические функции заменили экстеншн-функциями (
dog.addChangeListener() вместо RealmObject.addChangeListener(dog, changeListener))- Ключевое слово
anyOf пришло на замену слову in, которое надо было брать в апострофы.- Вместо передачи класса в метод можно использовать генерики (
delete<Dog>() вместо delete(Dog::class.java))https://realm.io/blog/realm-4-3-0-released-w-first-class-support-for-kotlin/
realm.io
Realm + Kotlin just got even better with Realm 4.3.0
Realm Java 4.3.0 ships with first class Kotlin Support, features described in this article
Spritz — делаем анимированный онбординг
Библиотека Spritz помогает использовать Lottie-анимации в онбординге. Анимация экспортируется из Affter Effects и привязывается к Lottie и ViewPager. Одни фрагменты анимации проигрываются автоматически, а другие — вместе со свайпом.
Выглядит лучше, чем статичные картинки, а реализовать это со стороны кода совсем не сложно — меньше 20 строк кода для трёх экранов.
Spritz на GitHub:
https://github.com/novoda/spritz
Статья-туториал:
https://www.novoda.com/blog/onboard-your-users-with-lottie-of-spritz/
Демо-приложение:
https://play.google.com/store/apps/details?id=com.novoda.spritz.sample
#библиотека
Библиотека Spritz помогает использовать Lottie-анимации в онбординге. Анимация экспортируется из Affter Effects и привязывается к Lottie и ViewPager. Одни фрагменты анимации проигрываются автоматически, а другие — вместе со свайпом.
Выглядит лучше, чем статичные картинки, а реализовать это со стороны кода совсем не сложно — меньше 20 строк кода для трёх экранов.
Spritz на GitHub:
https://github.com/novoda/spritz
Статья-туториал:
https://www.novoda.com/blog/onboard-your-users-with-lottie-of-spritz/
Демо-приложение:
https://play.google.com/store/apps/details?id=com.novoda.spritz.sample
#библиотека
Классный туториал по ValueAnimator, который поможет анимировать любую часть вашего кастомного View.
Анимация, как на гифке, пишется в 10 строчек:
А во второй половине рассказывается об анимированных графиках. Сделать их не так сложно, как кажется.
Для практики можно закодить какую-нибудь красивую анимацию с Dribbble:
раз — dribbble.com/shots/3533668-Loading-Analytics-Chart-018
два — dribbble.com/shots/2924172-Line-Chart
посложнее, с кривыми Безье — dribbble.com/shots/2475280-Line-chart-graph-animation
#туториал
Анимация, как на гифке, пишется в 10 строчек:
PropertyValuesHolder propertyRadius = PropertyValuesHolder.ofInt(PROPERTY_RADIUS, 0, 150);
PropertyValuesHolder propertyRotate = PropertyValuesHolder.ofInt(PROPERTY_ROTATE, 0, 360);
animator = new ValueAnimator();
animator.setValues(propertyRadius, propertyRotate);
animator.setDuration(2000);
animator.addUpdateListener(animation -> {
radius = (int) animation.getAnimatedValue(PROPERTY_RADIUS);
rotate = (int) animation.getAnimatedValue(PROPERTY_ROTATE);
invalidate();
});
animator.start();
А во второй половине рассказывается об анимированных графиках. Сделать их не так сложно, как кажется.
Для практики можно закодить какую-нибудь красивую анимацию с Dribbble:
раз — dribbble.com/shots/3533668-Loading-Analytics-Chart-018
два — dribbble.com/shots/2924172-Line-Chart
посложнее, с кривыми Безье — dribbble.com/shots/2475280-Line-chart-graph-animation
#туториал
С новым годом, ребят 🎉
Вы классные, желаю вам продуктивности и крутых проектов в новом году!
Вы классные, желаю вам продуктивности и крутых проектов в новом году!
Привет 👋
Последние пару месяцев я ничего не писал, а тем временем каналу уже успел исполниться год. Дело в единственных граблях, на которые я успел наступить уже второй раз за последний год. Всё просто — много работать вредно. Даже если очень хочется. Даже если очень нужно.
После возвращения из Яндекса осенью я решил начать карьеру фриланс-разработчика. Мне повезло — практически сразу мне в руки упал идеальный проект. Я рассчитывал сделать его за полтора месяца, получить нужную сумму и после этого начать наконец делать стартап, до которого раньше не доходили руки.
В конце декабря заказчик попросил довести до ума одну фичу, и вот тут начался ад. Весь январь я пытался заставить работать нужную библиотеку, злился и проводил за работой круглые сутки, чтобы поскорее получить деньги за проект.
Незаметно подошел февраль, мой стартап приняли в акселератор, а это означало ещё больше работы. От объемов задач становилось совсем тяжко, но я сумел договориться с заказчиком и переставить сроки, чтобы было удобнее и мне, и ему. Выгорание начало серьезно давить, поэтому на выходных я решил привести дела в порядок, написать этот пост и распределить нагрузку таким образом, чтобы работа не давила со всех сторон и я успевал писать в канал.
Сейчас решил ввести такой режим.
Час-полтора читаю новости и статьи, чтобы оставаться в курсе происходящего в разработке и дизайне. Пишу новые посты в канал или редактирую готовые.
2-3 часа занимаюсь стартапом. Беседую с пользователями, организую заметки, рефлексирую.
После этого пишу проект для заказчика. В воскресенье записываю задачи на неделю. Работаю столько, сколько нужно, чтобы успевать укладываться в сроки.
В 9 вечера прекращаю работать. Отдыхаю, смотрю доклады, читаю книги и общаюсь с близкими.
Я много экспериментировал, пытаясь расписывать свой день по часам, но это не сработало — слишком много форс-мажоров, которые мешают следовать расписанию. Поэтому на каждый день я ставлю себе до 3 задач, и с утра планирую день так, чтобы успеть их сделать.
Выводы из этой истории такие:
1. Если вы начинаете фрилансить, ищите проекты с почасовой оплатой.
2. Ставьте жесткие дедлайны и соблюдайте их. Если не успеваете, обсуждайте с заказчиком, ищите выход вместе. Фриланс — это круто и удобно, но расслабиться и стать непродуктивным так же легко, как привыкнуть к переработкам и выгореть.
3. Если вы хотите делать свой стартап параллельно с работой, хорошенько подумайте. Скорее всего, придётся отказаться от развлечений и меньше заниматься любимыми хобби.
Последние пару месяцев я ничего не писал, а тем временем каналу уже успел исполниться год. Дело в единственных граблях, на которые я успел наступить уже второй раз за последний год. Всё просто — много работать вредно. Даже если очень хочется. Даже если очень нужно.
После возвращения из Яндекса осенью я решил начать карьеру фриланс-разработчика. Мне повезло — практически сразу мне в руки упал идеальный проект. Я рассчитывал сделать его за полтора месяца, получить нужную сумму и после этого начать наконец делать стартап, до которого раньше не доходили руки.
В конце декабря заказчик попросил довести до ума одну фичу, и вот тут начался ад. Весь январь я пытался заставить работать нужную библиотеку, злился и проводил за работой круглые сутки, чтобы поскорее получить деньги за проект.
Незаметно подошел февраль, мой стартап приняли в акселератор, а это означало ещё больше работы. От объемов задач становилось совсем тяжко, но я сумел договориться с заказчиком и переставить сроки, чтобы было удобнее и мне, и ему. Выгорание начало серьезно давить, поэтому на выходных я решил привести дела в порядок, написать этот пост и распределить нагрузку таким образом, чтобы работа не давила со всех сторон и я успевал писать в канал.
Сейчас решил ввести такой режим.
Час-полтора читаю новости и статьи, чтобы оставаться в курсе происходящего в разработке и дизайне. Пишу новые посты в канал или редактирую готовые.
2-3 часа занимаюсь стартапом. Беседую с пользователями, организую заметки, рефлексирую.
После этого пишу проект для заказчика. В воскресенье записываю задачи на неделю. Работаю столько, сколько нужно, чтобы успевать укладываться в сроки.
В 9 вечера прекращаю работать. Отдыхаю, смотрю доклады, читаю книги и общаюсь с близкими.
Я много экспериментировал, пытаясь расписывать свой день по часам, но это не сработало — слишком много форс-мажоров, которые мешают следовать расписанию. Поэтому на каждый день я ставлю себе до 3 задач, и с утра планирую день так, чтобы успеть их сделать.
Выводы из этой истории такие:
1. Если вы начинаете фрилансить, ищите проекты с почасовой оплатой.
2. Ставьте жесткие дедлайны и соблюдайте их. Если не успеваете, обсуждайте с заказчиком, ищите выход вместе. Фриланс — это круто и удобно, но расслабиться и стать непродуктивным так же легко, как привыкнуть к переработкам и выгореть.
3. Если вы хотите делать свой стартап параллельно с работой, хорошенько подумайте. Скорее всего, придётся отказаться от развлечений и меньше заниматься любимыми хобби.
В сегодняшней статье — гайд, как использовать делегаты и sealed-классы при работе с парами "ключ-значение". Они делают такие вещи, как сохранение стейта активити, удобнее и понятнее.
Например,
Кстати, не так давно Google выпустили Android KTX — набор экстеншн функций, с помощью которых можно причесать код. Главное здесь — поддержка самих Google, конечно, потому что похожих библиотек и до них было предостаточно.
medium.com/halcyon-mobile/simplify-your-android-code-by-delegating-to-sealed-classes-99304c509321
Например,
bundle.putBoolean(Constants.KEY_SHOULD_SHOW_ONBOARDING, false) превращается в bundle.shouldShowOnboadring = false.Кстати, не так давно Google выпустили Android KTX — набор экстеншн функций, с помощью которых можно причесать код. Главное здесь — поддержка самих Google, конечно, потому что похожих библиотек и до них было предостаточно.
medium.com/halcyon-mobile/simplify-your-android-code-by-delegating-to-sealed-classes-99304c509321
Medium
Simplify your Android code by delegating to sealed classes
Don’t you just hate having to religiously go through the same rituals when working with Bundles, Intent extras or SharedPreferences…
Фреймворк C.A.R.E. для идеального онбординга
Подход, когда пользователю показывают несколько подсказок, прежде чем он начнет пользоваться продуктом, не работает. Хороший онбординг состоит из 3 частей — интерфейсные паттерны, обучающий конент и коммуникация. Вместе они создают систему, которая помогает пользователям работать с продуктом, а вам — получать больше довольных и платящих клиентов.
Intercom предлагают разделить работу с пользователями на 4 этапа:
1) Перевести пользователей пробной версии продукта в платящих пользователей
На этом этапе мы показываем выгоду от использования продукта.
2) Помочь платящим пользователям извлечь выгоду из платной версии
Учим их пользоваться продвинутыми фичами.
3) Удержать платящих пользователей
Взаимодействуем с людьми до и после того, как они ушли.
4) Получить больше денег от платящих пользователей
Продаем им более дорогие версии продукта, которым они пользуются, или другие наши продукты.
На картинке можно рассмотреть, как применять такой подход, а в статье почитать про классные примеры отдельных деталей онбординга.
https://blog.intercom.com/c-a-r-e-simple-framework-user-onboarding/
Подход, когда пользователю показывают несколько подсказок, прежде чем он начнет пользоваться продуктом, не работает. Хороший онбординг состоит из 3 частей — интерфейсные паттерны, обучающий конент и коммуникация. Вместе они создают систему, которая помогает пользователям работать с продуктом, а вам — получать больше довольных и платящих клиентов.
Intercom предлагают разделить работу с пользователями на 4 этапа:
1) Перевести пользователей пробной версии продукта в платящих пользователей
На этом этапе мы показываем выгоду от использования продукта.
2) Помочь платящим пользователям извлечь выгоду из платной версии
Учим их пользоваться продвинутыми фичами.
3) Удержать платящих пользователей
Взаимодействуем с людьми до и после того, как они ушли.
4) Получить больше денег от платящих пользователей
Продаем им более дорогие версии продукта, которым они пользуются, или другие наши продукты.
На картинке можно рассмотреть, как применять такой подход, а в статье почитать про классные примеры отдельных деталей онбординга.
https://blog.intercom.com/c-a-r-e-simple-framework-user-onboarding/
25 мая начнёт действовать Общий Регламент по Защите Данных. Он обязывает компании, у которых есть клиенты в Евросоюзе, быть более прозрачными в отношении персональных данных. Когда этот закон вступит в силу, пользователи смогут потребовать удалить свои данные или перенести их на другой сервис, а компании должны будут шифровать данные пользователей и уведомлять их о призошедших утечках в течение 72 часов.
AppTractor рассказали, что этот закон значит для дизайнеров и разработчиков.
https://apptractor.ru/info/articles/kak-podgotovitsya-k-gdpr-15-klyuchevyih-shagov.html
AppTractor рассказали, что этот закон значит для дизайнеров и разработчиков.
https://apptractor.ru/info/articles/kak-podgotovitsya-k-gdpr-15-klyuchevyih-shagov.html
AppTractor
Как подготовиться к GDPR: 15 ключевых шагов
25 мая вступает в силу регламент GDPR, который коснется всех пользователей из Евросоюза. Олег Нестеров из компании MindK написал руководство, в котором собраны новые правила для создателей цифровых продуктов.
Отменить отмену
У нас есть попап для отмены заказа. Нам нужны две кнопки, одна из которых отменит заказ, а вторая закроет окно. Конечно, мы не можем назвать их "Отменить" и "Отмена".
Автор статьи предлагает, как назвать кнопку, которая закрывает окно:
1. Оставить заказ
Самый подходящий в большинстве случаев вариант.
2. Never mind
Формальный вариант, для которого тяжеловато подобрать подходящий русский перевод.
3. Закрыть, Назад, Нет, не отменять заказ, и подобные варианты.
Кнопка с деструктивным действием должна ясно выражать результат. Отмена этого действия в идеале должна быть помечена антонимом. Сбросить — Оставить, Удалить — Не удалять, Прервать загрузку — Продолжить загрузку.
В примере из статьи диалог включает в себя небольшую форму для отзыва. Если в диалоге есть только текст, лучше показать всплывающее сообщение. Оно не будет прерывать пользователя и позволит отменить удаление заказа, который человек старательно собирал целый час.
https://uxdesign.cc/the-microcopyist-cancellation-confirmation-conflagration-8a6047a4cf9
У нас есть попап для отмены заказа. Нам нужны две кнопки, одна из которых отменит заказ, а вторая закроет окно. Конечно, мы не можем назвать их "Отменить" и "Отмена".
Автор статьи предлагает, как назвать кнопку, которая закрывает окно:
1. Оставить заказ
Самый подходящий в большинстве случаев вариант.
2. Never mind
Формальный вариант, для которого тяжеловато подобрать подходящий русский перевод.
3. Закрыть, Назад, Нет, не отменять заказ, и подобные варианты.
Кнопка с деструктивным действием должна ясно выражать результат. Отмена этого действия в идеале должна быть помечена антонимом. Сбросить — Оставить, Удалить — Не удалять, Прервать загрузку — Продолжить загрузку.
В примере из статьи диалог включает в себя небольшую форму для отзыва. Если в диалоге есть только текст, лучше показать всплывающее сообщение. Оно не будет прерывать пользователя и позволит отменить удаление заказа, который человек старательно собирал целый час.
https://uxdesign.cc/the-microcopyist-cancellation-confirmation-conflagration-8a6047a4cf9
Material Design
Design
Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences.
Судя по Android P Developer Preview, нас ждёт обновлённый Material Design — много скруглённых углов, кнопки без теней и капса и новые цвета. В альфу Design Library уже завезли кнопки и скругленные карточки (и ещё много интересных изменений).
Уход от повсеместных теней (которые к тому же выглядят не слишком красиво) и выход контента на первый план могут означать, что Google наконец-то начнут думать об интерфейсе как об интерфейсе, а не как о бумаге.
Уход от повсеместных теней (которые к тому же выглядят не слишком красиво) и выход контента на первый план могут означать, что Google наконец-то начнут думать об интерфейсе как об интерфейсе, а не как о бумаге.
На прошлой неделе Figma представили API для разработчиков. С его помощью можно скачать проект в формате JSON, читать и писать комментарии к файлам и экспортировать любой компонент в виде картинки. Пока что это все возможности, но разработчики обещают добавлять новые фичи.
В JSON-файле каждому экрану соотвествует объект
В качестве юзкейсов Figma предлагают генерировать компоненты или стайлгайды, интегрировать спелл-чек для текстов в интерфейсе, делать живые мокапы и так далее.
Uber создали внутренний инструмент для того, чтобы сотрудники видели, над чем работают дизайнеры. Когда дизайнер готов показать свою работу, он перетаскивает макет в отдельный фрейм. Результат становится виден на телевизорах в офисе и в расширении для браузера.
Github сделали систему, которая автоматически обновляет иконки в проекте вслед за изменениями в макете. Сотрудник создаёт пулл-реквест со ссылкой на обновлённый макет, система continuous integration билдит проект, подтягивает иконки из макета в Фигме и нарезает их в подходящий для проекта формат.
Haiku представили интергацию с Фигмой и написали туториал про то, как анимировать элементы ваших макетов.
#figma #инструмент
В JSON-файле каждому экрану соотвествует объект
CANVAS. В него входят элементы экрана с их свойствами — цвет, эффекты, шрифт и так далее. Можно работать с компонентами, сетками и констрейнтами.В качестве юзкейсов Figma предлагают генерировать компоненты или стайлгайды, интегрировать спелл-чек для текстов в интерфейсе, делать живые мокапы и так далее.
Uber создали внутренний инструмент для того, чтобы сотрудники видели, над чем работают дизайнеры. Когда дизайнер готов показать свою работу, он перетаскивает макет в отдельный фрейм. Результат становится виден на телевизорах в офисе и в расширении для браузера.
Github сделали систему, которая автоматически обновляет иконки в проекте вслед за изменениями в макете. Сотрудник создаёт пулл-реквест со ссылкой на обновлённый макет, система continuous integration билдит проект, подтягивает иконки из макета в Фигме и нарезает их в подходящий для проекта формат.
Haiku представили интергацию с Фигмой и написали туториал про то, как анимировать элементы ваших макетов.
#figma #инструмент