Получи случайную криптовалюту за регистрацию!

Surf Flutter Team

Логотип телеграм канала @surf_flutter — Surf Flutter Team S
Логотип телеграм канала @surf_flutter — Surf Flutter Team
Адрес канала: @surf_flutter
Категории: Технологии
Язык: Русский
Количество подписчиков: 1.32K
Описание канала:

🛠 Разработали решения для KFC, Росбанка и Medium Quality.
📚 Делимся полезными материалами и обучаем стажёров.
🏄‍♂️ Surf — аккредитованная IT-компания.
💬 Чат → https://t.me/ Pzp8MViNYtI4NDli
📲 По вопросам @SurfAskBot
📥 Резюме: job-tg@surfstudio.ru

Рейтинги и Отзывы

3.67

3 отзыва

Оценить канал surf_flutter и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

2

3 звезд

1

2 звезд

0

1 звезд

0


Последние сообщения

2022-11-03 15:04:01 Особенности инкапсуляции в Dart

Привет! С вами Дима Шевченко, Flutter-разработчик Surf, и мы продолжаем серию постов про ООП.

Первый пост: что такое ООП

Сегодня поговорим про инкапсуляцию.

Инкапсуляция – свойство системы, позволяющее:

объединить данные и методы, работающие с ними, в классе.
скрыть детали реализации от пользователя,
открыть только то, что необходимо при последующем использовании.

Коммуникации в подвале дома, внутренности смартфона или автомобиля — так выглядит инкапсуляция в реальной жизни

Чтобы скрыть данные, во многих ООП-языках существуют модификаторы доступа:

publiс — к свойству и методу может получить доступ любой желающий;
private — к свойству и методу могут обращаться только методы данного класса;
protected — то же, что и private, только доступ получают и наследники класса в том числе.

В языке Dart отдельных модификаторов доступа нет

Приватность свойств и методов можно задать только на уровне файла. Приватными считаются все члены класса, чьё имя начинается с подчеркивания "_".

class Person {
final String _name;
final DateTime _birthday;

Person(this._name, this._birthday);

int getAge() => DateTime.now().difference(_birthday).inDays ~/ 365;
}

Для обозначения protected можно использовать аннотацию @рrotected из пакета meta: она предупреждает о неверном поведении, если использовать свойство вне наследника или родителя.

______
В следующих постах продолжим разговор про ООП: разберём особенности наследования, абстракции и полиморфизма в Dart
360 viewsedited  12:04
Открыть/Комментировать
2022-10-28 17:03:43 Чистая архитектура с Elementary

Для разработки Flutter-проектов мы используем внутреннее решение — библиотеку Elementary. Она опирается на архитектурный паттерн Model-View-ViewModel (MVVM).

Elementary помогает писать приложение по правилам Clean Architecture с разделением модулей на чёткие блоки согласно ответственностям:
UIхранится в ElementaryWidget,
бизнес-логикав ElementaryModel,
презентационная логикав WidgetModel (WM).

Благодаря такому разделению код становится проще для восприятия и тестирования.

Подробнее об Elementary читайте в статье «Elementary: новый взгляд на архитектуру Flutter-приложений»
Сам пакет Elementary доступен на pub.dev

Уже знакомы с Elementary? Как впечатления?
754 views14:03
Открыть/Комментировать
2022-10-18 15:09:21 ООП в Dart: особенности реализации

Давайте поговорим про Dart — язык, на котором пишут все Flutter-разработчики.

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

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

Итак, Dart — объектно-ориентированный язык программирования (ООП) с сильной статической типизацией и поддержкой обобщённого программирования.

Что всё это значит

ООП — методология программирования, основанная на представлении программы в виде совокупности объектов: каждый является экземпляром определённого класса, а классы образуют иерархию наследования.

Сильная типизация. Язык не позволяет смешивать в выражениях различные типы и не выполняет автоматические неявные преобразования: например, нельзя прибавить к строке число.

Статическая типизация. Конечные типы переменных и функций устанавливаются на этапе компиляции: компилятор на 100% уверен, где какой тип находится.

Четыре основных принципа ООП

• инкапсуляция,
• наследование,
• абстракция,
• полиморфизм.

