Открыть список
Как стать автором
Обновить
83.67
Рейтинг
SimbirSoft
Лидер в разработке современных ИТ-решений на заказ
Сначала показывать
  • Новые
  • Лучшие

Vue.js и слоистая архитектура: вынесение бизнес-логики в сервисы

SimbirSoftJavaScriptПрограммированиеООПVueJS

Когда нужно сделать код в проекте гибким и удобным, на помощь приходит разделение архитектуры на несколько слоев. Рассмотрим подробнее этот подход и альтернативы, а также поделимся рекомендациями, которые могут быть полезны как начинающим, так и опытным разработчикам Vue.js, React.js, Angular. 

В старые времена, когда JQuery только появился, а о фреймворках для серверных языков лишь читали в редких новостях, веб-приложения реализовывали целиком на серверных языках. Зачастую для этого использовали модель MVC (Model-View-Controller): контроллер (controller) принимал запросы, отвечал за бизнес-логику и модели (model) и передавал данные в представление (view), которое рисовало HTML. 

Объектно-ориентированное программирование (ООП) на тот момент только начинало формироваться, поэтому разработчики зачастую интуитивно решали, где и какой код надо писать. Таким образом, в мире разработки зародилось такое понятие, как «Божественные объекты», которые первоначально отвечали практически за всю работу отдельных частей системы. Например, если в системе была сущность «Пользователь», то разработчику следовало создать класс User и в нем писать всю логику, так или иначе связанную с пользователями. Без разбиения на какие-то ещё файлы. И если приложение было большим, то такой класс мог содержать тысячи строк кода.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры5.3K
Комментарии 24

Фоновая работа в Android: обзор возможностей WorkManager

SimbirSoftРазработка мобильных приложенийРазработка под Android

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

Например, в ритейле мерчендайзерам бывает необходимо в конце каждого рабочего дня отправлять фотоотчеты на сервер и удалять их из памяти телефона, чтобы не занимать место. А для работы онлайн-кассы требуется в фоновом режиме загружать актуальный справочник товаров. В этой статье мы рассмотрим один из самых популярных инструментов для реализации фоновой работы – WorkManager из Android Jetpack. 

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры3.7K
Комментарии 4

Удаленка по новым правилам: 13 вопросов и ответов

SimbirSoftЗаконодательство в ITКарьера в IT-индустрииIT-компанииУдалённая работа

Как изменилась «удаленка» в 2021 году, после поправок в Трудовом кодексе – делимся нашим опытом. Как и многие в отрасли, мы остаемся на удаленке – для этого адаптировали к онлайну все процессы и взаимодействия в команде из 1000+ специалистов. Параллельно перестраиваем IT-офисы, вносим много изменений для будущей совместной работы. Рассмотрим правовой аспект и ответим на частые вопросы в статье, подготовленной нашей юридической службой.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры3.8K
Комментарии 0

Как реализовать таб-бар с нестандартной кнопкой: CAShapeLayer и UIResponderChain

SimbirSoftРазработка под iOSРазработка мобильных приложений

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

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры1.6K
Комментарии 10

С чего начать изучение Flutter в 2021 году

SimbirSoftРазработка мобильных приложенийFlutter
Перевод

Как и многие мобильные разработчики, мы с нетерпением ждали презентации Flutter и теперь хотим поделиться с читателями Хабра переводом статьи Tadas Petra о том, как можно выстроить свое обучение, если вы хотите познакомиться с Flutter и кроссплатформенными приложениями в 2021 году. Кстати, мы подключились к созданию курса Flutter, и об этом тоже расскажем в конце статьи. Приглашаем прочитать или посмотреть видеоверсию!

2021 год обещает быть очень важным для Flutter. Комьюнити разработчиков продолжает стремительно расти, а 3 марта 2021 года состоялась презентация Flutter Engage. Это делает потенциал Flutter поистине огромным.

Однако, чем более популярным становится фреймворк, тем больше людей хотят его “пощупать” и иногда не знают, с чего же, собственно, начать? В данной статье автор постарался создать roadmap и описать несколько ресурсов, которые могут быть полезны для вас. 

Читать далее
Всего голосов 16: ↑11 и ↓5 +6
Просмотры6.6K
Комментарии 2

Kotlin Best Practices

SimbirSoftСовершенный кодРазработка мобильных приложенийРазработка под AndroidKotlin

Kotlin, созданный всего 5 лет назад, с 2019 года считается приоритетным языком программирования под Android. И все же этот язык достаточно молод и продолжает развиваться, поэтому иногда бывает непонятно, каким образом лучше написать код. У нас в команде часто бывают обсуждения на тему чистого Kotlin-кода, и на их основе мы составили свои best practices. Хотим поделиться этими рекомендациями и ждем ваших вопросов.

Ну что ж, приступим! В первую очередь, в Котлине много синтаксического сахара, и если им злоупотреблять, то читать такой код становится затруднительно. Следующие несколько пунктов можно отнести к борьбе между краткостью и читаемостью

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры7K
Комментарии 10

