Дневник Flutter разработчика
211 subscribers
32 photos
1 video
2 files
19 links
Собираю полезности и излагаю мысли обо всей этой движухе.

GitHub: https://github.com/GereyTatarkhanov
Download Telegram
На типовой вопрос существует типовой ответ😁

Но думается мне, автор вопроса не то имел ввиду..

https://youtu.be/9x_z-AWK7P0?si=9_t9v0gCSykSQtQE
😁2
Копался в файле framework.dart и случайно наткнулся на комментарий, где было написано, что:

Объекты BuildContext на самом деле являются объектами Element. Интерфейс BuildContext используется для предотвращения прямого манипулирования объектами Element.

Документация это подтверждает слово в слово.
Ссылка: https://api.flutter.dev/flutter/widgets/BuildContext-class.html

Я почему-то думал, что это разные, но взаимосвязанные вещи, а не, что одно интерфейс для другого.
👍2
Очень часто вижу, что люди БОЯТСЯ показывать свой код другим. У всех сомнения: а можно ли так писать? а это правильно? не будет ли никто надо мной смеяться?

А когда все таки решают показать, сначала следует сопроводительная фраза, что-то по типу: "строго не ругайте за мой колхозный код". Уже все настолько привыкли, что за любой код, который выложили на общее обозрение, им прилетит несколько камней от "опытнейших сеньоров" с указанием того, какое их код днище🕳

Да, есть определенные шаблоны программирования, которых желательно придерживаться. Да, принципы SOLID, DRY, KISS, YAGNI (etc) надо соблюдать насколько это возможно. Да, есть правила и негласные договоренности, которые надо учитывать. Но это НЕ ЗНАЧИТ, ЧТО У ВСЕХ ДОЛЖЕН БЫТЬ ОДИНАКОВЫЙ КОД.

Для каждого частного случая (если это не мега-типовая задача, которая уже миллион раз была решена) могут быть свои уникальные решения. Более того, может быть такое, что ты и твой коллега с другого конца света можете абсолютно разными путями решить одну и ту же проблему и не факт, что у кого-то "более правильный" вариант.

Если ты написал плохой код - ты поймешь, что ты написал плохой код позже. Ты либо сам споткнешься об него; либо прочитаешь статью (документацию) и поймешь как сделать лучше чем есть; либо тебе объяснят более опытные люди (объяснят, а не закидают камнями). Если кто-то скинул тебе стикер с человечком, который бьет себя по лицу, показывая "какой треш" и не аргументирует, то скорее всего он сам не понимает, как делать "правильно".

Изучай паттерны, учи архитектуру, ПОНИМАЙ для чего тебе та или иная архитектура и перестань наконец бояться, что ты неправильно обычный print в коде написал и кто-то тебе об этом скажет.
🔥3
Народ, копался в Kotlin docs (не, не перехожу на native, просто его тоже знать полезно для Flutter разработчика, кстати) и заметил, что
там есть раздел Kotlin Wasm. Не знаю давно ли они его готовят, но то, что готовят - это факт. Правда пока что Alpha версия.

Даже пример сайта есть на Compose Multiplatform + Kotlin Wasm (по мне так очень корявый пока что). Кликни сюда, чтоб посмотреть.

Если ты не знаешь, что такое WebAssembly (wasm) - можешь прочитать в этой статье.

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

В целом, данная технология должна сильно улучшить производительность Flutter Web и помочь сделать выбор в пользу Flutter тем, кто собирается писать web-приложения, а команда Kotlin хотят помешать и забрать себе этот кусок пирога! Ну а как мы знаем, конкуренция это хорошо, это заставит каждую из команд сделать свой продукт лучше!
👍1
Настраивал FCM и как же меня выбесила политика Apple в плане отправки push-уведомлений🤬

Сделай разрешение такое, дай разрешение в Xcode, добавь сертификат в developer acc, получи ключ с разрешением на отправку push-уведомлений, дай разрешение на разрешение, покажи справку о несудимости и т.п. ЧТО ЭТО ТАКОЕ???
Будто я не пуши собираюсь кидать, а оружием торгую. Почему на Android это можно сделать за 5 минут, а Apple ведет себя как обиженный кондуктор?
2
И ведь потом пойдет откликаться на все вакансии😁
А ты пробуй дальше найти работу со своим опытом и надейся, что HR среди тонны резюме от подобных товарищей вообще тебя увидит.🫡
😁1
Provider больше не нужон! Ладно, это плохой кликбейт.