Объектно-ориентированное программирование в рамках Dart хоть и похоже на ООП в C++, C#, Java или Kotlin, но имеет некоторые особенности, о которых мы расскажем в следующих постах.
989 views12:09
Открыть/Комментировать
2022-10-13 14:30:34
Power Mode II: когда надо показать коду, кто тут главный

Самое лучшее я оставил напоследок

Power Typer — плагин, создающий взрывы и спецэффекты при наборе, вставке или изменении кода в редакторе.

Бывает полезно для лайв-кодинга или парного программирования: с и на экране тяжело отвлечься даже от скучного рефакторинга. А ещё эффекты помогают следить за местоположением курсора.

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

На этом я завершаю мою небольшую подборку. Всем спасибо за прочтение.

А какими плагинами пользуетесь вы? Делитесь обязательно в комментариях
954 views11:30
Открыть/Комментировать
2022-10-13 14:29:53
Flutter Enhancement Suite — упрощение работы с зависимостями для Flutter

Не мог обойти вниманием этот замечательный плагин. Основная его фича — выдавать подсказки, какие конкретно библиотеки в pubspec.yaml обновились и что требует повышения версии.

Также он выдаёт контекстные подсказки, какие плагины существуют с похожим названием: это значительно упрощает добавление новых зависимостей в проект.
662 views11:29
Открыть/Комментировать
2022-10-13 14:29:04
Atom Material Icons: иконки — просто космос

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

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

В общем, повышение читаемости и лёгкость навигации в коде — однозначно плюс.
585 views11:29
Открыть/Комментировать
2022-10-13 14:28:30
String Manipulation: изменение строк

Зачастую приходится рефакторить строковые данные, и нет ничего хуже, чем необходимость вручную перебирать форматы: camel case в snake case или наоборот.

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

Здесь на помощь приходит String Manipulation — плагин, позволяющий совершать десятки превращений строковых данных. Это, несомненно, сохраняет время и рассудок.
516 views11:28
Открыть/Комментировать
2022-10-13 14:27:54
KeyPromoter X: больше шорткатов богу шорткатов

Скажу честно, мне очень нравятся комбинации клавиш. С их помощью я могу очень быстро совершать рутинные задачи: навигацию в IDE, манипуляцию с файлами, дебаггинг приложения и многое другое. Если какую-то комбинацию пропустил, плагин подскажет о её существовании. Очень просто, а главное — полезно
513 views11:27
Открыть/Комментировать
2022-10-13 14:27:00 Пять плагинов для продуктивного написания кода

Всем привет

Меня зовут Иван Таранов, я Flutter-разработчик в Surf. Сегодня расскажу, как улучшить пользовательский опыт работы в IDE и повысить продуктивность при написании кода с помощью плагинов.

В посте разберём плагины для Android Studio: это та среда, которой я пользуюсь. Но аналоги этих инструментов присутствуют и в VS Code.

Поговорим о:
Шорткатах с помощью KeyPromoter X
Изменении строк с помощью String Manipulator
Кастомизации иконок с помощью Atom Material Icons
Упрощении работы с зависимостями с помощью Flutter Enhancement Suite
Спецэффектах с помощью Power Mode II
568 viewsedited  11:27
Открыть/Комментировать
2022-09-21 16:56:40 Как оценивать задачи. Часть 3: таблица временных затрат

Обратить на колонки с заголовками Story point.

Первая колонка (1 Story point) рассчитывается по формуле, которая описана в методике PERT: (a + 4m + b) / 6

a – минимальное время, m – предполагаемое время, b – максимальное время

Во второй и третьей колонке значения умножаются на 1,5 и 3 соответственно.

Поскольку компоненты могут иметь различный уровень сложности, к отдельному взятому компоненту можно указать дополнительный коэффициент от 1 до 3 в зависимости от сложности. Таким образом, значение веса по времени будет выбираться из соответствующей колонки Story point.

Осталось внести все данные в специальную таблицу. По итогу вышло, что примерное время реализации экрана из первого поста составляет 55 часов.

Расскажите, а как вы подходите к оценке задач?
1.0K views13:56
Открыть/Комментировать