Как стать автором
Обновить
74
0
Alex Awaikin @awaik

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

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

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

Время на прочтение9 мин
Количество просмотров2.2K

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

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

Читать далее
Всего голосов 19: ↑17 и ↓2+15
Комментарии1

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

Время на прочтение17 мин
Количество просмотров21K

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

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии6

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

Время на прочтение30 мин
Количество просмотров16K


Про нас


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


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


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

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

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

Время на прочтение6 мин
Количество просмотров15K

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

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

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

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии5

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

Время на прочтение7 мин
Количество просмотров15K

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

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

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

Время на прочтение9 мин
Количество просмотров9.2K

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


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


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

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

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



Подробности под катом.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

DI в iOS: Complete guide

Время на прочтение24 мин
Количество просмотров38K

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

Читать далее
Всего голосов 29: ↑29 и ↓0+29
Комментарии7

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

Время на прочтение13 мин
Количество просмотров19K

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

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии45

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

Время на прочтение17 мин
Количество просмотров71K

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

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

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

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

Читать далее
Всего голосов 26: ↑25 и ↓1+24
Комментарии36

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

Время на прочтение8 мин
Количество просмотров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 канале нашего отдела.


Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии28

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

Время на прочтение13 мин
Количество просмотров13K


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

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

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

Время на прочтение2 мин
Количество просмотров8.2K


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


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


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

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

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

Время на прочтение8 мин
Количество просмотров81K


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

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

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

Время на прочтение7 мин
Количество просмотров36K

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


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


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


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


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

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


Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии29

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

Время на прочтение11 мин
Количество просмотров46K

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


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

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

Время на прочтение10 мин
Количество просмотров89K

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


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


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


Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии12

Implement stories in the Flutter app

Время на прочтение1 мин
Количество просмотров4.7K

Nowadays, stories, like on Instagram, widely uses in apps for displaying news, educational content, and interactions with users.


I created a new plugin that allows implementing full story functionality with only few lines of code.


Read more →
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

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

Время на прочтение11 мин
Количество просмотров332K
image

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

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

Информация

В рейтинге
Не участвует
Откуда
Berlin, Berlin, Германия
Зарегистрирован
Активность