Вопрос: Как правильно написать техническое задание для разработки мобильного приложения?

Лучший ответ: Писали сочинение в школе? Тоже самое, сочинение на тему КАКИМ Я ВИЖУ ПРИЛОЖЕНИЕ *НАЗВАНИЕ_ПРИЛОЖЕНИЯ* и все, нашли над чем париться и что спрашивать О_О вы же не дипломную пишите.
Коротко и ясно на своем языке пишите как вы видите свое приложение , дальше уже программист сам спросит если что непонятно.
Если бюджет важен, то напишите небольшое сочинение, а не реферат, все зависит от функционала, все просто и логично , и не важно знаете вы как правильно написать т.з. или нет.

Худший ответ: Некоторые идеи (не все) при написании ТЗ для мобильного (НЕ по ГОСТу)
Этапы разработки (при условии что уже есть концепция):
Обследование
Интервьюирование
Прототипирование
Описание требований
Обследование:
Оцените масштабы приложения - определите структуру
Подготовьте план вопросов по проекту - оцените возможные "белые пятна"
    Рекомендуется организовывать план обследования для крупных проектов
    Набросайте сценарии использования, соотнести с конкретной ЦА
    Определите, как будет работать приложение (автономно, посредством сети, комбинировано)
    Определите технические требования к приложению: платформа (android, IOS или др.), разметка экрана (под смартфон, под планшет и др..), тип верстки (резиновая верстка, адаптированный дизайн), ориентация экрана (горизонтальная, вертикальная) и т.д
Интервьюирование (пропускаем)
Прототипирование:
    Соотносите размеры элементов интерфейса прототипа с реальными размерами экранов
    При наличии возможности используйте изображения в макетах - это облегчает визуальное восприятие, но учтите прототип должен быть прототипом, чтобы его не приняли за дизайн
    Учитывайте удобство зон касания на мобильном устройстве - выводите самые часто используемые элементы в зону удобства касания на экране 
    Востребованные функции и контент на первый план, второстепенный скрыть в меню
    Продумывать как правильно расположить точки монетизации приложения - они должны быть на виду, но не мозолить глаза 
    В навигации реализуйте возврат к предыдущему экрану (Назад) там, где это может помочь исправить некорректный или ошибочный пользовательский ввод
Описание требований:
При разработке ТЗ, определитесь из  каких разделов будет состоять его структура, есть ли возможность оптимизировать эту структуру
Избегать повторений в описании, в том числе выносить общие элементы в отдельное описание
Ориентируйтесь на краткость и информативность написания текста
Маркируйте описание общих требований для сложной структуры данных 
Если в приложении подразумевается ограничение доступа для различных категорий пользователей - пропишите отдельно требования к ролям и доступу
Отдельно прописывайте бизнес-процессы
При проектировании приложения для мобильного телефона учтите возможность поступления вызова в ходе передачи данных или выполнения программы, а также обрывы сети
Для каждого экрана в общем описании прописывать вход и выход процессов совершаемых над ним
При описании элементов интерфейса можно придерживаться структуры (Подходите к вопросу с головой, не описывайте структуру там где она не нужна):
    состав - описание состава элемента, если содержит в себе несколько элементов (например поле с подсказкой)
    описание - что делает элемент, дополнительные свойства, возможности
    источник данных - откуда подгружаются данные для элемента: локально или из API, куда уходят: в API в КЭШ
    режим обновления - частота обновления данных, в некоторых случаях выносить в общее описание активити (исходить из структуры экрана)
    функции - действия пользователя над элементом
    состояния - описание возможных стейтов, статусов, режимов, видимости 
    режим доступа  
Это только малая часть того что следует учитывать... лучше когда ТЗ пишет спец