Как найти подходящую абстракцию для работы со строками в Android

SimbirSoftРазработка мобильных приложенийПроектирование и рефакторингРазработка под AndroidKotlin
Перевод

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

Если вы работаете над большим Android-приложением и предполагаете, что в коде может появиться путаница в работе с ресурсами из разных источников, или если хотите упростить написание тестов в отношении строк, то эта статья может быть вам полезна. Переводим с разрешения автора.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Просмотры2.1K
Комментарии 3

Оценка трудозатрат в веб- и мобильных проектах

SimbirSoftПрограммированиеУправление разработкойУправление проектами

Бывают ситуации, когда компании-заказчику нужно рассчитать сроки реализации IT-проекта как можно быстрее – например, на старте переговоров с инвесторами. Однако, даже быстрая оценка должна содержать все предстоящие трудозатраты: на разработку, тестирование, управление и возможные риски – рисковый резерв. В этой статье мы рассмотрим процесс оценки на примере веб- и мобильных проектов. 

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры3K
Комментарии 4

Тестирование в Puppeteer vs Selenium vs Playwright: сравнение производительности

SimbirSoftТестирование IT-системТестирование веб-сервисовУправление разработкой
Перевод

Ранее мы уже писали о том, когда бывает нужна автоматизация тестирования и какие проверки при этом используют. Сегодня предлагаем обсудить использование инструментов на практике и оценить их производительность. С разрешения Giovanni Rago – автора серии полезных материалов о тестировании – мы перевели его статью «Puppeteer vs Selenium vs Playwright: сравнение скорости» (Puppeteer vs Selenium vs Playwright, a speed comparison). Статья будет интересна тем, кто задумывается о выборе подходящего инструмента автоматизации в своих проектах.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Просмотры3.5K
Комментарии 0

Сентимент-анализ. Определяем эмоциональные сообщения на Хабре

SimbirSoftData MiningМашинное обучениеNatural Language Processing

Анализ тональности текста (или сентимент-анализ) – одна из задач, с которыми работают специалисты Data Science. С помощью такого анализа можно изучить массив сообщений и иных данных и определить, как они эмоционально окрашены – позитивно, негативно или нейтрально.

Рассмотрим, как это работает – проанализируем ряд статей на основании датасета Linis Crowd. Предлагаем определить, какие модели наиболее перспективны, например, для разработки всевозможных сервисов мониторинга. В качестве предметной области выберем статьи технического характера (например, на Хабре), что может быть полезно для реализации автоматического сбора мнений.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры1.8K
Комментарии 2

Как безболезненно мигрировать с RxJava на Kotlin Coroutines+Flow

SimbirSoftРазработка мобильных приложенийРазработка под Android
Для выполнения асинхронных операций в Android-приложениях, где нужна загрузка и обработка любых данных, долгое время использовали RxJava — и о том, как перейти на RxJava 3, мы уже писали в нашем блоге. Сейчас на смену фреймворку постепенно приходят инструменты Kotlin — Coroutines+Flow. Актуальность этой связки подтверждается тем, что Google сделал Kotlin приоритетным языком для Android-разработки. 

Корутины позволяют тратить меньше системных ресурсов, чем RxJava. Кроме того, поскольку они являются частью Kotlin, Android предоставляет удобные инструменты для работы с ними — например, viewModelScope и lifecycleScope. В этой статье мы рассмотрим use cases, распространенные в Rx Java, и то, какие возможности вы получите при переходе на Flow.

Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры5.8K
Комментарии 2

Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android

SimbirSoftРазработка под AndroidSQLiteKotlin
Полнотекстовый поиск необходим в приложениях для того, чтобы быстро находить совпадения в большом объеме данных. Такая возможность удобна, например, для поиска товаров, фильмов, рецептов, научных статей, а также фрагментов текста в электронных книгах. Хотя зачастую поиск реализуют на сервере, иногда бывает необходимо работать в оффлайне, повысить отзывчивость мобильного приложения, избежав задержек при взаимодействии с сервером. В таких случаях используют полнотекстовый поиск — Full-Text Search.

В этой статье рассмотрим особенности полнотекстового поиска в Android с использованием FTS3, FTS4 и FTS5. Статья будет наиболее полезна для читателей, знакомых с Android и SQLite.

Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры2.3K
Комментарии 2

Как создавать гибкие списки: обзор динамического UICollectionView – IGListKit

SimbirSoftРазработка под iOSРазработка мобильных приложений
Коллекции есть во многих мобильных приложениях – например, это могут быть списки публикаций в соцсети, рецепты, формы обратной связи и многое другое. Для их создания часто используют UICollectionView. Для формирования гибкого списка нужно синхронизировать модель данных и представление, но при этом возможны различные сбои.

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

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры1.3K
Комментарии 0

Тестируем комплементарную кросс-энтропию в задачах классификации текста

