Pull to refresh
0
0
Send message

Пять простых шагов для понимания JSON Web Tokens (JWT)

Reading time5 min
Views673K

jwt


Представляю вам мой довольно вольный перевод статьи 5 Easy Steps to Understanding JSON Web Tokens (JWT). В этой статье будет рассказано о том, что из себя представляют JSON Web Tokens (JWT) и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments60

Flutter: Все способы защиты данных

Reading time9 min
Views15K

Как обезопасить приложение на Flutter? Все способы обеспечения безопасности данных.

Сложность: Новичок

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

Читать далее
Total votes 7: ↑4 and ↓3+1
Comments5

Иностранные хостеры с возможностью оплаты из России

Reading time4 min
Views112K

Всем привет! Меня зовут Леонид, я владелец сервиса Поиск VPS. В последнее время мне в обратную связь начало поступать очень много вопросов, каким образом можно оплачивать зарубежный хостинг, так как Visa и MasterCard Российских банков перестали работать не в России.

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

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

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

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

Flutter: как мы выбирали навигацию для мобильного приложения?

Reading time11 min
Views25K

Flutter вышел в стабильной версии в 2018 году. Все это время он активно развивался: появилась поддержка Null safety, расширились возможности по темизации и локализации приложений, добавилось огромное количество новых виджетов. Одно из таких нововведений — Navigator 2.0, выпущенный Flutter осенью 2020 года. Это гибкий инструмент для решения непростой задачи навигации в мобильных приложениях. Разработчики начали применять Navigator 2.0, но столкнулись с трудностями и проблемами, о которых говорили команде Flutter в официальном репозитории, предлагая упростить использование инструмента. Самым подробным материалом по новому подходу является статья в блоге Flutter, но и ее мало для того, чтобы начать работать с Navigator 2.0 в продакшен-приложениях.

Хочу знать больше
Total votes 14: ↑13 and ↓1+13
Comments17

Sliver во Flutter, или как работает скролл

Reading time11 min
Views19K

Если вы уже встречались со сливерами, то наверняка оценили всю «прелесть» работы с ними. На самом деле они совсем не так трудны и ужасны.

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

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

15 отличных Телеграм-каналов для поиска работы на удаленке

Reading time3 min
Views315K

С 2005 года спрос на удаленную занятость вырос на 140%. Очевидно, что эта тенденция будет продолжаться. Сегодня вакансии на удаленку можно найти и на job-бордах, и в социальных сетях, но мне ближе Телеграм-каналы. Делюсь с вами своей подборкой. Дополнения в комментариях приветствуются)

Читать далее
Total votes 11: ↑5 and ↓60
Comments5

Домашний веб-сервер для чайников

Reading time14 min
Views277K

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

В своё время домашний сервер очень облегчил бы мне понимание Docker’а, да и удобство работы с ним неслабо бы повысил. Поэтому возникла идея написать эту статью, после прочтения которой любой человек даже с поверхностными знаниями в информационных технологиях сможет поставить себе постоянно доступный домашний сервер на базе Docker Swarm с удобной веб-мордой, простым получением TLS-сертификатов и Heroku-подобным функционалом (для чего будем использовать PaaS CapRover). 

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

Читать далее
Total votes 24: ↑22 and ↓2+23
Comments29

Тысячная статья про принципы SOLID

Reading time3 min
Views27K

Ещё будучи совсем-совсем начинающим разработчиком, я услышал про принципы SOLID и, конечно же, совершенно их не понял. Их не помогли понять ни лекции Дядюшки Боба, ни книга его же авторства, не несколько десятков (а то и сотен) статей в интернете, которые я тогда прочитал (по какой-то причине мне эти принципы казались чем-то очень важным, прямо-таки фундаментальным). Сейчас я могу сказать, что понимаю их как-то, по-своему, и пользуюсь ими каждый день. В данной короткой статье хочу поделиться своими размышлениями о сути принципов, которые были бы понятны тому мне из прошлого, который пытался загуглить доступное объяснение этих принципов.

Читать далее
Total votes 32: ↑21 and ↓11+13
Comments36

Секреты запуска Flutter в production. Создаем IT-верфи

Reading time30 min
Views16K


Про нас


Привет! Мы Даниил Левицкий и Дмитрий Дронов, мобильные разработчики компании ATI.SU — крупнейшей в России и СНГ Бирже грузоперевозок. Хотим поделиться с вами своим видением разработки приложений на Flutter.


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


Ссылка на шаблон и детали реализации под катом.

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

SSL pinning во Flutter

