Дневник Flutter-разработчика
3.1K subscribers
323 photos
22 videos
10 files
290 links
Описание моего пути мобильного разработчика с нуля до junior, middle, senior
Download Telegram
17/8/2022

Работа:


+9,25 ч.
Переделал реализацию под новый макет от дизайнеров. Здорово повозился с ToggleButtons(нужно было, чтоб по тапу выделялась одна кнопка из нескольких) и кастомным AlertDialog

Свой проект:

+ 0 ч.
Пока так же не выходит уделять время)

Английский язык:

+40 минут
Duolingo и приложение Memrise

Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 ч. (всего - 4,30)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 14 дней)

- зарядка утром +1 (всего - 15 дней)

- силовая тренировка через день +0 (всего - 10 дней)

- прогулки на свежем воздухе - сегодня был занят, времени не хватило

- отказ от сахара, мучного и фастфуда +1 (всего - 11 дней)
18/8/2022

💻Работа:


+9,44 ч.
Завершил ту большую задачу, сделал pull request:)
Начал делать две новые задачи по фиксу багов. Планирую завершить их завтра до утреннего созвона

Заказывал компьютерное кресло. Сегодня оно приехало.
ThunderX3 TC5 (скрин)
Смотрится отлично, сидеть в нем комфортно:)

Так же недавно приобрел студийный микрофон, чтоб звук был качественнее(частые созвоны). Покупкой очень доволен, рекомендую👍
Здесь он на 2 месте топа - Ritmix RDM-169
https://audiotop.ru/ratings/luchshie-mikrofony-dlya-pk#2-ritmix-rdm-169
Стоит недорого - 2500

P.S. Прошли собесы с подписчиками, которые хотели попасть на стажировку. Ребят, отпишите в лс как прошло, интересно:)

🧑‍💻Свой проект:

+ 0 ч.
Пока так же не выходит уделять время)

📚Английский язык:

+45 минут
Duolingo и приложение Memrise

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 ч. (всего - 4,30)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 15 дней)

- зарядка утром +1 (всего - 16 дней)

- силовая тренировка через день +1 (всего - 11 дней)

- прогулки на свежем воздухе - 4000 шагов. Гуляю в лесу:)

- отказ от сахара, мучного и фастфуда +0 (всего - 11 дней)
19/8/2022

💻Работа:


+10,44 ч.
Получил ревью на свой pull request. Много всего интересного. Переделывал большую часть времени)

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

Закрыл еще одну задачу по фиксу бага

P.S. Один подписчик, проходя собес на стажировку, устроился в компанию джуном:)👍

🧑‍💻Свой проект:

+ 0 ч.
Пока так же не выходит уделять время)

📚Английский язык:

+30 минут
Duolingo и приложение Memrise

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 50 м. (всего - 5,20)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 16 дней)

- зарядка утром +1 (всего - 17 дней)

- силовая тренировка через день +1(отдых) (всего - 12 дней)

- прогулки на свежем воздухе

- отказ от сахара, мучного и фастфуда +0 (всего - 11 дней)
20/8/2022

Сегодня суббота - отдыхал от пк:)

📚Английский язык:

+10 минут (немного, но плюс)
Duolingo и приложение Memrise

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 1 ч. (всего - 6,20)
Узнал сегодня много нового из книги. Завтра оформлю, поделюсь:)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 17 дней)

- зарядка утром +1 (всего - 18 дней)

- силовая тренировка через день +0 (всего - 12 дней)

- прогулки на свежем воздухе - 12000 шагов:)

- отказ от сахара, мучного и фастфуда +1 (всего - 1 день)
21/8/2022

По большей части отдыхал от пк

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

📚Английский язык:

+ часов 8
смотрел сериал Shameless на англ.

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 40 м. (всего - 7ч.)
Интересное из книги:

- Функции должны быть компактными
- Функция должна выполнять только одну операцию
- Один уровень абстракции на функцию
- Название функции должно описывать, что она делает(глагол в начале - writeField, checkPassword и тд.)
- Длинное содержательное имя лучше короткого невразумительного
- Желательно, чтоб у функции было как можно меньше аргументов(сложно тестировать и это всё усложняет)

- Блоки try/catch рекомендуется выделять в отдельные функции

