Обновить
3
24.1

Пользователь

Отправить сообщение

Dart/Flutter: с чего начать, чтобы не страдать

Привет! На связи Иван и Михаил, Flutter-разработчики из Финама. Когда мы начали писать на Flutter, поняли — граблей тут много, и на некоторые мы уже успели наступить, собрали бинго и готовы рассказать, где они поджидают. Делимся «анти-чеклистом» — вдруг поможет сэкономить время и нервы:

«Книга — лучший подарок», но не в этом случае

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

Что делать? Читать документацию, она обновляется. Поначалу может быть трудно вникнуть, опираясь только на нее. На этот случай есть запасной вариант — пройти какой-нибудь годный курс (вроде Udemy). Выбирайте те, где обновления выходят после каждого релиза.

Где брать актуальную информацию

Чтобы не отстать, нужно искать и читать свежие статьи про Flutter и Dart. Из русскоязычных источников нам помогает, конечно, Хабр, а еще рекомендуем ТГ-канал Amiga. Хорошие статьи на английском выходят на Medium. На Youtube-канале Flutter регулярно публикуют интересные видео. А еще мы попробовали лайфхак с нейросетью: она собирает дайджест свежих материалов за неделю. Удивительно, но это правда работает.

Начни со стейт-менеджментов и правильной архитектуры приложения

Самая частая боль новичков — хаос в коде. Мы видели проекты, где бизнес-логика жила прямо в build(). Всё работало… до первого бага.

Как действовать:

  • Начните с простого setState — это базовый способ управления состоянием. Затем попробуйте пакеты Bloc, Riverpod — почувствуете разницу в читаемости и структуре.

  • Изучите основы чистой архитектуры: это позволит вам быстрее понимать чужой код и лучше разбираться в своем.

  • Хотите потренироваться? Попросите AI сгенерировать пример проекта с Bloc — и разберите его построчно. Или обратитесь к статьям.

Не бойся проблем при сборке

При сборке проекта ты скорее всего столкнешься с ошибками компиляции и в 90% случаев это будут ошибки, связанные с Xcode и Gradle. Не нужно паниковать, Flutter достаточно умен и в большинстве случаев предложит тебе решение. Если не было предложено решение или оно не сработало — не беда, первая ссылка в гугле вероятнее всего решит твою проблему. И не забывайте про старый дедовский способ перезагрузки:

flutter clean

flutter pub get

В топку тяжелые среды, работай по четвергам в Visual Studio Code

Среда разработки — твой основной инструмент, ты будешь работать в ней 99% своего времени, а значит она должна быть удобной и комфортной для тебя. Для Flutter есть две основные IDE: Android Studio и Visual Studio Code. Android Studio — мощная, с готовыми тулзами и анализаторами, но тяжеловесная. VS Code — лёгкий, быстрый и гибкий.

В Финаме мы работаем в VS Code — там проще интегрировать CLI-инструменты, автогенерацию кода и кастомные скрипты. Но выбор — это вопрос привычки: рекомендую попробовать обе. Главное, чтобы IDE не тормозила, когда запускаешь hot reload 20 раз в час. Я знаю людей, которые переходили с Android Studio на Visual Studio Code, но не знаю обратных примеров.

Логике в UI не место

Выгружать логику работы приложения (например, сетевые запросы, обработку данных) в методе build() — грубая ошибка. Это ведет к багам, фризам, затрудняет тестирование, нарушает принципы разделения обязанностей.

Используйте стейт-менеджеры. Логика должна быть отделена от UI — это облегчает поддержку, переиспользование и покрытие тестами. 

Делите UI на независимые виджеты

Если экран превращается в тысячу строкового монолита — значит пора рефакторить. Разбивайте интерфейс на маленькие, самодостаточные виджеты (например: заголовок, список, кнопки). Это упрощает чтение, тестирование и повторное использование компонентов. И старайтесь ограничивать один экран не больше 150-200 строками кода.

