С декабря 2022 года я участвовал в разработке одного из крупных приложений с нуля. Было много интересных задач:)
Мы успешно зарелизили приложение, сейчас оно находится на поддержке.
На днях получил такое(скрин) благодарственное письмо от заказчика
"Мы хотели бы выразить глубокую признательность команде ООО "Фрифлекс" за высококвалифицированную и слаженную работу, а также за продолжительное и плодотворное сотрудничество.
Мы высоко оцениваем качество работы и оперативное выполнение задач, а также
преданность команды в поиске оптимальных и эффективных решений, свежий подход к дизайну ииспользование современных технологий."
P.S. Заблюрил заказчика и членов команды(nda)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥50👍12🥰4
An in-depth look at the InheritedWidget _ Flutter Community.pdf
8.3 MB
Утром увидел в чате такой вопрос:
Доброе утро как получить значение state из bloc без BlocBuilder, просто функция которая фильтрует массив и выводит в консоль
далее ответили:
По контексту можно попробовать
Или через локатор, если используешь
Если контекст высоко, лучше локатор(плюс там без блокбилдера хотят)
Тк он будет искать по дереву контекст, что займет время. Особенно если провайдер глобально объявлен и проект большой
https://t.me/mobile_developing_chat/32833
Когда создаётся элемент, он имеет это поле с мапой и все ссылки родительских InheritedWidget уже будут присутствовать там
Map<Type, InheritedElement> _inheritedWidgets;
пруф код: https://github.com/flutter/flutter/blob/13860a7d23c564ec9ff38a44661d21160c3f7b1e/packages/flutter/lib/src/widgets/framework.dart#L3899
В доке provider так же сказано
This operation is O(1). It doesn't involve walking in the widget tree.
https://pub.dev/packages/provider
Так что, если вы думали так же насчет «поиска по дереву» - теперь знаете
Mad Teacher говорил об этом https://t.me/skills_by_mad/275
Таймкод доклада Яндекса https://www.youtube.com/watch?v=yIkT-5aX898&t=421s
https://pub.dev/packages/provider
Подробно https://medium.com/flutter-community/the-widget-inherited-178ff969c50a
Если нет доступа, прикрепляю pdf статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥5❤1
С наступающим Новым Годом!
Уверен, этот год для Вас был классным и запоминающимся, а Новый год будет еще лучше!
Желаю, чтоб в новом году вы чувствовали такое же удовлетворение и умиротворение от своей деятельности, как мой кот на этом видео(только вслушайтесь)
PS. На елке нет гирлянды, потому что этот пушистик ее покусал
PS 2. Знаю, что коты всем нравятся:)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉29👍7🎄7☃5🎅4❤3🙊1
Forwarded from Oh, my Flutter (Mikhail Zotyev)
Flutter приложения, собранные на Xcode 15 и имеющие таргет-версию iOS 11 (минимальная возможная на данный момент) могут падать в рантайме при взаимодействии с Networking. Исправить это можно на данный момент подняв версию до 12, которая в ближайшем будущем все равно станет минимальной поддерживаемой.
📌 Подробности по ссылке.
https://github.com/flutter/flutter/issues/136060
#advice
📌 Подробности по ссылке.
https://github.com/flutter/flutter/issues/136060
#advice
👍12🤯3❤2🆒1
Flutter и фриланс в школе
Пока одни жалуются на отсутствие опыта, другие уже со школы совмещают работу и учебу😉
https://habr.com/ru/articles/784536
P.S. GetX с 11 класса… парень не с того начал😄
(юмор. В целом он молодец)
Пока одни жалуются на отсутствие опыта, другие уже со школы совмещают работу и учебу
Меня зовут Вася, я учусь в 11 классе, с августа 2020 года работаю с Flutter, а с марта прошлого года занимаюсь коммерческой разработкой мобильных приложений на фрилансе.
Сегодня хочу рассказать о том, как я совмещаю подработку с учебой в школе и какие у этого есть последствия
https://habr.com/ru/articles/784536
P.S. GetX с 11 класса… парень не с того начал
(юмор. В целом он молодец)
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Flutter и фриланс в школе
Привет, Хабр! Меня зовут Вася, это моя первая статья тут, поэтому не удивляйтесь куче всяких кривых цитат и спойлеров, я учусь в 11 классе, с августа 2020 года работаю с Flutter, а с марта прошлого...
👍17🔥5😁5
- Подготовка к собеседованию на позицию Flutter-разработчика
- Сборник статей с Хабра о разработке на Flutter
- Roadmap Flutter-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - p0dyakov/flutter_interview: ❓Список вопросов и ответов для технического собеседования на позицию Flutter разработчика
❓Список вопросов и ответов для технического собеседования на позицию Flutter разработчика - GitHub - p0dyakov/flutter_interview: ❓Список вопросов и ответов для технического собеседования на позици...
❤🔥22🔥9👍5❤4☃1
С 18 по 29 марта в Сочи пройдёт научно-практический интенсив по мобильной разработке от Young&&Yandex и Университета «Сириус».
На смене будет представлено два направления: нативная разработка на iOS и мультиплатформенная разработка на Flutter.
Что вы успеете в ходе интенсива
Что вы получите после прохождения интенсива
Кто может принять участие в интенсиве
Обучение, проезд, проживание и питание на время смены предоставит Университет «Сириус».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6❤4
На всех проектах, в разработке которых я участвовал(4 проекта), для навигации использовался auto_route
С ним не было никаких проблем до недавних пор
Сейчас, к примеру, WillPopScope deprecated и необходимо использовать PopScope. Но у auto_route с этим проблемы.
Ишью от 17 ноября: https://github.com/Milad-Akarie/auto_route_library/issues/1799
Плагин не обновлялся 3 мес, ишью не закрываются
Мы активно начали переходить на go_router
Основные причины перехода:
Статья коллеги(первая часть) по go_router:
https://habr.com/ru/companies/friflex/articles/787528/
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Полное руководство по управлению навигацией во Flutter с помощью пакета go_router: часть 1
Привет, Хабр! Меня зовут Юрий Петров, я автор ютуб-канала «Мобильный разработчик» и Flutter Team Lead в Friflex . Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. ...
👍17❤3🔥3⚡1
В связи с вступлением в силу нового Закона о цифровых рынках в Евросоюзе, техногигаты должны открыть свои услуги и платформы другим компаниям и разработчикам. Изменения должны быть внесены до 6 марта 2024 года включительно.
https://developer.apple.com/support/dma-and-apps-in-the-eu/
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple Newsroom
Apple announces changes to iOS, Safari, and the App Store in the European Union
Apple announced changes to iOS, Safari, and the App Store impacting developers’ apps in the EU to comply with the DMA.
🔥15👍4❤1
Если пользователи используют устаревшую или неработающую версию вашего приложения, вы можете использовать Play Console, чтобы предложить им обновиться.
Похоже на soft update, который все привыкли видеть, но здесь от Google Play с настройками
Его можно закрыть, тогда окно будет всплывать после каждого холодного перезапуска
Подробнее:
https://support.google.com/googleplay/android-developer/answer/13812041?hl=en#zippy=%2Cview-recovery-progress
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥5😍1🙈1
Я - team lead крупного проекта☺️
🔥166👍11🗿5🆒5🎉3⚡2☃2❤2🌭1🍾1
https://medium.com/dartlang/dart-3-3-325bf2bf6c13
Что нового:
(подробнее в документации: https://dart.dev/language/extension-types)
JavaScript библиотеками и web - dart:js_interop
Новый пакет google_generative_ai и вспомогательные ресурсы позволяют создавать собственные генеративные функции на основе искусственного интеллекта в вашем приложении через интеграцию Dart с API Gemini.
РФ нет в доступных для использования регионах
Много изменений:
https://medium.com/flutter/whats-new-in-flutter-3-19-58b1aae242d2
https://github.com/flutter/flutter/wiki/Roadmap
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
New in Dart 3.3: Extension Types, JavaScript Interop, and More
Dart 3.3 has landed, and it’s a game-changer for performance and cross-platform development! Get ready to supercharge your apps with…
🔥21👍6❤3🤗2
#полезное
У Алексея вышло 2 хороших видео по темам Жизненный цикл элементов во Flutter и Как работает EventLoop в Dart
1️⃣ В видео:
https://www.youtube.com/watch?v=Lhr8w_wpmFY
🟢 как Flutter перестраивает дерево элементов
🟢 как работает жизненный цикл элемента на примере State у StatefulWidget
🟢 локальные/глобальные ключи при перестройке дерева элементов
🟢 способы оптимизации перестроения дерева
🟢 const
Советы из видео по оптимизации:
🔜 Старайтесь избегать напрямую вызова метода setState. Если все-таки делаете это, старайтесь делать это как можно ниже к элементам вашего дерева. Лучше всего использовать для этого стейтменеджеры
🔜 Избегайте как можно больше изменений иерархии вашего виджета. Если вы будете делать это без использования глобальных ключей(в примере), то на каждый элемент будет происходить новое создание. То есть иерархия у вас была из 100 виджетов, вы всего-лишь добавили обёртку в виде какого-нибудь Center и иерархия из 100 виджетов у вас просто с нуля пересоздалась, если конечно у вас не было глобальных ключей. И вот представьте, что вы делаете такое изменение иерархии внутри анимации, которая происходит на каждый кадр
2️⃣ В видео:
https://www.youtube.com/watch?v=eoPrGo4ffUA
🟢 как работает EventLoop в Dart
🟢 за счёт чего достигается асинхронное выполнение
🟢 логика EventLoop
🟢 подробный разбор задачки с собеседований по EventLoop(в какой последовательности будут распечатаны сообщения на экране?)
🟢 общий разбор изолятов
🟢 связь между EventLoop - запросы в сеть - чтение с диска
3️⃣ Статья из видео:
Why Flutter? Почему Flutter?
https://habr.com/ru/articles/787174/
У Алексея вышло 2 хороших видео по темам Жизненный цикл элементов во Flutter и Как работает EventLoop в Dart
https://www.youtube.com/watch?v=Lhr8w_wpmFY
Советы из видео по оптимизации:
https://www.youtube.com/watch?v=eoPrGo4ffUA
Why Flutter? Почему Flutter?
https://habr.com/ru/articles/787174/
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Ультимативный гайд по жизненному циклу элементов во Flutter
#flutter #dart #elements_tree
В видео вы узнаете, как Flutter перестраивает дерево элементов.
Как работает жизненный цикл элемента на примере State у StatefulWidget.
Также разберем способы оптимизации перестроения дерева.
Мой блог в ТГ: @adrianov_about |…
В видео вы узнаете, как Flutter перестраивает дерево элементов.
Как работает жизненный цикл элемента на примере State у StatefulWidget.
Также разберем способы оптимизации перестроения дерева.
Мой блог в ТГ: @adrianov_about |…
🔥23⚡3👍2❤1
Ждём увлекательную история о предложении стать тимлидом), а то совсем пропал
На вопрос решил ответить постом)
В этой истории нет ничего прям необычного
Внутри компании, почти за 2 года я успел поработать на 4 интересных проектах.
После успешного релиза нашей командой проекта(за который была получена благодарность постами выше), компанию заказчика выкупила крупная компания и проект пока на поддержке-заморозке. Т.е в ожидании дальнейших решений.
Меня перевели на другой проект, крупнее предыдущего.
Проект на поддержке, в ожидании слияния с другим приложением этой же компании.
В команде все стандартно - несколько QA тестировщиков, 2 бекендера, дизайнеры и 1 flutter разработчик, 1 flutter TeamLead(Тимлид с моего предыдущего проекта)
До моего повышения я работал на этом проекте около полугода.
Мне звонит Тимлид и говорит:
- хотел тебе предложить взять проект в свои руки. Как тебе такая идея? Ты уже вырос достаточно. Такую ответственность на себя уже готов брать, как думаешь?
Как думаете, что я ответил? Та да да дам…
- конечно, без проблем
сказал я) Даже не стал спрашивать, какие условия, каких плюшек/денег мне накинут за новую должность.
В общем то я знал, что это отличная возможность быстро расти как в тех., так и в софт. скилах. Так что, не задумываясь, сразу согласился)
Конечно же этим не закончилось, Лид только предложил мне новую должность)
Дальше была неделя затишья. Проджект с предыдущего проекта предложил мне поработать на новом проекте с нуля(что мне интересно, тк это всегда - уйма новых фичей), на что я тоже согласился
По итогу проджекту не дали добро забрать меня на другой проект, так как решался вопрос моего лидерства.
На следующий день на созвоне нас было 4 - CEO компании, Head of Mobile компании, Лид моего проекта, я. Они втроём сошлись на том, что я сильно вырос и меня давно пора повышать. Дальше обсудили, что от меня требуется на проекте и условия(новая вилка зп). Я согласился, меня поздравили, с созвона вышел новый Тимлид☺️
Ставьте
P.S. Лид моего проекта, которого часто упоминал - @petrovyuri, у него есть свой канал и курсы по разработке на dart/flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Хижина программиста
🖐 Приветствую друзья, данная группа создана для обсуждения разработки приложений.
Мы изучаем Flutter, Android, IOS, backend и еще много чего интересного.
Правила очень простые. За оскорбление или мат, предупреждение, потом бан.
Мы изучаем Flutter, Android, IOS, backend и еще много чего интересного.
Правила очень простые. За оскорбление или мат, предупреждение, потом бан.
🔥86👍8❤2⚡2🗿1
Это так же отличный способ лучше понимать проект, так как ты видишь, какой новый код/фичу добавили
Из этого пункта так же вытекает несколько подпунктов:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥8👏1
#достижение
Финансово помогаю родителям. Теперь они могут не работать, а отдыхать на пенсии, заниматься хобби☺️
Финансово помогаю родителям. Теперь они могут не работать, а отдыхать на пенсии, заниматься хобби
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥102❤🔥5👍4🆒3👏2
Forwarded from Flutter For Dev - новости, статьи, дизайн.
Привет хочу поделиться папками с чатами и каналами по Flutter.
Каналы.
Чаты.
Если что-то пропустил, то добавляйте в комментарии.
Так же хочу попросить вас проголосовать за канал, так-как хочется дальше его развивать.
https://t.me/boost/FlutterForDev
Каналы.
Чаты.
Если что-то пропустил, то добавляйте в комментарии.
Так же хочу попросить вас проголосовать за канал, так-как хочется дальше его развивать.
https://t.me/boost/FlutterForDev
🔥21👍4✍3❤🔥1
Оплата SberPay
Если вам нужно будет внедрить оплату SberPay в ваше мобильное приложение, у вас есть 2 основных варианта:
1️⃣ Интегрировать нативный плагин sdk SberPay в ваше flutter приложение.
Процесс подробно расписан коллегами в этой статье:
https://habr.com/ru/companies/friflex/articles/771354/
В конце статьи есть пример плагина на github. Можно легко переиспользовать этот пример и в короткие сроки у вас готовое решение оплаты.
➕ Плюсы:
🔜 Очень удобно для пользователя. Все происходит внутри вашего приложения. Вызывается нативная модалка, пользователь оплачивает со своих карт
🔜 Вам не нужно ничего отрисовывать, sdk Сбера сам все рисует. Нужна только нативная кнопка с методом оплаты
🔜 SDK позволяет сохранить авторизацию из SDK в Сбер на 90 дней. Это позволяет платить нативным виджетом без необходимости открывать приложение Сбера
🔜 Модальное окно показывает все доступные карты у пользователя сразу и через него удобно платить нужной картой
➖ Минусы:
🔜 Сбер может в любой момент выпустить обновление, которое нужно установить. Старые версии при этом в любой момент могут стать неподдерживаемыми. Так случилось с версией минимального API Android и версии iOS.
Пример - я сделал интеграцию и после успешного тестирования задача была отложена в беклог на пару месяцев.
Через пару месяцев внедряем фичу, тестирую - метод некорректно отдаёт булевое. На устройстве установлено приложение сбера, метод sdk отдаёт false(сбер не установлен)😄
Пишу в поддержку, ответ -
🔜 Иду в документацию, обновляться на новую версию - они повысили версию api и для ios и для android😄
Остаётся только повышать версию приложения из-за Сбера)
На вопрос поддержке - Что делать с пользователями меньшей версии? Ответ -
😁😁😁
P.S. Избавление от пользователей на старой api - не лучший вариант и я решил пойти по второму пути.
P.S.2. Позже они согласились выпустить версию с поддержкой старых версий api(для android), которая будет работать до конца года.
2️⃣ Вы можете использовать диплинк на оплату в приложение Сбера.
Бекенд формирует ссылку на оплату и вы открываете приложение сбера с предзаполненной оплатой.
Работает примерно как открытие из веба - тапаете на кнопку оплаты SberPay - переходите на оплату в приложение Сбера.
➕ Плюсы:
🔜 Нет проблем с обновлениями sdk SberPay и неподдержкой старых версий
🔜 Не нужно избавляться от пользователей, если Сбер вдруг снова решит увеличить минимальные версии для android/ios.
🔜 Минимум сложностей при интеграции sdk SberPay. Здесь вы по диплинку открываете приложение Сбера
➖ Минусы:
🔜 Не так удобно для пользователя, так как он перейдёт в другое приложение на оплату
🔜 Необходимость каждый раз для оплаты переходить в приложение Сбер, чего лишен sdk
Если вам нужно будет внедрить оплату SberPay в ваше мобильное приложение, у вас есть 2 основных варианта:
Процесс подробно расписан коллегами в этой статье:
https://habr.com/ru/companies/friflex/articles/771354/
В конце статьи есть пример плагина на github. Можно легко переиспользовать этот пример и в короткие сроки у вас готовое решение оплаты.
Пример - я сделал интеграцию и после успешного тестирования задача была отложена в беклог на пару месяцев.
Через пару месяцев внедряем фичу, тестирую - метод некорректно отдаёт булевое. На устройстве установлено приложение сбера, метод sdk отдаёт false(сбер не установлен)
Пишу в поддержку, ответ -
возможно старая версия выведена из эксплуатации, обновитесь
Остаётся только повышать версию приложения из-за Сбера)
На вопрос поддержке - Что делать с пользователями меньшей версии? Ответ -
Большинство поднимают версию без проблем, как правило это аудитория с низким уровнем платежеспособности
😁😁😁
P.S. Избавление от пользователей на старой api - не лучший вариант и я решил пойти по второму пути.
P.S.2. Позже они согласились выпустить версию с поддержкой старых версий api(для android), которая будет работать до конца года.
Бекенд формирует ссылку на оплату и вы открываете приложение сбера с предзаполненной оплатой.
Работает примерно как открытие из веба - тапаете на кнопку оплаты SberPay - переходите на оплату в приложение Сбера.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как использовать нативный платежный сервис SberPay в кроссплатформенном приложении на Flutter
Всем привет! Это Мурат Насиров и Артем Баркалов , мы Flutter-разработчики в Friflex . Разрабатываем высоконагруженные мобильные приложения для бизнеса и специализируемся на Flutter. В этой статье мы...
🔥28👍5❤2✍2
deeplink_select_mWeb2app_3 (1).pdf
43.1 KB
Если будете реализовывать оплату SberPay по диплинку в Сбер, то:
для android схема должна быть
sberpay:
пример -
sberpay://invoicing/v2?bankInvoiceId=e948fbdc1e1121&operationType=app2app
для ios схема должна быть
btripsexpenses:
пример -
btripsexpenses://sbolpay/invoicing/v2?bankInvoiceId=e948fbdc1e1121&operationType=app2app
Дока по диплинку от Сбера(файл)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥7✍3❤1
Релиз Flutter 3.22 и Dart 3.4 🎉
⚡️ Flutter 3.22, что нового:
🟢 WebAssembly доступен в стабильной версии. Он улучшает производительность, делает анимацию и переходы более плавными
🟢 Vulkan для Android делает графику более плавной и повышает производительность
🟢 Оптимизированы эффекты размытия и сложного рендеринга путей(переход на Stencil‑then‑Cover)
🟢 Сократили необходимость приведения типов в API-интерфейсах 2D-графики
🟢 Поддержка функции прогнозируемого возврата(скоро будет введена на Android). Пользователи смогут просматривать предыдущий маршрут или даже предыдущее приложение
🟢 Улучшения Platform views
И другое. Подробнее - в переводе статьи от Flutter Tech Lead Юрия Петрова
⚡️ Dart 3.4, что нового:
🟢 Предварительная версия макроса JsonCodable для сериализации и десериализации JSON. Конечная цель — возможность создавать свои собственные макросы
🟢 Доступна полная поддержка WebAssembly (Wasm) для веб
🟢 Исправлено более 50% ошибок анализатора автодополнения кода
И другое. Подробнее - в переводе статьи от Flutter Tech Lead Юрия Петрова
И другое. Подробнее - в переводе статьи от Flutter Tech Lead Юрия Петрова
И другое. Подробнее - в переводе статьи от Flutter Tech Lead Юрия Петрова
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍6❤4