Перевод статьи про функторы, аппликативные функторы и монады с Haskell на Kotlin и Swift.
• Kotlin Functors, Applicatives and Monads In Pictures (3 части)
• Swift Functors, Applicatives, and Monads in Pictures
• Бонус: еще одна статья про те же концепции в Swift, но гораздо короче
Если коротко, functor позволяет применять фукнцию к помещенному в контекст значению (например, Optional), applicative – применять помещенную в контекст функцию к помещенному в контекст значению, а monad – применять фукнцию, которая возвращает помещенное в контекст значение. В статьях все эти вещи объясняются гораздо понятнее, так что не поленитесь почитать.
• Kotlin Functors, Applicatives and Monads In Pictures (3 части)
• Swift Functors, Applicatives, and Monads in Pictures
• Бонус: еще одна статья про те же концепции в Swift, но гораздо короче
Если коротко, functor позволяет применять фукнцию к помещенному в контекст значению (например, Optional), applicative – применять помещенную в контекст функцию к помещенному в контекст значению, а monad – применять фукнцию, которая возвращает помещенное в контекст значение. В статьях все эти вещи объясняются гораздо понятнее, так что не поленитесь почитать.
Hackernoon
Kotlin Functors, Applicatives, And Monads in Pictures. Part 1/3
Here’s a simple value:
Android-разработчик из Vimeo рассказывает о создании Instant App для их видеоплеера. Сначала о том, как делать не надо – не надо делать новую ветку в проекте и удалять из нее все, кроме нужной фичи (а потом фиксить возникшие баги). Надо избавляться от ненужных зависимостей, абстрагироваться от нужных и использовать Dependency Injection. Эти манипуляции не всегда даются легко, но после них выделять фичи в отдельные модули станет гораздо удобнее. Приемы из статьи подойдут и для обычных приложений, если вы захотите выжать из них максимум.
https://medium.com/vimeo-engineering-blog/vimeo-android-instant-apps-2f8b1e94760c
https://medium.com/vimeo-engineering-blog/vimeo-android-instant-apps-2f8b1e94760c
Medium
Android Instant Apps, step-by-step: how Vimeo went about it
Vimeo’s journey to a 4MB video player Instant App
Создаем архитектуру приложения, основанную на состояниях и действиях, с помощью новых Achitecture Components и Kotlin.
https://medium.com/lewisrhine/flux-android-architecture-components-using-kotlin-a1c933ebf883
https://medium.com/lewisrhine/flux-android-architecture-components-using-kotlin-a1c933ebf883
Medium
Flux Android Architecture Components using Kotlin
Like every Android Dev, I was over the moon when I saw that Google announced Kotlin as a first class language at I/O. That said, the thing…
На волне новостей про возможную блокировку Telegram хочется узнать, где вам было бы удобнее читать канал:
Еженедельная рассылка на почту – 69
👍👍👍👍👍👍👍 56%
Паблик ВКонтакте – 27
👍👍👍 22%
Facebook – 15
👍👍 12%
Twitter – 13
👍 10%
👥 124 people voted so far.
Еженедельная рассылка на почту – 69
👍👍👍👍👍👍👍 56%
Паблик ВКонтакте – 27
👍👍👍 22%
Facebook – 15
👍👍 12%
Twitter – 13
👍 10%
👥 124 people voted so far.
Привет! Пара слов о судьбе канала.
Пока Telegram не заблокировали, все останется по-прежнему. На всякий случай я создал запасную страницу в ВК и сейчас разбираюсь, как лучше организовать рассылку материалов вам на почту. Если нас все-таки неожиданно разлучат, информация про рассылку появится именно ВКонтакте. Пожалуйста, подпишитесь.
На этой неделе я улетаю в Москву – учиться в Школе мобильной разработки Яндекса. Пока что не знаю, останется у меня время на ведение канала, но постараюсь выделять минутку, чтобы делиться чем-нибудь суперважным и интересным. В любом случае, посты рано или поздно возобновятся, так что никуда не разбегайтесь ;)
Я рад, если вам приносят пользу вещи, которые я публикую. Спасибо, что читаете Мобайл. ✌️
Пока Telegram не заблокировали, все останется по-прежнему. На всякий случай я создал запасную страницу в ВК и сейчас разбираюсь, как лучше организовать рассылку материалов вам на почту. Если нас все-таки неожиданно разлучат, информация про рассылку появится именно ВКонтакте. Пожалуйста, подпишитесь.
На этой неделе я улетаю в Москву – учиться в Школе мобильной разработки Яндекса. Пока что не знаю, останется у меня время на ведение канала, но постараюсь выделять минутку, чтобы делиться чем-нибудь суперважным и интересным. В любом случае, посты рано или поздно возобновятся, так что никуда не разбегайтесь ;)
Я рад, если вам приносят пользу вещи, которые я публикую. Спасибо, что читаете Мобайл. ✌️
Vk
Мобайл: дизайн и разработка | VK
Паблик про мобильные приложения.
👋 Вырвался в Британку на открытую дискуссию о дизайне (britishdesign.ru/about/events/20570). Если будут какие-то интересные мысли - обязательно поделюсь. Спамить не буду - оформлю все в одну заметку.
Самые важные выводы прошедшей встречи.
http://telegra.ph/Bolshaya-diskussiya-Vladimir-Lifanov-Denis-Bashev-Artem-Geller-09-03
http://telegra.ph/Bolshaya-diskussiya-Vladimir-Lifanov-Denis-Bashev-Artem-Geller-09-03
Telegraph
Большая дискуссия. Владимир Лифанов, Денис Башев, Артем Геллер.
Дизайн Дизайн — это и средство решения задач бизнеса, и искусство. Одно не работает без другого. При этом нельзя объяснять дизайнерские решения исключительно эстетикой. Дизайн и отношение дизайнера к нему постоянно меняются, нет ничего статичного. Чувство…
Google опубликовали приложения с лучшим дизайном за 2017 год:
- Blinkist
- Eventbrite Organizer
- NPR One
- momondo
Я бы оспорил этот выбор, потому что на скириншотах приложения выглядят довольно нелепо и плохо вписываются в платформу. Дизайнеры стали смелее уходить от гайдлайнов, а хорошо это или плохо - непонятно. Аппы больше не выглядят сделанными под копирку, но теряется consistency в рамках системы. Поставлю победителей себе и попытаюсь понять, чем же они заслужили фичеринг от Google.
А вы как считаете? Крутой дизайн?
- Blinkist
- Eventbrite Organizer
- NPR One
- momondo
Я бы оспорил этот выбор, потому что на скириншотах приложения выглядят довольно нелепо и плохо вписываются в платформу. Дизайнеры стали смелее уходить от гайдлайнов, а хорошо это или плохо - непонятно. Аппы больше не выглядят сделанными под копирку, но теряется consistency в рамках системы. Поставлю победителей себе и попытаюсь понять, чем же они заслужили фичеринг от Google.
А вы как считаете? Крутой дизайн?
Google Design
Material Design Awards 2017 - Google Design
Recognizing best-in-class designs from around the community
Google выпустили альфа-версию Paging — библиотеки для загрузки большого обьема данных по частям. Она работает с RecyclerView, Room и LiveData. По ссылке — о том, как ей пользоваться и как она устроена.
https://developer.android.com/topic/libraries/architecture/paging.html
https://developer.android.com/topic/libraries/architecture/paging.html
Привет. Мобайл возвращается. 🚀
В сентябре я работал над проектом в школе Яндекса, а после приходил в себя, отдыхал и рефлексировал.
Теперь снова берусь за дела. Продолжу развиваться в разработке и дизайне и осваивать новые для себя вещи. С меня, как всегда, интересные находки и мысли, которые всплывают в процессе непрерывного саморазвития.
Если вам есть, что сказать, стучитесь в личку (@kondenko). Расскажите, что можно улучшить, о чём хотите читать, о чём не хотите, или просто заглядывайте познакомиться.
В сентябре я работал над проектом в школе Яндекса, а после приходил в себя, отдыхал и рефлексировал.
Теперь снова берусь за дела. Продолжу развиваться в разработке и дизайне и осваивать новые для себя вещи. С меня, как всегда, интересные находки и мысли, которые всплывают в процессе непрерывного саморазвития.
Если вам есть, что сказать, стучитесь в личку (@kondenko). Расскажите, что можно улучшить, о чём хотите читать, о чём не хотите, или просто заглядывайте познакомиться.
В Москве купил и прочитал «Пиши, сокращай» — книгу о том, как создавать информационные тексты.
В ней показывают, как из унылого и безликого полотна сделать интересный и энергичный текст. Книга состоит из практических советов, но главные мысли из книги можно переложить и на другие области. Быть честным, приносить пользу и стремиться к простоте нужно и журналисту, и дизайнеру, и стартаперу.
Книга довольно объемная (439 страниц) но читается легко. У меня ушло чуть меньше месяца, если 15 минут читать в метро по дороге домой.
В электронном виде книгу не выпустили — на это есть веская причина. Но в бумажном варианте читать понравилось даже мне, хотя я большой фанат диджитала.
Прочитайте и применяйте советы из этой книги, когда пишете статью, документацию к коду, описание продукта, или откликаетесь на вакансию.
В ней показывают, как из унылого и безликого полотна сделать интересный и энергичный текст. Книга состоит из практических советов, но главные мысли из книги можно переложить и на другие области. Быть честным, приносить пользу и стремиться к простоте нужно и журналисту, и дизайнеру, и стартаперу.
Книга довольно объемная (439 страниц) но читается легко. У меня ушло чуть меньше месяца, если 15 минут читать в метро по дороге домой.
В электронном виде книгу не выпустили — на это есть веская причина. Но в бумажном варианте читать понравилось даже мне, хотя я большой фанат диджитала.
Прочитайте и применяйте советы из этой книги, когда пишете статью, документацию к коду, описание продукта, или откликаетесь на вакансию.
book.glvrd.ru
Книги Главреда
Книги о сильном тексте
Текст — это интерфейс, а хороший текст означает хороший дизайн.
Почитайте, с чего начинались графические интерфейсы, что влияет на читабельность текста, и как выбрать хороший шрифт для своего дизайна.
Учитывайте детали (высоту, кернинг, контраст), потому что текст будут читать на маленьких экранах в условиях разного освещения и под разными углами.
https://viljamis.com/2016/typography-for-user-interfaces/
Почитайте, с чего начинались графические интерфейсы, что влияет на читабельность текста, и как выбрать хороший шрифт для своего дизайна.
Учитывайте детали (высоту, кернинг, контраст), потому что текст будут читать на маленьких экранах в условиях разного освещения и под разными углами.
https://viljamis.com/2016/typography-for-user-interfaces/
Viljami Salminen
Typography for User Interfaces
Back in 2004, when I had just started my career, sIFR was the hottest thing out there. It was developed by Shaun Inman and it embedded custom fonts in a small Flash movie, which could be...
Forwarded from Проект Мобилизация
Привет, мы пропали на время проекта — работали с участниками и, конечно же, готовили видеозаписи лекций. И сегодня мы начинаем ими делиться!
Для всех, кто хочет развиваться в менеджменте продуктов запускается отдельный видеокурс. Также будет несколько полезных, с нашей точки зрения, лекций для дизайнеров и Android-разработчиков, которые дополнят программу «Мобилизации» 2016 года.
Подписывайтесь :)
— Менеджмент: https://www.youtube.com/playlist?list=PLEs8EuAPI73Bj78n7-BIW3s1we0r15yJl
— Дизайн: https://www.youtube.com/playlist?list=PLLkvpHo_HuBOiSFsDfT8I5aWJKkMzzrPD
— Мобильная разработка (три новых лекции в конце курса): https://www.youtube.com/playlist?list=PLQC2_0cDcSKBNCR8UWeElzCUuFkXASduz
Для всех, кто хочет развиваться в менеджменте продуктов запускается отдельный видеокурс. Также будет несколько полезных, с нашей точки зрения, лекций для дизайнеров и Android-разработчиков, которые дополнят программу «Мобилизации» 2016 года.
Подписывайтесь :)
— Менеджмент: https://www.youtube.com/playlist?list=PLEs8EuAPI73Bj78n7-BIW3s1we0r15yJl
— Дизайн: https://www.youtube.com/playlist?list=PLLkvpHo_HuBOiSFsDfT8I5aWJKkMzzrPD
— Мобильная разработка (три новых лекции в конце курса): https://www.youtube.com/playlist?list=PLQC2_0cDcSKBNCR8UWeElzCUuFkXASduz
YouTube
Школа менеджеров Яндекса
Видеокурс для тех, кто хочет развиваться в области менеджмента продуктов. Наиболее полезен будет тем, кто уже имеет опыт разработки и запуска проектов. Видео...
Статья про относительно новый кроссплаторфменный SDK — Flutter. У него интересная система реактивных виджетов, быстрый hot reload и доступ к нативным фичам. Мне после прочтения статьи захотелось попробовать — выглядит многообещающе.
Осталось дождаться улучшения производительности. Демо-приложение выглядит красиво, но лагающие анимации сильно портят впечатление. Ну и поддержка Kotlin была бы очень кстати.
Осталось дождаться улучшения производительности. Демо-приложение выглядит красиво, но лагающие анимации сильно портят впечатление. Ну и поддержка Kotlin была бы очень кстати.
Hackernoon
What’s Revolutionary about Flutter | HackerNoon
The Flutter mobile app SDK is a new way to build <em>beautiful</em> native mobile apps that break away from the “cookie cutter” apps that have been so common in the past. People who try Flutter really like it; for example, see <a href="https://medium.com/@aubykhan/how…
Чтобы добиться хорошего UX, нужно понимать, как работает память.
Память бывает краткосрочной и долгосрочной. Краткосрочная хранит небольшое количество новой информации. Эту информацию нужно повторять, чтобы она переместилась в долгосрочную память. Там она будет храниться гораздо дольше.
Пользователю легче работать с продуктом, когда навыки работы с его интерфейсом находятся в долгосрочной памяти. Чтобы пользователям было легче запоминать интерфейс, соблюдайте 7 правил:
1. Не заставляйте пользователя запоминать много информации за один раз.
2. Не заставляйте выбирать из слишком большого количества вариантов.
3. Используйте узнаваемые паттерны.
4. Используйте элементы навигации, выполненные в одном стиле.
5. Не скрывайте ключевые элементы за "гамбургерами" и другими видами меню.
6. Используйте вместе иконки, текст и звук — это стимулирует различные виды памяти.
7. Помните о чувствах. Если пользователя бесит продукт, он плохо запомнит интерфейс и ему будет труднее работать.
https://uxplanet.org/how-human-memory-works-tips-for-ux-designers-12b14071bdf9
Память бывает краткосрочной и долгосрочной. Краткосрочная хранит небольшое количество новой информации. Эту информацию нужно повторять, чтобы она переместилась в долгосрочную память. Там она будет храниться гораздо дольше.
Пользователю легче работать с продуктом, когда навыки работы с его интерфейсом находятся в долгосрочной памяти. Чтобы пользователям было легче запоминать интерфейс, соблюдайте 7 правил:
1. Не заставляйте пользователя запоминать много информации за один раз.
2. Не заставляйте выбирать из слишком большого количества вариантов.
3. Используйте узнаваемые паттерны.
4. Используйте элементы навигации, выполненные в одном стиле.
5. Не скрывайте ключевые элементы за "гамбургерами" и другими видами меню.
6. Используйте вместе иконки, текст и звук — это стимулирует различные виды памяти.
7. Помните о чувствах. Если пользователя бесит продукт, он плохо запомнит интерфейс и ему будет труднее работать.
https://uxplanet.org/how-human-memory-works-tips-for-ux-designers-12b14071bdf9
Medium
How Human Memory Works: Tips for UX Designers.
One of the greatest information processors we deal with in our everyday life cannot be seen or touched. It cannot be bought or sold as well…
Invision показали Studio — инструмент для создания интерфейсов и прототипов. С его помощью можно создавать адаптивный дизайн, делать переходы между экранами и щедро поливать всё красивыми анимациями.
Выйдет в январе для macOS и Windows, но можно оставить заявку на early access.
invisionapp.com/studio
Выйдет в январе для macOS и Windows, но можно оставить заявку на early access.
invisionapp.com/studio
Miro
AI Innovation Workspace | Miro
Speed up product development from ideation to launch. Align teams, break tool silos, and ship what customers need in one AI-powered visual platform.
Подписчик @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.