Pull to refresh
74
0
Alex Awaikin @awaik

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

Send message

Интеграция нативных SDK во Flutter-приложение

Reading time 9 min
Views 1.9K

Мир мобильной разработки постоянно меняется. В поиске эффективных решений разработчики пошли по пути новых технологий и интеграций. Одним из самых ярких маяков на этом пути стал Flutter — набор инструментов пользовательского интерфейса от Google, который позволяет пользователям создавать нативно скомпилированные приложения для веб, mobile и desktop с единой кодовой базой.

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

Читать далее
Total votes 19: ↑17 and ↓2 +15
Comments 1

Паттерны проектирования в Dart

Reading time 17 min
Views 20K

В последние годы растет популярность фреймворка для кроссплатформенной разработки приложений Flutter, а вместе с ним вторую жизнь получил и язык программирования Dart. Dart создавался как потенциальная замена JavaScript и мог бы занять нишу, которая сейчас принадлежит TypeScript, но по ряду причин он так и оставался длительное время "одним из проектов Google", который не был оценен ни для использования в web (после транспиляции в JavaScript), ни для создания серверных или десктопных приложений.

При этом компилятор Dart создает оптимизированный высокопроизводительный код для основных операционных систем и может также использоваться для компиляции в другие аппаратные архитектуры (например, для микроконтроллеров) и, в целом, Dart может использоваться как язык общего назначения для создания серверных приложений (Shelf, Aqueduct), устройств умного дома (с целевой платформой ARM и пакетом dart_periphery) и, конечно, десктопных, мобильных и веб-приложений (Flutter).

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

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

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

Reading time 30 min
Views 15K


Про нас


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


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


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

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

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

Reading time 6 min
Views 15K

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

Предпосылкой для написания этого мануала, стал личный опыт участия в создании видеороликов, в которых главное действующее лицо —  руководитель бизнеса. Как правило, это ролики для сайта компании или для видео рекламы в Instagram и YouTube. У меня было опыт записи роликов как самостоятельно, так и с командой профессиональных видеографов.

Скажу сразу: после прочтения, вы можете передумаете делать всё самостоятельно, но поймёте нюансы съемочного процесса. Я уверен, что, двигаясь шаг за шагом, вы справитесь.

Читать далее
Total votes 8: ↑6 and ↓2 +4
Comments 5

Flutter + Socket.io — Обмен информацией в режиме реального времени

Reading time 7 min
Views 15K

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

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

Model-Widget-WidgetModel, или какой архитектурой пользуется Flutter-команда в Surf

Reading time 9 min
Views 9.1K

Привет, меня зовут Артём. Я руководитель Flutter-разработки в Surf и со-ведущий FlutterDev подкаста.


Flutter-отделу в Surf уже больше года. За это время мы сделали несколько проектов: от маленьких служебных, до полноценных е-коммерс и банкинга. Как минимум, многие из вас уже могли видеть приложение аптеки «Ригла». В статье я расскажу про недавно вышедший пакет mwwm — архитектуру, на которой построены все наши проекты.


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

WWDC 2021: новое и полезное для разработчика, ASO спецалиста, маркетолога мобильных приложений

Reading time 8 min
Views 2.5K
Приветствуем всех, кто так или иначе в свой работе зависит от маркета Apple. Мы собрали краткую информацию о том, что может быть полезно для разработчиков, ASO специалистов и маркетологов игр и мобильных приложений.



Подробности под катом.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Comments 0

DI в iOS: Complete guide

Reading time 24 min
Views 37K

Всем привет, меня зовут Виталий, я iOS-разработчик в юните мессенджера в Тинькофф. Сегодня поговорим о том, что такое DI, зачем он нужен, рассмотрим известные библиотеки для DI и сравним их между собой. Поехали!

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

1 год с Flutter в продакшне

Reading time 13 min
Views 19K

Это текстовая версия моей презентации на DartUp 2020 (на английском). В ней я делюсь проблемами, с которыми мы столкнулись, обсуждаю наш архитектурный подход, рассказываю о полезных библиотеках, ну и отвечаю на вопрос, удачной ли была эта идея – взять и всё переписать.

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

Flutter + чистая архитектура: разбираем на примере

Reading time 17 min
Views 70K

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

Чистая архитектура - это концепция построения архитектуры систем, предложенная Робертом Мартином - в миру "дядюшка Боб". Концепция предполагает построение приложения в виде набора независимых слоёв, что облегчает тестирование, уменьшает связность и делает приложение более простым для понимания.

Flutter - стремительно набирающий популярность фреймворк для разработки кроссплатформенных приложений. В списке поддерживаемых платформ - iOS, Android, web, в бете находится поддержка десктопа.

Под катом - рассказ о том, как построить flutter-приложение с использованием идей чистой архитектуры.

Читать далее
Total votes 26: ↑25 and ↓1 +24
Comments 36

Сервис на языке Dart: введение, инфраструктура бэкэнд

Reading time 8 min
Views 20K
Оглавление
1. Введение
2. Backend
2.1. Инфраструктура.
2.2. Доменное имя. SSL.
2.3. Серверное приложение на Dart.

3. Web
3.1. Заглушка «Under construction»

4. Mobile


Введение


