Саша расскажет // о мобильной разработке и ИТ
572 subscribers
206 photos
11 videos
111 links
Руководитель отдела мобильной разработки в компании AGIMA

Пообщаться / спросить / предложить новость сюды: @WizAlx
Download Telegram
Самый масштабный 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 для веба допилят когда-нибудь)
Очевидные ошибки при разработке мобильных приложений, ч.4

При разработке приложений обычно удобнее использовать симулятор/эмулятор устройства для тестирования, а не реальное устройство. Зачастую, разработчик при этом использует физическую клавиатуру (да, которая лежит на столе) для ввода текста в приложении и скрывает программную. Это, конечно, ускоряет процесс разработки, но в дальнейшем появляются "прогалы", где он не проверил - а как ведет себя приложение при открытой клавиатуре.
На небольших устройствах клавиатура может вообще занимать значительную часть экрана, из-за чего все может "поплыть" или быть нечитабельным.

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

Ну и, конечно, протестируй на реальных устройствах, особенно на тех, которые наиболее популярны среди твоей целевой аудитории (если, конечно, есть такая возможность). Это поможет выявить такие проблемы, которые могут не быть очевидными при использовании симуляторов и позволит увидеть, как приложение работает в реальных условиях.

#common_issues
9 типов программистов в 2024

Full-stack разработчик
Питается огромными количествами холодного кофе и имеет внушительную коллекцию толстовок. Обычно это бэкенд-разработчик, который научился выравнивать блоки на веб-страничке по центру. Теперь он гордится тем, что является мастером и фронтенда, и бэкенда, и всего, что между ними.

Технобро
Архетип, породивший тысячи мемов. Они щеголяют дорогими гаджетами и всякими ноу-хау типа Apple Vision Pro, у них на столах изогнутые мониторы, столы для работы стоя и механические клавиатуры. Они первыми используют самые новые и модные технологии на рынке и имеют завышенное ЧСВ. Зачастую это и на самом деле страсть к технологиям.

Технохейтер
Это тип программиста, который знает, насколько ненадёжными и опасными могут быть новые технологии, и боится, что ИИ когда-нибудь отнимет у него работу. Он в основном используют Linux и тратит значительное количество времени на создание ПО, о котором обычный разработчик никогда не слышал. Их сложно найти в интернете, потому что они заботятся о своей безопасности и тщательно скрывают свой цифровой след. Часто используют пять VPN одновременно и обладают удивительными навыками в хакерстве.

DevOps
Это программист, чьи навыки кажутся загадкой, поскольку никто не знает точно, чем они занимаются. Но они есть в каждой команде и часто являются твоими начальниками. Эти программисты процветают в хаосе. Они могут устранять сбои серверов с молниеносной скоростью и автоматизировать рабочие процессы одним скриптом. Возможно, поэтому они всегда такие самодовольные.

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

Codefluencer
Его естественная среда обитания - не VsCode и не GitHub, а социальные сети, чаще всего Twitter. Проведя день, изучая, как вывести "Hello World" в HTML, он считает себя лучшим в мире и старается сделать мир лучше, публикуя мемы и мнения о событиях в ИТ весь день. Вероятно, они получат более высокооплачиваемую работу, чем ты, благодаря умению продавать себя.

Программист с ИИ
За последние несколько лет искусственный интеллект полностью изменил способы работы в современном мире, и никто не знает этого лучше, чем программист с ИИ. Они используют лучшие и новейшие инструменты ИИ, такие как GitHub Copilot, ChatGPT, Gemini и так далее. С их помощью они могут выполнять свою работу в пять раз быстрее. Но не качественнее.

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

Древний кодер
Последний из своего рода. Некоторые говорят, что таких осталось в мире всего около 900 человек. Представь себе разработчика, который настолько стар, что видел падение Римской империи. Этот тип программиста обычно старше интернета, у него длинные седые волосы и большая белая борода, как у Гэндальфа Серого. Он пишет код только на C или Assembly, его любимая среда разработки - VIM, а глубина его знаний превосходит человеческие. Ходят слухи, что он их обрел благодаря психоделикам, которые больше не доступны.
Очевидные ошибки при разработке мобильных приложений, ч.5

Когда мы говорим о поддержке нетипичных экранов - очень маленьких или складывающихся (типа Samsung Fold / Flip), то мы это воспринимаем это, как достаточно редкие случаи. Но, на самом деле, это далеко не экзотика. Сейчас размеры экранов варьируются от 4 дюймов до (чуть ли) не бесконечности.

Процент пользователей, которых мы исключаем, то есть фактически тех, у кого качество приложения ухудшается — это то, на что стоит обратить внимание. Даже снижение доступности для 1% пользователей может значительно повлиять на конверсию.

Правильно реализованные приложения на Flutter обеспечивают адаптивность. Решение упомянутых проблем сделает приложение как минимум пригодным для использования на маленьких экранах, что уже может быть достаточно. Однако поддержка очень маленьких экранов часто требует дополнительных мер, помимо корректного поведения и масштабируемости. Иногда это включает в себя настройку UX или скрытие ненужных элементов, аналогично тому, как мы оптимизируем сайты для веб-платформ.

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

❗️Это была финальная часть постов про очевидные ошибки, поэтому время подвести итоги.

