Сейчас при разработке нативных плагинов можно столкнуться с трудностями из-за отсутствия официальных инструментов для тестирования Flutter-приложений на системе Аврора. Как портировать большие плагины без подключения к нативной части тестирования?
В видео Юрий Петров, Flutter Team Lead Friflex и автор канала @mobile_developing, объясняет, как можно решить эту проблему и собрать приложение в режиме debug:
✔️ Установка пакетов
✔️ Подключение внешнего отладчика gdb-multiarch
👀 Смотрите туториал по ссылке:
→ Подключение к Flutter-приложению в режиме debug на ОС Аврора
И подписывайтесь на YouTube-канал Friflex, чтобы не пропустить новые актуальные видео 💜
#ОСАврора
В видео Юрий Петров, Flutter Team Lead Friflex и автор канала @mobile_developing, объясняет, как можно решить эту проблему и собрать приложение в режиме debug:
👀 Смотрите туториал по ссылке:
→ Подключение к Flutter-приложению в режиме debug на ОС Аврора
И подписывайтесь на YouTube-канал Friflex, чтобы не пропустить новые актуальные видео 💜
#ОСАврора
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
У адаптированных под Flutter 📍картографических сервисов GoogleMaps API и Yandex Mapkit SDK есть существенный недостаток — стоимость коммерческих тарифов. В проектах с ограниченным бюджетом можно использовать бесплатное решение OpenStreetMap.
🐼 Анна Ахлёстова, Flutter-разработчик в Friflex, рассказывает, как работать с сервисом OpenStreetMap и библиотекой flutter_map во Flutter-проектах.
Читайте статью на Хабре.
Подписывайтесь на наш блог — впереди вас ждет много полезных статей💜
#Flutter
🐼 Анна Ахлёстова, Flutter-разработчик в Friflex, рассказывает, как работать с сервисом OpenStreetMap и библиотекой flutter_map во Flutter-проектах.
Читайте статью на Хабре.
Подписывайтесь на наш блог — впереди вас ждет много полезных статей💜
#Flutter
❤4
🏋️♀️Говорят, что хардкор — это не стиль, а образ жизни. А что вы скажете про хардкод?
Хардкод легко получить, но трудно изменить. Например, можно «зашить» в код значения и параметры вместо того, чтобы хранить их в конфигурационном файле или переменной:
Если речь идет о небольшом или тестовом проекте, эта практика может быть оправдана. «Захардкодить» проще, чем использовать внешние файлы и конфигурации.
Но в большом проекте отсутствие гибкости, трудоемкость и ненадежность хардкода оказываются на переднем плане:
▫️При изменении значений или параметров код приходится редактировать вручную
▫️Если изменить значения или параметры и не обновить код, могут появиться ошибки
▫️Такой код сложно поддерживать
Вывод: осторожнее с хардкодом. Лучше обратите внимание на переменные, конфигурационные файлы и другие методы хранения данных.
#наайтишном
Хардкод легко получить, но трудно изменить. Например, можно «зашить» в код значения и параметры вместо того, чтобы хранить их в конфигурационном файле или переменной:
List<String> colors = ["красный", "зеленый", "синий"];
print(colors[1]); // Выводит "зеленый"
Если речь идет о небольшом или тестовом проекте, эта практика может быть оправдана. «Захардкодить» проще, чем использовать внешние файлы и конфигурации.
Но в большом проекте отсутствие гибкости, трудоемкость и ненадежность хардкода оказываются на переднем плане:
▫️При изменении значений или параметров код приходится редактировать вручную
▫️Если изменить значения или параметры и не обновить код, могут появиться ошибки
▫️Такой код сложно поддерживать
Вывод: осторожнее с хардкодом. Лучше обратите внимание на переменные, конфигурационные файлы и другие методы хранения данных.
#наайтишном
❤2🔥1
Что обязательно нужно учесть, если вы собираетесь портировать мобильное приложение на российскую операционную систему Аврора @omp_ru?
Отвечаем подробно в карточках. И очень подробно — в блоге Frifllex.
#OCАврора #Flutter
Отвечаем подробно в карточках. И очень подробно — в блоге Frifllex.
#OCАврора #Flutter
❤3🔥1
⚡️Вышла новая версия Flutter 3.19 c Dart 3.3
— Бета-версия Gemini Google AI Dart SDK теперь позволяет встраивать в приложения функции на базе генеративного ИИ
— На Android появился веб-валидатор глубоких ссылок
— На iOS появились собственные шрифты Flutter
— В Dart вышла новая модель взаимодействия с библиотеками JavaScript и веб-платформами
Что еще нового в Flutter 3.19 и Dart 3.3? Делимся первым переводом официального релиза от Юрия Петрова, Flutter Team Lead в Friflex, автора тг-канала @mobile_developing
#Flutter
— Бета-версия Gemini Google AI Dart SDK теперь позволяет встраивать в приложения функции на базе генеративного ИИ
— На Android появился веб-валидатор глубоких ссылок
— На iOS появились собственные шрифты Flutter
— В Dart вышла новая модель взаимодействия с библиотеками JavaScript и веб-платформами
Что еще нового в Flutter 3.19 и Dart 3.3? Делимся первым переводом официального релиза от Юрия Петрова, Flutter Team Lead в Friflex, автора тг-канала @mobile_developing
#Flutter
❤2👍1
Представьте: вы мирно пьете кофе, печатаете, и вдруг забытая функция внезапно воскресает! Вы думали, что похоронили этот участок кода полгода назад, но он вернулся и жаждет вычислительной мощности 🧟
От зомби-кода жди проблем: он создает путаницу в кодовой базе, нередко бывает источником ошибок и может замедлять работу программы, даже если не выполняется напрямую.
Зомби-код принимает разные формы — от неиспользуемых классов до неактуальных комментариев. Или вот таких мертвых веток кода в Dart:
Чтобы ваш код не превращался в зомби, регулярно проверяйте его, пишите документацию, используйте систему контроля версий и не бойтесь рефакторинга. Это поможет поддерживать чистоту кодовой базы.
#наайтишном
От зомби-кода жди проблем: он создает путаницу в кодовой базе, нередко бывает источником ошибок и может замедлять работу программы, даже если не выполняется напрямую.
Зомби-код принимает разные формы — от неиспользуемых классов до неактуальных комментариев. Или вот таких мертвых веток кода в Dart:
// Этот код никогда не выполняется.
} else {
// ...
}
Чтобы ваш код не превращался в зомби, регулярно проверяйте его, пишите документацию, используйте систему контроля версий и не бойтесь рефакторинга. Это поможет поддерживать чистоту кодовой базы.
#наайтишном
❤3🔥2👍1
🧠 Микроконтроллер — это электронный компонент, похожий на человеческий мозг. Он принимает электрические сигналы и реагирует на них по заданному алгоритму.
В новой статье на Хабре Мурат Насиров, Flutter-разработчик в Friflex, рассказывает, как использовать микроконтроллер ESP32 в связке с Flutter-приложением. В качестве примера он снимает показания температуры и влажности с помощью датчика DHT11 и передает эти данные через Firebase Realtime Database в приложение. Интересно звучит, правда?
Подписывайтесь на наш блог на Хабре, чтобы не пропустить новые полезные статьи 💜
#Flutter
В новой статье на Хабре Мурат Насиров, Flutter-разработчик в Friflex, рассказывает, как использовать микроконтроллер ESP32 в связке с Flutter-приложением. В качестве примера он снимает показания температуры и влажности с помощью датчика DHT11 и передает эти данные через Firebase Realtime Database в приложение. Интересно звучит, правда?
Подписывайтесь на наш блог на Хабре, чтобы не пропустить новые полезные статьи 💜
#Flutter
👍4❤2🔥1
🏗 Зерокодеры не пишут код, а собирают цифровые продукты, как мебель IKEA — из готовых элементов и шаблонов.
Например, популярная зерокод-платформа Webflow позволяет создавать сайты и лендинги, Bubble — веб-приложения и MVP, а Notion — заметки и базы данных.
Зерокодинг действительно позволяет быстро и без лишних затрат создавать простые цифровые продукты и тестировать идеи. Но у этого подхода есть недостатки: ограниченная функциональность, зависимость от платформы и сложность масштабирования.
Поэтому не спешим отказываться от традиционного программирования😏
#наайтишном
Например, популярная зерокод-платформа Webflow позволяет создавать сайты и лендинги, Bubble — веб-приложения и MVP, а Notion — заметки и базы данных.
Зерокодинг действительно позволяет быстро и без лишних затрат создавать простые цифровые продукты и тестировать идеи. Но у этого подхода есть недостатки: ограниченная функциональность, зависимость от платформы и сложность масштабирования.
Поэтому не спешим отказываться от традиционного программирования😏
#наайтишном
❤4
🐍 Змеиный регистр можно использовать для всех переменных, функций и файлов. Это простой и понятный стиль именования, который делает код более читаемым и удобным для работы. Выглядит он так:
Змеиный регистр помогает унифицировать стиль именования и совместим с большинством языков программирования и систем. Это упрощает перенос кода.
Но людям, не привыкшим к змеиному регистру, может быть трудно прочесть длинные имена с нижними подчеркиваниями, такие как
А в некоторых случаях регистр скрывает смысл имени и делает его менее понятным. Например, имя
В большинстве случаев преимущества змеиного регистра все-таки перевешивают его недостатки. Но подходит ли он вашей команде, это уже другой вопрос.
#наайтишном
snake_case_variable
get_snake_case_value
snake_case_function
Змеиный регистр помогает унифицировать стиль именования и совместим с большинством языков программирования и систем. Это упрощает перенос кода.
Но людям, не привыкшим к змеиному регистру, может быть трудно прочесть длинные имена с нижними подчеркиваниями, такие как
calculate_area_of_triangle. А в некоторых случаях регистр скрывает смысл имени и делает его менее понятным. Например, имя
get_user_input не информативное: непонятно, что именно запрашивается у пользователя. В большинстве случаев преимущества змеиного регистра все-таки перевешивают его недостатки. Но подходит ли он вашей команде, это уже другой вопрос.
#наайтишном
❤3🔥2👍1
🧩 Представьте, что ваши фотографии, видео и документы — не просто файлы, а мозаика из маленьких кусочков. Если мозаика находится на улице, а не в идеальных условиях музея, со временем из-за дождя, ветра и солнца она начнет разрушаться. С файлами происходит то же самое. Этот процесс называется гниением битов.
Гниение битов грозит потерей важных данных и ошибками в работе программного обеспечения. К счастью, есть простые способы сохранить свои фотографии, видео и другие файлы на долгие годы:
◾️ Регулярно делайте резервные копии важных данных.
◾️ Используйте надежные носители. Например, SSD-диски вместо HDD и облачные хранилища.
◾️ Защищайте устройства от перепадов температур, влаги и магнитных полей.
◾️ Обновляйте программное обеспечение.
А вы сталкивались когда-нибудь с гниением битов?
#наайтишном
Гниение битов грозит потерей важных данных и ошибками в работе программного обеспечения. К счастью, есть простые способы сохранить свои фотографии, видео и другие файлы на долгие годы:
◾️ Регулярно делайте резервные копии важных данных.
◾️ Используйте надежные носители. Например, SSD-диски вместо HDD и облачные хранилища.
◾️ Защищайте устройства от перепадов температур, влаги и магнитных полей.
◾️ Обновляйте программное обеспечение.
А вы сталкивались когда-нибудь с гниением битов?
#наайтишном
❤3
Как быстро получать данные из ОС Аврора в приложении на Flutter? Попробуйте интерфейс D-Bus 💌 D-Bus, как почтальон, доставляет сообщения от одного процесса к другому в unix-системах.
Во Flutter-приложениях D-Bus помогает:
◾️Узнать, сколько заряда осталось
◾️Получить время
◾️Посмотреть, какие приложения запущены
◾️Получить доступ к данным датчиков
Подробную инструкцию по работе с D-Bus читайте в статье Юрия Петрова, Flutter Tech Lead Friflex и автора канала @mobile_developing.
#Flutter #ОСАврора
Во Flutter-приложениях D-Bus помогает:
◾️Узнать, сколько заряда осталось
◾️Получить время
◾️Посмотреть, какие приложения запущены
◾️Получить доступ к данным датчиков
Подробную инструкцию по работе с D-Bus читайте в статье Юрия Петрова, Flutter Tech Lead Friflex и автора канала @mobile_developing.
#Flutter #ОСАврора
❤7👍4
🍝 Спагетти-код может поначалу казаться простым и вкусным решением: лишь бы работало. Но в итоге масса переплетенных между собой строк неизбежно превращается в непроглядный лабиринт.
Спагетти-код отличают длинные функции, повторы и неясные имена. К тому же, он может «прыгать» в разные функции. Например:
Чтобы ваш код не стал похож на тарелку итальянской пасты, тщательно планируйте его структуру, не бойтесь рефакторинга и не забывайте про комментарии.
#наайтишном
Спагетти-код отличают длинные функции, повторы и неясные имена. К тому же, он может «прыгать» в разные функции. Например:
void main() {
// Эта функция делает много разных вещей
// и очень сложно понять, что она делает
int a = 1;
int b = 2;
if (a > b) {
// Делаем что-то, если a больше b
print("a больше b");
saveData();
globalValue = 10;
} else {
// Делаем что-то, если b больше a
print("b больше a");
getData();
}
}Чтобы ваш код не стал похож на тарелку итальянской пасты, тщательно планируйте его структуру, не бойтесь рефакторинга и не забывайте про комментарии.
#наайтишном
❤5👌3
👩🚀 Однажды программист Microsoft и космический турист Чарльз Симони предложил добавлять к имени переменной короткий префикс, который отражал бы ее тип и предназначение.
Эта идея так понравилась его коллегам, что стала внутренним стандартом Microsoft. Стиль именования переменных назвали венгерской нотацией: Симони — венгр по происхождению.
Использовать венгерскую нотацию довольно просто. Например:
целое число, обозначающее возраст
строка, обозначающая имя
Венгерская нотация помогает понять, что представляет собой переменная, не глядя на ее объявление. Это уменьшает количество комментариев и число ошибок.
Противники критикуют венгерскую нотацию за избыточность и говорят, что когда префиксов очень много, код сложнее читать.
Важно понимать, что венгерская нотация — инструмент, а не универсальный метод. Она может оказаться полезной в некоторых проектах, но не всегда будет лучшим решением.
#наайтишном
Эта идея так понравилась его коллегам, что стала внутренним стандартом Microsoft. Стиль именования переменных назвали венгерской нотацией: Симони — венгр по происхождению.
Использовать венгерскую нотацию довольно просто. Например:
int + age = iAgeцелое число, обозначающее возраст
string + name = strName строка, обозначающая имя
Венгерская нотация помогает понять, что представляет собой переменная, не глядя на ее объявление. Это уменьшает количество комментариев и число ошибок.
Противники критикуют венгерскую нотацию за избыточность и говорят, что когда префиксов очень много, код сложнее читать.
Важно понимать, что венгерская нотация — инструмент, а не универсальный метод. Она может оказаться полезной в некоторых проектах, но не всегда будет лучшим решением.
#наайтишном
👍3⚡1
🦆 Если вы столкнулись с проблемой, которую не можете решить, попытайтесь объяснить ее резиновой уточке. Расскажите утенку, над чем вы работаете и где застряли. Не опускайте детали — именно в них может крыться ключ к решению.
Этот метод из книги «Программист-прагматик» правда работает, и вот почему:
1. Чтобы рассказать утенку о проблеме, вам придется структурировать свои мысли. Часто это приводит к новым открытиям и решениям.
2. Диалог с утенком отвлечет вас, и вы перестанете зацикливаться на одном и том же подходе к решению.
3. Утенок создаст иллюзию присутствия партнера, вы почувствуете поддержку и будете меньше волноваться.
Вывод: иногда все, что нужно, чтобы решить проблему — это о ней поговорить. Даже если ваш собеседник — молчаливая резиновая утка.
#наайтишном
Этот метод из книги «Программист-прагматик» правда работает, и вот почему:
1. Чтобы рассказать утенку о проблеме, вам придется структурировать свои мысли. Часто это приводит к новым открытиям и решениям.
2. Диалог с утенком отвлечет вас, и вы перестанете зацикливаться на одном и том же подходе к решению.
3. Утенок создаст иллюзию присутствия партнера, вы почувствуете поддержку и будете меньше волноваться.
Вывод: иногда все, что нужно, чтобы решить проблему — это о ней поговорить. Даже если ваш собеседник — молчаливая резиновая утка.
#наайтишном
👍6
Flutter на ОС Аврора: Friflex и ОМП представили Манифест развития фреймворка. В нем 9 принципов
Во вторник в Москве прошла первая конференция разработчиков о Flutter на ОС Аврора. Конечно же, команда Friflex была там. Вместе с «Открытой мобильной платформой» @omp_ru создателями ОС Аврора, мы призвали разработчиков объединяться и выступили с Манифестом развития фреймворка Flutter на российской операционной системе 🔥
В Манифесте — девять принципов. Например, открытость: Flutter остается проектом с открытым исходным кодом. Или стабильность: приложения на Flutter должны правильно работать на разных устройствах.
Команда Friflex уже портировала на ОС Аврора три мобильных приложения, создала несколько плагинов и написала много статей о своем опыте в блоге.
Подробнее о Манифесте можно почитать в заметке на Хабре.
#ОСАврора
Во вторник в Москве прошла первая конференция разработчиков о Flutter на ОС Аврора. Конечно же, команда Friflex была там. Вместе с «Открытой мобильной платформой» @omp_ru создателями ОС Аврора, мы призвали разработчиков объединяться и выступили с Манифестом развития фреймворка Flutter на российской операционной системе 🔥
В Манифесте — девять принципов. Например, открытость: Flutter остается проектом с открытым исходным кодом. Или стабильность: приложения на Flutter должны правильно работать на разных устройствах.
Команда Friflex уже портировала на ОС Аврора три мобильных приложения, создала несколько плагинов и написала много статей о своем опыте в блоге.
Подробнее о Манифесте можно почитать в заметке на Хабре.
#ОСАврора
🔥5❤3