Курсовая работа

Курсовая по разработке мобильных приложений: как спроектировать сценарии, локальные данные и работу без идеального интернета

Как написать курсовую по мобильной разработке: определить сценарии, спроектировать экраны и данные, работу с API и офлайн-режим, протестировать приложение.

К содержанию
Содержание +

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

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

Сценарий пользователя

Выберите одну основную задачу.

Например:

  • записаться на услугу;
  • вести расходы;
  • отслеживать тренировку;
  • получать задания;
  • сканировать объект;
  • работать с заказом.

Не начинайте с экранов.

Сначала опишите путь пользователя.

Карта экранов

Для сценария постройте переходы.

Например:

вход -> список -> карточка -> действие -> подтверждение.

Добавьте ветки:

  • нет данных;
  • ошибка сети;
  • отказ в разрешении;
  • пустой результат.

Так интерфейс становится системой состояний.

Платформа

Выбор нативной или кроссплатформенной разработки должен быть осмысленным.

Сравните:

  • требования;
  • доступ к системным API;
  • команду;
  • скорость разработки;
  • целевые платформы.

Не утверждайте, что один подход всегда быстрее или качественнее.

Архитектура

Разделите:

  • UI;
  • состояние;
  • бизнес-логику;
  • доступ к данным;
  • сеть.

Если экран напрямую делает SQL и HTTP-запросы, проект трудно тестировать.

Архитектура должна помогать смене состояния и восстановлению экрана.

Жизненный цикл

Пользователь может:

  • свернуть приложение;
  • заблокировать экран;
  • вернуться позже;
  • получить уничтоженный системой процесс.

Не храните критическое состояние только в оперативной памяти.

Подумайте, что нужно восстановить.

Поворот и пересоздание

На некоторых платформах изменение конфигурации может пересоздавать экран.

Если введённые данные пропадают при повороте, пользовательский сценарий сломан.

Даже если приложение фиксировано в одной ориентации, объясните решение.

Локальное хранилище

Выберите под данные.

Варианты:

  • key-value;
  • локальная БД;
  • файл;
  • защищённое хранилище для секретов.

Не храните сложную историю в одном JSON-файле, если нужен поиск, сортировка и изменение отдельных записей.

Офлайн-режим

Сеть на мобильном устройстве нестабильна.

Определите:

  • что доступно без интернета;
  • что кэшируется;
  • какие действия ставятся в очередь;
  • как происходит синхронизация.

Не показывайте бесконечный spinner при отсутствии сети.

Синхронизация

Самая сложная ситуация - данные изменились на устройстве и сервере.

Задайте стратегию:

  • сервер главный;
  • клиент главный;
  • последнее изменение;
  • ручное разрешение конфликта.

Не скрывайте конфликт случайным перезаписыванием.

API

Мобильный клиент должен корректно обрабатывать:

  • успех;
  • 401;
  • 403;
  • 404;
  • 429;
  • 500;
  • timeout.

Не показывайте пользователю технический текст исключения.

Сообщение должно объяснять действие.

Сессия

Продумайте:

  • вход;
  • хранение токена;
  • обновление;
  • выход;
  • истечение.

Не храните секретный токен в обычном незашифрованном preferences-хранилище, если платформа предоставляет более защищённый механизм.

Разрешения

Запрашивайте разрешение только когда оно реально нужно.

Пользователю должно быть понятно зачем.

Если доступ к геолокации отклонён, приложение должно либо продолжить работу без функции, либо объяснить ограничение.

Не запрашивайте весь список разрешений при первом запуске.

Камера

Если используется камера, определите:

  • цель;
  • качество;
  • обработку;
  • хранение.

Не сохраняйте полноразмерное изображение, если нужен только небольшой thumbnail.

Это влияет на память и сеть.

Геолокация

Высокая точность сильнее расходует батарею.

Если приложению достаточно района или разовой точки, постоянный GPS может быть избыточным.

Выбор режима должен следовать из сценария.

Фоновая работа

Мобильные ОС ограничивают фоновые процессы.

Не рассчитывайте, что обычный бесконечный цикл будет работать часами в фоне.

Используйте подход, который поддерживается платформой для соответствующего типа задачи.

Уведомления

Push должен иметь пользовательскую ценность.

Определите:

  • событие;
  • время;
  • содержание;
  • переход после нажатия.

Не отправляйте уведомление только ради увеличения количества взаимодействий.

Навигация

Кнопка «назад» должна вести предсказуемо.

Не создавайте десятки копий одного экрана в стеке.

Если переход deep link открывает карточку, продумайте, что произойдёт после возврата.

Состояние загрузки

Показывайте:

  • progress;
  • skeleton;
  • кнопку повтора.

Не блокируйте весь экран маленьким запросом, если остальная информация уже доступна локально.

Ошибки формы

Проверяйте поле рядом с местом ввода.

Не показывайте диалог «Ошибка данных» без уточнения.

Для мобильного ввода особенно важно правильно выбрать клавиатуру:

  • число;
  • email;
  • телефон.

Доступность

Проверьте:

  • размер зоны нажатия;
  • системное увеличение шрифта;
  • screen reader;
  • контраст;
  • ориентацию.

Не фиксируйте текст настолько жёстко, что крупный системный шрифт ломает экран.

Производительность

Измеряйте:

  • время запуска;
  • прокрутку;
  • память;
  • сетевые запросы.

Не оптимизируйте только размер APK или IPA, если приложение тормозит из-за тяжёлого списка.

Список

Для большого списка используйте lazy/render-on-demand подход.

Не создавайте сразу тысячи элементов интерфейса.

Пагинация или загрузка частями уменьшает память и время.

Изображения

Используйте подходящий размер.

Не скачивайте фотографию 4000x3000 для иконки 100x100.

Кэш изображений тоже должен иметь ограничение.

Батарея

Частые GPS-запросы, фоновые таймеры и постоянная синхронизация расходуют энергию.

Если тема включает мониторинг, сравните частоту обновления и полезность данных.

Тестирование

Проверяйте не только эмулятор.

Если возможно, используйте реальное устройство.

Различия появляются в:

  • производительности;
  • камере;
  • GPS;
  • уведомлениях;
  • памяти.

Разные экраны

Протестируйте несколько размеров.

Маленький телефон, большой телефон и планшет могут требовать разной компоновки.

Не растягивайте один макет механически.

Crash

Если приложение падает, сохраните стек и воспроизведите сценарий.

Не исправляйте случайно несколько строк до исчезновения ошибки.

Нужно понять причину.

Аналитика

Если приложение собирает события, определите только полезные:

  • завершил регистрацию;
  • создал заказ;
  • дошёл до оплаты.

Не собирайте всё подряд без цели и учёта приватности.

Защита

Покажите:

1. сценарий;
2. карту экранов;
3. данные;
4. работу без сети;
5. разрешения;
6. тест на устройстве.

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

Ещё по теме