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

+ 3,12 часа программирования
(теория
)

Изучаю работу с firebase storage.
Читаю доку FlutterFire, пробую писать, но еще не разобрался)

У меня есть экран PaintBoard(скрин прилагаю). На нем пользователь закрашивает картинку-слово, слушает аудио и переходит дальше.
Получается, что мне нужен слайдер для переходов и чтоб на каждом слайде подгружалась нужная картинка и аудио из списка firebase 10 слов/10 аудио. 10 слов в день - ограничение для пользователя. В платной версии без ограничений.

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

Если что-либо подскажете, буду рад:) Мало ли я что-то неправильно понимаю)

Итого: 286 ч. 19 м.

Разработка приложения
Итого: 44 дня

+0,40 часа английского
21 серия 5 сезона сериала Друзья на англ.

Итого: 99 ч. 36 мин.

Спорт, здоровье
+ зарядка
+ силовая тренировка
47 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
50 дней не ем сахар, мучное и фастфуд
0 дней встаю в 5 утра, ложусь спать к 10 вечера
День 74:

+ 2,31 часа программирования
(+ 0,53 практика
+ 1,38 теория
)

Сегодня изучал кэширование изображений. Если использовать кэширование, то картинки не будут грузиться каждый раз из сети, а будут браться из кэша. Так должно работать быстрее и сэкономит трафик использования firebase

Дока flutter предлагает для этого cached_network_image, но pub.dev говорит, что в настоящее время он не кэширует

Время практики сегодня - поиск ошибки) После переписывания авторизации перестала работать навигация BottomNavigationBar. Экраны просто не отображались, хотя были прописаны. Долго искал, даже думал может на блоке нужно увязать(я в нем еще не разобрался). Оказалось, что я просто забыл передать body виджета с индексами в Scaffold😁

Итого: 288 ч. 50 м.

Разработка приложения
Итого: 45 дней

+0,34 часа английского
22 серия 5 сезона сериала Друзья на англ.

Итого: 100 ч. 10 мин.

Спорт, здоровье
+ зарядка
48 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
51 день не ем сахар, мучное и фастфуд
0 дней встаю в 5 утра, ложусь спать к 10 вечера
День 75:

+ 4,53 часа программирования
(+ 1,11 практика
+ 3,42 теория
)

Пишу слайдер с подгрузкой картинок из firebase. Первая версия готова.

Не понимаю доку firebase. Они дают куски кода без примеров и что с ними делать не понятно)

Итого: 293 ч. 43 м.

Разработка приложения
Итого: 46 дней

+1,22 часа английского
23, 24 серии 5 сезона сериала Друзья на англ.

Итого: 101 ч. 32 мин.

Спорт, здоровье
+ зарядка
+ силовая тренировка(через день)
49 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
52 дня не ем сахар, мучное и фастфуд
1 день встаю в 5(4:30) утра, ложусь спать к 10 вечера
Интересный пост от Павла Дурова:
Оригинал: https://t.me/durov/166

Ум - наш самый мощный инструмент. Нет ничего, что он не может сделать. Согласно многочисленным исследованиям, он активно генерирует новые идеи, даже когда мы отдыхаем или ничего не делаем. Часто мы можем найти решение сложных проблем просто после полноценного ночного сна.

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

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

Чтобы быть творческими и продуктивными, мы должны сначала очистить свой разум от липкой грязи нерелевантного контента, которой его ежедневно наводняют «алгоритмы рекомендаций». Если мы хотим вернуть себе творческую свободу, мы должны сначала вернуть себе контроль над своим разумом.
День 76:

+ 3,52 часа программирования
(+ 1,50 практика
+ 2,02 теория
)

Вторая версия слайдера. Я подтягиваю картинки через List по ссылкам из firebasestorage. Такой вариант мне не подходит, так как не прописывать же мне каждую картинку)