Async — не просто await

Асинхронное программирование в Dart требует внимания:

  • Оборачивайте важные вызовы в try/catch.

  • Используйте async/await для читаемого кода; а если используете .then(), не забывайте обработать

Теги:
+4
Комментарии1

Как я сделал blur и линзу в Jetpack Compose

Всем привет! Меня зовут Владимир, я мобильный разработчик в «Финам». В одном из недавних проектов нужно было добавить в интерфейс Jetpack Compose визуальные эффекты поверх контента, например размытый хедер или движущуюся «лупу». 

Обычно такие приемы встречаются в играх, где весь экран — это фактически полотно для рисования OpenGL. В классической XML-разметке UI я с таким не сталкивался, поэтому пришлось довольно глубоко погрузиться во внутреннюю кухню Compose. Этот разбор может быть полезен тем, кто решает похожие задачи.

Сначала на Stack Overflow я нашел неплохой пример создания эффекта размытия на определенном участке экрана — к сожалению, это решение не было универсальным и зависело от верстки. Однако мое внимание привлекли два класса из фреймворка: RenderNode и GraphicsLayer

Если коротко, можно захватить часть экрана через GraphicsLayer, а в RenderNode записать контент. Но перед этим его можно обработать. После обработки метод drawWithContent() выводит результат в canvas. 

Сначала я попытался модифицировать эффект размытия из ответа на Stack Overflow, затем сделал размытие в форме круга, который движется вслед за пальцем, и постепенно пришел к окончательному варианту с движущейся прозрачной линзой. Код для отрисовки эффекта я показал в статье.

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

Какие выводу я могу сделать:

  • в Compose можно делать крутые визуальные эффекты, если покопаться в RenderNode;

  • это неочевидный, но мощный инструмент, он дает простор для кастомизации.

Мой пример не самый изобретательный, но способ, который я показал, открывает почти безграничные возможности для реализации визуальных эффектов в Android-разработке, чем мы в «Финам» и пользуемся очень активно в наших финтех-проектах. Итоговый результат оформил в GitHub-репозитории — берите и пробуйте в своих проектах.

Теги:
Рейтинг0
Комментарии0

Три кота, на которых держится QA в финтехе

Когда люди слышат «QA-инженер», они обычно думают: «А, это тот человек, который нажимает все кнопки подряд и заносит баг-репорты в Jira». Ха-ха, мимо.

Всем привет! Я Настя, QA-инженер в «Финаме». Мой путь в тестировании начался с эксплуатации торгово-клиринговой системы «СПБ Биржи», а последние несколько лет я тестирую бэк-офисные и торговые системы. И за это время я убедилась: QA в финансовой компании — это отдельная вселенная.

Сегодня я хочу поделиться чек-листом навыков выживания и развития, которые просто необходимы любому QA в финтехе, — три кота, на которых всё держится.

Кот Смыслюня — с умным видом объясняет, что лимитка не равно рыночка, и спокойно может мурлыкать лекцию про хеджирование в три часа ночи.

В обычном QA баг-репорты выглядят как «пользователь нажал кнопку — система упала». В финтехе сценарий может звучать как «один трейдер выставил заявку на опционы через API ЦБ, а в это время сработала маржинальная проверка, в результате чего вышло несхождение в клиринговом отчете». Ничего не понятно?

Поэтому знание предметной области — основа QA в финансовой сфере. Здесь важно понимать терминологию, специфику работы и все бизнес-процессы: как проходят сделки, что такое дисконтирование, и почему неправильный расчет одного показателя может стать причиной ошибки на миллионы. Я пришла в IT из финансов, работала с брокерами и депозитариями, поэтому мне было немного проще.

Как прокачать предметку? Изучите бизнес-процессы. Разберите базовые термины. И не ленитесь изучать теорию финансов, а не только учебники по Java и Python.

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