Решение всех описанных ранее проблем обычно включает реализацию продуманной логики на экранах, коррекцию отступов и изменение заполнения виджетами экрана по мере необходимости. Кроме этого, необходимо проводить тщательное тестирование на различных устройствах с разными размерами экранов, операционными системами и версиями, а также настройками устройств (например, системной навигацией). Это занимает много времени и может создаеть множество дефектов в JIRA. Но лучше они будут в таск-трекере, чем у пользователя.

В идеале, тебе (или тестированию) нужно создать чек-лист проверки корректной работы всех элементов приложения. Это не ускорит процесс на старте, но позволит сэкономить время в будущем.


А пока можешь почитать о Голден-тестах на Flutter: [тык]


#common_issues
[ ТУТ ДОЛЖЕН БЫТЬ ПОСТ О ПРОШЕДШЕЙ ПРЕЗЕНТАЦИИ APPLE, НО ВЫ И ТАК УЖЕ ВСЕ ПРОЧИТАЛИ В ДРУГИХ ПАБЛИКАХ ]
Виды логирования в Swift: https://habr.com/ru/companies/agima/articles/821515/

Начинающие iOS-разработчики знакомятся с функцией Print, когда делают первые шаги в профессии. Она помогает логировать ошибки и выводить текст в консоль Xcode.

Но это далеко не единственная доступная опция в Swift. В новой статье наш разработчик Владислав Даниелян рассказывает, какие аналоги существуют:

- преимущества и недостатки Print, DebugPrint и Dump;
- в каких ситуациях пользоваться каждым из них;
- что такое OSLog и Logger и как они работают.

Всё это с примерами кода и четкими инструкциями. Статья пригодится тем, кто только начинает изучать Swift, и джуниорам. Все подробности — по ссылке выше.
💾Найден новый чемпион по любви к ретрокомпьютерам. Это инженер-энтузиаст под ником DosFox, который собрал классический Mac Plus 80-х годов из современных деталей.

Нет, он не откопал его в подвале Стива Джобса. Ну, может быть, только пару микросхем. Остальное сделал с нуля с некоторыми модификациями. Чтобы запустить компьютер, DosFox взял ПО для Mac Timbuktoo. По сути, это приложение для удаленного рабочего стола, т. к. видеовыход у клона Mac Plus не работает.

Подробности тут: [тык]
Lottie vs. Rive

Сегодня хочу рассказать о двух популярных инструмента анимации — Lottie и Rive. Оба инструмента позволяют создавать и интегрировать анимацию в приложения, но имеют свои особенности и преимущества.

Lottie

Lottie — это инструмент для создания и интеграции анимированных векторных изображений (анимаций) в приложения. Он основан на формате Adobe After Effects, который позволяет создавать сложные анимации с использованием различных эффектов и переходов. Lottie поддерживает множество форматов файлов, включая JSON.

Плюсы:
1. Простота использования: Благодаря поддержке JSON формата, lottie становится доступным для разработчиков любого уровня
2. Кроссплатформенность: его простота и универсальность позволяет использовать одни и те же анимации на разных платформах.
3. Широкое комьюнити: это влечет за собой и большое количество готовых анимаций в сети
4. Гибкость: Lottie позволяет настраивать анимацию и эффекты, что даёт больше контроля над результатом.

Минусы:
1. Ограничения по сложности: Lottie не подходит для очень сложных анимаций с большим количеством элементов и эффектов.
2. Производительность: В некоторых случаях Lottie может потреблять больше ресурсов, что влияет на производительность приложений, особенно на устройствах с низкой производительностью.


Rive

Rive – это мощный инструмент для создания интерактивных анимаций и дизайна. Он позволяет разработчикам создавать более сложные и интерактивные анимации прямо в редакторе Rive и легко интегрировать их в приложения. Rive использует собственный формат файлов, который обеспечивает более высокую производительность и качество анимации.

Плюсы:
1. Интерактивность: Rive поддерживает интерактивные анимации, которые могут реагировать на пользовательские действия.
2. Мощный редактор: Он интуитивно понятный и функциональный и не принуждает погружаться в дебри разработки
3. Производительность: Rive обеспечивает быструю и плавную анимацию благодаря своему формату файлов

Минусы:
1. Сложность использования: Rive имеет более сложный интерфейс, чем Lottie, что может затруднить его использование для новичков.
2. Размер файлов: Анимации, созданные в Rive, могут быть более тяжелыми, что увеличивает размер приложения.

В итоге, выбор между Lottie и Rive зависит от конкретных потребностей вашего проекта. Если вам нужны простые и легкие анимации с быстрой интеграцией, Lottie будет отличным выбором. Для сложных, интерактивных и высокопроизводительных анимаций лучше подойдет Rive.

Напоминаю:
ТЕХНОЛОГИЯ ДОЛЖНА ЧЕТКО РЕШАТЬ ПОСТАВЛЕННЫЕ ЗАДАЧИ И НЕ СОЗДАВАТЬ ПРОБЛЕМ

#evolution
Forwarded from AGIMA.News
Вчера в правительстве рассказали о новых условиях IT-ипотеки. Мы собрали самое основное на карточках, а заодно спросили мнение у коллег по рынку.