Reading time7 min
Views11K
Всем привет! Меня зовут Михаил Зотьев, я Flutter-разработчик и тимлид в Surf.

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

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


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

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

Reading time15 min
Views426K
Превращаем круги в блоки

­­ 


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

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

Инструкция: как написать собственный GitHub Action на Dart

Reading time4 min
Views3.3K

Привет! Меня зовут Дмитрий Круцких, я Flutter-тимлид в компании Surf. Сегодня расскажу, как написать простейший GitHub Action, используя язык программирования Dart. 

Читать далее
Total votes 6: ↑3 and ↓30
Comments0

Dart: Быстрые неизменяемые коллекции

Reading time7 min
Views5.4K

Привет! Представляю вашему вниманию перевод статьи про возможности пакета FIC(Fast Immutable Collections, Быстрые неизменяемые коллекции). FIC - конкурент для таких пакетов как built_collection и kt_dart, но он намного быстрее и проще в использовании.

Оригинал

Массивы, к которым вы, возможно, привыкли в других языках, в Dart называются списками (List), и они изменяемые по умолчанию - вы можете добавлять в них новые элементы, удалять и т.д.

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

Flutter Flavoring in a breeze

Reading time8 min
Views7.3K

Хотелось ли вам иметь несколько версий одного приложения?

Чтобы одной командой вы могли собрать приложение под определенное окружение?

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

Всем привет!

Меня зовут Андрей!

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

Читать далее
Total votes 9: ↑7 and ↓2+5
Comments1

Повышаем качество кода с Dart Code Metrics

Reading time8 min
Views7.5K

Dart Code Metrics — это инструмент статического анализа кода, который позволяет собирать метрики по коду и предоставляет дополнительные правила для анализатора. Основная задача — помогать разработчикам следить за качеством кода и улучшать его. В этой статье мы хотим поделиться возможностями инструмента с сообществом. Он помог нам в Wrike решить часть проблем на фронтенде, и, надеемся, поможет и вам.

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

Dart на сервере

Reading time5 min
Views8.6K

Недавно столкнулся с необходимостью написать REST API сервер на Dart. Оставим за рамками этой статьи почему и зачем это было надо, но первое с чем я столкнулся - выбор библиотек. Так уж сложилось, что я привык писать на NodeJS используя KoaJS в качестве веб сервера. Простая и удобная библиотека с кучей расширений для любой необходимости. А вот Dart в этом плане несколько подкачал. На момент поисков из "живых" пакетов на pub.dev был только shelf. Что-то отдаленно похожее, но по факту жутко неудобное. Неделю промучившись с оным, понял, надо писать свое, с блэкджеком... что-нибудь в стиле того же KoaJS.

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

Как работает Flutter

Reading time18 min
Views63K


Как Flutter работает на самом деле?


Что такое Widgets, Elements, BuildContext, RenderOject, Bindings?..


Сложность: Новичок


Вступление


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


Что же такое Widgets (виджеты), Elements (элементы), BuildContext? Почему Flutter быстрый? Почему иногда он работает не так, как ожидается? Что такое деревья и зачем они нужны?


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


Содержание:


Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments6

Как написать и опубликовать идеальный пакет для Flutter

Reading time8 min
Views5.9K

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

Перейти к делу
Total votes 13: ↑13 and ↓0+13
Comments7

Ускоряем Dart. Нативно, недорого

Reading time6 min
Views5.4K

Релиз Dart 2.12 принёс, помимо всего прочего, поддержку FFI в стабильной версии, что позволит относительно легко добавить биндинги к своим любимым библиотекам, которые используют сишный ABI для экспорта. А это в том числе и Rust, Go, Swift и другие.

Но какой ценой?
Total votes 6: ↑6 and ↓0+6
Comments5

Энтерпрайз разработка с нуля

Reading time21 min
Views10K


На днях у меня появилась довольно интересная идея для статьи, основанная на следующей предпосылке: на Хабре ни разу не рассказывали об организации энтерпрайз разработки "от и до". В плане совсем с нуля и хотя бы до комфортного минимума. За отправную точку я буду брать ситуацию полнейшего хаоса, когда какой-то код существует на машине единственного разработчика, нет системы контроля версий, нет тестовых сред, код объектов БД существует только внутри эталонной продуктивной базы данных, нет никаких процессов сборки и установки, контроля качества кода и так далее. Возможно читатель задастся вопросом "Такое бывает в 2020 году? Разве кто-то еще так разрабатывает?" и будете только отчасти правы. Предлагаю обсудить детали под катом.

Читать дальше →
Total votes 12: ↑10 and ↓2+10
Comments7

Information

Rating
Does not participate
Registered
Activity