Меня, Flutter-разработчика, знакомые часто спрашивают: «Что же такое язык Dart?». Качают головой со словами: «А вот Петя серьёзные транспорты на Java пишет, а в Яндексе вообще плюсы в проде...». Ну что ж, пожалуй, действительно, Dart далёк от практик «фабрик для создания фабрик» из Java. Однако если стоит задача реализовать клиентские приложения сразу для нескольких платформ, не утонув в потоке задач по синхронизации разработчиков разных целевых ОС; создать целостный UI, узнаваемый, но специфичный для Android, iOS и веб и в целом уложиться в адекватные бюджет и сроки, — здесь Flutter не имеет конкурентов. И эти вопросы стоят вдвойне если у вас… стартап.

Итак, легенда: некий стартап решил создать новый сервис… ну, например, для
обмена списками покупок
Такая себе идея для стартапа, я знаю, но если я выпущу ещё один ToDo лист в этот мир, мне будет стыдно :)
между пользователями сервиса. Цель стартапа — выпустить MVP за три месяца на трех платформах (плюс четвертая — сервер, конечно).

10 лет назад я бы сказал, что этот кейс не имеет решения и постарался бы держаться от него подальше, 3 года назад решением мог стать стек ReactNative/React/NodeJs, в 2020 году для этого есть Dart. Добро пожаловать в атмосферу разработки альфа версии сервиса, я постараюсь наглядно пройти и объяснить весь процесс разработки. Код всех приложений будет выложен в паблик. Комментарии, включая набросы и холивары, приветствуются. Спросить автора «по существу» или просто посоветоваться можно в Telegram канале нашего отдела.


Читать дальше →
Total votes 26: ↑22 and ↓4 +18
Comments 28

Как улучшить производительность вашего Flutter приложения

Reading time 13 min
Views 12K


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

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

Flutter: локализация приложений средствами Android Studio

Reading time 2 min
Views 8.2K


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


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


Речь идет о локализации при помощи flutter_i18n — плагина Android Studio, используя который удается избавиться от рутинной работы и шаблонного кода.

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

Как правильно читать состав косметики

Reading time 8 min
Views 81K


Ингредиенты перечисляются по понижению массовой доли: что ближе к началу, того больше по массе. Вещества, которых в составе менее 1% считаются равнозначными для этого списка, и их можно указывать после основных в любом порядке. В РФ по закону указывается всё без исключения (нет ситуации, когда при малом содержании можно пропускать вещество), и на практике это соблюдается. Почему — чуть ниже.

Нельзя писать «консервант» без указания, что это именно такое, нельзя писать «минеральный комплекс кислот» без детализации, что это такое, но можно писать коммерческие названия. То есть регистрируете свой минеральный комплекс кислот или консервант как товарный знак — и пишете уже его. Можно писать химические наименования или торговые, причём можно и латиницей, и на русском. В непонятных веществах, например, часто прячут то, что мнительные женщины не хотят увидеть на этикетке.
Читать дальше →
Total votes 84: ↑84 and ↓0 +84
Comments 115

Hive — быстрая локальная база для Flutter, Dart

Reading time 7 min
Views 35K

Примерно месяц назад общаясь с одним разработчиком приложения на Flutter встала проблема торможения обработки маленьких (в десятках тысяч) массивов данных на телефоне юзера.


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


Совсем не круто, когда список всего нескольких тысяч элементов, при удалении одного из них и далее записи в кеш или при поиске по кешу — начинает тормозить.


Решение есть! Hive — noSql база, написанная на чистом Dart, очень быстрая. Кроме этого плюсы Hive:


  • Кросс-платформенность — так как на чистом Dart и нет нативных зависимостей — mobile, desktop, browser.
  • Высокая производительность.
  • Встроенное сильное шифрование.

В статье мы посмотрим как использовать Hive и сделаем простое ToDo приложение, которое в следующей статье дополним авторизацией и синхронизацией с облаком.


Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Comments 29

Flutter. Асинхронность и параллельность

Reading time 11 min
Views 46K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Futures — Isolates — Event Loop" автора Didier Boelens об асинхронности и многопоточности в DartFlutter в частности).


TLDR: В целом, статья ориентирована на новичков и не изобилует откровениями. Если вы знакомы с механизмами Event Loop, Future и async/await (например, в JavaScript), корутинами в Кotlin, скорее всего, вы не найдёте для себя много нового. Однако, реализация многопоточности в виде механизма Изолятов имеет особенности.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 18

Анализ крови на железо — как контролировать уровень, диагностирование причин, почему это важно

Reading time 10 min
Views 89K

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


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


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


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

Коронавирусы: от SARS к 2019-nCoV

Reading time 11 min
Views 332K
image

Disclaimer: Я высказываю свое субъективное мнение на базе доступных данных. Мнение профессиональных вирусологов и эпидемиологов может отличаться от моего. В любой непонятной ситуации обращайтесь к материалам ВОЗ.

Привет, коллеги. Чем больше роюсь в данных по вспышке коронавируса 2019-nCoV, тем меньше мне нравится происходящее, с учетом предыдущих вспышек аналогичных вирусов. Предлагаю пробежаться по истории прошлых эпидемий и попробовать спрогнозировать дальнейшее течение.
Total votes 281: ↑273 and ↓8 +265
Comments 1974

Information

Rating
5,073-rd
Location
Berlin, Berlin, Германия
Registered
Activity