По статистике, современный пользователь тратит на изучение платёжных систем не более 3 секунд. После выбора товара ему нужно только нажать кнопку «оплатить», а дальнейший успех транзакции зависит уже от разработчика 🧑🏻💻
В нашем блоге на Хабре Никита Улько, Fullstack-разработчик в Friflex, рассказал об основных аспектах безопасности, а также:
🚩об интеграции платежной системы Stripe в Flutter
🚩о работе системы электронных платежей на примере GooglePay и ApplePay и связи с платёжными шлюзами
🚩о международном стандарте безопасности PCI DSS
Материал поможет быть в курсе всех подводных камней при работе с платёжными системами 🚀
#Flutter
В нашем блоге на Хабре Никита Улько, Fullstack-разработчик в Friflex, рассказал об основных аспектах безопасности, а также:
🚩об интеграции платежной системы Stripe в Flutter
🚩о работе системы электронных платежей на примере GooglePay и ApplePay и связи с платёжными шлюзами
🚩о международном стандарте безопасности PCI DSS
Материал поможет быть в курсе всех подводных камней при работе с платёжными системами 🚀
#Flutter
🔥2
Устанавливаем приложение, написанное на фреймворке Flutter, на систему Аврора 🔥
При выполнении сборки в консоли можно столкнуться с необходимостью постоянно вводить пароль вручную. Как решить эту проблему и работать с Platform SDK без пароля суперпользователя?
В видео Юрий Петров, Flutter Team Lead Friflex и автор канала @mobile_developing, рассказывает, как создать приложение на ОС Аврора с нуля или в уже существующем проекте:
✔️ установка редактора nano
✔️ скачивание ключей и сертификатов
✔️ подписание rpm
Смотрите туториал по ссылке
→ Как установить и подписать Flutter-приложение на ОС Аврора
И подписывайтесь на YouTube-канал Friflex, чтобы не пропустить актуальные разборы💜
#ОСАврора
При выполнении сборки в консоли можно столкнуться с необходимостью постоянно вводить пароль вручную. Как решить эту проблему и работать с Platform SDK без пароля суперпользователя?
В видео Юрий Петров, Flutter Team Lead Friflex и автор канала @mobile_developing, рассказывает, как создать приложение на ОС Аврора с нуля или в уже существующем проекте:
Смотрите туториал по ссылке
→ Как установить и подписать Flutter-приложение на ОС Аврора
И подписывайтесь на YouTube-канал Friflex, чтобы не пропустить актуальные разборы
#ОСАврора
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
⚡️ Вышла новая версия плагина Flutter & Dart для VSCode 3.82.0
Команда «Перейти к Супер» теперь доступна в контекстном меню редактора, а методы get/set с аргументами типа не окрашиваются, как ключевые слова, когда семантические токены отключены или не поддерживаются темой.
Что еще нового в плагине Flutter & Dart для VSCode 3.82.0, читайте на Хабре!
#news
Команда «Перейти к Супер» теперь доступна в контекстном меню редактора, а методы get/set с аргументами типа не окрашиваются, как ключевые слова, когда семантические токены отключены или не поддерживаются темой.
Что еще нового в плагине Flutter & Dart для VSCode 3.82.0, читайте на Хабре!
#news
❤3
🖥 В статье на Хабре делимся мыслями нашего разработчика Мурата Насирова о том, как создать federated plugin для Flutter-проекта. Что это такое?
Представьте: у вас кроссплатформенное приложение и вы создаете плагин для работы c bluetooth. Скорее всего, вы работаете как с Android, так и с iOS. Поэтому создаете четыре пакета, где реализация каждого независима друг от друга:
1) flutter_bluetooth;
2) flutter_bluetooth_android;
3) flutter_bluetooth_ios;
4) flutter_bluetooth_platform_interface.
Плагины federated plugins можно создавать сразу для всех доступных платформ, а сегрегация зон ответственности не замедляет разработку. Интересно?
#Flutter
Представьте: у вас кроссплатформенное приложение и вы создаете плагин для работы c bluetooth. Скорее всего, вы работаете как с Android, так и с iOS. Поэтому создаете четыре пакета, где реализация каждого независима друг от друга:
1) flutter_bluetooth;
2) flutter_bluetooth_android;
3) flutter_bluetooth_ios;
4) flutter_bluetooth_platform_interface.
Плагины federated plugins можно создавать сразу для всех доступных платформ, а сегрегация зон ответственности не замедляет разработку. Интересно?
#Flutter
❤3👍2🔥2
🪄Вам когда-нибудь встречались в коде таинственные числовые литералы с неясным происхождением? Это магические числа. И не пытайтесь, понять их без контекста невозможно.
Магические числа снижают читаемость кода, усложняют его сопровождение, создают трудности при тестировании и увеличивают вероятность ошибок. Чтобы избежать этой практики, вы можете использовать именные константы или оставлять комментарии.
Например, здесь 0.2 — магическое число:
Оставляем комментарий, и сразу ясно, что речь идет о скидке 20%:
Иногда магические числа могут отсылать к поп-культуре. Бывает, что в dart число «42» означает «ответ на все вопросы», как в книге «Автостопом по галактике».
#наайтишном
Магические числа снижают читаемость кода, усложняют его сопровождение, создают трудности при тестировании и увеличивают вероятность ошибок. Чтобы избежать этой практики, вы можете использовать именные константы или оставлять комментарии.
Например, здесь 0.2 — магическое число:
void main() {
var price = 100.0;
var discount = price * 0.2;
var finalPrice = price - discount;
print('Итоговая цена: $finalPrice');
}Оставляем комментарий, и сразу ясно, что речь идет о скидке 20%:
void main() {
// Скидка 20%
var discount = 0.2;
var price = 100.0;
var finalPrice = price - (price * discount);
print('Итоговая цена: $finalPrice');
}Иногда магические числа могут отсылать к поп-культуре. Бывает, что в dart число «42» означает «ответ на все вопросы», как в книге «Автостопом по галактике».
#наайтишном
❤4
This media is not supported in your browser
VIEW IN TELEGRAM
🔑 6 февраля — международный день безопасного интернета! Если у вас до сих пор где-то остался пароль «123456», лучше его сменить. Напоминаем: хорошими считаются пароли длиннее 14 символов из букв, цифр и разных знаков.
Как еще обычному пользователю защитить себя от хакеров, рассказал эксперт по информационной безопасности «Лаборатории Касперского» и ведущий подкаста «Смени пароль» Сергей Голованов. Читайте в блоге Friflex!
#trends
Как еще обычному пользователю защитить себя от хакеров, рассказал эксперт по информационной безопасности «Лаборатории Касперского» и ведущий подкаста «Смени пароль» Сергей Голованов. Читайте в блоге Friflex!
#trends
❤1
Сейчас при разработке нативных плагинов можно столкнуться с трудностями из-за отсутствия официальных инструментов для тестирования 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