Курс по созданию приложения Reminder
В уроках курса пошагово объясняется, как создать приложение на андроид в материальном стиле, внедрить рекламу и загрузить в Google Play. Мы начинаем наш продвинутый курс по созданию реального действующего андроид-приложения Reminder (напоминалка). Курс состоит из 10 уроков по созданию приложения и 2х дополнительных уроков по загрузке вашего приложения в маркет Google Play и монетизации его за счет показа рекламы AdMob. Пример приложения можно посмотреть здесь. С помощью этого приложения можно будет создавать задачи с напоминаниями в определенное время и в определенный день недели, отмечать их как выполненные и снимать отметку выполнения, или просто создавать записи без напоминания. Можно будет использовать приложение для создания списков – списка покупок, например. Записи на экране будут сортироваться по текущим и выполненным, по срокам: на сегодня, завтра и в более отдаленном будущем. Будет также возможность поиска задач среди текущих и выполненных. Приложение будет оформлено в лучших традициях материального дизайна – с Floating Action Button (FAB) – плавающей кнопкой, скрывающимся тулбаром (ToolBar), RecyclerView, анимацией и прочими фишками.Научитесь создавать андроид-приложения!
Подпишитесь на Продвинутый видеокурс по созданию реального андроид-приложения, в результате которого вы создадите настоящее, работающее, полезное и функциональное приложение, затем, по желанию, загрузите его в Google Play и подключите рекламный баннер AdMob для монетизации вашего приложения. В результате прохождения курса вы:- Создадите свое приложение в среде разработки Android Studio
- Научитесь работать с современными инструментами из библиотеки поддержки материального дизайна:
- CoordinatorLayout
- RecyclerView
- ToolBar
- FloatingActionButton
- FloatingLabels
- SnackBar
- Увидите реальные примеры работы с SharedPreferences и базами данных SQLite, списками и вкладками, Services и Notifications, и т.д.
- Узнате, как создать аккаунт разработчика в Google Play и опубликовать приложение в маркете
- Освоите способы зарабатывания денег на показе рекламы в вашем приложении
Функционал приложения
В этом Продвинутом курсе вы сможете создать приложение, которое можно использовать как напоминалку о делах, планировщик или список покупок. В приложении можно создавать короткие записи без даты, или с датой и временем, по наступлении которых будут выводиться напоминания. Можно отмечать записи как выполненные, редактировать или удалять, изменять дату и вемя напоминания. Более подробно с функционалом приложения можно ознакомиться, загрузив его из Google Play по ссылке: Приложение Reminder в Google PlayКак записаться на курс
Воспользуйтесь кнопкой ниже для перехода на страницу оплаты. После оплаты отправьте через форму обратной связи сообщение с темой «Подписка на курс Диктофон». В сообщении укажите email, на который будут отправлены данные для доступа.Список уроков курса:
Урок 01 Создаем проект, добавляем CoordinatorLayout и Splashscreen Реализуем возможность отключения сплешскрина при каждом запуске
Урок 02 Подключаем ToolBar, разделяем экран на вкладки Реализуем SharedPreferences для сохранения настроек
Урок 03 Добавляем Floating Action Button (FAB), создаем макет диалога с FloatingLabels Добавляем диалоги выбора даты и времени DatePickerDialog и TimePickerDialog
Урок 04 Строим макет элемента списка, добавляем RecyclerView Пишем кастомный адаптер
Урок 05 Добавляем CircleView Реализуем анимацию при выделении пунктов в списке
Урок 06 Реализуем сохранение данных в приложении Подключение базы данных SQLite
Урок 07 Добавляем контекстное меню для удаления задачи Подключаем SnackBar
Урок 08 Добавляем SearchView Реализуем поиск задач в базе данных приложения
Урок 09 Подключаем Notification – оповещение о событиях
Урок 10 Реализуем возможность редактирования задачи Группировка задач на экране с помощью сепараторов
Урок 11 Добавляем рекламный баннер в наше приложение Reminder
Урок 12 Готовим приложение к публикации Загружаем в Google Play
Здравствуйте, оплатил курс и отправил всю информацию через форму обратной связи, хотел поинтересоваться, когда появиться доступ?
И так же я хотел бы воспользоваться акцией два курса по цене одного. Если это возможно, то хотел бы получить дополнительный доступ к курсу “Продвинутый курс по разработке игры для android Lunar Rover”
Здравствуйте, спасибо за подписку!
Вам предоставлен доступ к Продвинутым курсам.
Стоимость курса при оплате через Юмани – 999р. Вы оплатили 636,02 RUB. Доплатите, пожалуйста, разницу тем же способом для получения доступа.
Очень странно, сумма заполнилась автоматически.. Доплату выполнил.
Здравствуйте! Я оплатил курс «Курс по созданию приложения Reminder». Хотел бы получить доступ в подарок к «Курс по созданию приложения Reminder». Предоставьте, пожалуйста доступ.
Спасибо за подписку, доступ предоставлен.
Добрый день!
Оплатил курс “Курс видеоуроков по созданию android приложения Reminder (Material Design)” (по карте, 28.03.2021 ~в 22:00), по условиям акции 2+1 до конца марта хотел бы выбрать в подарок курс “Как создать простое мобильное приложение для любого сайта (с push-уведомлениями) на Kotlin” на этот же аккаунт.
Заранее спасибо!
С уважением,
Андрей
Спасибо за подписку, доступ предоставлен.
Здравствуйте! изначально импортировала библиотеки версии android , но после урока 4 перестал запускаться: я так поняла , что конфликт версий android, androidx. Далее изменила библиотеки с android на androidx, ошибки исчезли, приложение стало запускаться, но при добавлении даты и времени вылетает с ошибкой:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myreminder, PID: 5868
java.lang.IllegalStateException: Fragment null must be a public static class to be properly recreated from instance state.
at androidx.fragment.app.FragmentTransaction.doAddOp(FragmentTransaction.java:165)
at androidx.fragment.app.BackStackRecord.doAddOp(BackStackRecord.java:179)
at androidx.fragment.app.FragmentTransaction.add(FragmentTransaction.java:125)
at androidx.fragment.app.DialogFragment.show(DialogFragment.java:154)
at com.example.myreminder.dialog.AddingTaskDialogFragment$2.onClick(AddingTaskDialogFragment.java:140)
at android.view.View.performClick(View.java:4791)
at android.view.View$PerformClick.run(View.java:19884)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5268)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
Нажимаю на строку ошибки com.example.myreminder.dialog.AddingTaskDialogFragment$2.onClick(AddingTaskDialogFragment.java:140)
и указывается строка: datePickerFragment.show( getFragmentManager(), «DatePickerFragment»); в классе AddindTaskDialogFragment.java
Используйте реализацию из проекта, оправленного вам на имейл
Спасибо!
Здравствуйте, у меня такая же ошибка, пришлите пожалуйста реализацию и мне
У кого при релизе приложения выскакивает типа:
– «Error:Error: Fragments should be static such that they can be re-instantiated by the system, and anonymous classes are not static [ValidFragment]»
добавить в gradle
– lintOptions {
disable ‘MissingTranslation’, ‘ExtraTranslation’, ‘StringFormatInvalid’, ‘ValidFragment’
}
Это не помогает!
А другие варианты как бороться с “Error: Fragments should be static such that they can be re-instantiated by the system, and anonymous classes are not static” имеются. Кто-то может что-то посоветовать???
Готовим новую версию приложения, исходники с решениями появятся на страницах курса.
В последнем уроке появилась возможность скачать полные рабочие исходники проекта. Внимание: работоспособность проекта гарантируется только при условии совместимости версий конфигураций сборки вашего проекта с исходниками. Сверяйте файлы build.gradle
Здравствуйте!
Подскажите, будут ли в ближайшем времени какие-нибудь акции по платным курсам?
Прошу помощи! “дэбажная” версия работает,создаю релиз,вылазит вот такая “шапокляк”
– … \dailog\AddingTaskDialogFragment.java
– “Error:Error: Fragments should be static such that they can be re-instantiated by the system, and anonymous classes are not static [ValidFragment]”
Какой урок я пропустил? Подскажите, где “копать”?
У меня проблема! При вводе символа в строке поиска , приложение вылетает.
Выдает логи ошибок:
– android.database.sqlite.SQLiteException: near “?”: syntax error (code 1): , while compiling: SELECT * FROM tasks_table WHERE task_titleLIKE ? AND task_status = ? OR task_status = ? ORDER BY task_date
Все я нашел проблему, и как обычно это оказался “человеческий фактор”, то есть моя невнимательность.
Прошу прощения за ложную тревогу.
Спасибо за хорошие уроки!
Вот две первые строчки из лога с ошибкой, остальные не пишу так как их очень много:
03-01 21:07:29.351 28010-28010/com.backatom1.remainder E/AndroidRuntime: FATAL EXCEPTION: main
03-01 21:07:29.351 28010-28010/com.backatom1.remainder E/AndroidRuntime: java.lang.ClassCastException: com.backatom1.remainder.MainActivity@b5ab1f68 must implement OnFragmentInteractionListener
А при вылете в приложении просто пишет “В приложении Reminder произошла ошбка”.
И еще исходный код в классе CurrentTascFragment.java не такой как у меня, хотя я имплементировал те же методы что и в видео, но в моем классе больше имплементированных методов.
Я попробовал поменять код на такой как в исходниках, и после этого приложение стало запускаться, но опят же при сворачивании приложения оно так же вылетает, никак не могу понять в чем дело.
Спасибо за помощь.
Здравствуйте, у меня проблема, во втором уроке после добавления вкладок приложение стало вылетать с ошибкой, не могу понять в чем проблема, делал все в точности как в видео.
Помогите пожалуйста.
Нужен текст ошибки
Виталий было бы здорово если бы исходные коды уроков заливались на github, под каждый урок свой репо. А то архив с гугл диска неудобно тянуть потом распаковывать.
Сегодня закончил!!!
Все получилось!!!
Подскажите как реализовать вызов Диалогового окна из фрагмента если кнопка находится в фрагменте.
такой вариант не работает :(
DialogFragment addingListsDialogFragment = new AddingListsDialogFragment();addingListsDialogFragment.show(getActivity().getFragmentManager().beginTransaction(),”AddingListsDialogFragment”);
Всем привет.Хотел бы рассказать историю про то,как я-17 летний школьник-не до программист,создал своё приложение,но сначала предыстория.
30 августа,я увидел на канале Start Android видео ролик,рассказывающий про набор на продвинутый видеокурс по созданию реального android приложения. На следующий день я оплатил и записался на него.10 сентября начался видеокурс и опираясь на него, я начал создавать своё индивидуальное приложение .Во время разработки я познакомился с Игорем Морозкиным,который мне очень сильно помогал с преодолением всевозможных проблем и трудностей и которому я ОЧЕНЬ сильно благодарен.И вот 14 октября мы закончили разработку приложения под названием Castroom( https://play.google.com/store/apps/details?id=info.fanandroid.reminder
)
Приложение простое,многие из вас могли сделать его за день,ну или за час,а мне,человеку,который только-только познакомился с программированием,было очень сложно.Приложение бесплатное и не имеет рекламы,следовательно,на вас я не смогу никак заработать :D,мне просто хочется донести до людей,по моему мнению,полезное приложение.Поэтому, я хотел бы вас попросить,если не сложно,скачать и дать оценку с отзывом(при оценивании помните,что я только познакомился и только начинаю свой путь в программировании).Ваши идеи,так же можете написать здесь,под этой записью.Спасибо за внимание.
Всем привет, урок 12.
Регистрируем аккаунт андроид-разработчика, подписываем apk и публикуем приложение в Google Play
http://www.fandroid.info/registriruem-akkaunt-android-razrabotchika-podpisyvaem-apk-i-publikuem-prilozhenie-v-google-play/
Не для рекламы ни в коем случае советую всем тем, кто получает ошибки и что то не так как в уроке выходит – программа для сравнения файлов SourceGear DiffMerge. Там самая первая опция сравнение папок. Так вот укажите для первой папки свою с java классами а для второй скачайте исходники урока на котором остановились, распакуйте куда нибудь и также укажите путь к java классам Виталия. Программа выведет список сверяемых файлов и если два раза щелкнуть по одной из строк, то выводится окно сравнения аналогичных файлов. ТАк можно найти опечатки и расхождения в коде.
Я использую KDiff3 в составе Git Extensions для Windows
Иногда ещё сравниваю файлы в NotePad++, там для этого есть специальный плагин.
Всем привет. Опубликован урок 11.
На реальном устройстве с Андроид 4.1 устройство крашится но с дальнейшим продолжением работы, если не ошибаюсь если создать как в уроке на существующее дату и время, и вроде при срабатывании оповещения тоже вылетает ошибка. В журнале ничего особенного нет. Совет ”
Вместо
notification.flags |= Notification.FLAG_AUTO_CANCEL
использовать
builder.setAutoCancel(true); ”
не помог.
Виталий, когда ожидать урок, не подскажете?
Всем привет. Опубликован урок 9.
Всем привет. Опубликован урок 8.
Ребята такой вопрос в всплывающем диалоговом окне, есть кнопка ок где она отображается к доке в каком лаяуте я что то не могу найти , ее у меня нету
[id28200168|Виталий], http://pastebin.com/fsN7YN1q
спасибо
все спать можно спокойно)
Всем привет. Опубликован урок 6.
после добавления в buildgradle строки “compile ‘com.android.support:support-v 13:23.0.1′” при синхронизации выбивает кучу ошибок в файле appbuildintermediatesexploded-aarcom.android.supportappcompat-v723.0.1resvalues-v21values-v21.xml
ошибки типа:
Error:(26, 21) No resource found that matches the given name: attr ‘android:layout_alignParentStart’.
или
Error:(124, 21) No resource found that matches the given name: attr ‘android:colorAccent’.
(115штук)
подскажите как исправить пожалуйста.
[id144347983|Артем],
[id28200168|Виталий], пробовал, эффект тот же
[id28200168|Виталий], так же после удаление этой строки и синхронизации происходит то же самое
Здравствуйте, видеокурс хороший и понятный. Жаль, что нет текстовых версий урока было бы очень удобно.
Всем привет. Опубликован урок 4.
Очень доволен началом! Всё очень доступно и понятно объясняется. Уверен, что к концу курса у многих хватит новых навыков, для того, что бы дополнить приложение на свой вкус. Спасибо за вашу работу.
Спасибо, успехов в обучении!
Начал обучение, прошёл три урока (которые вышли на момент написания этого сообщения) Очень доволен курсом. В отличие от коротких уроков, у меня не возникает ощущения, что на потом остаются какие-то темы. Просто берём и делаем всё, что необходимо, от начала и до победы! Очень продуктивно, огромное спасибо за такую возможность!
В качестве пожелания, хотелось бы более подробно разобраться со стилями для материального дизайна, научиться грамотно менять оформление на лету, давая возможность пользователю переключать темы при помощи настроек.
Спасибо вам за добрые слова! Постараемся учесть все пожелания.
Вже 6 місяців вивчаю Java та Android, практикуюся в написанні додатків, точніще окремих їх частин. Ще не доводилось це все обєднати і написати реальний додаток. Тому дуже вдячний вам за таку можливість! Кожного вечора з нетерпінням чекаю наступних уроків. Дуже цікаво і просто, хороша ідея з конкурсом, в якому я один з п’яти переможців. Дрібниці, проте скільки емоцій після перемоги :)
Извиняюсь за спам если что, но мой предыдущий комент исчез в недрах паутины… мистика)))).
Поэтому, я повторюсь о том, что урок замечательный, как и все остальные. Главное, что все показано на практике. Подобного в Интернете просто нет! Либо англоязычное, либо от 400 баксов, либо просто не понятно и не реально повторить на практике. Ваши уроки самые доступные для большинства из нас(чайников) во всех смыслах этого слова!
Спасибо Виталий! Здоровья Вам!
Спасибо, успехов вам!