Без знания SQL вы потеряетесь в финансовом секторе. Тут лучше иметь продвинутые SQL-навыки, например:

  • агрегаты (COUNT, SUM, AVG) — быстро сворачивают кучу данных в удобный формат;

  • временные таблицы — магический инструмент. Данные не лежат «готовыми», их нужно поймать, сохранить и присоединить к основной таблице;

  • JOIN’ы — мостики между таблицами. Без них ваши данные просто стоят отдельно, как несогласованные депозиты на разных счетах;

  • типы данных и кастинг — часто разные источники хранят одно и то же по-разному. Не забудьте привести к одному виду.

И не храните текст — ID гораздо быстрее. Умение работать с SQL в финтехе — не просто навык, а мастхэв для QA: чем лучше владеете этим языком, тем увереннее двигаетесь в мире цифр и транзакций.

Кот Скриптик ленивый, но гениальный: «Зачем делать руками, если я могу запустить автотесты и спать дальше?» Избавляет QA от рутины, оставляя время на умные проверки и кофе.

Без автотестов в финтехе никуда, слишком много данных и проверок. Для меня топ — Python, идеален для тестирования SQL-запросов. Конечно, можно и на других языках, всё зависит от задач. Но если только начинаете, Python, простой и с кучей бесплатных курсов, будет вашим спасательным кругом. Я, кстати, стартовала на «Питонтьюторе» — и ничего, выжила!

Пара фишек: 

  • pytest — швейцарский нож для автотестов. Параметризация позволяет запускать кучу тестов с разными данными, не плодя сотни копий кода; 

  • и подружитесь со словариками: они как маленькие контейнеры для данных, очень удобны при работе с результатами SQL или параметрами тестов.

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

Что мы поняли из истории про трех котов? Предметка рулит. Для работы в финтехе нужно знать термины, процессы и специфику инструментов. SQL — ваш супергерой. Без него вы потеряетесь в горах таблиц и хранимок. Автотесты спасают ваши нервы и время. Даже пара тестов в неделю увеличит покрытие и прокачает навыки.

В следующих постах мы с коллегами расскажем больше о работе в финтехе. До скорых встреч!

Теги:
Всего голосов 6: ↑5 и ↓1+10
Комментарии1

Аналитик в IT: кто это такой и почему без него не запустить ни один "финтех" проект

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

Мы обсудили:

  • Личный путь: Как Игорь сменил профессию в 30+ лет и почему выбрал именно аналитику, вспомнив свой опыт написания кода еще в университете.

  • Суть работы аналитика: Чем на самом деле занимается этот специалист? Игорь выделил три ключевые функции: общение с заказчиком, чтобы понять его истинные потребности; глубокий анализ и проработка алгоритмов; и ответственность за проект «от и до» — от сбора требований до успешного выхода в продакшен.

  • Ключевые различия: Чем бизнес-аналитик отличается от системного и почему в современных реалиях востребованы универсальные специалисты с широким набором навыков.

  • Проблемы и вызовы: Почему в команде шутят, что «если все хорошо, значит, команда поработала отлично, а если что-то пошло не так — виноват аналитик».

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

Наш подкаст доступен на всех удобных платформах:

Youtube Music | Apple Podcast | Яндекс Музыка | Spotify | VK Музыка

Теги:
Рейтинг0
Комментарии0

Под капотом FinamTrade: как работает покупка акций, разработка под санкциями и будущее AI в финтехе

Привет, Хабр!

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

У нас в гостях Борис Аксенов, руководитель управления разработки веб и мобильных приложений в «Финаме». Человек, который стоит у руля создания и эволюции FinamTrade последние 15 лет. Мы поговорили о том, о чем обычные пользователи часто не задумываются, нажимая кнопку «Купить».