Картинки разных размеров и если задавать рамки, при каждом сжатии съедется производительность. Не знаю, насколько сильно это влияет(при большом количестве картинок точно сильно повлияет), но лучше грузить картинки одного нужного размера. Либо их нужно подгонять, либо сразу рисовать с нужными параметрами

Еще переход слайдов не работает, GestureDetector с рисованием его перекрывает. Завтра добавлю кнопки для перехода, думаю поможет

Это простой слайдер. Еще нужно сделать:
- кэшировать изображения
- добавить пространства (убрать верхнюю панель с зарядкой и временем, уменьшить кнопку "очистить")
- знать, на каком слайде пользователь остановился/вышел из приложения
- добавить аудио
- сохранять слайд=слово для дальнейшего повторения пользователем. Я думаю нужны стримы, чтоб я, например, мог улавливать переход с одного слайда на другой и это будет означать, что пользователь прошел слово. Тогда отправлять слово в повторение

Если есть советы - пишите, они нужны)

Итого: 297 ч. 35 м.

Разработка приложения
Итого: 47 дней

+1,14 часа английского
1, 2 серии 6 сезона сериала Друзья на англ.

Итого: 102 ч. 46 мин.

Спорт, здоровье
+ зарядка
50 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
53 дня не ем сахар, мучное и фастфуд
2 дня встаю в 4:30 утра, ложусь спать к 10 вечера
День 77:

+ 2,48 часа программирования
(+ 2,12 практика
+ 0,36 теория
)

Занимаюсь слайдером. Сегодня добавил стрелки < > для переключения между слайдами и нижнюю строку с номерами слайдов для быстрого переключения. Изменил кнопку "очистить", теперь она занимает меньше места.

Думал, что добавлю стрелки и переключение слайдов заработает. Не заработало) GestureDetector с рисованием всё так же перекрывает. Помню в курсе LazyLoad было решение подобной проблемы. Завтра попробую и опишу, если все получится)
Это должно решить и вторую проблему - контуры картинок при закрашивании должны оставаться. Сейчас закрашивание поверх контура

Итого: 300 ч. 23 м.

Разработка приложения
Итого: 48 дней

+1,07 часа английского
3, 4 серии 6 сезона сериала Друзья на англ.

Итого: 103 ч. 53 мин.

Спорт, здоровье
+ зарядка
+ силовая тренировка(через день)
51 день придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
54 дня не ем сахар, мучное и фастфуд
3 дня встаю в 4:30 утра, ложусь спать к 10 вечера
Сборник лучших библиотек Flutter от сообщества Codemagic

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

https://www.youtube.com/watch?v=JEe8sqAK3MI
День 78:

+ 2,40 часа программирования
(теория)

Разбирался, как сохранить контур при закрашивании.
Идеи две:
1. Художник изначально сохраняет картинки без фона и я накладываю картинку поверх GestureDetector с рисованием. Проблематично, так как уже есть большое количество картинок, которым нужно будет убрать фон.
2. Я могу установить прозрачность кисти на 50%, например. Реализовать намного проще. Эта идея только что появилась)

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

P.S. Скриншоту несколько дней. Сейчас немного иначе)

Итого: 303 ч. 03 м.

Разработка приложения
Итого: 49 дней

+0,34 часа английского
5 серия 6 сезона сериала Друзья на англ.

Итого: 104 ч. 27 мин.

Спорт, здоровье
+ зарядка
52 дня придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
55 дней не ем сахар, мучное и фастфуд
4 дня встаю в 4:30 утра, ложусь спать к 10 вечера
День 79:

+ 3,13 часа программирования
(+ 1,18 практика
+ 1,55 теория
)

Занимаюсь слайдером:)

Итого: 306 ч. 16 м.

Разработка приложения
Итого: 50 дней

+0,36 часа английского
6 серия 6 сезона сериала Друзья на англ.

Итого: 105 ч. 03 мин.

Спорт, здоровье
+ зарядка
- силовая тренировка(перенесу на завтра)
53 дня придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
56 дней не ем сахар, мучное и фастфуд
5 дней встаю в 4:30 утра, ложусь спать к 10 вечера
День 80:

+ 4,49 часа программирования
(+ 2,30 практика
+ 2,19 теория
)

Занимаюсь слайдером. Больших изменений пока нет. Разместил кнопки по бокам для перехода между слайдами. Часа полтора этим занимался и не мог понять, что нужно просто Column заменить на Stack. Подсказали) Одно из больших преимуществ блога - новые знакомства👍

Посмотрел сегодня 2 интересных видео по Flutter:
1. https://youtu.be/mN8vGs3LweU видео о миграции с bloc 7 на bloc 8, так же затрагивается тема cubit. Интересное видео, рекомендую:)

2. https://www.youtube.com/watch?v=ULVuvzmnkos этим видео со мной поделились, но я еще не до конца его посмотрел. Тема очень интересная и актуальная. Про то, что лучше делать виджеты, а не функции. Так же рекомендую к просмотру:)

P.S. Уже 3 человека вдохновились моим блогом в инстаграм(я веду его в телеграм и инсте) и начали вести свои подобные. Я этому рад:)

Итого: 311 ч. 05 м.

Разработка приложения
Итого: 51 день

+1,14 часа английского
7, 8 серии 6 сезона сериала Друзья на англ.

Итого: 106 ч. 17 мин.

Спорт, здоровье
+ зарядка
+ силовая тренировка
54 дня придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
57 дней не ем сахар, мучное и фастфуд
6 дней встаю в 4:30 утра, ложусь спать к 10 вечера
День 81:

+ 3,27 часа программирования
(+ 0,58 практика
+ 2,29 теория
)

Первоначальная работа по слайдеру завершена. Убрал android status bar для этого экрана, стрелки-переходы подправил и нормальное отображение картинок настроил. Не убрал только debug banner, так как не знаю, куда прописать false на него при таком main

Итого: 314 ч. 32 м.

Разработка приложения
Итого: 52 дня

+0,34 часа английского
9 серия 6 сезона сериала Друзья на англ.

Итого: 106 ч. 51 мин.

Спорт, здоровье
- зарядка(утром не сделал, а сейчас уже спать пора)
55 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
57 дней не ем сахар, мучное и фастфуд (сегодня был день рождения мамы и вкусный торт своими руками я, конечно же, попробовал:) Обнулять не буду, просто не засчитаю день по этому пункту)
7 дней встаю в 4:30 утра, ложусь спать к 10 вечера
День 82:

+ 4,19 часа программирования
(+ 1,34 практика
+ 2,45 теория
)

Добавил прозрачность кисти при рисовании. Решение не идеальное, но самое простое. Контуры картинки при закрашивании видно:)

Решал проблему перекрытия рисованием слайдера. Задаю положение CustomPaint, все как мне нужно - слайдер переключается, но нарисованное переходит на другой слайд

P.S. Нужно начинать использовать прогерские слова - правил баг, добавил фичу и тому подобные😁

Итого: 318 ч. 51 м.

Разработка приложения
Итого: 53 дня

+0,32 часа английского
10 серия 6 сезона сериала Друзья на англ.

Итого: 107 ч. 23 мин.

Спорт, здоровье
+ зарядка
- силовая тренировка(перенесу на завтра)
56 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
58 дней не ем сахар, мучное и фастфуд
8 дней встаю в 4:30 утра, ложусь спать к 10 вечера
День 83:

+ 3,09 часа программирования
(+ 1,15 практика
+ 1,54 теория
)

Работаю над слайдером/экраном рисования. Некорректно задаются границы рисования. У меня вложенность через Stack для рисования, слайдера и кнопок.

Экран перегружен кнопками, нужно нормально их раскидать.

Кнопки, конечно же, будут меняться. По кнопке Аудио будет воспроизводиться запись для картинки-слова. По кнопке Сохранить слово будет считаться заученным(при нажатии) и сохраняться в экран повторения. Пока не знаю, как сделать это сохранение:)