SimbirSoftМатематикаМашинное обучение
Ранее в этом году И. Ким совместно с соавторами опубликовали статью [1], в которой предложили новую функцию потерь для задач классификации. По оценке авторов, с её помощью можно улучшить качество моделей как в сбалансированных, так и в несбалансированных задачах классификации в сочетании со стандартной кросс-энтропией.

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

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

Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Просмотры1.4K
Комментарии 0

Виды биометрии в мобильном приложении

SimbirSoftИнформационная безопасностьРазработка под iOSРазработка мобильных приложенийРазработка под Android
Для идентификации пользователя в приложении можно использовать биометрию – например, сканеры радужной оболочки глаза, геометрии лица или отпечатка пальца. Хотя эти технологии известны и популярны, у начинающих разработчиков из-за недостатка информации до сих пор возникают те или иные вопросы.

Рассказываем о трех основных способах «узнать» пользователя, действительно ли злоумышленники могут обмануть камеру, «как в кино», и что общего между аутентификацией и игрой «Найди 10 отличий». Надеемся, что эти наблюдения будут полезны для тех разработчиков, которые начинают изучать возможности iOS и Android.

Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры3.6K
Комментарии 0

5 мифов о тимлидах. Как стать тимлидом и избежать ошибок

SimbirSoftУправление разработкойУправление проектамиУправление персоналомКарьера в IT-индустрии
Привет, Хабр! Один из «вечных» споров в IT – о том, как развиваться разработчику: прокачивать хардскиллы или навыки управленца? Если и вы задаете себе этот вопрос, давайте вспомним 5 известных мифов о работе тимлида – и конечно, сравним их с реальностью.
Читать дальше →
Всего голосов 11: ↑3 и ↓8 -5
Просмотры4.3K
Комментарии 0

Big Stream: отвечаем онлайн, как стать разработчиком-сеньором и в чем прокачаться

SimbirSoftУчебный процесс в ITУправление персоналомКарьера в IT-индустрииКонференции
Опытный разработчик, новичок, тимлид – что у них общего? Возможно, вопросы, которые все задают себе. Например, если вы разработчик – какие hard skills нужны, чтобы развиваться как Middle+, Senior, архитектор, тимлид, пресейл или ментор. Для начинающих – с чего именно стартовать и как расти в IT, выбирать между старыми и новыми инструментами.

Делимся примерами, какие этапы роста проходят разработчики и какие навыки, знания технологий, фреймворков, библиотек и языков нужны на каждом из них. Мы проводим Big Stream – трансляцию по 4 потокам: хард- и софтскилы, менеджмент и начало карьеры. Готовим 22 полезных мини-доклада. Если эти вопросы вам близки, приглашаем к обсуждению в Zoom.

«Иногда начинать новое дело, или даже пробовать новую роль – все равно что без карты идти в лес. Есть риск запутаться. Я думаю, что у каждого разработчика бывают моменты, когда хочется посоветоваться с коллегами о том, в чем прокачаться. В этом мы готовы помочь – подключайтесь в Zoom», – советует идеолог Big Stream, один из самых опытных менторов SimbirSoft Олег Власенко.

Читать дальше →
Всего голосов 1: ↑0 и ↓1 -1
Просмотры3.2K
Комментарии 0

Как реализовать динамическую диаграмму для Vue на основе SVG

SimbirSoftCSSJavaScriptРабота с векторной графикойVueJS
Бывает, что на сайте, в корпоративной IT-системе или другом ПО нужно отображать круговые диаграммы с какими-либо данными. Например, это может быть таймер для отсчета времени или индикатор, сколько товаров продано в той или иной категории. Если это статическое изображение, конечно, можно обойтись форматом svg, png или gif. Однако, зачастую нужно показать данные в динамике – например, для мониторинга или просто для привлечения внимания пользователей, для создания красивой анимации при загрузке сайта. Делимся примером, как можно построить диаграмму из элементов SVG с помощью JS и CSS.

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры3.4K
Комментарии 0

31 октября приглашаем на офлайн-митап по тестированию HOT QA в Краснодаре

SimbirSoftТестирование IT-системТестирование веб-сервисовКарьера в IT-индустрииКонференции
Всем привет! Мы продолжаем серию митапов в Краснодаре по всем направлениям разработки. 31 октября приглашаем IT-специалистов, которые занимаются тестированием и обеспечением качества (QA), на наш офлайн-митап HOT QA с соблюдением всех мер безопасности.

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры409
Комментарии 0

29 октября приглашаем на онлайн-митап Hot Java

SimbirSoftПрограммированиеJavaКонференцииМикросервисы
Всем привет! Если вы занимаетесь разработкой на Java и хотите обсудить кейсы из практики ─ подключайтесь к новому онлайн-митапу Hot Java! Наши разработчики представят несколько докладов, поделятся опытом и ответят на вопросы. Участие бесплатное, а самые интересные вопросы мы по традиции отметим подарками. Ждем вас!

Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры1K
Комментарии 0

Информация

Дата основания
Местоположение
Россия
Сайт
www.simbirsoft.com
Численность
1 001–5 000 человек
Дата регистрации

Блог на Хабре