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

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

Первый вопрос к тем, кто топит за Rive-анимация для Flutter-приложений, — «Почему не Lottie?». Самые убедительные аргументы за Rive можно найти в его документации. Сравним показатели:

>> Пример c Lottie

Размер файла: 181,7 КБ (без сжатия)
Память графического процессора: 149–190 МБ
Куча JS: 16,9 МБ
ЦП: 91,8%

>> Пример c Rive

Размер файла: 18 КБ (без сжатия)
Память графического процессора: 2,6 МБ
Куча JS: 7,3 МБ
ЦП: 31,8%

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

#rive_animation
Forwarded from kaleos.p
Please open Telegram to view this post
VIEW IN TELEGRAM
Гайд: создаем Telegram-бота на Dart: https://habr.com/ru/companies/agima/articles/837618/.

Наш тимлид из Flutter-отдела Cаша Омельяненко пошагово объясняет, как разработать функционального Telegram-бота на Dart. Оказалось, четкой инструкции на эту тему нет. Поэтому Саша решил написать свою:

- как зарегистрировать нового бота и оформить его;
- как добавить кнопки и повесить на них Listener;
- как упаковать всё в Docker и развернуть на удаленном сервере.

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

Сохраняйте гайд — он по ссылке выше — и делитесь им с коллегами по Flutter-разработке.