О чём этот выпуск:

  • Архитектура и нагрузка: Что происходит на бэкенде, в мобильном клиенте и на бирже в момент, когда вы и еще 10 000 человек одновременно отправляете заявку?

  • Эволюция: Как приложение FinamTrade превращалось из простого терминала в суперапп с новостями, аналитикой и обучением? Какие технологические решения были ключевыми на этом пути?

  • Боль и санкции: Самая острая тема — как изменились процессы разработки и публикации в App Store и Google Play для такого критически важного приложения в текущих реалиях? Какие инструменты и воркaунды пришли на смену привычным сервисам?

  • Безопасность: Как защищаются финансовые данные и средства клиентов в эпоху мобильных угроз?

  • AI и ML: Где машинное обучение и искуственный интеллект уже работают в финтехе сегодня (например, в предиктивном анализе поведения или проверке документов), а где это пока лишь хайп?

  • Карьера в финтехе: Как приходят в разработку для таких высоконагруженных систем? Что мотивирует специалистов оставаться в одной компании больше 15 лет?

  • А еще Борис поделился парой забавных курьезных случаев из практики и мифов о финтехе, которые заставят вас улыбнуться.

Выпуск получился по-настоящему гибридным. Он будет полезен:

  1. Разработчикам и архитекторам, особенно тем, кто работает или хочет работать с высоконагруженными и отказоустойчивыми системами.

  2. Специалистам по DevOps и безопасности, чтобы понять уровень требований в fintech.

  3. Всем, кто интересуется карьерой в IT — история Бориса о 15-летнем пути в одной компании очень мотивирует и показывает возможный вектор роста.

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

Наш подкаст доступен на всех удобных платформах:

Youtube Music | Apple Podcast | Яндекс Музыка | Spotify | VK Музыка

Теги:
Рейтинг0
Комментарии0

Finam X HSE AI Trade Hack: Хакатон для настоящих FinTech-энтузиастов

Хотите прокачать навыки в AI и трейдинге? Готовы создавать инновационные решения для финтеха? Тогда не упустите шанс принять участие в Finam AI Trade Hack — хакатоне от одного из ведущих брокеров на российском рынке «Финам»!

⏰ Регистрация до 19 сентября 23:59
💰 Призовой фонд: 1 200 000 руб.

Треки хакатона:

Forecast
Прогноз динамики цен с учётом новостей.
Задача: предсказать котировки на N дней вперёд, используя временные ряды и новостной контекст.

Trader
LLM-интерфейс к Trade API
Задача: реализовать MCP-сервер для получения рыночных данных и выполнения торговых операций через API FINAM.

Radar
Поиск горячих финансовых новостей.
Задача: создать сервис для автоматического поиска, анализа и оценки новостей, с возможностью генерировать черновики статей и постов.

Почему стоит участвовать:
🔸 Денежные призы
🔸 Оффер на работу в «Финаме»
🔸 Стильный мерч
🔸 Менторская поддержка
🔸 Доступ к API LLM

➡️ Подробная информация и регистрация

Теги:
Рейтинг0
Комментарии0

Выручка Nebius во 2 квартале выросла до $105,1 млн

Выручка нидерландской компании Nebius (бывшая Yandex N.V., которая ранее была головной компанией группы «Яндекс») во 2 квартале 2025 года выросла на 625% относительно результата за аналогичный период прошлого года и составила $105,1 млн. Об этом говорится в пресс-релизе группы.

Скорректированный чистый убыток вырос на 49% год к году и составил $91,5 млн. Показатель EBITDA оказался отрицательным и составил минус $21 млн.

По итогам шести месяцев 2025 года выручка Nebius составила $156 млн, а чистый убыток – $175,2 млн.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0
Источник Правда.Ру
Источник Правда.Ру

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

Глава ЦБ, Эльвира Набиуллина. Финансовый конгресс Банка России

Теги:
Всего голосов 4: ↑2 и ↓2+2
Комментарии0

Приближается конференция для Flutter-специалистов

