Шрифт:
Интервал:
Закладка:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому, что получают удовольствие от программирования.
После создания дизайна у вас будет все необходимое для добавления функций в приложение. Все, что умеет делать приложение, реализуется с помощью программирования, то есть написания кода программы на одном из языков программирования.
При разработке мобильных приложений чаще всего используется только несколько языков программирования. Важно определиться, на каком языке лучше всего писать код, ведь от этого будет зависеть как производительность, так и возможность реализовать поставленные задачи. Если приложение создается на основе языков веб-программирования, то на выходе вы получите веб-приложение. Если будут использованы другие языки, то вы получите нативное приложение. Каждая операционная система имеет рекомендуемые языки для создания нативных приложений: для Андроид – это Java, а для iOS – ObjectiveC и Swift.
Многие разработчики советуют использовать веб-приложения. Они работают на принципах клиент-серверной архитектуры и запускаются через веб-браузер. На самом устройстве запускается небольшое приложение, которое отправляет всю информацию на сервер, а тот занимается обработкой информации. Единственный плюс таких приложений – простота и дешевизна создания каждой платформы. Одним из основных недостатков является невозможность использовать все возможности, предоставляемые операционной системой и аппаратной частью мобильного устройства. Еще один минус – для обмена информацией между клиентом и сервером необходим постоянный доступ или в локальную сеть, или в интернет. Еще один существенный недостаток – сложность реализации безопасного обмена информацией между клиентом и сервером (это требует реализации дополнительных инструментов, и не каждый разработчик это умеет делать).
Лучший выбор, по моему мнению, – создание нативного приложения, которое разрабатывается специально под конкретную операционную систему. У нативных приложений огромное количество преимуществ:
• Удобный процесс установки через магазин приложений.
• Быстрый запуск приложения и быстрая обработка информации.
• Меньшее потребление оперативной памяти устройства.
• Высокая энергоэффективность.
• Возможность полноценной работы без доступа к локальной сети и интернета.
• Использование всех возможностей операционной системы.
• Интеграция с другими нативными приложениями.
• Доступ ко всем возможностям аппаратной части устройства.
• Нативный и удобный интерфейс, интегрирующийся в операционную систему мобильного устройства.
Единственный недостаток нативных приложений – необходимость более высокой квалификации разработчика. Если разработчик начинает выдумывать недостатки нативных приложений, это означает только одно: он не способен их создавать.
Каждое приложение можно написать по-разному, используя для этого разные инструкции и получая при этом одинаковый результат. Опытные программисты пишут меньше кода и знают, что необходимо сделать, чтобы ускорить обработку инструкций. Неопытные пишут «лишь бы работало» и часто оставляют ошибки в коде. У опытных программистов легко читаемый код, что позволяет быстро понять его другому программисту, а также самому разработчику через несколько лет, а неопытные через некоторое время сами не могут разобрать, что написали.
Ошибки программиста именуют «багами». Каждая такая ошибка может привести к абсолютно непредсказуемым последствиям. К примеру, вместо того чтобы записать информацию, баг может привести к потере новой информации, а также удалению той информации, что сохранялась ранее. Самые худшие баги – это баги, связанные с безопасностью приложения, из-за которых его легко взломать, получив несанкционированный доступ к его содержимому и даже содержимому мобильного устройства. Баги не так просто найти, так как они проявляются только при сочетании определенных условий. Долгое время вы можете о них даже не подозревать.
Как говорит Джанел Гарвин, директор Evans Data: «Ошибки – это часть жизни с программным обеспечением. Иметь мало ошибок большое достижение, но реальная победа – это постоянное обновление приложения и исправление багов или добавление новых функций»[37]. Согласно исследованию Evans Data, «три четверти приложений содержит до 10 ошибок при выпуске»[38].
Единственное, что сразу может оценить любой заказчик, – оформление исходного кода приложения. Опытные программисты всегда сохраняют определенный стиль на протяжении всего кода. Например, отступы у них одинакового размера, а сам код выглядит аккуратно отформатированным. Также изредка у них встречаются комментарии к коду, написанные на русском или английском языках.
Если тестирование (также известное как контроль качества) рассматривать как нечто, обеспечивающее поддержку программного проекта, оно должно служить цели получения прибыли.
После того как будет создан почти весь необходимый функционал, на свет появляется альфа-версия мобильного приложения (первая версия). Это работающее приложение, имеющее множество багов, а также недоделанные мелочи в дизайне и функционале. Заказчику лучше такое приложение не видеть, чтобы не разочароваться раньше времени.
Где-то на этом этапе разработчики добавляют эффекты, звуки, анимацию и локализацию. Немного остановлюсь на украшательствах. Каждый эффект, добавленный в приложение, делает его более ресурсоемким и может усложнить использование. Никогда не добавляйте что-то только ради красоты и чтобы «выглядело круто». Эффекты добавляются для решения конкретных задач пользователя, никак иначе. К примеру, эффекты анимации. Если добавляется анимация выдвижения, то она должна появляться и убираться в характерную для нее сторону: вправо, если хотим увидеть, что будет далее или влево, если хотим увидеть, что было ранее. Обратная анимация желательна в ту же сторону, откуда что-то появилось на экране.
Анимация необходима: только так пользователь может понять, что в приложении что-то произошло, например, после его действия. В противном случае будет непонятно, откуда взялось новое окошко. Когда оно появится без предупреждения, это будет как если в нашем физическом мире прямо перед вами из ниоткуда возникнет попугай. От такого можно и со стула грохнуться. А вот если вы увидите, как попугай залетел в окно, это не вызовет у вас неприятных эмоций из-за неожиданности его появления и отсутствия взаимосвязи между тем, что вы видели за секунду до его появления. Также попугай должен улететь с эффектом анимации, то есть постепенно удалиться от вас, а не просто исчезнуть. Анимация помогает пользователю понимать, что приложение работает, а не зависло или «заглючило». Кстати, анимировать можно что угодно, главное, чтобы анимация не просто «делала красиво», а добавляла смысл и помогала пользователю. По своей сути анимация имитирует материальный мир с последовательностью происходящего и законами физики.