- Дублирование кода иногда считается корнем всего зла в программировании.
1. Увеличивает объем кода.
2. При изменении, придется вносить изменения во всех дубликатах
3. Вероятность ошибки возрастает (умножать на количество дублирования)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 18 дней)

- зарядка утром +1 (всего - 19 дней)

- силовая тренировка через день +1 (всего - 1 день)

- прогулки на свежем воздухе - 4000 шагов

- отказ от сахара, мучного и фастфуда +1 (всего - 2 дня)
22/8/2022

💻Работа:


+ 9, 44 ч.
Завтра должен быть долгожданный фидбек по завершению моего испытательного:)

В основном занимался фиксом ревью двух задач. Одну пока так и не дофиксил)

Наполовину сделал задачку по фиксу бага. Планирую завершить завтра до дейлика

🧑‍💻Свой проект:

+ 0 ч.
Пока так же не выходит уделять время)

📚Английский язык:

+ 1, 20 ч.
50 м. - сериал Shameless на англ.
30 м. - Duolingo

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 19 дней)

- зарядка утром +1 (всего - 20 дней)

- силовая тренировка через день +1(отдых) (всего - 2 дня)

- прогулки на свежем воздухе

- отказ от сахара, мучного и фастфуда +1 (всего - 3 дня)
Успешно прошел испытательный🥳

Почти дословная цитата: "Всем довольны. Здорово вырос с прихода в компанию. Есть мотивация и стремление развиваться." :)

Завершаю текущие задачи и будет большая, чтоб посмотреть, где пробелы и что нужно подтянуть:)
25/8/2022

💻Работа:


+ 9, 36 ч.
В основном занимался фиксом ревью и сделал две небольшие задачки

Была интересная задача, где нужно было внутри квадрата показывать прямоугольник(абстрактно). Размер должен меняться пропорционально родителю при масштабировании.
Уйму всего перепробовал и остановился на FractionallySizedBox()
Размеры остаются пропорционально, ничего никуда не съезжает при масштабировании)

🧑‍💻Что изучаю/сложности:

Столкнулся с 2 проблемами:
1. По ревью нужно избавиться от BlocBuilder, так как мне нужно получить от него всего одно значение
Но в таком случае теряется доступ к контексту и падает ошибка. Пробовал через getIt и provider, всё не то:)

2. Сложно описать, но нужно по тапу на кнопку выделять ячейку и менять по значению. Делал это через стейт StatefulWidget.
По ревью нужно вынести метод, сделать static. Сделал, потерял доступ к стейту) Нужно сделать через VoidCallback?

📚Английский язык:

+ 1, 10 ч.
сериал Shameless на англ.

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 20 дней)

- зарядка утром +1 (всего - 21 день)

- силовая тренировка через день +1 (всего - 2 дня)

- прогулки на свежем воздухе

- отказ от сахара, мучного и фастфуда +1 (всего - 4 дня)
26/8/2022

💻Работа:


Закрыл основную задачу и почти завершил еще одну небольшую:)

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

🧑‍💻Что изучаю/сложности:

Решение вчерашних 2 проблем:
1. Вначале избавился от BlocBuilder, заменив его на Builder. Сверху у меня был Provider, от которого и нужен был контекст(Builder дает доступ к контексту родителя).

Дальше по ревью мне сказали, что и провайдер не нужен😁 Тогда я прокинул context.read() в параметры и все:)

2. Проблема, где нужно было по новому передавать значение на кнопку.
Сделал через ValueChanged<T>, добавив в параметры:)

Поймал себя на том, что не понимаю, как работают некоторые вещи. Изучаю, как что работает.
Начал больше углубляться - появилась уйма вопросов:)

📚Английский язык:

+ 0, 40 ч.
сериал Shameless на англ.

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7ч.)

- встаю в 5 утра, ложусь к 10 вечера +-1(поздно лег) (всего - 20 дней)

- зарядка утром +1 (всего - 22 дня)

- силовая тренировка через день +1 (всего - 2 дня)

- прогулки на свежем воздухе

- отказ от сахара, мучного и фастфуда +1 (всего - 5 дней)
Если хотите сделать свой пет проект для резюме, но нет идей, макета и тз, ловите:)

Макет:
https://www.figma.com/file/KqZcU5m3GMxAHwgFkvCONz/ECOMMERCE?node-id=2%3A845

