Мобильное приложение содержит информацию одного пользователя, а защищать надо серверную часть с данными всех клиентов. Операционные системы сами справляются с безопасностью данных, дополнительная защита приложению не требуется. Мобильные сторы проверяют приложения перед публикацией, разработчику не нужно делать лишнюю работу... Эти и другие мифы о безопасности мобильных приложений постоянно встречаются в сети.
Наши Flutter-разработчики, Юра Петров, Аня Ахлестова и Артем Баркалов выступили на онлайн-митапе и рассказали про безопасность в приложениях на Flutter и ответили на вопросы:
✔️ Какие бывают угрозы?
✔️ Влияет ли использование публичных библиотек на безопасность приложения?
✔️ Какую литературу и документацию изучить, чтобы успешно пройти аудит по безопасности?
Митап стал превью к выступлению ребят на @crossconf, где они подробнее расскажут о безопасности в мобильных приложениях. Запись митапа можно посмотреть по ссылке.
Наши Flutter-разработчики, Юра Петров, Аня Ахлестова и Артем Баркалов выступили на онлайн-митапе и рассказали про безопасность в приложениях на Flutter и ответили на вопросы:
Митап стал превью к выступлению ребят на @crossconf, где они подробнее расскажут о безопасности в мобильных приложениях. Запись митапа можно посмотреть по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
🥚 Это может быть шутка, отсылка к поп-культуре или мини-игра. Тайные элементы в программах — способ оставить свой след и немного развлечь пользователей.
Как создать?
1. Выберите способ. Например, можно добавить в программу код, который будет активироваться при выполнении какого-то условия, или спрятать картинку.
2. Сделайте пасхалку незаметной. Чем сложнее найти ключ к пасхалке, тем интереснее.
3. Не переборщите. Убедитесь, что пасхалка безобидна и не мешает основным функциям.
4. Повеселитесь! Не бойтесь экспериментировать и создавать что-то новое.
Расскажите, вы создавали когда-нибудь пасхалки?
#словарь
Как создать?
1. Выберите способ. Например, можно добавить в программу код, который будет активироваться при выполнении какого-то условия, или спрятать картинку.
2. Сделайте пасхалку незаметной. Чем сложнее найти ключ к пасхалке, тем интереснее.
3. Не переборщите. Убедитесь, что пасхалка безобидна и не мешает основным функциям.
4. Повеселитесь! Не бойтесь экспериментировать и создавать что-то новое.
Расскажите, вы создавали когда-нибудь пасхалки?
#словарь
🔥4
В издательстве Питер вышел учебник по Dart — при поддержке Friflex 🕺
Dart — современный и мощный язык программирования. Он лежит в основе фреймворка Flutter, с которым наша команда работает с первого релиза.
Книга «Основы Dart» рассказывает об истории языка, рассматривает его синтаксис, особенности работы с типами данных и функциями. Со второй главы читателей ждет проект, который к шестой главе превращается в настоящее клиент-серверное приложение. Как на практике, после каждой итерации вас будут ждать рекомендации и полезные примеры.
Автор — Станислав Чернышев, кандидат технических наук, доцент кафедры информатики СПБГЭУ и кафедры прикладной информатики СПбГУАП, автор канала MADTeacher, спикер @crossconf и других конференций.
Мы рады, что поддержали этот проект. Уверены, книга поможет многим разработчикам улучшить свои навыки и выйти на новый уровень 🫶
#Dart
Dart — современный и мощный язык программирования. Он лежит в основе фреймворка Flutter, с которым наша команда работает с первого релиза.
Книга «Основы Dart» рассказывает об истории языка, рассматривает его синтаксис, особенности работы с типами данных и функциями. Со второй главы читателей ждет проект, который к шестой главе превращается в настоящее клиент-серверное приложение. Как на практике, после каждой итерации вас будут ждать рекомендации и полезные примеры.
Автор — Станислав Чернышев, кандидат технических наук, доцент кафедры информатики СПБГЭУ и кафедры прикладной информатики СПбГУАП, автор канала MADTeacher, спикер @crossconf и других конференций.
Мы рады, что поддержали этот проект. Уверены, книга поможет многим разработчикам улучшить свои навыки и выйти на новый уровень 🫶
#Dart
🔥8
🌿 Бранч — это не только поздний завтрак с омлетами и круассанами в полдень. В разработке так называется ветка или копия проекта, в которую можно вносить любые изменения. Они не повлияют на основной проект.
Представьте, что ваш проект — большое ветвистое дерево. У него есть основная ветка — master. Ее используют для выпуска версий проекта, которые будут доступны всем.
Если не создавать других веток, то все изменения сразу будут идти прямиком в master. А значит, их сразу увидят пользователи.
Например, вы только что запустили мобильное приложение, и клиент просит срочно интегрировать его с календарем. Можно править «по живому», но это риск. Другой вариант — создать бранч и спокойно работать над интеграцией.
Каждая ветка живет своей жизнью, развивается и растет, пока вы не решите, что пора присоединить его к основному дереву. Процесс объединения называется «мерж», но это уже другая история 😄
#наайтишном
Представьте, что ваш проект — большое ветвистое дерево. У него есть основная ветка — master. Ее используют для выпуска версий проекта, которые будут доступны всем.
Если не создавать других веток, то все изменения сразу будут идти прямиком в master. А значит, их сразу увидят пользователи.
Например, вы только что запустили мобильное приложение, и клиент просит срочно интегрировать его с календарем. Можно править «по живому», но это риск. Другой вариант — создать бранч и спокойно работать над интеграцией.
Каждая ветка живет своей жизнью, развивается и растет, пока вы не решите, что пора присоединить его к основному дереву. Процесс объединения называется «мерж», но это уже другая история 😄
#наайтишном
❤7
Коммит — не просто кнопка, это еще и социальное действие. Хорошие практики коммитов в разработке ценятся не меньше, чем знание этикета в светском обществе. Вот некоторые из них:
◽️Не делайте слишком мелкие коммиты, если в этом нет необходимости
◽️Сопровождайте коммиты кратким и понятным описанием изменений
◽️Один коммит — один логичный шаг. Не смешивайте исправление ошибки с добавлением новой функции
◽️Если вы допустили ошибку, не бойтесь использовать git revert
◽️Указывайте номера ошибок или задач, над которыми вы работаете
Грамотные коммиты помогают всей команде отслеживать изменения, организовывать совместную работу без хаоса и откатывать проект к предыдущей версии в случае ошибки. Хорошей недели, и пусть ваши коммиты говорят сами за себя 🌟
#наайтишном
◽️Не делайте слишком мелкие коммиты, если в этом нет необходимости
◽️Сопровождайте коммиты кратким и понятным описанием изменений
◽️Один коммит — один логичный шаг. Не смешивайте исправление ошибки с добавлением новой функции
◽️Если вы допустили ошибку, не бойтесь использовать git revert
◽️Указывайте номера ошибок или задач, над которыми вы работаете
Грамотные коммиты помогают всей команде отслеживать изменения, организовывать совместную работу без хаоса и откатывать проект к предыдущей версии в случае ошибки. Хорошей недели, и пусть ваши коммиты говорят сами за себя 🌟
#наайтишном
❤7
Помните, мы писали про учебник по Dart, который вышел при поддержке Friflex? Вместе с автором книги Станиславом Чернышевым @MADComrade делимся главой о встроенных коллекциях. Осторожно, дальше могут быть спойлеры 👀
В Dart есть своя библиотека коллекций с базовыми структурами данных — dart:collection. Например, Map помогает хранить и управлять парами «ключ — значение». Это идеальная структура для организации разнородных данных, таких как настройки пользователя или конфигурации приложения.
О принципах работы, сильных и слабых сторонах Map и других встроенных коллекций — в блоге Friflex на Хабре.
#Flutter
В Dart есть своя библиотека коллекций с базовыми структурами данных — dart:collection. Например, Map помогает хранить и управлять парами «ключ — значение». Это идеальная структура для организации разнородных данных, таких как настройки пользователя или конфигурации приложения.
О принципах работы, сильных и слабых сторонах Map и других встроенных коллекций — в блоге Friflex на Хабре.
#Flutter
Хабр
Встроенные коллекции Dart: как реализовать в коде основные структуры данных. Глава из книги
Привет, Хабр! Меня зовут Станислав Чернышев , я автор книги «Основы Dart», телеграм-канала MADTeacher и доцент кафедры прикладной информатики в Санкт-Петербургском государственном университете...
❤6
🛠️ Костыль похож на клейкую ленту для утечки в водопроводе — работает, но явно не решает проблему окончательно.
Но разработчики все равно пользуются костылями. Устаревший код, доставшийся по наследству, сжатые сроки и неожиданные баги иногда требуют временных решений.
Главное, чтобы временное не становилось постоянным. Чтобы костыли не задерживались в коде надолго, помогает:
🧷 Хорошо спроектированная архитектура. Попробуйте предусмотреть, какие могут возникнуть проблемы, и разработать устойчивое решение сразу.
🧷 Рефакторинг. Регулярно проверяйте и улучшайте код, удаляйте временные решение.
🧷 Тестирование. Автоматизированные тесты могут помочь найти баги до того, как понадобятся костыли.
🧷 Документация. Если костыль неизбежен, задокументируйте его, чтобы потом легче перейти на постоянное решение.
Костыли помогают в экстренных ситуациях, но все-таки от них надо избавляться. Всем чистого кода 💻✨
#наайтишном
Но разработчики все равно пользуются костылями. Устаревший код, доставшийся по наследству, сжатые сроки и неожиданные баги иногда требуют временных решений.
Главное, чтобы временное не становилось постоянным. Чтобы костыли не задерживались в коде надолго, помогает:
🧷 Хорошо спроектированная архитектура. Попробуйте предусмотреть, какие могут возникнуть проблемы, и разработать устойчивое решение сразу.
🧷 Рефакторинг. Регулярно проверяйте и улучшайте код, удаляйте временные решение.
🧷 Тестирование. Автоматизированные тесты могут помочь найти баги до того, как понадобятся костыли.
🧷 Документация. Если костыль неизбежен, задокументируйте его, чтобы потом легче перейти на постоянное решение.
Костыли помогают в экстренных ситуациях, но все-таки от них надо избавляться. Всем чистого кода 💻✨
#наайтишном
❤6
🤖 Команда машинного обучения Friflex с интересом следит за тем, как развивается искусственный интеллект. Мы видим, что у LLM-агентов огромный потенциал и для развития наших продуктов, и для множества других задач.
Сегодня LLM — не просто модели для работы с текстом. Их алгоритмы распознают и интерпретируют визуальные данные, понимают и синтезируют аудио, интегрируют текст с изображениями и аудио.
Идея, что машину можно научить понимать и создавать текст человеческого качества, прошла впечатляющий путь. Яркие моменты из истории LLM-агентов собрали на карточках и в статье на Харбе.
#AI
Сегодня LLM — не просто модели для работы с текстом. Их алгоритмы распознают и интерпретируют визуальные данные, понимают и синтезируют аудио, интегрируют текст с изображениями и аудио.
Идея, что машину можно научить понимать и создавать текст человеческого качества, прошла впечатляющий путь. Яркие моменты из истории LLM-агентов собрали на карточках и в статье на Харбе.
#AI
🔥4❤2
🚀Git push — консольная команда, которая передает в центральный репозиторий изменения с локального.
Например, разработчик дорабатывает основную ветку и пушит свою работу центральный репозиторий, к которому есть доступ у других разработчиков. Там ее проверяют и мержат (сливают) с мастер-веткой. Пользователи счастливы, разработчики добавили им новых возможностей.
Процесс отправки пушей выглядит так:
Действие: push, отправить
Адресат: origin, сервер
Объект: master, имя ветки
Другие варианты команды
🔜
🔜
🔜
🔜
#наайтишном
Например, разработчик дорабатывает основную ветку и пушит свою работу центральный репозиторий, к которому есть доступ у других разработчиков. Там ее проверяют и мержат (сливают) с мастер-веткой. Пользователи счастливы, разработчики добавили им новых возможностей.
Процесс отправки пушей выглядит так:
git push origin master
Действие: push, отправить
Адресат: origin, сервер
Объект: master, имя ветки
Другие варианты команды
git push:git remote add link — связать локальную и центральную ветки git push --all — отправить все локальные ветки на публикацию в удалённом репозиторииgit branch -D branch_name — полностью удалить ветку branch_name в локальном репозиторииgit push origin :branch_name — стереть удаленную ветку #наайтишном
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
После блокировки Apple Pay и Google Pay СБП стал популярным инструментом у бизнеса. Flutter-разработчик Friflex Мурат Насиров уже писал, как:
✅ интегрировать нативные iOS и Android-приложения с СБП при помощи нативного SDK
✅ использовать нативный платежный сервис SberPay в кроссплатформенном приложении на Flutter.
В новой статье Мурат делится опытом, как работать с СБП во Flutter-приложении без натива при помощи только Flutter SDK🕊️ и его пакетов.
#Flutter
В новой статье Мурат делится опытом, как работать с СБП во Flutter-приложении без натива при помощи только Flutter SDK
#Flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Создаем Flutter-приложение для оплаты через СБП без натива
Всем привет! Меня зовут Мурат Насиров , я Flutter-разработчик в Friflex . Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. Ранее я поделился своим опытом, как...
❤6
В сказке братьев Гримм хлебные крошки склевали птицы, поэтому Гензель и Гретель не смогли вернуться домой. В разработке такого не происходит.
Когда на сайте есть хлебные крошки, пользователь всегда знает, в каком разделе он сейчас находится. Выглядят они примерно так: Главная🔜 Раздел 🔜 Подраздел 🔜 Страница. Каждый элемент в цепочке, кроме последнего, — это ссылка, которая ведет на соответствующую страницу сайта.
Хлебные крошки:
✅ улучшают пользовательский опыт. Они помогают понять структуру сайта, облегчают навигацию и позволяют быстро вернуться на предыдущие страницы
✅ делают сайт более понятным для поисковых систем, улучшают его видимость
✅ снижают процент отказов и увеличивают время, которое пользователь проводит на сайте.
#наайтишном
Когда на сайте есть хлебные крошки, пользователь всегда знает, в каком разделе он сейчас находится. Выглядят они примерно так: Главная
Хлебные крошки:
#наайтишном
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
🧅Если представить приложение как луковицу, то каждый слой будет одной из луковых оболочек.
Слои в луковой архитектуре:
✅ Слой домена. На этом уровне определяется бизнес-логика приложения: правила и операции, с которыми работает бизнес. Остальные слои защищают бизнес-логику от внешних воздействий.
✅ Слой приложения. Этот слой связывает доменную модель с инфраструктурными службами. Здесь расположены классы, которые обрабатывают запросы и команды, связанные с бизнес-логикой.
✅ Инфраструктурный слой. Здесь расположена инфраструктура, которая помогает приложению общаться с внешним миром: файловая система, сеть, базы данных, фреймворки.
Луковая архитектура разделяет инфраструктуру и бизнес-логику так, чтобы изменения в первой не влияли на вторую, и наоборот. Код становится гибким для изменений, его проще тестировать и сопровождать.
#наайтишном
Слои в луковой архитектуре:
Луковая архитектура разделяет инфраструктуру и бизнес-логику так, чтобы изменения в первой не влияли на вторую, и наоборот. Код становится гибким для изменений, его проще тестировать и сопровождать.
#наайтишном
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥1
🥞 Представьте себе стопку румяных блинов. Вы хотите их красиво разложить, самый большой — снизу, а самый маленький — сверху. Но есть одно условие: вы можете переворачивать только часть стопки, начиная с верхнего блина и до любого, который выберете.
Блинная сортировка работает так:
1️⃣ Найдите индекс максимального элемента в неотсортированной части массива.
2️⃣ Переверните массив до этого индекса, чтобы максимальный элемент оказался в начале.
3️⃣ Переверните всю неотсортированную часть массива, чтобы максимальный элемент оказался в конце.
4️⃣ Повторите для оставшейся неотсортированной части массива.
Блинная сортировка интересна с теоретической стороны. Она показывает, как можно решать задачи с объектами через ограниченный набор операций. Но ее редко используют на практике, потому что есть алгоритмы эффективнее, такие как быстрая или пирамидальная быстрая, или пирамидальная сортировка.
#наайтишном
Блинная сортировка работает так:
Блинная сортировка интересна с теоретической стороны. Она показывает, как можно решать задачи с объектами через ограниченный набор операций. Но ее редко используют на практике, потому что есть алгоритмы эффективнее, такие как быстрая или пирамидальная быстрая, или пирамидальная сортировка.
#наайтишном
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6