Pull to refresh
30
0

Android разработчик

Send message

Семь приемов в Excel, которые делают диаграммы профессиональными

Reading time8 min
Views62K

Хотя сейчас я работаю в ИТ-отрасли, много лет назад я верстал рекламную газету, и с тех пор дизайн – мой профессиональный навык и увлечение за пределами профессии.

Сделать диаграммы привлекательными гораздо проще, чем вы думаете. Получить рекомендации на все случаи жизни не выйдет, но освоить несколько приемов в Excel и узнать азы теории, вы сможете за 10 минут. 

Из тридцатилетнего опыта и десятков прочитанных книг я выбрал семь полезных приемов. Их мы и разберем в этой статье в блоге ЛАНИТ.

Читать далее
Total votes 88: ↑87 and ↓1+86
Comments37

Локализация точки в выпуклом многоугольнике

Reading time4 min
Views46K
Листая страницы хаба «Алгоритмы», наткнулся на топик, посвященный решению задачи локализации точки в многоугольнике: задан многоугольник (замкнутая ломаная линия без самопересечений), требуется определить — находится ли заданная точка A внутри этого многоугольника или нет. В одном из последних комментариев к топику было высказано недоумение, какое отношение такая чисто математическая задача имеет к теории алгоритмов. Имеет-имеет, причем самое непосредственное. Задача локализации является классической задачей вычислительной геометрии (не путать с компьютерной графикой). В качестве разминки предлагается взглянуть на картинку справа, на которой изображен многоугольник типа кривой Пеано (источник [1]), и попытаться ответить на вопрос — красная точка ты видишь суслика? и я не вижу, а он есть! находится внутри или снаружи многоугольника? А ниже мы (исключительно в образовательных целях) рассмотрим простую вариацию данной задачи, когда заданный многоугольник является выпуклым.
Читать дальше →
Total votes 83: ↑81 and ↓2+79
Comments46

Корни RxJava — о чем мы не подозревали

Level of difficultyMedium
Reading time6 min
Views5.4K

В этой статье описано то, как под капотом работает RxJava и почему она работает именно так, а не иначе. Статья рекомендуется к прочтению разработчикам уровня junior - middle, так же очень желательно перед прочтением статьи ознакомиться/вспомнить паттерн Observer, потому что вся история основана на нём.

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments9

«Просто похудеть» — непросто

Reading time15 min
Views125K

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


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

Хакнуть свой мозг
Total votes 210: ↑188 and ↓22+166
Comments638

Используем делегаты в android-приложениях

Reading time10 min
Views9.2K

Всем привет, меня зовут Алексей, и я отвечаю за разработку android-приложений в Константе. У нас в компании есть несколько проектов с большим набором функций, часть из которых присутствует во всех (или, по крайней мере, во многих) разделах интерфейса приложения. Речь идет об авторизации (регистрация + вход), добавлении товаров в корзину, информации о балансе пользователя, уведомлениях о новых входящих сообщениях или т.д.

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments1

Программирование для детей 9 лет: какое направление выбрать

Reading time4 min
Views18K

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

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

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

Читать далее
Total votes 11: ↑8 and ↓3+5
Comments58

Мой опыт обучения детей 8-10 лет программированию на Scratch

Reading time8 min
Views269K
Давно собирался написать об этом, но, модная болезнь прокрастинация брала вверх…

Знакомство со Scratch


Когда сыну Артёму исполнилось 7 лет и он пошел в школу, мы ему подарили компьютер, чтобы он не отставал от жизни. Несколько месяцев он играл в разные игры, наслаждался, развлекался и т.п. Мне стало немного обидно, что такой дорогой и сложный прибор как компьютер используется только для развлечений, и я решил придумать, как использовать компьютер для обучения. А чему можно научиться на компьютере? Конечно, программированию! Тут я и вбил в «Яндекс» заветную фразу «обучение детей программированию».
Читать дальше →
Total votes 77: ↑74 and ↓3+71
Comments62

Как создать анимированные шейдеры в Jetpack Compose

Level of difficultyEasy
Reading time3 min
Views2.8K
Jetpack Compose — молодой, но бурно развивающийся фреймворк для разработки под Android, который обладает множеством не всегда очевидных фичей. Сегодня я хотел бы описать одну из таких встроенных возможностей: речь идет об использовании OpenGL-шейдеров. Они позволяют делать красивые анимированные интерфейсы, как на картинке ниже.
image
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments12

Реализация прогресс бара при отправке или загрузке файлов

Level of difficultyEasy
Reading time7 min
Views2.8K

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

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments2

16 простых и эффективных правил дизайна UI

Level of difficultyEasy
Reading time11 min
Views26K

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

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

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

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

Самый быстрый способ обучения — это практика, так что приступим!
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments13

Custom View в Android — краткое руководство

Level of difficultyMedium
Reading time13 min
Views24K

Обзор возможностей кастомных View с примерами кода на Kotlin + бонус в виде ссылок на полезные статьи и обучающие видео по данной теме.

1. Введение.
— Когда может понадобиться реализация собственного View?
— Способы создания собственного View.
— Иерархия View в Android.
2. Жизненный цикл View.
3. Конструкторы View.
4. Методы View.
onAttachToWindow()
onMeasure()
onLayout()
onDraw()
onSizeChanged()
onSaveInstanceState() и onRestoreInstanceState()
onTouchEvent()
5. Обновление View.
invalidate()
requestLayout()
6. Атрибуты для Custom View.
7. Дополнительные материалы для изучения.