С добавлением прозрачности контуры сохраняются и выглядит намного лучше) + к юзабилити

Итого: 322 ч.

Разработка приложения
Итого: 54 дня

+1,18 часа английского
11, 12 серии 6 сезона сериала Друзья на англ.

Итого: 108 ч. 41 мин.

Спорт, здоровье
+ зарядка
+ силовая тренировка
57 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
59 дней не ем сахар, мучное и фастфуд
9 дней встаю в 4:30 утра, ложусь спать к 10 вечера
День 85:

+ 3,58 часа программирования
(+ 1,19 практика
+ 2,39 теория
)

Верстаю макет с фигмы. Отличие моей версии от версии дизайнера можете увидеть сами😁

Сразу же столкнулся с проблемой - во Flutter логические пиксели, а в фигме px.

Посмотрел сегодня видео:
https://www.youtube.com/watch?v=PNJDqt3Z_7Q

Понял, что лучше использовать виджеты, а не методы. Буду переписывать их в приложении)

На 1:03 в видео рассказывается о "гитовой штуке", которая показывает изменения и можно просто целые куски кода в 1 клик откатывать как угодно, менять, смотреть что было до этого и так далее. Это стандартный плагин git.
Не знал об этом. Буду использовать:)

Итого: 325 ч. 58 м

Разработка приложения
Итого: 55 дней

+0,32 часа английского
13 серия 6 сезона сериала Друзья на англ.

Итого: 109 ч. 13 мин.

Спорт, здоровье
+ зарядка
58 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
60 дней не ем сахар, мучное и фастфуд
0 дней встаю в 4:30 утра, ложусь спать к 10 вечера
День 86:

+ 2,19 часа программирования
(+ 1,14 практика
+ 1,05 теория
)

Верстаю макет с фигмы. Хотел использовать svg иконки. Сделал свой шрифт, загрузил иконки, скачал, подключил. Получаю такую ошибку. У меня есть этот файл и в fonts и в pubspec. Завтра буду дальше разбираться:)

Большую часть времени занимался созданием профиля в LinkedIn. Добавляйтесь:
https://www.linkedin.com/in/dmitrylyovochkin/ :)

Итого: 328 ч. 17 м

Разработка приложения
Итого: 56 дней

+1,35 часа английского
14, 15 серии 6 сезона сериала Друзья на англ.

Итого: 110 ч. 48 мин.

Спорт, здоровье
+ зарядка
+ силовая тренировка
59 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
61 день не ем сахар, мучное и фастфуд
0 дней встаю в 4:30 утра, ложусь спать к 10 вечера
Начало:) Не пропустите
Чтоб всё это посмотреть, нужно войти в комнату Surf: https://spatial.chat/s/dartup
День 87:

+ 6,45 часа программирования
(+ 1,49 практика
+ 4,56 теория
- DartUP )

Верстаю макет с фигмы.
Добавил все кнопки, осталось скомпоновать панель цветов и добавить ластик для стирания с логикой.

Сегодня начался DartUP2021. Важное событие в мире Flutter:) В основном смотрел доклады в комнате Surf. Доклады основной конференции посмотрю на ютубе:)
Если вы еще не присоединились, то выше ^ есть ссылки.

Конференция идет 2 дня. Как я понял, трансляция идет на ютубе и в комнате Surf - это разные части конференции(с разными докладами и расписанием)

Итого: 335 ч. 02 м

Разработка приложения
Итого: 57 дней

+1,12 часа английского
16, 17 серии 6 сезона сериала Друзья на англ.

Итого: 110 ч. 48 мин.

Спорт, здоровье
+ зарядка
60 дней придерживаюсь схемы 16-8(разделение приемов пищи на 2 окна: 16 часов - не ем, 8 часов - ем)
62 дня не ем сахар, мучное и фастфуд
0 дней встаю в 4:30 утра, ложусь спать к 10 вечера