Я написал что-то вроде урезанной версии Provider (без MultiProvider). А если точнее это класс, который наследуется от InheritedNotifier с generic, вместо конкретной вью-модели (прям как сделали большие дяди, написавшие пакет). Класс назвал мега эпично - AdvancedInherited, можно без аплодисментов, спасибо!

На картинке можешь посмотреть как этим пользоваться. Ничего необычного, если ты до этого хоть раз без Provider вручную с Inherited-штуками возился.

Сам InheritedAdvanced у меня в репозитории на гитхабе. Можешь открыть, посмотреть как реализовано и свистнуть его к себе в проект (и если надо поправить что-то под себя). Там же лежит пример с картинки.

Для чего я это сделал? Чтобы provider не таскать к себе в проект ради inherit'ов (хотя в этом ничего плохого нет).
В своих проектах я стараюсь уменьшить количество пакетов, только и всего🤷‍♂️
1
Если кто не знал, на портале у Яндекс есть разного рода хэндбуки, в том числе хэндбук по Flutter. Кликай, чтобы посмотреть.

Правда он еще в разработке и не все главы готовы. А точнее готовы только 3 главы из 8 (1 глава - введение). Отличное решение для тех, кому надо что-то быстро вспомнить, а для новичков что-то узнать!
🔥3
Мне стало интересно, на сколько большая разница в количестве вакансий на head hunter между Flutter и Android/IOS. В придачу ещё и React Native глянул.

Я, конечно, знал, что вакансий на native Android и IOS будет больше, но не думал, что на столько!
Колоссальное преимущество на стороне "родных". А React Native не настолько сильно уступает Flutter как оказалось.

Удивляет, что даже сегодня кроссплатформа так сильно уступает в популярности (именно в популярности, а не в качестве) native инструментам. Ведь сейчас каждая пиццерия хочет себе мобильное приложение, и дешевле такому бизнесу это будет сделать единожды на Flutter, чем 1 + 1 Android/IOS отдельно. (идите лесом с react native, ладно?)

Либо я сделал не совсем корректное сравнение. Если что исправьте. Я просто глянул на hhru.

P.S.: фильтрация выбрана по всей России.
3
Если вы, как и я, задались вопросом: "Какие приложения на моем смартфоне сделаны на Flutter?", то могу поделиться с вами решением, которое обнаружил - это Flutter Shark.

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

Кстати, раньше был способ: скроллить то, что скроллится двумя пальцами, и скорость прокрутки увеличивалась в 2 раза. Это был явный баг, который легко отличал Flutter приложение от нативного. Сейчас его уже исправили.
👍43
Пост не совсем о Flutter. Вернее совсем не о Flutter. Но т.к. это дневник - я хочу поделиться этим.

Прошлая неделя была очень насыщенная: я работал на работе, готовился защищать диплом, далее спонтанный переезд, а ещё я побывал на Сулакском каньоне, где невероятно красивые пейзажи!

Сулаксий каньон - один из самых глубоких каньонов в мире, даже глубже чем Большой каньон (Grand Canyon) в США.
Глубина первого - 1920 метров, тогда как глубина второго на 63 метра выше (Куда мы без фактов из Википедии, верно?)

Кстати, спускаться вниз по серпантину то ещё веселье даже на внедорожнике😁
4🔥1🥰1
Я пропал. Я был занят тем, что готовился к собесам.

Три компании, три собеседования и три оффера

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

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

В итоге я получил 3 оффера и выбрал ту компанию, которая, как мне кажется, лучше всего для меня подходит (Хотя другие тоже были крутые).

А ещё обновил свою рабочую машину. Купил 14 дюймовый Mac на M3 Pro с 18 gb оперативы, а свой игровой HP Victus 16 выставил на продажу (и его уже покупают, прощайте игры).

Скоро будет контент покачественней, не расходимся.
Буду переписывать свой личный проект, и мне нужно будет знать ваше диванно-экспертное 😄 мнение  по поводу тех или иных фишек (шучу, ваше мнение реально будет нужно, чтобы улучшить качество приложения).

А вот что это за приложение... Узнаете скоро..🫠
👍9👏2❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Я представил как он пишет код😂:
;counter final 32 =
😁3