Уже в эту пятницу, 21 февраля, в Москве пройдет FlutterConf — профессиональная конференция по Flutter. Ожидается, что соберется больше двухсот специалистов — докладчиков и слушателей.  

Доклады будут читаться в два потока, тематика достаточно широкая: реальные кейсы с нестандартными требованиями, архитектурные решения и инструменты для Flutter-проектов. Выступать будут разработчики и тимлиды из Amiga, Яндекс-Про, Билайна, Лаборатории Касперского, Потока, Открытой мобильной платформы, Friflex, MadBrains, BetBoom.

А в шесть часов вечера начнется круглый стол, посвященный прошлому, настоящему и будущему Flutter.

Посмотреть расписание конференции и зарегистрироваться можно на сайте (регистрация платная), посетить ее можно в Москве в Radisson Blu Belorusskaya Moscow или же подключиться удаленно.

От «Финама» мы отправим туда нескольких выразивших желание разработчиков из Москвы, а также будем смотреть мероприятие в Питере, в коворкинге. Наша команда работает с Flutter с 2019 года, наши приложения выигрывают премии на тематических мероприятиях. Кстати, прямо сейчас у нас открыта вакансия Flutter-разработчика, и, если кому-то из хабравчан интересно – написать можно нашему рекрутеру.

Теги:
Рейтинг0
Комментарии0

Сервисы «Финама» заняли первое место в двух номинациях IT-конференции CrossConf Awards: «Нестандартное решение на кроссплатформе» и «HR-сервисы».

В первой номинации была награждена группа разработки приложения FinamInvest о главе с Дмитрием Строковым. FinamInvest — это сервис для начинающих инвесторов, который помогает принимать обоснованные решения даже тем, кто не успел накопить никакого инвестиционного опыта. С FinamInvest инвестирование становится доступнее — благодаря интуитивно понятному интерфейсу, а также отображению инвестиционного портфеля пользователя в 3D с помощью Unity, встроенного во Flutter-приложение. Пользователь взаимодействует с 3D-объектом, при этом часть экрана, содержащая двухмерную информацию, отображается через Flutter и синхронизируется с Unity.

«В первую очередь хочу выразить благодарность [менеджеру HR-проектов] Жене Авдееву. Большое спасибо всей команде проекта. Эта задача, что называется, со звездочкой, со множеством нюансов. Я действительно не знаю других проектов, которые бы использовали схожие технические решения в обычном приложении, а не в технодемо. Это и оценили организаторы по достоинству», — отметил Дмитрий Строков, руководитель группы разработки супераппов «Финама».

Во второй номинации была награждена команда HR-Tech с проектом FinamPortal. Это многофункциональное мобильное HR-приложение, объединяющее социальные и административные инструменты.

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

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

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

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

Техническим лидером проекта выступил Ярослав Капустин, программист отдела web-разработки в «Финаме»:

«Вся команда стремилась создать не просто внутренний продукт, а нечто действительно удобное. Каждый внес свой бесценный вклад: кто-то писал код, делился впечатлениями, предлагал улучшения, ругал нас. Вместе мы прошли через взлеты и падения. Еще хочу сказать спасибо своим родным. И, конечно, отдельная благодарность Евгению Авдееву, Микаэлу Даниеляну и Максиму Мануйлову! Они собрали нашу команду разработчиков и вдохновили ее».

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

CrossConf Awards — это корпоративная премия, присуждаемая за лучшие практики развития кроссплатформенной разработки в России. Экспертный совет премии состоит из профессионалов отрасли и отбирает лучшие примеры разработки кроссплатформенных решений, внедрения инноваций, выпуска полезных блогов и подкастов. Номинации разделены на несколько категорий: Technology, Industry и Community.

Теги:
Всего голосов 10: ↑10 и ↓0+12
Комментарии0

Информация

В рейтинге
349-й
Работает в
Зарегистрирован
Активность

Специализация

UI/UX дизайнер, Веб дизайнер