Как написать приложение под Андроид

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (6) [1] 2 3 ... Последняя »  К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
ФеномАнален
11.12.2020 - 18:41
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
152
Это не инструкция как сделать. И не попытка преподать урок. Это больше описание самого процесса.

42 картинки и одно видео.

Я не знаю, как это делают другие, но я покажу вам как это делаю я.

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

Сразу скажу. Не рекламирую никакие курсы. Не рекламирую свои услуги.

В 2016 году подрабатывая таксистом в Москве, я вез одну пару из Домодедово. Живут в Австралии, сюда по делам, сами занимаются IT. Такси бизнес-класс. Я спросил их, а сложно ли имея за плечами давнишнее образование вновь заняться программированием и много ли чего поменялось?

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

Что они мне ответили не помню. Я и сейчас работаю в такси для денег.

Начну что ли…

Предвосхищая вопрос о том, почему фотографии экрана в 2020? Ты ж ПРОГРАММИСТ!??? - Фиксацию процесса изготовления этого приложения я делал через другое приложение, которое еще разрабатываю в свободное время, а там камера.

Итак, меня попросили сделать Таймер.

Немного цифр.
С момента старта разработки с нуля, до заветного “Доступен в Google Play” 11 дней.

Непосредственно работа заняла 114 часов, 24 минуты и 32 секунды.

Как написать приложение под Андроид
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
ФеномАнален
11.12.2020 - 18:41
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
У заказчика была только идея. А идея заключалась в том, что он не смог найти такое приложение таймера, которое где-то просто сохраняло бы измерения времени какого-то процесса (езды с работы домой или наоборот, как долго он сможет не дышать или сбегать в магазин за добавкой) и к ним можно было бы вернуться.

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

Поехали. С чего начинаю?

Иконка. Та на которую надо тыкать, когда запускаешь приложение.

Это как стройка начинается с туалета. Не могу смотреть на стандартную андроидовскую иконку. Любую другую, найти или самому нарисовать.

Иконка называется launcher. Я умею делать принт скрин.

начало 29 ноября 10:36
продолжительность: 1:16:50

