Pull to refresh
24
-0.5
Сергей Лавров @Lavs

Создаю Android/iOS приложения

Send message

Почему после курсов по программированию вы никому не нужны. Как найти первую работу в IT

Reading time 5 min
Views 172K

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

Читать далее
Total votes 106: ↑93 and ↓13 +80
Comments 437

Компонентный подход. Боремся со сложностью в Android-приложениях

Reading time 10 min
Views 9.7K

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

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

Меня зовут Артур, я тимлид в компании MobileUp. Я помогу вам освоить компонентный подход. Постараюсь сделать это как можно проще и увлекательнее.

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

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

Я выбрал язык программирования с помощью икигаи, коучей и рефлексии — и это сработало

Reading time 7 min
Views 32K

Я в IT уже 15 лет: 10 лет разрабатывал DevOps в 1C и 3 года руководил отделом разработчиков в Сбере и не писал код. Однажды я понял, что хочу кодить, а не руководить — и передо мной встал вопрос: какой выбрать язык?

Может быть, взять самый популярный? Или тот, по которому больше всего вакансий? А может, тот, где самые высокие зарплаты?..

Под катом я расскажу, почему сама постановка вопроса о выборе языка программирования порочна и какой метод я использовал, чтобы найти идеальный ЯП. Это обошлось мне в 26 000 рублей, но с Хабром поделюсь бесплатно.

Сэкономить 26 000 рублей
Total votes 53: ↑38 and ↓15 +23
Comments 125

Отрисовка в браузере большой анимации или как я ушел с mp4 к своему формату видео

Reading time 17 min
Views 51K

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

Читать далее
Total votes 286: ↑286 and ↓0 +286
Comments 134

Прогулка по изнанке «Спортмастера»: ножками и в приложениях

Reading time 13 min
Views 24K

Зашёл я (@Lavs) в «Спортмастер», чтобы купить себе футбольный мяч. В этом деле мне помогла сотрудница Ксения: задала пару вопросов, отвлеклась на смартфон и через минуту протянула подходящий мячик.

Я знал, что на экране у Ксении был не мессенджер с подружками, а внутренние приложения магазина. Дело в том, что в «Спортмастер» я пришёл не только за мячиком. Хабр отправил меня с редакционным заданием: разобраться, как устроена технологическая начинка магазина.

Ребята из SM Lab (IT-компания «Спортмастера») сейчас ищут Android- и iOS-разработчиков. Под катом речь пойдёт о том, чем занимаются команды мобильной разработки: а они ни много ни мало обеспечивают работу всех 533 розничных «Спортмастеров».

Читать далее
Total votes 35: ↑32 and ↓3 +29
Comments 12

Как открыть 1500 шлагбаумов Москвы

Reading time 5 min
Views 125K

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

А кто еще?
Total votes 303: ↑301 and ↓2 +299
Comments 188
В IT время от времени полезно остановиться и оценить пройденный путь. Зная своё положение на линии прогресса, мы можем экстраполировать её — и, пусть и в совсем общих чертах, — понять, что же с нами будет дальше. Это особенно важно, когда речь заходит о деньгах. Мы выбрали самые полезные хабрастатьи о финтехе и организовали что-то вроде виртуального музея платёжных технологий. Приглашаем на экскурсию.
Читать далее
Total votes 19: ↑18 and ↓1 +17
Comments 2

Оптимизируем отображение 10 000 объектов на карте

Reading time 13 min
Views 12K

В приложении ЦИАН размещены десятки тысяч объявлений о недвижимости. Нашим пользователям важно видеть географическое расположение этих объявлений на карте. Самым популярным способом отображения оказался вариант, когда каждое объявление показано отдельной точкой. Внутри команды такой вариант мы назвали «Горошек на карте».

Проблема в том, что объявлений очень много: в одной только Москве более 10 000. Из-за этого наша карта работала не очень стабильно: при зуме и движении были тормоза, дёргалась и лагала картинка. С этим нужно было что-то делать. Чтобы разобраться в причинах проблем и найти решения, мы засучили рукава и начали копаться в используемых механизмах. Под катом подробно опишем весь путь оптимизации карт в Android-приложении: от постановки задачи до результата.

Читать далее
Total votes 30: ↑30 and ↓0 +30
Comments 18
Привет, Хабр! Меня зовут Лавров Сергей (@lavs). Я разрабатываю мобильные приложения под Android и iOS, преподаю IT в двух университетах и уже 15 лет изучаю новые технологии, а также языки программирования, которых знаю более десятка. В этот раз я выступлю в непривычной для себя роли обзорщика: меня попросили посмотреть, чем может быть интересен для разработчика планшет Huawei MatePad 11. Что ж, challenge accepted: я проверю, можно ли на нём программировать; разберусь, что из себя представляет новая HarmonyOS и попробую написать для неё приложение.
Читать далее
Total votes 34: ↑24 and ↓10 +14
Comments 84

Многопоточное программирование в Android с использованием RxJava 2

Reading time 13 min
Views 38K
Если вы новичок в общении с RxJava или пытались разобраться в этом, но не довели дело до конца, то ниже вы найдете для себя кое-что новое.

image
Оригинал статьи написан 29 ноября 2017. Перевод вольный.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 0