Читать дальше
Total votes 7: ↑6 and ↓1+5
Comments6

Kotlin Coding Conventions

Level of difficultyEasy
Reading time17 min
Views7.7K

От автора поста: ниже представлен Kotlin Code Style на 2 мая 2023 года. Конвенция постоянно меняется, но основные принципы уже заложены и неизменны. Перевод предоставлен без комментариев, как есть.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments6

Как стать Android разработчиком в 2023

Reading time6 min
Views88K

И так, давайте начнем с того, что должен знать и уметь человек, чтобы стать Android разработчиком? Скиллсет будем смотреть по вот этому Roadmap

Читать далее
Total votes 18: ↑16 and ↓2+14
Comments33

Custom view на Compose

Reading time6 min
Views8.6K

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

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

В этой статье покажу, как можно реализовать рыночный график со скроллом и зумом на Compose.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments5

Работа с ConstraintLayout через XML-разметку

Reading time22 min
Views122K

ConstraintLayout


Привет! Меня зовут Гавриил, я Android-лид Touch Instinct.


В марте Google выкатил релизное обновление ConstraintLayout. Презентовали его еще на прошлом Google I/O. С того момента прошел почти год, ConstraintLayout стал лучше, быстрее и оброс новыми возможностями. Например, приятно, что появилась возможность объединения элементов в цепи — это позволяет использовать ConstraintLayout вместо LinearLayout.


О всех новых и старых возможностях ConstraintLayout я и постараюсь рассказать в этой статье. Предупрежу сразу — статья будет длинная и других семи частей не будет. Про визуальный редактор ConstraintLayout в статье не будет ни слова — только XML-разметка (по старинке) и немного кода.

Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments6

Семь бесплатных автоматизированных платформ-задачников для прокачки навыков программирования

Reading time2 min
Views63K

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


CheckiO


Проект из Украины «Чекио» сфокусирован на Python и JavaScript. Это сборник игровых задач по программированию для тех, кто уже не новичок. Большой упор на геймификацию, симпатичную графику и общение в сообществе. В самом решении задач игрового процесса нет, но есть общий сценарий для прохождения платформы. Полезная фича — смотреть другие решения и подсказывать студентам как их можно улучшить.


CheckiO


leetcode


Сборник задач по программированию на разных языках. Цель сервиса — готовить программистов к заданиям, которые встречаются на интервью. Платформа сразу даёт фидбэк на правильность и эффективность решения, показывает варианты решений и позволяет обсудить их с другими участниками. В платной версии можно пройти автоматизированное интервью в Google, Facebook или Amazon: робот подберёт вопросы, засечёт время и даже поможет оценить.


leetcode

Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments18

Анимируем RecyclerView легко без перехода на ViewPager2

Reading time9 min
Views8.7K


Когда мы работаем с коллекциями и их отображением, перед многими из нас часто
встает выбор между ViewPager (теперь ещё и ViewPager2) и RecyclerView. Эти
компоненты похожи друг на друга по области применения, но серьезно отличаются
интерфейсом и реализацией. Начиная с support library 24.2.0 границы между
данными компонентами стали ещё более размытыми, т.к. появился вспомогательный
класс SnapHelper для автоматического доведения сhildView до
определенного положения на экране, и без устаревшего ViewPager стало проще
обходиться. С недавним релизом ViewPager2, казалось бы, о старом ViewPager и о
практиках его имитации вообще можно забыть (ViewPager2 — это по сути
RecyclerView с дополнительными вспомогательными классами, он позволяет
практически идентично повторить поведение ViewPager и сохраняет совместимость со
старым api).


Так ли это на самом деле? Лично для меня всё оказалось не так просто. Во-первых,
в классическом RecyclerView отсутствует интерфейс PageTransformer для
анимирования сhildView в зависимости от позиции (далее по тексту используется
понятие «позиционная анимация»). Во-вторых, неприятными сюрпризами долгожданного
ViewPager2 оказались модификатор класса final, который ставит крест на
переопределении метода onInterceptTouchEvent (компонент мало пригоден для
вложения горизонтальных списков в вертикальные), и приватность поля
recyclerView.


Итак, столкнувшись в очередной раз с трудностями позиционной анимации при
отображении коллекций с помощью RecyclerView и поковырявшись в ViewPager2 и
MotionLayout, я подумал, что позаимствовать принцип работы
ViewPager.PageTransformer для классической реализации RecyclerView а-ля
ViewPager2 не самая плохая идея.

Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments4

Самый полный чек-лист для защиты от мошенников

Reading time17 min
Views156K

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

Читать далее
Total votes 148: ↑146 and ↓2+144
Comments169

«Вечная лампочка» из новых Lexman

Reading time2 min
Views127K
Я нашёл ещё один неплохой вариант для простейшей переделки в «вечную лампу». Это лампы Lexman 10 Вт 1000 лм, продающиеся по 85 рублей в магазинах Леруа Мерлен.


Читать дальше →
Total votes 132: ↑132 and ↓0+132
Comments212

Правильная валидация в Android

Reading time11 min
Views6.9K

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments0

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity