Android. Пишем приложение - список дел, с использованием архитектурных компонентов от Google.

  Рет қаралды 50,002

Sergey Arkhipov Java Tutorials

4 жыл бұрын

В данном видео я показываю полностью процесс создания приложения, которое представляет собой список дел на сегодня. Для построения приложения используются архитектурные компоненты от Google: Room, ViewModel, LiveData. Основное назначение видео - показать, как организовать хранение информации в базе данных и последующее отображение данных на пользовательском интерфейсе.
Приложение обладает следующим функционалом:
- создание/редактирование/удаление дел;
- отображение дел в виде отсортированного списка;
- возможность отметить дело, как выполненное.
#ArhiTutorialsJava #ityoutubersru
Исходники тут:
github.com/Arhiser/android_todo_list
Есть вопросы или предложения? Напишите в Telegram группу канала:
t.me/ArhiTutorials
Предыдущие видеo:
Android. Работа с REST API. Подключаемся к сервису NASA, загружаем фото из космоса kzfaq.info/get/bejne/qM6UnKZpt8qdYJc.html
Пишем приложение - калькулятор
kzfaq.info/get/bejne/hZyqeZl2msjccZc.html
Поддержать канал💰:
yoomoney.ru/to/410018856244871

Пікірлер: 109
@user-de6dd1dd8e
@user-de6dd1dd8e 3 жыл бұрын
Полтора часа прошли незаметно, но с пользой! Спасибо , продолжайте в том же духе!
@wildjoe6259
@wildjoe6259 4 жыл бұрын
Спасибо! Данный формат по душе
@marymayerr3438
@marymayerr3438 Жыл бұрын
Именно такой вариант хотелось бы видеть, полностью весь процесс и без урезаний со всеми пояснениями это очень удобно
@violetjellyfish2089
@violetjellyfish2089 3 жыл бұрын
Сергей, большое спасибо за это и подобные видео! Они действительно очень полезны!
@truth_Of_The_Life
@truth_Of_The_Life 4 жыл бұрын
Спасибо вам. Очень хорошо объесняете.
@alexzhelyapov3556
@alexzhelyapov3556 4 жыл бұрын
Формат видео очень информативный!!! Спасибо)
@andjusticeforall9473
@andjusticeforall9473 2 жыл бұрын
Спасибо! Отличное видео, особенно для тех, кому требуется разжеванная информация)
@jamesbondyana
@jamesbondyana 4 жыл бұрын
Чувак! И по больше! Побольше! ПОБОЛЬШЕ!
@Ruslan-bo4xk
@Ruslan-bo4xk 4 жыл бұрын
Данный формат 👍Супер!
@ivalal
@ivalal 4 жыл бұрын
Спасибо. Подробное видео намного лучше.
@kirilllvov4551
@kirilllvov4551 4 жыл бұрын
Да, очень полезный формат видео. Спасибо, очень информативно!
@olgaulyandina440
@olgaulyandina440 4 жыл бұрын
Это через sqlite?
@shluhogon_42
@shluhogon_42 2 жыл бұрын
Отличный формат с подробными пояснениями
@arsenthompson
@arsenthompson 4 жыл бұрын
спасибо! такой формат класс!
@musilopo
@musilopo 2 жыл бұрын
Мне очень нравится такой формат я новичок и учу джаву неделю и просто повторяю по видео что вы делаете и мне так удобнее всего учиться, я хочу сделать очень крутую игру с текстовым управлением, и пока не все понимаю, но ваш урок очень будет мне полезен. Благодарю!!!
@xXx_F0rty_S3c0nd_xXx
@xXx_F0rty_S3c0nd_xXx 2 жыл бұрын
и многому ты так научился?
@manygames5822
@manygames5822 3 жыл бұрын
Спасибо! Формат то что надо.
@kotikvacia9970
@kotikvacia9970 4 жыл бұрын
Спасибо огромное)
@myelectroword-channel
@myelectroword-channel 4 жыл бұрын
Видео очень нравится. Можно подробнее о room, moxy, dagger 2, javaRx?
@sergozubarev1153
@sergozubarev1153 3 жыл бұрын
Круто! Спасибо!
@HelloWorld-oc2eu
@HelloWorld-oc2eu 2 жыл бұрын
Большое спасибо за видео, все понятно
@kostenko3299
@kostenko3299 3 жыл бұрын
Спасибо, Вам огромное. Очень сильно помогли
@UserSo4reUsu75ry
@UserSo4reUsu75ry 4 жыл бұрын
Спасибо. Сделайте еще видео про работу с сетью и потоками.
@tysneproduction1344
@tysneproduction1344 4 жыл бұрын
Просто лучший, кнопка подписаться серая сразу
@user-cs4dl3kk8r
@user-cs4dl3kk8r 4 жыл бұрын
спасибо продолжайте в том же духе
@MostGood1
@MostGood1 3 жыл бұрын
Здравствуйте! Очень хороший формат! А можете сделать видео по работе с Git?
@georg.sabantchiev
@georg.sabantchiev 2 жыл бұрын
Да, видео очень хорошее. Стоит делать почаще.
@arsenthompson
@arsenthompson 4 жыл бұрын
каеф, лайк не глядя!)
@Estarossa_Miloserdia
@Estarossa_Miloserdia 2 жыл бұрын
Всё классно!!!
@aarambforter7643
@aarambforter7643 2 жыл бұрын
Добрый день. Хорошее видео. Нестандартный подход. Пожалуйста, покажите как добавить функцию поиска ( search) в это приложение на Java,если возможно. Спасибо.
@user-mm5bq7dp4g
@user-mm5bq7dp4g Жыл бұрын
И интересно самому дополнить возможностью перемещать задачи между собой в общем списке
@andjusticeforall9473
@andjusticeforall9473 2 жыл бұрын
Сергей, Вы упомянули о том, что обращение к базе данных ресурсозатратный процесс и что лучше спроектировать приложение так, чтобы каждое такое обращение происходило в отдельном потоке. Т.е. создание БД должно выглядеть как-то так: public static NotesDatabase getInstance(Context context) { synchronized (LOCK) { if (notesDatabase == null) { notesDatabase = Room.databaseBuilder(context, NotesDatabase.class, DB_Name).build(); } } return notesDatabase; } И должны быть созданы отдельные методы (insert, udate, delete, ...) в MainViewModel посредством AsyncTask. Например так: public void insertNote(Note note) { new InsertTask().execute(note); } private static class InsertTask extends AsyncTask { @Override protected Void doInBackground(Note... notes) { if (notes != null && notes.length > 0) { database.notesDao().insertNote(notes[0]); } return null; } } Я в верном направлении мыслю? Спасибо
@arhitutorials
@arhitutorials 2 жыл бұрын
Работать будет, но лучше бы подключить RxJava, как тут: @Dao public interface NotificationDao { @Insert(onConflict = REPLACE) Completable insert(SmsNotification notification); } А в месте вызова notifsDao.insert(notification) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(); - это более читабельно. А создавать инстанс базы данных проще в Application.onCreate() и ни делать никакой синхронизации.
@sunight9495
@sunight9495 2 жыл бұрын
Спасибо за видео ! Подскажите сложно реализовать, чтоб выполненные заметки (те которые перечеркнутые) появлялись в другом окне?
@jesor1123
@jesor1123 4 жыл бұрын
Спасибо за приложение для Диплома)
@arhitutorials
@arhitutorials 4 жыл бұрын
Я когда-то для диплома нейронные сети обучал фильтром Калмана. Вот то был диплом. А теперь достаточно приложение для заметок написать. Где-то наше образование свернуло не туда))
@jesor1123
@jesor1123 4 жыл бұрын
@@arhitutorials Есть такое)
@d.mertsalov
@d.mertsalov 4 жыл бұрын
Спасибо! Подметил для себя несколько полезных приёмов. Мне нравится такой формат, надеюсь ещё будут такие видео. Почему в классе Note поля с модификатором public, а не используются геттеры и сеттеры? Во всех умных книжках, рекомендуют этого не делать.
@arhitutorials
@arhitutorials 4 жыл бұрын
Спасибо за отзыв! Если в умных книжках рекомендуют, значит так и надо делать) Но вообще говоря, для POJO классов это не так строго. Поскольку геттеры/сеттеры используются для скрытия реализации, а в POJO реализация однозначна и скрывать там нечего. Кроме того, отсутствие геттеров как раз и может означать, что мы имеем дело с простым классом, состоящим только из полей и другой функциональности там нет и не будет. В общем, я считаю, что если вся функциональность класса заключается в том, чтоб содержать свои поля, то геттеры можно не использовать. В остальных случаях геттеры/сеттеры обязательно нужны.
@alexandernifanin7366
@alexandernifanin7366 4 жыл бұрын
Если поле пишется и читается прямо (без доп. логики типа арифм. действий), setter/getter не нужны и только мешают. В Kotlin от этого просто избавились.
@igs335
@igs335 3 жыл бұрын
Хорошо бы тоже самое, но на котлине)
@user-hg5ll3go7m
@user-hg5ll3go7m 4 жыл бұрын
Подскажите, пожалуйста, будет ли работать данный код, только если организовать его во фрагменте, а не в активити? С помощью видео изначально начал делать во фрагменте, но данные попросту не были выведены в список, хотя рантайм ошибок во время работы приложения не было. Реализовал в активити - все работает как по маслу! Буду очень благодарен за ответ!
@olgaulyandina440
@olgaulyandina440 4 жыл бұрын
Получается если у меня шаблон navigation drawer, то у меня каждого меня надо все заново создавать и бд, и активити?
@user-mm5bq7dp4g
@user-mm5bq7dp4g Жыл бұрын
Сейчас только приступил к написанию). Почему у меня вначале при сборке нет в MainActivity указания на ActivityMain, а на какой то binding?
@user-kh6vj8hl5k
@user-kh6vj8hl5k 4 жыл бұрын
Здравствуйте. подскажите, как из этого приложения можно сделать многопоточное приложение?
@LisTyrist
@LisTyrist 2 жыл бұрын
Спасибо! Подскажите, пожалуйста, две вещи: 1. запросы в базу данных надо направить в бэк, получается, вместо allowMainThreadQueries пишу просто build()? больше нигде ничего добавлять не надо? в сети пишут, что room по-умолчанию строит потоки асинхронно в 2. хочу сделать совместную работу в приложении нескольких пользователей (например, чтобы список можно было расшарить и (например) родители могли в реальном времени отслеживать список дел ребёнка и/или добавлять/удалять дела, делать пометки). Кажется, в каком-то приложении я видела такой функционал, но он был жутко глючный и не в реальном времени (приходилось обновляться часто, чтобы видеть, что происходит на другом устройстве). Насколько это реально реализовать? если реально, подскажите, пожалуйста, статьи/функционал для этого.
@user-mm5bq7dp4g
@user-mm5bq7dp4g Жыл бұрын
Сергей, запишите ролик как программировать экран блокировки - наполнять разнообразными виджетами
@user-gl2bt1on5p
@user-gl2bt1on5p 2 жыл бұрын
Как сохраняют данные в /data/data/ куда без рут доступа не попасть, есть такое видео?
@user-mn4wl9bb5x
@user-mn4wl9bb5x 8 ай бұрын
Здравствуйте, а вы не могли бы скинуть zip файл с ним? Что-то у меня не сладилось с этим уроком
@user-kj8mb1sm1o
@user-kj8mb1sm1o 4 жыл бұрын
Отличный видеоурок, но где посмотреть саму БД? Где можно увидеть сами строки, которые туда записываются и сами таблицы?
@arhitutorials
@arhitutorials 4 жыл бұрын
Это сложная задача. База данных SQLite представляет собой один файл, который по умолчанию находится на внутреннем накопителе в приватной папке данных приложения. Другие приложения туда доступа не имеют, по этому просто так файловым браузером его не достать. Самый простой способ добраться до него, это указать при создании БД путь на внешний накопитель. Как это сделать написано например тут: stackoverflow.com/questions/48903918/how-to-change-the-default-database-file-location-of-room-database Ну или просто добавить в приложение код, который скопирует файл БД из внутреннего накопителя на внешний. Открыть и редактировать файл можно любым браузером для SQLite баз данных. Я пользуюсь этим: sqlitebrowser.org/
@dimdo2417
@dimdo2417 3 жыл бұрын
Спасибо! Формат то что надо! Скажите пожалуйста, как в приложение добавить время т.е. когда наступает 12:00 показывается уведомление в шторке о том какое дело надо сделать! Спасибо!
@VirKato
@VirKato 3 жыл бұрын
😔 диалоговые окна и контекстные меню не видно
@skyfall9320
@skyfall9320 7 ай бұрын
Почему в классе NoteDetailsActivity строчка case R.id.action_save: выдаёт ошибку?
@ya-ne-s-nimi
@ya-ne-s-nimi 3 жыл бұрын
А как добавить поля для записи ?
@viken05
@viken05 2 жыл бұрын
Здравствуйте. Спасибо за видео. Подскажите, а как вы так выделили и изменили слова в нескольких местах на 14:20 ?
@arhitutorials
@arhitutorials 2 жыл бұрын
Про это есть отдельное видео) kzfaq.info/get/bejne/b81mhrNhr6rehWg.html
@azimovblog2250
@azimovblog2250 2 жыл бұрын
Здравствуйте ! Что делать , если моя версия android studio не совпадает с вашей ?
@user-fq3cn9cc1q
@user-fq3cn9cc1q 4 жыл бұрын
Очень хороший и полезный урок. Подписка однозначно!) Но не могу понять, почему не видно на видео выпадающих меню?
@olgaulyandina440
@olgaulyandina440 4 жыл бұрын
Это через sqlite?
@user-fq3cn9cc1q
@user-fq3cn9cc1q 4 жыл бұрын
@@olgaulyandina440 не понял вопроса 🤔
@TheAerhok
@TheAerhok 3 жыл бұрын
А как сделать добавление данных в коде ? К примеру, что бы выводились после запуска приложения 3 записи, а остальные можно было добавить с помощью функционала вашей программы
@arhitutorials
@arhitutorials 3 жыл бұрын
В NoteDao есть функция: @Insert(onConflict = OnConflictStrategy.REPLACE) void insert(Note note); На старте приложения можно проверять, если в базе данных нет ни одной записи, то с помощью этой функции вставлять сколько надо записей.
@user-ds4ju2lh3p
@user-ds4ju2lh3p 2 жыл бұрын
43:21 не могу понять, что у меня не так. Ввожу EditText, а он подсвечивается красным
@user-le2ke8nx3e
@user-le2ke8nx3e 3 жыл бұрын
Сергей, подскажите пожалуйста как добавить напоминание дел?
@arhitutorials
@arhitutorials 3 жыл бұрын
Для напоминаний надо использовать AlarmManager: developer.alexanderklimov.ru/android/alarmmanager.php Нужно устанавливать будильник в AlarmManager, ловить сигнал от него, когда наступает заданное время и показывать уведомление в панели уведомлений. Если правильно понял суть вопроса. Как вариант, можно использовать API для гугл календаря и создавать события в нем. А там уже есть возможность настроить любые напоминания.
@user-ej2vq5nf4i
@user-ej2vq5nf4i Жыл бұрын
А если полный ноль, получится сделать что-то простое и рабочее?
@mrgodsmile2038
@mrgodsmile2038 2 жыл бұрын
Помогите пожалуйста срочно вот такие ошибки. Прям очень срочно. Cannot resolve symbol 'Note' и другие тоже А при билде проекта выскакивает вот такая ошибка error: annotation value must be a class literal
@mrgodsmile2038
@mrgodsmile2038 2 жыл бұрын
Все проблему решил правильным добавление equals и hashcode
@user-hp2yi9yy3x
@user-hp2yi9yy3x 3 жыл бұрын
Это же MVVM?
@viktorviktor3086
@viktorviktor3086 4 жыл бұрын
подскажите пожалуйста в классе NoteDetailsActivity при передаче toolbar в setSuportActionBar(toolbar) 43:47 среда подчеркивает и просит создать этот метод в этом классе.
@arhitutorials
@arhitutorials 4 жыл бұрын
Для этого нужно, чтоб NoteDetailsActivity наследовало AppCompatActivity. github.com/Arhiser/android_todo_list/blob/master/app/src/main/java/com/arhiser/todolist/screens/details/NoteDetailsActivity.java
@shluhogon_42
@shluhogon_42 2 жыл бұрын
заменить импорт import android.widget.Toolbar; на import androidx.appcompat.widget.Toolbar;
@user-mn4wl9bb5x
@user-mn4wl9bb5x 8 ай бұрын
И скажите пожалуйста от версии Android studio могут зависеть ошибки?
@arhitutorials
@arhitutorials 8 ай бұрын
При сборке проекта в Android Studio может быть что угодно. Ситуация, когда более новая студия не может собрать проект сделаный на более старой без допиливания напильником - это обычное дело. Например, проблемой может быть использование устаревшей системы сборки, которая студией больше не поддерживается и т.п.
@user-yt8lo8mw8s
@user-yt8lo8mw8s 2 жыл бұрын
кто знает здесь база данных есть и как найти ?
@mateus4210
@mateus4210 3 жыл бұрын
Не подключается метод getAllLiveData() Помогите пожалуйста
@arhitutorials
@arhitutorials 3 жыл бұрын
Что значит не подключается? Опишите по подробнее в чем проблема, а лучше залейте исходники на github и пришлите ссылку, чтоб можно было посмотреть.
@user-ci6bk9vl7w
@user-ci6bk9vl7w 2 жыл бұрын
Class 'Note' is public, should be declared in a file named 'Note.java' - что делать?
@arhitutorials
@arhitutorials 2 жыл бұрын
Переименовать файл, в котором объявлен класс Note, в Note.java. Имя файла и имя класса в нем должны совпадать.
@user-ci6bk9vl7w
@user-ci6bk9vl7w 2 жыл бұрын
@@arhitutorials Имя файла и класса совпадает. Пользуюсь Вашим исходником . НЕ помогает. И еще 1. в андроид студио не удается писать код - он только перетаскивается из блокнота Что делать?
@channelMy
@channelMy 2 жыл бұрын
6:25 - "Нажимаем синхронизировать", и куда мы нажимаем то? На экране этого нет...
@xXx_F0rty_S3c0nd_xXx
@xXx_F0rty_S3c0nd_xXx 2 жыл бұрын
читать умеешь?
@user-ci6bk9vl7w
@user-ci6bk9vl7w 2 жыл бұрын
В Модели Андроид студио ругается на строку 24 ( public Note() { }) как исправить?
@arhitutorials
@arhitutorials 2 жыл бұрын
А что именно пишет? Если что вот исходник: github.com/Arhiser/android_todo_list/blob/master/app/src/main/java/com/arhiser/todolist/model/Note.java
@user-df2pb5qr1c
@user-df2pb5qr1c 4 жыл бұрын
Не подскажете как передавать эти списки на другое устройство То есть если у кого-то тоже установлено это приложение и мне нужно передать этот список этому устройству
@arhitutorials
@arhitutorials 4 жыл бұрын
Для этого нужно записать список куда-то откуда другое устройство сможет его взять. Например можно воспользоваться облачной базой данных Firestore firebase.google.com/products/firestore/ Дописать код, который при создании новой записи будет добавлять ее и в таблицу в облаке. А при обновлении списка считывать таблицу из облака и добавлять элементы, созданные на другом устройстве. В качестве ключа в таблице локальной и облачной БД придется использовать GUID, иначе будут конфликты с ключами. Короче говоря, надо кроме локальной базы данных иметь еще глобальную, доступную для нескольких устройств, которые с ней синхронизируются. Локальную базу данных, то есть Room, можно для простоты вообще выкинуть из приложения и работать только с Firestore.
@user-df2pb5qr1c
@user-df2pb5qr1c 4 жыл бұрын
@@arhitutorials нашёл как сделать так, чтобы все пользователи могли видеть одно и то же в приложении Но не могу понять как сделать так, чтобы из приложения можно было контролировать кто именно может просматривать твой список
@arhitutorials
@arhitutorials 4 жыл бұрын
@@user-df2pb5qr1c , это уже сложнее, нужна отдельная таблица для пользователей. Нужна аутентификация, то есть возможность войти в приложение определенным пользователем. Нужна таблица, в которую можно будет добавлять разрешения, т.е. хранить тот факт, что пользователь A разрешает пользователю B смотреть свой список. А так же в основную таблицу нужно добавить еще одно поле, которое будет содержать id пользователя - хозяина конкретной записи. После всего этого можно будет добавить в приложение код, который будет загружать в приложение только те записи, хозяевами которых являются пользователи, которые разрешили Вам доступ к своим записям.
@tigra-show
@tigra-show 4 жыл бұрын
Вы когда ошибки совершаетесь, будьте добры не вырезать их, что типо у вас их нет, потому что я потом ищу что Я сделал не так, а оказывается наоборот это вы что то не объяснили, и скачайте или купите нормальный захват видео экрана
@user-le2ke8nx3e
@user-le2ke8nx3e 4 жыл бұрын
У меня вот такая проблема вышла, как ее решить??? Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.example.bodi_men.Data.NoteDao com.example.bodi_men.App.getNoteDao()' on a null object reference
@arhitutorials
@arhitutorials 4 жыл бұрын
Это означает, что экземпляр App у которого вызывается метод getNoteDao() равен null в момент вызова. Если Вы для доступа к App используете метод App.getInstance(), убедитесь, что в App в методе onCreate() есть строка: instance = this; Иначе поле instance так и останется null и при вызове App.getInstance().getNoteDao() как раз произойдет эта ошибка.
@user-le2ke8nx3e
@user-le2ke8nx3e 4 жыл бұрын
@@arhitutorials Спасибо, что откликнулись, проверил, instance = this; есть в методе onCreate().
@arhitutorials
@arhitutorials 4 жыл бұрын
@@user-le2ke8nx3e скиньте мне в телеграм проект сжатый в zip, или ссылку на код, если он на гитхабе, а я посмотрю и скажу в чем дело t.me/serarhi
@user-hg5ll3go7m
@user-hg5ll3go7m 4 жыл бұрын
@@user-le2ke8nx3e Дружище, подскажи что у тебя было не так, такая же ошибка вызывается при запуске приложения, плиз
@mishanua7694
@mishanua7694 7 ай бұрын
Эх, жаль не ответили, а уже 3 года прошло ​@@user-hg5ll3go7m
@deiman8594
@deiman8594 8 ай бұрын
Экран у вас обрезанный, не удобно понимать где и в каком файле находитесь
@samatzhussipov1139
@samatzhussipov1139 4 жыл бұрын
это работает без подключения интернета?
@arhitutorials
@arhitutorials 4 жыл бұрын
Да, вся информация храниться на устройстве, подключение не нужно.
@samatzhussipov1139
@samatzhussipov1139 4 жыл бұрын
@@arhitutorials room это database для внутреннего хранения?
@deniskenzo6491
@deniskenzo6491 3 жыл бұрын
Я ебу откуда 300 лайков и всего 10 дизов. Может это видео уже для джунов, которые и в java и в андроид разработке шарят, но как человеку который только начал разбираться в этом всем - это видео ничем не поможет. Половина экрана обрезана, куда ты там что нажимаешь за его пределами не видно, контекстные меню которые в самой IDE - тоже скрыты и опять же не понятно что ты нажал после ПКМ или при создании файла. Куча вырезанных моментов, где вот полупустой файл и тут бац ты откуда то(из воздуха) вставил кучу строк и пошел дальше. В общем на мое мнение автору 100% будет насрать, так как 300+ человек поставили лайк. Но к 30й минуте накипело, решил оставить отзыв и уйти к другому ютуберу, который хоть как то обьясняет что он пишет. Дизлайк
@arhitutorials
@arhitutorials 3 жыл бұрын
Я не ютубер, я разработчик. Делать видео не умею. Снял как смог, кому-то помогло и то хорошо. Вы так возмущаетесь, как-будто вы мне денег заплатили) Теперь по сути вопроса. То, о чем тут говориться, уже нужно знать для устройства на первую работу. Архитектурные компоненты, все эти Room, ViewModel, LiveData сейчас must have и почти в каждой вакансии на джуниора требуются. Так что, с ютуберами или самостоятельно, но учить надо. Желаю удачи!
@Tyyta27
@Tyyta27 3 жыл бұрын
54:06
@ramilskl
@ramilskl 3 жыл бұрын
Как же всё сложно(
@sergeyvoloshin1553
@sergeyvoloshin1553 3 жыл бұрын
не, товарищи, писать на java это ппц
@java_Developer93
@java_Developer93 3 жыл бұрын
Все пишут молодец а кто ни будь пробовал сам сделать по урок , я как новичок даже в начале не все понял
@arhitutorials
@arhitutorials 3 жыл бұрын
По этому есть ссылка на исходники проекта, чтоб можно было загрузить и разобраться самостоятельно. Тяжело объяснить такой объем материала, чтоб всем было понятно. Я такого уровня еще не достиг. Лучше сделать хоть что-то как получается, чем вообще ни делать ничего. Если кому-то помогло, значит оно того стоило.
@LisTyrist
@LisTyrist 2 жыл бұрын
Привет. Я тоже новичок, изучаю Андроид месяца три. По видео: просто запускаешь Андроид студию, смотришь видео, останавливаешь на каждой строчке кода, переписываешь вручную (пытаешься врубиться, что она делает), потом пересматриваешь комментарии автора. Получается и практика и, вроде, тебя ведут за руку по проекту. Если не всё запомнил, после проекта перематываешь в начало и делаешь что-то похожее, но другой тематики. тут, например, можно сделать расписание уроков или список покупок - идея та же, но делаешь с дополнительными фишками.- это уже будет твой проект
@user-ks3lb4mx3n
@user-ks3lb4mx3n 2 жыл бұрын
калкулятор) простите)
Fast and Furious: New Zealand 🚗
00:29
How Ridiculous
Рет қаралды 42 МЛН
ЧУТЬ НЕ УТОНУЛ #shorts
00:27
Паша Осадчий
Рет қаралды 10 МЛН
Fast and Furious: New Zealand 🚗
00:29
How Ridiculous
Рет қаралды 42 МЛН