Тз:
https://docs.google.com/document/d/1VedkRcsN6yukGO2uWES4RuIM8KMtESZ8p7zD7nGySMs/edit?usp=sharing
29/8/2022

💻Работа:


Пофиксил ревью текущих задач, сделал одну небольшую задачу по фиксу бага и почти завершил еще одну

Задачу по фиксу бага сам завел. Когда занимался другой задачей, заметил баг по неправильному отображению. Написал лиду, завел задачу:)

Завтра собеседование внутри компании😁

🧑‍💻Что изучаю/сложности/интересное:

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

У меня он был немного выше

P.S. В выходные отдыхал от пк:)

📚Английский язык:

+ 1, 36 ч.
сериал Shameless на англ.

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 44 м. (всего - 7,44ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 21 день)

- зарядка утром +1 (всего - 23 дня)

- силовая тренировка через день +1 (всего - 3 дня)

- прогулки на свежем воздухе. Сегодня был дождь:)

- отказ от сахара, мучного и фастфуда +1 (всего - 6 дней)
30/8/2022

💻Работа:


Меня можно поздравить с ачивкой - впервые одна из моих задач не прошла тестирование😅
Иконки не подгрузились на стейдж сборке. Массив был через lowercase, а нужен uppercase

🧑‍💻Что изучаю/сложности/интересное:

Сегодня было собеседование внутри компании. Цель - понять пробелы в знаниях, выявить слабые стороны:)

Из фидбека, что буду изучать(не теорию прочитать, а изучить:)) в ближайшее время:
- отличие create от value в BlocProvider
- как работают BlocBuilder, BlocConsumer, BlocListener
- императивная, декларативная навигация
- как работают методы push, pop, replace в Navigator
- работа FutureBuilder и StreamBuilder
- разобраться с регистрацией в getIt. singleton vs injectable vs lazySingleton и тд. Чем отличается регистрация

Буду делиться информацией по ходу изучения

P.S. Хорошо рассказал чистую архитектуру:)

📚Английский язык:

+ 0, 53 ч.
сериал Shameless на англ.

Если вы хотели начать изучать английский по сериалам/фильмам, то в puzzle-movies сейчас неплохие скидки: https://puzzle-movies.com/prices?code=pm1Sep22d50Jh

Основные плюсы площадки, которые я заметил:
- можно получить перевод слова или фразы при наведении на англ субтитры
- незнакомые слова можно сохранять в словарь и выгружать на телефон в приложения для запоминания
- приложение на телефоне и сервис на пк. Можно изучать в перерывы/обед-ужин на телефоне

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7,44ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 22 дня)

- зарядка утром +1 (всего - 24 дня)

- силовая тренировка через день +1(отдых - просто пресс) (всего - 4 дня)

- прогулки на свежем воздухе. Было несколько часовых созвонов. Не выбрался на улицу)

- отказ от сахара, мучного и фастфуда +1 (всего - 7 дней)
На четыре дня телеграм-канал Мерка @merkteam превратился в трибуну Flutter-разработчика из их команды.

Такой же формат, как в коллективном твиттере, только в телеграмме:

− Сергей пишет с чего начинал;
− почему сбежал от React Native;
− какие по его мнению есть справедливые и не очень претензии у нативных разработчиков к флаттеру.

Ивент уже идет, приходите читать и участвовать в дискуссии: https://t.me/merkteam
31/8/2022

💻Работа:


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

🧑‍💻Что изучаю/сложности/интересное:

Сегодня мне подсказали интересный кейс:

У меня была такая структура:
Row(
children: [
...[ ].map((e) =>
)
]
)

Через spread-оператор я добавлял список в список.
Если в списке только один spread-оператор и больше ничего, это лишняя операция копирования. Вариант достаточно запутанный, так как другой разработчик при чтении кода будет думать, что там еще что-то есть, пока не дойдет до конца списка

Решение:
final Iterable<String> yourList = [ ];
Row(
children:
yourList.map((e) =>
).toList()
)

У children убирается [ ], в конце приводим к .toList()
Заодно и массив лучше вынести отдельно:)

📚Английский язык:

+ 0, 38 ч.
сериал Shameless на англ.

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7,44ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 23 дня)

- зарядка утром +1 (всего - 25 дней)