SwiftUI: знакомство

Reading time 8 min
Views 17K
В этом руководстве мы научимся планировать UI приложения при помощи View и узнаем, как использовать переменные состояния (State variables) для модификации UI.

Примерное время чтения публикации: 25 минут.
Поехали!
Total votes 9: ↑8 and ↓1 +7
Comments 16

Парсер Блокчейна в 300 строчек на Python

Reading time 3 min
Views 17K
image

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

Попытки провести детальный анализ исходного кода проекта Bitcoin Core не увенчались особым успехом, ввиду достаточно строгих начальных условий, которые были мною поставлены перед собой, для того, чтобы сказать «да, теперь я знаю что это и как оно работает» и огромного количества строк исходного кода, которые необходимо было осмыслить, чтобы считать результат достигнутым.

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

И так. Официальный клиент Bitcoin Core загрузил весь блокчейн в папку на локальной машине, это были какие-то файлы, которые, как говорилось в официальных документах, содержали всё то, что называется Bitcoin. Самым интересным для меня являлись файлы так называемой RAW Blockchain Data (blk00000.dat… blk01234.dat и т.д. из папки Bitcoin/blocks), а именно файлы базы данных блокчейн как они есть, в исходном виде.

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

Дабы проникнуть в суть, очевидным показалось разобраться в том, что в себе хранит исходная база данных, на основании которой локальная система производит всё дальнейшее необходимое действо для обеспечения функционирования блокчейна данной криптовалюты. Часть технологии, касающаяся сетевых взаимодействий не рассматривалась в данной статье. Намеренно я ограничился именно локальной частью, и именно файлами хранящими блоки.
Читать дальше →
Total votes 30: ↑18 and ↓12 +6
Comments 35

Заблуждения Clean Architecture

Reading time 15 min
Views 406K
Превращаем круги в блоки

­­ 


На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

Читать дальше →
Total votes 58: ↑56 and ↓2 +54
Comments 203

Проблемы и нюансы при разработке под SmartTV с использованием React.js

Reading time 4 min
Views 11K
Хочу поделиться опытом разработки приложения с просмотром видео контента для SmartTV (Tizen и WebOS) и с какими проблемами мы столкнулись.

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

Так как это браузер, то ничего нам не мешало использовать React.js для разработки, что повлияло на некоторые проблемы с производительностью.

Я не буду рассказывать о том, как именно нужно делать с примерами кода, я расскажу о нюансах и решениях, которые были приняты.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 19

Регулярные выражения для валидации распространенных видов данных

Reading time 2 min
Views 485K
Для проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
Читать дальше →
Total votes 133: ↑97 and ↓36 +61
Comments 66

10 навыков и знаний необходимых начинающему iOS разработчику

Reading time 7 min
Views 85K
image

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

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

В этой заметке я поделюсь информацией про то, какие навыки и знания я считаю важными для начинающего iOS разработчика, попробую объяснить зачем они нужны и дам ссылки на материалы для их изучения. 
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Comments 15

Сравнение архитектур Viper и MVVM: Как применить ту и другую

Reading time 15 min
Views 24K


В настоящее время VIPER и MVVM являются наиболее популярными архитектурными решениями, применяемыми при разработке крупных приложений, требующих участия в разработке больших команд, являющихся хорошо тестируемыми, длительно проддерживаемыми и постоянно развивающимися. В данной статье мы попробуем применить их на небольшом тестовом проекте, который представляет из себя список контактов пользователей с возможностью добавления нового контакта. В данной статье больше практики, чем аналитики, и предназначена она в первую очередь для тех, кто уже в теории знаком с данными архитектурами и теперь хотел бы понять как это работает на конкретных примерах. Впрочем, базовое описание архитектур и их сравнение также присутствует.
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Comments 2

Архитектурные паттерны в iOS

Reading time 14 min
Views 198K

Введение в MVP, MVC, MVVM и VIPER. Что между ними общего и в чем разница.



Делаете все по MVC, а получается некрасиво? Сомневаетесь, переходить ли на MVVM? Слышали о VIPER, но не уверены, стоит ли оно того?

В этой статье я кратко рассмотрю некоторые популярные архитектурные паттерны в среде iOS и сравню их в теории и на практике. Больше информации вы найдете при переходе по ссылкам, указанным в тексте.
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 18

Как следует писать комментарии к коммитам

Reading time 11 min
Views 133K


Предисловие от переводчика


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

И вот в один прекрасный момент я увидел данную статью, до перевода которой у меня наконец дошли руки. Всего 7 простых и коротких правил, и — о чудо — смотреть на историю коммитов стало не только полезно, но и приятно. Ничего революционного, все довольно очевидно, но сформулировано и резюмировано просто отлично.
Читать дальше →
Total votes 55: ↑51 and ↓4 +47
Comments 115

Видео с Android Kolesa Mobile: о модульной разработке, backend driven UI и continuous integration

Reading time 2 min
Views 3.4K
Привет, Хабр! Публикуем видеозапись с третьего Android Kolesa Mobile – встречи для мобильных разработчиков.

В роли спикеров выступили наши коллеги и представители компаний Avito.ru, Chocolife и Noble Applications. Под катом — фото, слайды и записи докладов. Приятного просмотра!


Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 2
1

Information

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