Ты можешь подумать, что я совсем забил на канал, но нет.
Я тут.
И вот так, с ноги, сразу со своими измышлениями.
Буквально на днях общался с одним знакомым разработчиком. ЕСТЕССТВЕННО, не обошлось без обсуждения легаси-кода и того, что зачастую сложно разобраться с кодом, которые писали другие люди.
И меня чуть зацепила фраза "Я вот порой смотрю на код - он вроде хороший, но потом начинают сыпаться баги". Вопрос - а какой же код является хорошим, заставил парня немного забуксовать.
-------
А вот тут самое забавное. Когда я писал вводную для этого поста - именно на этом месте я понял, что не хочу в моменте обсуждать чистый код, паттерны, архитектуры и прочее.
И нет, мне не лень, я написал большую часть материала и может потом закину порционно в канал. Но.
Мне действительно интересно - а как ты можешь определить "хороший" или "плохой" код? Какие у тебя критерии? Как именно ты понимаешь, что вот тут писали задними руками, а вот тут у человека был максимальный уровень вдохновения?
Я тут.
И вот так, с ноги, сразу со своими измышлениями.
Буквально на днях общался с одним знакомым разработчиком. ЕСТЕССТВЕННО, не обошлось без обсуждения легаси-кода и того, что зачастую сложно разобраться с кодом, которые писали другие люди.
И меня чуть зацепила фраза "Я вот порой смотрю на код - он вроде хороший, но потом начинают сыпаться баги". Вопрос - а какой же код является хорошим, заставил парня немного забуксовать.
-------
А вот тут самое забавное. Когда я писал вводную для этого поста - именно на этом месте я понял, что не хочу в моменте обсуждать чистый код, паттерны, архитектуры и прочее.
И нет, мне не лень, я написал большую часть материала и может потом закину порционно в канал. Но.
Мне действительно интересно - а как ты можешь определить "хороший" или "плохой" код? Какие у тебя критерии? Как именно ты понимаешь, что вот тут писали задними руками, а вот тут у человека был максимальный уровень вдохновения?
🍏 Кратко о презентации Apple
- beautiful
- incredible
- the best
- amazing
- the best iPad/pencil/M4 we've ever made
- 1299$
- have a good day!
- beautiful
- incredible
- the best
- amazing
- the best iPad/pencil/M4 we've ever made
- 1299$
- have a good day!
Очевидные ошибки при разработке мобильных приложений, ч.1
Существуют ошибки при разработке мобильных приложений, которые встречаются достаточно часто у разных разработчиков. В этой серии постов, я покажу тебе те, которые я видел чаще всего.
Итак, начнем.
Статус бар (это там, где мы видим время, значки вай-фая, батарейки и пр.) - очень важен, потому что она предоставляет пользователю основную информацию, не заставляя сворачивать приложение. Как ни странно, если пользователь начинает выходить из приложения, потом обратно разворачивать его из бекграунда, то это (А!) может породить ошибки состояния и (Б!) вцелом заставляет пользователя покидать среду обитания, которую мы ему создали, а следовательно возрастает вероятность пользователей потерять. В некоторых специфических случаях, например в игровых приложениях, которые предполагают игру в альбомной ориентации, может быть хорошей идеей разместить время, состояние сети и заряд батареи в другом месте экрана, чтобы это не стало причиной для выхода из приложения. В остальных случаях убедись, что информация на строке состояния читаема, независимо от цвета фона под статус баром.
#common_issues
Существуют ошибки при разработке мобильных приложений, которые встречаются достаточно часто у разных разработчиков. В этой серии постов, я покажу тебе те, которые я видел чаще всего.
Итак, начнем.
Статус бар (это там, где мы видим время, значки вай-фая, батарейки и пр.) - очень важен, потому что она предоставляет пользователю основную информацию, не заставляя сворачивать приложение. Как ни странно, если пользователь начинает выходить из приложения, потом обратно разворачивать его из бекграунда, то это (А!) может породить ошибки состояния и (Б!) вцелом заставляет пользователя покидать среду обитания, которую мы ему создали, а следовательно возрастает вероятность пользователей потерять. В некоторых специфических случаях, например в игровых приложениях, которые предполагают игру в альбомной ориентации, может быть хорошей идеей разместить время, состояние сети и заряд батареи в другом месте экрана, чтобы это не стало причиной для выхода из приложения. В остальных случаях убедись, что информация на строке состояния читаема, независимо от цвета фона под статус баром.
#common_issues
Подробности:
Релиз уже сегодня.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Очевидные ошибки при разработке мобильных приложений, ч.2
Правильное размещение Floating Action Button в приложениях. Это интуитивный и легкодоступный элемент, но его логика может серьезно пострадать, если не учитывать особенности экранных отступов, особенно системы навигации. Давай разберем основные моменты, которые необходимо учитывать:
1. Панель навигации: Кнопка может быть частично закрыта навигационной панелью, что уменьшает ее кликабельную область. Это самый распространенный тип ошибки при создании Floating Button
2. Программные кнопки: Влияют на большинство Android-устройств, так как программную навигацию можно включить в настройках устройства. Очень важно учитывать этот случай, так как для некоторых версий Android это единственный тип навигации.
3. Жесты: В целом, самый непроблемный вариант, так как он не добавляет отступы на экране.
4. Кнопка может слишком близко располагаться к другим кнопкам или элементам навигации, что плохо скажется на интерфейсе и UX. Т.е. пользователь может промахиваться и тапать по другим элементам вне FAB.
#common_issues
Правильное размещение Floating Action Button в приложениях. Это интуитивный и легкодоступный элемент, но его логика может серьезно пострадать, если не учитывать особенности экранных отступов, особенно системы навигации. Давай разберем основные моменты, которые необходимо учитывать:
1. Панель навигации: Кнопка может быть частично закрыта навигационной панелью, что уменьшает ее кликабельную область. Это самый распространенный тип ошибки при создании Floating Button
2. Программные кнопки: Влияют на большинство Android-устройств, так как программную навигацию можно включить в настройках устройства. Очень важно учитывать этот случай, так как для некоторых версий Android это единственный тип навигации.
3. Жесты: В целом, самый непроблемный вариант, так как он не добавляет отступы на экране.
4. Кнопка может слишком близко располагаться к другим кнопкам или элементам навигации, что плохо скажется на интерфейсе и UX. Т.е. пользователь может промахиваться и тапать по другим элементам вне FAB.
#common_issues
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем спорить — BLoC или GetX?
От правильного выбора архитектуры проекта иногда зависит спокойный сон всей команды. Статья нашего Flutter-разработчика Айдара Мавлетбаева поможет понять, какой из двух архитектурных паттернов — BLoC или GetX — подойдет вашему проекту.
Вы узнаете:
- из чего состоит структура BLoC и MVC;
- как работает библиотека GetX;
- плюсы и минусы BLoC и GetX при масштабировании приложения.
Читать тут: [тык]
От правильного выбора архитектуры проекта иногда зависит спокойный сон всей команды. Статья нашего Flutter-разработчика Айдара Мавлетбаева поможет понять, какой из двух архитектурных паттернов — BLoC или GetX — подойдет вашему проекту.
Вы узнаете:
- из чего состоит структура BLoC и MVC;
- как работает библиотека GetX;
- плюсы и минусы BLoC и GetX при масштабировании приложения.
Читать тут: [тык]
Хабр
Сравнение архитектурных паттернов GetX и BLoC
Всем привет! Я Айдар Мавлетбаев, Flutter-разработчик в AGIMA . В самом начале любого проекта очень важно выбрать архитектурный паттерн, ведь именно это может спасти ваш проект на более поздних этапах....
Forwarded from iGuides.ru
Приложение Тинькофф вернулось в App Store
Теперь банковский сервис назвали Т-Старт. Все привычные функции на месте, а его подлинность подтверждается сообщением в старой версии приложения.
Поскольку Apple научилась оперативно вычищать неугодные приложения, Т-Старт может исчезнуть за считанные часы. Качаем, пока этого не произошло.
@iguides
Теперь банковский сервис назвали Т-Старт. Все привычные функции на месте, а его подлинность подтверждается сообщением в старой версии приложения.
Поскольку Apple научилась оперативно вычищать неугодные приложения, Т-Старт может исчезнуть за считанные часы. Качаем, пока этого не произошло.
@iguides
Очевидные ошибки при разработке мобильных приложений, ч.3
Иногда нам кажется, что содержимое экрана или виджета фиксировано и не требует прокрутки. При этом сам виджет может занимать половину (или даже больше) экрана. К сожалению, разработчики не всегда вспоминают про пользователей с небольшими устройствами (а ведь есть люди с iPhone SE, а Google планирует выпускать компактную версию Pixel). А еще реже разработчики забывают про появление клавиатуры для ввода текста. Представьте, что пользователь пытается ввести логин и пароль, а клавиатура перекрывает важные элементы интерфейса. Хотя что тут представлять, очень часто ты это можешь наблюдать в куче приложений.
Чтобы избежать таких проблем, стоит предусмотреть возможность прокрутки всех экранов. Даже если прокрутка на первый взгляд не нужна, её наличие обеспечит гибкость интерфейса. Если ты переживаешь, что пользователь начнет постоянно свайпать по экрану, то сразу заложи, функционал, при котором элементы плавно вернутся на свои места.
#common_issues
Иногда нам кажется, что содержимое экрана или виджета фиксировано и не требует прокрутки. При этом сам виджет может занимать половину (или даже больше) экрана. К сожалению, разработчики не всегда вспоминают про пользователей с небольшими устройствами (а ведь есть люди с iPhone SE, а Google планирует выпускать компактную версию Pixel). А еще реже разработчики забывают про появление клавиатуры для ввода текста. Представьте, что пользователь пытается ввести логин и пароль, а клавиатура перекрывает важные элементы интерфейса. Хотя что тут представлять, очень часто ты это можешь наблюдать в куче приложений.
Чтобы избежать таких проблем, стоит предусмотреть возможность прокрутки всех экранов. Даже если прокрутка на первый взгляд не нужна, её наличие обеспечит гибкость интерфейса. Если ты переживаешь, что пользователь начнет постоянно свайпать по экрану, то сразу заложи, функционал, при котором элементы плавно вернутся на свои места.
#common_issues
Самый масштабный IT-забег RUNIT уже совсем скоро:
https://runit.digital
Юбилейный пятый RUNIT пройдет 7 июля в музее-заповеднике «Коломенское». В этом году мы ждем рекордные 4000 участников и еще 2000 болельщиков.
Для бегунов будет несколько дистанций от 3 до 25 километров, личный и командный зачет, эстафета и детский забег. Каждый участник получит стартовый пакет с фирменной футболкой, чипированный номер и, конечно, медаль на финише!
Болельщики тоже не заскучают: будет фудкорт, диджей и активности для детей и взрослых. Вас ждет 3D-теннис, фотозона, смузи-бар и многое другое.
В этом году с нами точно бегут X5 Tech, Сибур Диджитал, Сбер, Тинькофф, Lamoda, РЖД, Wildberries, МТС, SMLab и др. И это не только IT-спецы, но и владельцы бизнесов.
Билеты на RUNIT разлетаются быстро, так что скорее регистрируйтесь по ссылке выше. Ждем вас и ваших родных, друзей и коллег — чем больше людей, тем веселее!
https://runit.digital
Юбилейный пятый RUNIT пройдет 7 июля в музее-заповеднике «Коломенское». В этом году мы ждем рекордные 4000 участников и еще 2000 болельщиков.
Для бегунов будет несколько дистанций от 3 до 25 километров, личный и командный зачет, эстафета и детский забег. Каждый участник получит стартовый пакет с фирменной футболкой, чипированный номер и, конечно, медаль на финише!
Болельщики тоже не заскучают: будет фудкорт, диджей и активности для детей и взрослых. Вас ждет 3D-теннис, фотозона, смузи-бар и многое другое.
В этом году с нами точно бегут X5 Tech, Сибур Диджитал, Сбер, Тинькофф, Lamoda, РЖД, Wildberries, МТС, SMLab и др. И это не только IT-спецы, но и владельцы бизнесов.
Билеты на RUNIT разлетаются быстро, так что скорее регистрируйтесь по ссылке выше. Ждем вас и ваших родных, друзей и коллег — чем больше людей, тем веселее!
This media is not supported in your browser
VIEW IN TELEGRAM
Flutter и WASM
Stable-версия Flutter стала поддерживать WASM и открывала новую эпоху для веб-приложений.
Что такое WASM?
WebAssembly (WASM) — это новый способ запуска приложений в браузере. Это не замена JS, а возможность запускать код, написанный на других языках, (C++, Rust или C#), вместе с JS. WASM разработан для увеличения эффективности: он оптимизирует размер и время загрузки, и позволяет выполнять его на аппаратном уровне.
Компании, использующие большое количество графики (Unity, Figma), используют WASM для повышения скорости работы. Это обеспечивает более плавную работу с интерфейсом за счёт снижения зависимости от JS.
По сравнению с компиляцией JavaScript, приложение, скомпилированное в WASM, может улучшить производительность в 2 раза по скорости рендеринга кадров. На гифке выше сайт Wonderous, который мигрировал с чистого JS на WASM.
Что же это значит для Flutter?
Это значит, что движок Dart компилируется в WASM, обеспечивая более высокую производительность. Возможность компилировать код Dart в WASM открывает новые перспективы производительности веб-приложений на Flutter. Ты можешь контролировать каждый пиксель интерфейса на уровне Flutter и наслаждаться производительностью WASM.
Ограничения
- Поддержка браузеров: Safari не поддерживает WasmGC, и пока неизвестно, когда это произойдёт. Браузеры на iOS, такие как Chrome, используют WebKit, который пока тоже не поддерживает WasmGC.
- Поддержка: Ни flutter run, ни DevTools не поддерживают WASM в Flutter 3.22. Однако эта функция уже реализована и должна быть доступна в следующем стабильном релизе.
- Либы: В то время как Flutter работал над поддержкой WASM, им пришлось заменить библиотеки dart:html и package:js. Либы, использующие эти библиотеки, должны мигрировать.
Итого
Хотя полной совместимости с браузерами пока нет, Firefox уже работает над внедрением поддержки. Safari ранее уже упоминал о WASM, и, вероятно, тоже скоро реализует поддержку. Ждем новых новостей от Flutter.(Возможно они и SEO для веба допилят когда-нибудь)
Stable-версия Flutter стала поддерживать WASM и открывала новую эпоху для веб-приложений.
Что такое WASM?
WebAssembly (WASM) — это новый способ запуска приложений в браузере. Это не замена JS, а возможность запускать код, написанный на других языках, (C++, Rust или C#), вместе с JS. WASM разработан для увеличения эффективности: он оптимизирует размер и время загрузки, и позволяет выполнять его на аппаратном уровне.
Компании, использующие большое количество графики (Unity, Figma), используют WASM для повышения скорости работы. Это обеспечивает более плавную работу с интерфейсом за счёт снижения зависимости от JS.
По сравнению с компиляцией JavaScript, приложение, скомпилированное в WASM, может улучшить производительность в 2 раза по скорости рендеринга кадров. На гифке выше сайт Wonderous, который мигрировал с чистого JS на WASM.
Что же это значит для Flutter?
Это значит, что движок Dart компилируется в WASM, обеспечивая более высокую производительность. Возможность компилировать код Dart в WASM открывает новые перспективы производительности веб-приложений на Flutter. Ты можешь контролировать каждый пиксель интерфейса на уровне Flutter и наслаждаться производительностью WASM.
Ограничения
- Поддержка браузеров: Safari не поддерживает WasmGC, и пока неизвестно, когда это произойдёт. Браузеры на iOS, такие как Chrome, используют WebKit, который пока тоже не поддерживает WasmGC.
- Поддержка: Ни flutter run, ни DevTools не поддерживают WASM в Flutter 3.22. Однако эта функция уже реализована и должна быть доступна в следующем стабильном релизе.
- Либы: В то время как Flutter работал над поддержкой WASM, им пришлось заменить библиотеки dart:html и package:js. Либы, использующие эти библиотеки, должны мигрировать.
Итого
Хотя полной совместимости с браузерами пока нет, Firefox уже работает над внедрением поддержки. Safari ранее уже упоминал о WASM, и, вероятно, тоже скоро реализует поддержку. Ждем новых новостей от Flutter.