Здесь AdobeXD (1) и (3) - рисование
Интернеты (2) - поиск иконок (в векторном формате)
Android Studio (4) - то место где пишется приложение - среда разработки. Там уже создан проект, в который мы размещаем иконку в специальное место.
Экран эмулятора (5) - эмулятор Андроид с установленным приложением и с иконкой.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:42
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
29-нояб. 11:54
0:52:48
Создать экран. Снизу таймер. Сверху список.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:42
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
29-нояб. 12:48
1:47:24
создать стрелки и запустить их анимацию
Adobe XD(1) и Android Studio (2)


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:42
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
29-нояб. 14:36
1:04:42
процесс написания собственно приложения пошёл.
создать класс записи и сохранение базы записей
на самом деле здесь ничего страшного нет.
Например, TimerNote это я так назвал петрушку которая будет отвечать за конкретную запись Таймера. У которой есть время старта, время стопа и всякие дополнительные параметры которые можно выдумать. А храниться они все будут в DataBase - эта петрушка в которой просто много записей.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:43
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
29-нояб. 15:42
0:39:51
У нас есть список записей и его нужно показывать.
Наш экран мы разделили ранее на две части. В нижней части у нас изображение часов. Если по нему кликнуть, то сохраняется в памяти метка текущего времени - время старта. В приложении устанавливается флажок о том, что оно в процессе работы таймера. И следующий клик по часам уведомляет о том, что это стоп и также сохраняется время клика. Из пары стартового времени и стопового делается запись. Ее мы показываем вместе с предыдущими в верхней части экрана.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:43
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
29-нояб. 16:22
0:54:51
нахождение нормальной функции перевода штампа времени в текстовую строку.
Штамп времени это число выражающее текущее время в миллисекундах с 1 января 1970 года.
Выше штамп времени уже переводится в текстовый формат, но хочется показывать в привязке к текущему моменту и кратко. Не 29.11.2020 15:38:40, а просто 44m назад. Продолжительность не 00:00:07, а 7s.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:43
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
29-нояб. 18:35
0:04:57
На этот момент - самый основной функционал реализован. Всего потрачено времени 6 часов 36 минут и 26 секунд.
Запускаемый файл apk отправлен заказчику. Пусть запустит и убедится, что приложение выполняет его требования.
С этого момента начинается основная работа по приведению приложения в должный вид, его доработке и наполнению дополнительным функционалом.
И самое первое что попросил заказчик - сделать так, чтобы новые записи отображались вверху списка. Это не сложно.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:43
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
29-нояб. 18:45
0:24:39
Конечно нужно позволить пользователю удалять ненужные записи. Вопрос как? Чтобы самому себе не сделать ненужной работы в будущем по переписыванию функционала - нужно сразу придумать хороший способ. Мне показалось что свайпом в сторону удалять записи лучше всего.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:44
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
29-нояб. 19:29
0:46:31
цифровой таймер
Это вполне себе правильное пожелание заказчика. Логично сделать рядом с циферблатом.
Меняем цифры в той же функции где перерисовываются стрелки. С точки зрения “чистоты кода” это не правильно, но вот по методике KISS - keep it simple stupid - нормально.
Добавим.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:44
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
29-нояб. 20:17
5:26:49
редактирование заголовка и комментария записи.
А как без этого? Надо сделать.
Кто то внимательный спросит, а че так долго то? Пять часов. Ну а вот так. Нужно вид записи разделить надвое. Раскрывать и закрывать. В раскрытом состоянии показать поля ввода. Читать ввод и сохранять в базе контролируя позицию. А до этого прокрутить в голове несколько вариантов реализации функционала - может вообще отдельное окно надо показывать пользователю с вводом или еще как…
Первый день разработки закончен.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:44
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
30-нояб. 12:41 (Второй день разработки)
4:50:59
При старте секундомера - увеличивать его.
Невозможно знать все и приходится постоянно что-то изучать. Так и при этой подзадаче. Можно было пойти по протоптанной тропинке и просто в коде увеличить изображение секундомера. Переместить цифры. И все это контролировать в коде. Но в будущем при малейшем изменении вида - нужно лезть в код и вручную исправлять цифры. Надо найти другой способ. Сейчас потратить больше времени на изучение, но в будущем это знание сэкономит кучу времени. Найдено простое и эффективное решение - разделить один экран на два вида. Теперь в коде можно просто переключать виды экрана и даже с плюшкой в виде анимации элементов.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:45
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
30-нояб. 17:33
1:50:23
перерисовать секундомер
это и пожелание заказчика и мое. Получилось так:


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:45
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
30-нояб. 19:24
5:26:06
перемещать по разделам.
Сейчас все записи хранятся в одном списке. Хорошо бы дать возможность пользователю разделять их. Делаю псевдо файловую систему. По факту одна папка отвечает за один файл в котором хранятся все записи. Но самих файлов то уже не один. Поднапрягся - сделал. Ввел еще один экран где можно работать с папками, создавать их и просматривать содержимое. С главного экрана свайпом записи теперь можно не только удалять, но и переносить их в папки.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:45
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
01-дек. 10:43 (Третий день разработки)
0:58:00
Если у пользователя нет никаких папок, то надо ему предложить ее создать или создать за него по умолчанию. Создаем по умолчанию.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:45
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
01-дек. 11:42
0:38:14
Перечитывать базу папок при возврате на главный экран.
Под капотом программы много мелочей, которые нужно учитывать. Так, например, главный экран (да простят меня за такое упрощение названия активити) не знал о том, что на экране папок создана новая. Это надо исправить.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:46
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
01-дек. 12:21
3:58:55
Визуализация записи в папку
Сейчас надо сделать так, чтобы визуально пользователю было понятно что происходит с его записью на главном экране. Итак, свайп влево это удаления. Свайп вправо перемещение в папку, которую должен выбрать пользователь. И если папка не выбрана - то оставить запись на главном экране. В главном списке.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:46
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
01-дек. 16:36
1:39:41
удаление папок.
Давно хотел разобраться с драг энд дропом и разобрался.
Удаляем папки перетаскиванием в корзину. Корзина появляется в момент перетаскивания.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:46
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
01-дек. 18:36
0:19:43
запретил редактирование записи на главном экране во время запущенного таймера.
Вот видите. Редактировать нельзя.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:47
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
01-дек. 19:01
2:55:11
инфострока на экране с папками. Удаление записей уже на этом экране и перемещение в общую папку.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:47
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
02-дек. 11:51 (Четвертый день разработки)
4:31:34
Продолжать работу секундомера в фоне. В настройки приложения закидывается состояние таймера. При открытии они читаются и таймер восстанавливается.
Важная опция. Никому не нужен таймер, который при малейшем чихе сбрасывает свое состояние.
В будущем фоновая работа будет дополнена сервисом уведомления. А пока это конечно, квази фоновая работа. Попутно добавил бегущие сотые доли секунд.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:47
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
02-дек. 16:24
0:10:06
А зачем убирать возможность работы с сохраненными в папках записями во время работы секундомера? Исправляю.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:47
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
02-дек. 16:39
0:00:52
А как же без багов? Конечно их есть у меня.
При добавлении новой папки, она рисовалась в случайном порядке с иконкой корзины. Это связано со спецификой организации списков выбранной мной. Исправил.
Видите на картинке нет ни одной иконки корзины. Значит, действительно, исправил. )))


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:48
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
02-дек. 16:45
0:43:20
“больше информации в раскрытой для редактирования записи”
просит заказчик.
Конечно можно.
Чтобы визуально разделить открытую и закрытую записи - разделил их цветом.


Как написать приложение под Андроид
 
[^]
ФеномАнален
11.12.2020 - 18:48
Статус: Offline


Хохмач

Регистрация: 2.03.17
Сообщений: 702
02-дек. 19:19
1:16:08
При удалении папки с записями приложение не просит подтверждения!
Создаем окно диалога.


Как написать приложение под Андроид
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 35223
0 Пользователей:
Страницы: (6) [1] 2 3 ... Последняя » [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх