Саша расскажет // о мобильной разработке и ИТ
536 subscribers
199 photos
11 videos
105 links
Руководитель направления Flutter / iOS в компании AGIMA

Пообщаться / спросить / предложить новость сюды: @WizAlx
Download Telegram
Ты можешь подумать, что я совсем забил на канал, но нет.
Я тут.

И вот так, с ноги, сразу со своими измышлениями.

Буквально на днях общался с одним знакомым разработчиком. ЕСТЕССТВЕННО, не обошлось без обсуждения легаси-кода и того, что зачастую сложно разобраться с кодом, которые писали другие люди.
И меня чуть зацепила фраза "Я вот порой смотрю на код - он вроде хороший, но потом начинают сыпаться баги". Вопрос - а какой же код является хорошим, заставил парня немного забуксовать.

-------
А вот тут самое забавное. Когда я писал вводную для этого поста - именно на этом месте я понял, что не хочу в моменте обсуждать чистый код, паттерны, архитектуры и прочее.
И нет, мне не лень, я написал большую часть материала и может потом закину порционно в канал. Но.

Мне действительно интересно - а как ты можешь определить "хороший" или "плохой" код? Какие у тебя критерии? Как именно ты понимаешь, что вот тут писали задними руками, а вот тут у человека был максимальный уровень вдохновения?
🍏 Кратко о презентации Apple

- beautiful
- incredible
- the best
- amazing
- the best iPad/pencil/M4 we've ever made
- 1299$
- have a good day!
Очевидные ошибки при разработке мобильных приложений, ч.1

Существуют ошибки при разработке мобильных приложений, которые встречаются достаточно часто у разных разработчиков. В этой серии постов, я покажу тебе те, которые я видел чаще всего.

Итак, начнем.

Статус бар (это там, где мы видим время, значки вай-фая, батарейки и пр.) - очень важен, потому что она предоставляет пользователю основную информацию, не заставляя сворачивать приложение. Как ни странно, если пользователь начинает выходить из приложения, потом обратно разворачивать его из бекграунда, то это (А!) может породить ошибки состояния и (Б!) вцелом заставляет пользователя покидать среду обитания, которую мы ему создали, а следовательно возрастает вероятность пользователей потерять. В некоторых специфических случаях, например в игровых приложениях, которые предполагают игру в альбомной ориентации, может быть хорошей идеей разместить время, состояние сети и заряд батареи в другом месте экрана, чтобы это не стало причиной для выхода из приложения. В остальных случаях убедись, что информация на строке состояния читаема, независимо от цвета фона под статус баром.

#common_issues
⚡️OpenAI представила GPT-4 Omni — это новая модель и она… бесплатная

Подробности:
🟠Она гораздо умнее предыдущих версий;
🟠У неё появился человеческий голос – она сохраняет все интонации, смеётся, запинается и смущается;
🟠Понимает ваш тон голоса;
🟠Умеет работать с текстом, картинками и аудио;
🟠Может искать информацию в интернете;
🟠Знает 50 языков, а качество перевода текстов улучшили на 50%;
🟠Улучшили возможности кодинга – она пишет код в 10 раз быстрее обычной GPT-4;
🟠Для неё выйдет специальное декстопное приложение;
🟠GPT Store стал бесплатным.

Релиз уже сегодня.
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
Продолжаем спорить — BLoC или GetX?

От правильного выбора архитектуры проекта иногда зависит спокойный сон всей команды. Статья нашего Flutter-разработчика Айдара Мавлетбаева поможет понять, какой из двух архитектурных паттернов — BLoC или GetX — подойдет вашему проекту.

Вы узнаете
:

- из чего состоит структура BLoC и MVC;
- как работает библиотека GetX;
- плюсы и минусы BLoC и GetX при масштабировании приложения.

Читать тут: [тык]
Forwarded from iGuides.ru
Приложение Тинькофф вернулось в App Store

Теперь банковский сервис назвали Т-Старт. Все привычные функции на месте, а его подлинность подтверждается сообщением в старой версии приложения.

Поскольку Apple научилась оперативно вычищать неугодные приложения, Т-Старт может исчезнуть за считанные часы. Качаем, пока этого не произошло.

@iguides
Очевидные ошибки при разработке мобильных приложений, ч.3

Иногда нам кажется, что содержимое экрана или виджета фиксировано и не требует прокрутки. При этом сам виджет может занимать половину (или даже больше) экрана. К сожалению, разработчики не всегда вспоминают про пользователей с небольшими устройствами (а ведь есть люди с 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 разлетаются быстро, так что скорее регистрируйтесь по ссылке выше. Ждем вас и ваших родных, друзей и коллег — чем больше людей, тем веселее!
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 для веба допилят когда-нибудь)