- силовая тренировка через день +1 (всего - 5 дней)

- прогулки на свежем воздухе. 4000 шагов. Гуляю в лесу:)

- отказ от сахара, мучного и фастфуда +1 (всего - 8 дней)
1/9/2022

💻Работа:


+ 9, 24 ч.
Почти завершил небольшую задачу. Думал, что будет быстрее) Уперся в пару подводных камней, о них ниже

🧑‍💻Что изучаю/сложности/интересное:

Столкнулся с двумя проблемами в PopupMenuButton:

1. При наведении на нужный пункт - выделить другим цветом(скрин не мой, но суть отражает). Пока не нашел решение. Оборачивал в Theme, в Container, Inkwell с нужными параметрами. Inkwell вообще не отрабатывает почему-то

2. Данные в PopupMenuItem я беру с массива, по которому прохожу через .map
Структура такая
itemBuilder: (_) => myList
.map(
(e) => PopupMenuItem(
child: Row(
children: [
Text('$e'),
Icon

Я бы хотел поменять значения в 'e'. Например, мне приходит Екб, а я хочу выводить Екатеринбург.

Была основная идея - сделать через мапу ключ-значение. Но
PopupMenuItem
не обернуть для метода с мапой. Пока тоже не нашел решение)

📚Английский язык:

+ 0, 40 ч.
сериал Shameless на англ.

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7,44ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 24 дня)

- зарядка утром +1 (всего - 26 дней)

- силовая тренировка через день +1(отдых - пресс) (всего - 6 дней)

- прогулки на свежем воздухе. Сегодня дождь:)

- отказ от сахара, мучного и фастфуда +1 (всего - 9 дней)
2/9/2022

💻Работа:


+ 8, 45 ч.
Завершил вчерашнюю задачу, сделал Pull Request. Повозился с hover для выбранной ячейки и шириной PopupMenuItem. С шириной вопрос пока так и не закрыт. Она там почти не контролируется

🧑‍💻Что изучаю/сложности/интересное:

Как закрыл вчерашние вопросы с PopupMenuItem:

1. При тапе на нужный пункт - выделить другим цветом ячейку PopupMenuItem

Решение:
Сделал кастомный PopupMenuItem. В super добавил color. Теперь ячейка выделяется при нажатии в нужный цвет

2. Данные в PopupMenuItem я беру с массива, по которому прохожу через .map
Структура такая
itemBuilder: (_) => myList
.map(
(e) => PopupMenuItem(
child: Row(
children: [
Text('$e'),
Icon

Я бы хотел поменять значения в 'e'. Например, мне приходит Екб, а я хочу выводить Екатеринбург.

Решение:
Добавил мапу, куда в key кладу приходящие значения с листа
myMap = {myList[0] : Екатеринбург, и тд}

Получаю так:
itemBuilder: (_) => myList
.map(
(e) => CustomPopupMenuItem(
child: Row(
children: [
Text('${localeMap[e]}'),
Icon

Не думал о таком решении, спасибо, ребят👍

📚Английский язык:

+ 0, 28 ч.
сериал Shameless на англ.

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7,44ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 25 дней)

- зарядка утром +1 (всего - 27 дней)

- силовая тренировка через день. Перенесу на завтра (всего - 6 дней)

- прогулки на свежем воздухе. 3500 шагов

- отказ от сахара, мучного и фастфуда +1 (всего - 10 дней)
Forwarded from Product Friendly
Google представил Flutter 3.3 🎉

В обновлении:
✔️повышена производительность при обработке текста
✔️добавлены новые обновления для пакета go_router, DevTools
и кое-что еще.

По традиции наша Flutter-команда Friflex сделала первый перевод официального релиза фреймворка. Уже на VC.

Как вам обновление? Уже перешли на Flutter 3.3?
Делитесь в комментариях 👇🏻
6/9/2022

💻Работа:


Вчера дебажил задачу по фиксу бага. Нужно было разобраться в логике и понять проблему. Это заняло уйму времени, а решение было в добавлении пары символов. Брейкпоинты - наше все)

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

🧑‍💻Что изучаю/сложности/интересное:

Сегодняшняя задача усложнилась тем, что баг только на реальном устройстве. На моем redmi 11 этот функционал приложения вообще не отрабатывает(видимо я нашел еще один баг😊). Пришлось идти брать другой телефон для тестов

📚Английский язык:

+ 1, 09 ч.
сериал Shameless на англ.

Готов брать курс Яндекс.практикум по английскому. Наверное завтра:)

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7,44ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 26 дней)

- зарядка утром +1 (всего - 28 дней)

- силовая тренировка через день. +1 (отдых) (всего -7 дней)

- прогулки на свежем воздухе. 6000 шагов

- отказ от сахара, мучного и фастфуда +1 (всего - 11 дней)

- холодный душ утром. +1 (всего - 1 день). То еще челлендж😁 Так из зоны комфорта я еще никогда не выходил)
Крупнейшая конференция по кроссплатформенной разработке и трендам IT @crossconf уже на этой неделе!

📆9-10 сентября.
📍Иннополис (Казань), Технопарк им. А.С. Попова, Технопарк им. Н.И. Лобачевского.

🚀В программе конференции выделен отдельный поток по Flutter. Приходите, чтобы познакомится с командой разработчиков Яндекс Go и послушать панельную дискуссию по использованию фреймворка!

Что будет на CrossConf?
⭐️ 2 дня новых знаний и нетворкинга
⭐️ более 80 топовых спикеров и докладов
⭐️ 8 тематических потоков
🔥afterparty с живой музыкой и эксклюзивным IT-квизом от знатока «Что? Где? Когда?» Бориса Белозерова.

❗️Для всех подписчиков действует специальный промокод FlutterDev на скидку 15%
7/9/2022

💻Работа:


Разбирался со вчерашней задачей по дебагингу фичи

🧑‍💻Что изучаю/сложности/интересное:

Начал пользоваться Stack Trace. Здорово помогает👍 Совсем забыл про него.

По дебагингу пока еще не понял зачем debugger() и inspect

P.S. Кто-нибудь состоит в Вастрик клубе? Оплата не проходит с ру карты

📚Английский язык:

Завтра созвон с преподавателем Яндекс. практикум для определения моего уровня англ. языка и подбора курса:)

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7,44ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 27 дней)

- зарядка утром +1 (всего - 29 дней)

- силовая тренировка через день. +1 (всего - 8 дней)

- прогулки на свежем воздухе.

- отказ от сахара, мучного и фастфуда +1 (всего - 12 дней)

- холодный душ утром. +1 (всего - 2 дня)
8/9/2022

💻Работа:


Отдебажил задачу, пофиксил. Это заняло уйму времени, в конце я пришел к тому же выводу, к которому пришел в первые 5 минут дебагинга😁

Сделал небольшую задачу по фиксу верстки

🧑‍💻Что изучаю/сложности/интересное:


📚Английский язык:

Был созвон с преподавателем Яндекс.практикум. Созвон в зуме на пол часа.

Общие вопросы на русском - как изучал/изучаю язык, какой опыт, как оцениваю свой уровень, какие цели на изучение языка.

Дальше пошли вопросы на английском - как тебя зовут, откуда ты, чем занимаешься, какая погода за окном, сколько градусов. Углублялась в вопросы)

Мой уровень определили, как Pre-intermediate. Сказала, что словарный запас серьезный, но так как нет разговорной практики, слова находятся в пассиве и из-за этого говорю простыми предложениями.

Предложила курс за 10900, поапаться по ступеням. За год могу апнуть до b2
Я хотел сразу начать с разговорного, но мне предложили начать с комплексного подхода, так как "вам позвонит Моника из Калифорнии и вы пострессуете😁"

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

Моя цель на английский, о которой я сразу сказал на созвоне - валютная удаленка/иммиграция через год. Поэтому мне предложили такой план и апнуть в течение года мой уровень до b2:)

💪Баланс работа-остальные сферы:

- читаю Чистый код дядюшки Боба. + 0 м. (всего - 7,44ч.)

- встаю в 5 утра, ложусь к 10 вечера +1 (всего - 28 дней)

- зарядка утром +1 (всего - 30 дней)

- силовая тренировка через день. +1 (отдых) (всего - 9 дней)

- прогулки на свежем воздухе.

- отказ от сахара, мучного и фастфуда +1 (всего - 13 дней)

- холодный душ утром. +1 (всего - 3 дня). Уже больше 15 секунду, как в первый раз😁