Программирование с нуля андроид: Программирование под Android для начинающих. Часть 1 / Хабр

Содержание

Освой Android играючи

×

Читайте на здоровье!

Статья проплачена кошками — всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Закрыть

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

Изучаем Android. Первый курс

День 1. Подготовка

Инструменты для разработки под Android. Среда разработки — Android Studio

Перейти »

День 2. Hello Kitty!

Пишем первое приложение для Android Hello Kitty! Поздоровайся с котом

Перейти »

День 3. Щелчок

Щёлчкаем кнопки и пишем полезную программу для подсчёта ворон

Перейти »

День 4. Смена цветов

Управляем фоновым цветом экрана — Светофор

Перейти »

День 5. Наташ, ты спишь?

Создадим интерактивный мем с вечно спящей Наташей

Перейти »

День 6. На другой экран

Часто приложение состоит из нескольких экранов. Как переключаться между ними?

Перейти »

День 7. Ориентация

Телефоны можно вращать — узнаем, как писать программы для подобных случаев

Перейти »

День 8. Темы и стили

Чтобы приложение было стильным, можно применить специальные приёмы

Перейти »

День 9. Toast (Kotlin)

Выводим всплывающие сообщения для привлечения внимания

Перейти »

День 10. Шаблон «Basic Activity»

Базовый пример с применением разных компонентов

Перейти »

День 11. Меню

Мы научимся создавать меню для вызова различных команд

Перейти »

День 12. PopupMenu

Продолжим работу с меню и познакомимся с всплывающим меню

Перейти »

День 13. Экран

Настройки экрана устройства

Перейти »

День 14. Уведомления

Выводим уведомления, которые не исчезнут, пока сам пользователь не закроет их

Перейти »

День 15. Конвертер

Напишем универсальную программу перевода одних единиц в другие — Конвертер «38 попугаев»

Перейти »

День 16. Кто сказал Мяу?

Используем звуковые эффекты, чтобы привлечь внимание

Перейти »

День 17. Графика

Рассмотрим приёмы работы с графикой. У нас есть отдельная категория для графики

Перейти »

День 18. Анимация

Android имеет богатые возможности работы с анимацией

Перейти »

День 19. Браузер

Создадим свой браузер внутри своего приложения

Перейти »

День 20. Клавиатура

Изучаем возможности клавиатуры и аппаратных кнопок

Перейти »

День 21. Локализация

Можно сразу написать одну программу на нескольких языках мира. Это очень просто

Перейти »

День 22. Жизненный цикл активности

Приложение живёт своей жизнью.

Перейти »

День 23. Справочник

Напишем справочник. Полезная информация всегда в цене

Перейти »

День 24. Камера

Чтобы сфотографировать котика, нужно уметь обращаться с камерой

Перейти »

День 25. Настройки

Иногда необходимо сохранять настройки — имена, рекорды, результаты игры и т.п.

Перейти »

День 26. Экран настроек

Создаём экраны настроек, используя готовые шаблоны

Перейти »

День 27. Блокнот

Мы создадим текстовый редактор, в котором можно записывать умные мысли

Перейти »

День 28. Карты и StreetView

Запускаем Карты Google и Просмотр улиц для поиска котов

Перейти »

День 29. Шаблон Google Maps Activity

Интегрируем карты Google в приложение

Перейти »

День 30. Broadcast

Отправляем и принимаем широковещательные сообщения

Перейти »

День 31. Фрагменты

Создаём модульные компоненты для разных типов экранов

Перейти »

День 32. AlertDialog

Выводим диалоговые окна, чтобы узнать реакцию пользователя

Перейти »

День 33. RecyclerView

Универсальные списки для отображения имён котов

Перейти »

День 34. База данных

Современное программирование не может обойтись без базы данных

Перейти »

День 35. Публикация

Публикуем программу в Google Play, чтобы заработать свой первый миллион

Перейти »

Второй курс (закрытая зона)

Люди, не пишите в письме «Доброго времени суток«. Пишите просто — «Здравствуйте» или «Добрый день (утро, вечер)». Обещаю, что не обижусь, если утром прочитаю ваше письмо со словами «Добрый вечер!». Уважайте русский язык.

  1. Викторина о котах
  2. Секундомер — изучение жизненного цикла активности
  3. Текст вдоль окружности на градиентном фоне
  4. Создаём собственный элемент View
  5. Настраиваем свой заголовок у приложения
  6. Внутреннее хранилище
  7. Файловый менеджер
  8. SD-карта
  9. GPS
  10. Геолокация
  11. Виджет на домашний экран
  12. Сетевая поддержка
  13. Google Maps Android API v2. Знакомство
  14. Музыка нас связала
  15. Видео
  16. Если я заменю батарейки
  17. Работаем с Bluetooth
  18. Сказка о потерянном времени — работаем с датами и временем
  19. Продвинутый WebView
  20. Датчик освещения
  21. Датчик расстояния
  22. Температурный датчик
  23. Работаем с локалью
  24. Работаем с Wi-Fi
  25. Эти наглые рыжие морды — Распознавание лиц
  26. Диктофон — делаем запись с микрофона
  27. SMS
  28. SMS и MMS для KitKat
  29. Alarm Service — сигнализация
  30. Тональный набор — класс ToneGenerator
  31. Visualizer
  32. Equalizer
  33. Вложенные фрагменты
  34. Шаблон Scrolling Activity
  35. Собственный элемент меню

Третий курс (закрытая зона)

  1. Обои главного экрана (Wallpaper)
  2. Кто сказал Мяу? — используем технологии преобразования текста в речь
  3. Всё, что вы хотели знать о приложениях, но боялись спросить
  4. Считываем штрих-код
  5. Миниатюры
  6. Работаем с данными JSON
  7. Акселерометр
  8. Работаем с системным приложением Галерея
  9. ListFragment. Продолжение знакомства
  10. Собери кота из фрагментов
  11. ActionBar
  12. ShareActionProvider
  13. Пропал котёнок? Поиск в ActionBar
  14. ActionMode — режим контекстных действий
  15. Чтение и запись файлов
  16. Карманный фонарик
  17. Обратный отсчёт — варим яйца
  18. Google Maps Android API v2. Продвинутые приёмы
  19. Google Maps Android API v2. StreetView
  20. Google Maps. Расширенные настройки (Kotlin)
  21. Проект «Попугай» — слушаем и повторяем. Распознавание речи
  22. Intent.ACTION_SEND. Пришли фотку
  23. Всплывающее окно PopupWindow
  24. Контакт? Есть контакт!
  25. ContactsContract. Обращение к базе данных контактов
  26. DownloadManager — менеджер загрузок
  27. Добавляем события в Календарь
  28. DialogFragment
  29. DatePickerDialog через DialogFragment
  30. TimePickerDialog через DialogFragment
  31. Секретный код
  32. Класс Application
  33. Продвинутое приложение с использованием ListView
  34. Компас
  35. Работаем с буфером обмена
  36. MediaPlayer (Kotlin)

Четвёртый курс (закрытая зона)

  1. Рингтоны
  2. AudioManager
  3. Используем AsyncTask для загрузки изображений из сети
  4. Используем AsyncTask для загрузки текстового файла из сети
  5. Архивация файлов
  6. Запись видео
  7. Касания сенсорного экрана
  8. GestureDetector — распознаём жесты
  9. ScaleGestureDetector
  10. Алло! Алло! — Используем телефонию
  11. Создаём SMS-автоответчик
  12. Датчик ориентации
  13. Горизонт завален
  14. Датчик для счётчика шагов
  15. Получение данных от других приложений
  16. Библиотека osmdroid — Используем карты OpenStreetMap
  17. MediaStore
  18. ASCII Art Editor
  19. HttpURLConnection: Подключаемся к URL
  20. Работаем с PDF
  21. Печать документов
  22. SAX Parser
  23. XPath — парсер XML-документов. Рекомендован W3C
  24. Сервисы GeoNames: Погода, почтовые индексы и часовой пояс
  25. DayDream (Заставка)
  26. Работаем с Книгой Морд — FaceBook
  27. YouTube Android Player API
  28. Внедряем Google Analytics
  29. Режим киоска
  30. Облака стали ближе — облачный хостинг
  31. Списки из облака
  32. Spannable
  33. Идентификация устройства

5-й, 6-й, 7-й курс и т.д. (закрытая зона)

Смотреть уроки

Отзывы

Большое спасибо Вам и вашего кота! Я уверен, что много людей благодарят Вам и, наверное это надоело. Я начинающий в Андроид и мне ваш кот очень помог. Никола, Болгария (орфография сохранена)

Почитать другие отзывы

Помоги котам!

Поддержка сайта

Реклама

Продажа Kia — антивирус купить киев. Продажа авто, запчастей.;рулонные шторы заказать через интернет лучший выбор под заказ жалюзи день-ночь украина mirrolet

Урок 1. Введение.

Добрый день!

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

Я начал свое знакомство с разработкой под Android с примеров на официальном сайте. Половину того, чего делал — не понимал. Но какие-то знания оттуда вынес и немного почитал теории на том же ресурсе. На этом мое знакомство с Android завершилось ) Я не знал куда двигаться дальше. Про книги я почему-то не подумал, а зря …

Позже я наткнулся на статью «Five of the best Android development books». Интерес снова появился, стало понятно куда двигаться, я начал читать эти книги. Понял не все, но уже гораздо больше чем с первых примеров. Но если читать такие книги полностью с нуля, то многое будет не очевидно и непонятно.

Поэтому я хочу попытаться создать уроки по Android для начинающих, чтобы у читателя за спиной не оставалось непонятных ему тем. Я постараюсь максимально подробно все объяснять и делать различные примеры для большей наглядности. С каждым новым уроком буду вводить и использовать новые понятия и объекты, и использовать объекты из прошлых уроков для закрепления.

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

В отличие от некоторых авторов я не собираюсь научить вас программированию за «24 часа» или за «30 уроков». Мы все понимаем, что это невозможно )  Я не знаю, сколько у меня получится уроков. Думаю, что хватит около сотни, чтобы дать весь базис достаточно подробно. А потом еще сотня уйдет на различные продвинутые фишки. В общем тем, кто начинает изучать, скорее всего не придется много бегать по другим сайтам (кроме официального хелпа) за дополнительными знаниями. Здесь вы найдете много полезной, последовательной и изложенной простым языком информации.

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

Если у вас возникают проблемы с Android, то у сайта есть замечательный форум, который всегда рад помочь новичкам разобраться даже в самых простых вопросах. Правда, он защищен от спамеров контрольным вопросом и ответить на него, чтобы зарегиться, вы сможете только прочитав первые пять уроков. Это вынужденная защита. Зато, с момента введения этого вопроса, на форум не проник ни один спамер!  

На данный момент уроки охватывают темы:

— создание экрана (в редакторе и программно) 
— обработчики нажатия
— логи и всплывающие сообщения
— обычное меню, контекстное меню
— анимация View-компонентов
— создание и вызов Activity (+ возврат результата)
— Activity Lifecycle (состояния Activity)
— Intent, Intent Filter
— хранение данных (Preferences, SQLite)
— список и адаптеры
— диалоги
— Parcel, Parcelable
— Preferences при хранении настроек приложения
— работа с файлами
— Tab вкладки
— парсинг XML
— асинхронность (Handler, AsyncTask)
— сервисы
— Content Provider
— обработка касаний, мультитач
— фрагменты
— Action Bar, ActionMode
— виджеты
— ключи и подпись приложения
— ViewPager
— воспроизведение звука и видео
— запись звука
— работа с камерой
— сенсоры
— GPS
— Google Maps
— рисование 


Я продолжаю читать книги и уроки будут появляться, пока я сам буду развиваться. В итоге, я думаю, мы придем к тому, что станем достаточно продвинутыми разработчиками, востребованными на рынке. В общем, как говорит один клоун из зомбоящика — «не переключайтесь» )  Будет интересно!

На следующем уроке мы установим и настроим среду разработки Android-приложений.

P.S.

Разработка ведется на Java. Также могут понадобиться знания SQL, XML и прочих смежных технологий. Считается, что вы знакомы с ними. Если нет, то что-нибудь базисное по Java надо будет прочесть. 

Гугл периодически выпускает обновления Android и для среды разработки. Поэтому вполне возможно, что содержимое урока немного устарело и реальная картинка отличается от скринов. Если это отличие кардинально или примеры не работают, пишите об этом на форуме в ветке урока. Будем актуализировать. Если же отличие только в цвете фона приложения или размере шрифта, то это, конечно, не критично и на посыл урока не влияет.  

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

 

P.P.S

Иногда звучат высказывания, что большинство уроков сделаны для Android 2.3, а сейчас уже вышел Android версии, например, 100500 и уроки устарели. Один чудик как-то вообще написал, что уроки на 90% состоят из deprecated методов. Очень я не люблю комментировать чушь, но для начинающих я выскажу свое мнение по поводу этого всего дилетантства.

Я не могу с каждым выходом новой версии андроида переделывать все уроки. Тем более что, переделывать то ничего и не надо. Подавляющее большинство уроков останется прежними и все будет отлично работать на любой версии. К тому же доля устройств на Android 2.Х еще пока достаточно велика, чтобы ею пренебречь. И вы в ваших приложениях будете минимальную версию указывать 2.2 или 2.3, чтобы не потерять целый сегмент пользователей. Так что я не понимаю, в чем смысл кипиша. 

Да, есть такое, что с выходом новых версий, некоторые уроки действительно кардинально устаревают и их надо обновлять. Это, например, коснулось Урока 52, и я сделал его обновление в отдельном уроке. Но постоянно отслеживать и обновлять целый урок из-за того, что там теперь один метод (о ужас-ужас!!!) deprecated — это тяжко. Не забывайте, что я занимаюсь сайтом в свое свободное время. И я лучше потрачу его на написание новых материалов, чем на отслеживание и фикс устаревших методов.

Гуглохелп обычно для устаревших методов дает ссылку на новый метод. Так что если видите, что Eclipse ругается на устаревший метод, то просто ищете его в хелпе и смотрите, чем его заменили.

 

P.P.P.S

По Android Studio ситуация примерно та же. Не вижу смысла переходить на AS, т.к. главное в уроках — это код, а не среда разработки. Разве что, несколько первых уроков потом продублирую для AS


Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование 

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме 



Курс для начинающих разработчиков Android приложений. Часть 1. Приступаем к работе. — Fandroid.info

Добро пожаловать на Курсы для разработчиков Android. Здесь вы найдете наборы уроков в рамках курсов, которые описывают, как выполнить определенную задачу с примерами кода, которые вы можете повторно использовать в вашем приложении.

Если данные курсы покажутся вам сложными или непонятными, смотрите более наглядные Видеоуроки по разработке android-приложений с нуля

Если вы не владеете начальными знаниями языка программирования java, добро пожаловать на Курс java для начинающих android-разработчиков

Также предлагаем Продвинутые курсы:

Первая группа уроков, Приступаем к работе, научит вас самому необходимому для разработки Android приложения. Если вы начинающий Android разработчик, вы должны выполнить  все эти курсы по порядку:

  1. Установить среду разработки Android Studio или Eclipse с Android SDK Tools
  2. Создать и запустить первое приложение на Android
  3. Добавить в android-приложение  поддержку различных Android устройств
  4. Узнать, что такое жизненный цикл Activity и как ним управлять
  5. Построить динамический пользовательский интерфейс используя фрагменты
  6. Реализовать сохранение данных в android-приложении
  7. Обеспечить взаимодействие с другими android-приложениями

 


1. Установка среды разработки android приложений

Чтобы создавать приложения для android, нужно установить необходимые компоненты, представляющие собой среду разработки и инструменты разработчика. Приложения для андроид-устройств пишутся на языке программирования java, поэтому в первую очередь нужно установить и настроить набор инструментов JDK  (Java Development Kit). Затем установите среду разработки на выбор: Android Studio или Eclipse, и набор инструментов Android SDK к ним.

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

Android Studio — более молодая среда разработки, тем не менее быстро набирающая популярность как более интеллектуальная и удобная. Кроме того, Android Studio активно развивается и поддерживается компанией Google как официальная среда разработки андроид-приложений.

Выбор среды разработки остается за вами, в наших уроках мы будем демонстрировать обе.

Установка JDK  (Java Development Kit)

Установка Android Studio

Установка Eclipse (на выбор)

Добавление пакетов Android SDK Manager

 


2. Создание вашего первого приложения

После того как вы установили и настроили среду разработки, познакомьтесь с основами разработки Android приложений.

Создание Android проекта

Запуск android-приложения

Построение простого пользовательского интерфейса

Запуск другой Activity — второго окна приложения

 


3. Поддержка различных Android устройств

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

Поддержка различных языков в Android приложении

Поддержка различных экранов Android устройств

Поддержка различных версий платформы Android

 


4. Управление жизненным циклом Activity

О методах жизненного цикла Activity, и о том, как обеспечить юзабилити, реализуя callbacks методы жизненного цикла.

Запуск Activity

Приостановка и возобновление Activity

Остановка и перезапуск Activity

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

 


5. Построение динамического пользовательского интерфейса с использованием Фрагментов

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

Создание фрагмента

Построение гибкого пользовательского интерфейса

Связь с другими фрагментами

 


6. Сохранение данных

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

Сохранение наборов ключ-значение

Сохранение файлов

Сохранение данных в SQL базу данных


7. Взаимодействие с другими приложениями

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

Отправка пользователя в другое приложение

Получение результата от Activity

Разрешение другим приложениям запускать вашу Activity

Часть 2. Создание android приложений с возможностью обмена данными>>

Перевод с сайта developer.android.com. Если не указано иное, этот контент распространяется под лицензией Creative Commons Attribution 2.5. Для получения дополнительной информации и ограничений, см. Лицензия контента.

Программирование под Android: 50 лучших инструментов

Знание Java и IDE – далеко не все, чтобы сделать программирование под Android комфортным. Рассмотрим полезные дополнения и рекомендации.

Предыдущая статья Разработка под Андроид: советы, инструменты и трюки.

Используйте альтернативный HTTP-клиент OkHttp.

HttpUrlConnect страдает от некоторых багов. Okhttp решает эти проблемы. Анонс.

На локальные файлы aar можно ссылаться, как показано ниже:
dependencies {
     compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
   }
  repositories{
        flatDir{
                dirs 'libs'
         }
   }

Подробнее.

Для удобной работы с логами можно использовать Pidcat
Делайте коммиты с помощью систем контроля версий (VCS) вроде Git
Программа ClassyShark

Это возможность проверить Android APK и получить необходимую информацию о методах, полях, зависимостях etc. Анализирует файлы aar, class, jar, so, apk.

Библиотека Stetho

Использование библиотеки позволяет дебажить программы с помощью Chrome Dev Tools. Включает такие инструменты, как Network Monitor, SharedPreference и т. д.

Приложение Battery Historian

Анализирует состояние батареи.

Используйте константы при работе с зависимостями (например, «1.2.0»)

Избегайте знака + при указании версий зависимостей.

  • Так можно избежать ошибок, несмотря на изменение API.
  • Устраняется необходимость всякий раз во время сборки осуществлять онлайн-проверку последних версий для каждой зависимости.
Отложите TimerTask и используйте Handler
Для публикации приложений (например, на GitHub) не стоит использовать основную электронную почту
Векторы вместо PNG

Если же это PNG, постарайтесь сжать файлы, используя TinyPNG.

Качественное программирование под Android подразумевает использование proguard
android {
  ...
  buildTypes {
      release {
          minifyEnabled true
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
  }
}
Используйте shrinkResources
android {
  ...
  buildTypes {
      release {
          shrinkResources true
          minifyEnabled true
          ...
      }
  }
}
Следуйте приведенному ниже правилу для ускорения сборки gradle:
Gradle memory >= Dex memory + 1Gb
Разделите свой apk, используя gradle и нативный код

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

defaultConfig {
    ...

    ndk {
      abiFilters "armeabi", "armeabi-v7a", "mips", "x86"
    }
  }

// Разделение
splits {
  abi {
    enable true
    reset()
    include 'armeabi', 'armeabi-v7a', 'mips', 'x86' //select ABIs to build APKs for
    universalApk false //generate an additional APK that contains all the ABIs
  }
}

// Карта
project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'mips': 5, 'x86': 8]

// Переименовать
android.applicationVariants.all { variant ->
  // Назначить другой код версии для каждого вывода
  variant.outputs.each { output ->
    output.versionCodeOverride =
        project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) *
            1000000 +
            android.defaultConfig.versionCode
  }
}
Узнайте больше об архитектурах MVP и Clean
Попытайтесь понять и использовать TDD (Test Driven Development)
Для принудительной повторной загрузки зависимостей:
./gradlew --refresh-dependencies
Исключение выполнения определенной задачи из gradle

Предположим, необходимо убрать задачу javaDoc. Просто используйте в команде -x, а затем имя задачи. В нашем случае это javaDoc:

./gradlew clean build -x javaDoc
Чтобы каждое имя подпроекта совпадало с именем проекта

Добавьте эту строку в settings.gradle:

rootProject.children.each{
  it.buildFileName = it.name + '.gradle'
}

Больше трюков с gradle вы найдете здесь.

Следуйте принципу Do not Repeat Yourself (DRY)
Пакеты по функциям, а не по слоям
Изучите механизм Dependency Resolution

Со скоростью обновления Android-зависимостей рано или поздно вы столкнетесь с конфликтом зависимостей в приложении. Для этого используется Dependency Resolution. Официальный ресурс.

Используйте разные имена пакетов в случае дебаг-сборок:
android {
    buildTypes {
        debug {
            applicationIdSuffix '.debug'
            versionNameSuffix '-DEBUG'
        }

        release {
            // ...
        }
    }
}
Нужно уметь найти и остановить утечку памяти в Android-приложении
Если вы создаете градиент в xml с полностью прозрачной частью, будьте очень осторожны в использовании @android:color/transparent
Следуйте стандартным правилам в отношении имен для ваших ресурсов
Используйте специальные задачи gradle в ваших файлах build.gradle

Android использует Gradle в качестве системы сборки, что на самом деле упрощает реализацию многих вещей, автоматизируя процесс. Этот пост на reddit содержит много полезных gradle-скриптов.

Используйте подходящий .gitignore в проектах Android.

Пример.

Используйте LeakCanary для обнаружения утечек памяти в приложении

Программирование под Android предусматривает использование таких библиотек, как эта. Именно они упрощают кодинг и делают приложение «шустрее».

Ускорьте сборку gradle в Android Studio 2.3+
  • Перейдите к версии 3.4.1.
  • Выполните команду в директории проекта, чтобы проапдейтить gradle wrapper:
./gradlew wrapper --gradle-version 3.4.1 --distribution-type all
  • Установите необходимые свойства в глобальном файле gradle.properties:
android.enableBuildCache=true
Остановите сборку посредством gradle:
./gradlew -stop
Настройте gradle для загрузки отсутствующих элементов android sdk в автоматическом режиме
  • Установите необходимые свойства в глобальном файле gradle.properties:
android.builder.sdkDownload=true

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

Не подключайте jcenter() и mavenCentral() вместе в файле build.gradle

MavenCentral и так входит в JCenter.

Очистите кэш gradle, если считаете, что библиотеки support и google play services несовместимы в android sdk
  • Перейдите в ~/.gradle/caches/ и удалите оттуда все.
  • Откройте SDK Manager и выполните повторную синхронизацию всех файлов поддержки и служб Google Play.
  • Затем повторная синхронизация вашего проекта (обновление зависимостей).
  • Теперь все должно работать правильно.
Настройте удобные алиасы adb для терминала

Добавьте указанные ниже алиасы в файл ~/.bashrc или  ~/.zshrc, сохраните и перезапустите терминал. После сохранения используйте их как показано в столбце «Применить»:

Настройте Android Studio на сбой сборки, если код содержит //STOPSHIP.

Чтобы добавить проверку на //STOPSHIP в lint, включите в build.gradle следующий код:

android {
...
    lintOptions {
        abortOnError true
        fatal 'StopShip'
    }
}

Если в коде есть комментарий //STOPSHIP, это вызовет ошибку при создании apk-версии.

Вы можете включить подсветку //STOPSHIP в Android Studio (по умолчанию подсветка выключена). Это делается через Preferences → Editor → Code Style → Inspections. Найдите STOPSHIP, чтобы применить настройку.

Используйте alfi, чтобы найти оператор зависимостей gradle для библиотеки

Это консольная версия web-приложения Gradle, Please.

alfi name_of_library
  • Копирование нужной библиотеки.
  • Вставка в build.gradle.
Вывод результатов юнит-тестов в консоль
android {
    ...
    testOptions.unitTests.all {
      testLogging {
        events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
        outputs.upToDateWhen { false }
        showStandardStreams = true
      }
    }
  }
Сделайте сборку быстрее, используя офлайн режим

Программирование под Android нуждается в:

  • Быстрой сборке:
./gradlew assembleDevelopDebug --offline
  • Быстрых юнит-тестах:
./gradlew test --offline
Использовать абсрактный класс Logger
Если нужно инициализировать свою библиотеку автоматически, обратите внимание на Content Provider
Уменьшите размера установленного приложения с помощью «android:extractNativeLibs:false» в

Подробнее.

Селективная сборка для конкретного метода в Android Studio

Используйте возможности Java 8, добавив sourceCompatibility & targetCompatibility в файл build.gradle:
android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}
Задайте gradle-задачу для архивирования файлов apk и proguard при сборке с целью резервного копирования:
task deployApks(type:Copy) {
    description = "Copies APKs and Proguard mappings to the deploy directory"
    def appName = "";
    def versionDir = android.defaultConfig.versionName+"_"+android.defaultConfig.versionCode;

    println("Copies APK and Proguard to " + versionDir)

    from 'build/outputs/mapping/release/'
    include '**/mapping.txt'
    into '../.admin/deploy/' + versionDir
    rename ('mapping.txt', "${versionDir}-mapping.txt")

    from ('.') {
        exclude '**/build', '**/src'
    }

    include '*.apk'
    into '../.admin/deploy/' + versionDir
    rename ('app-release.apk', "${appName}-${versionDir}.apk")
}

Движение

Программирование под Android включает много составляющих. Например, в Material Design в качестве базиса используется физика реального мира. В реальности объекты не двигаются линейно. Это движение по искривленным дорожкам, с ускорением и замедлением в соответствии со свойствами движения.

Таким образом, движение должно также использовать данные свойства и анимировать объекты с сохранением естественности.

Например, автомобиль, покидающий экран, начинает движение медленно, а затем ускоряется, пока полностью не выйдет из кадра. Точно так же представления должны быть интерполированы с использованием классов AccelerateInterpolator, FastOutSlowInInterpolator, etc. Подробнее.

Оформление

Хотя пользовательские шрифты и могут использоваться для брендинга, лучше придерживаться стандартных Noto и Roboto из-за их узнаваемости. Особенно это касается основного текста.

Roboto охватывает латинские, греческие и кириллические символы, а Noto подходит для других языков.

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

Текст должен выравниваться по сетке с ячейками 4dp.

Лучшая длина текста для больших текстовых блоков составляет 40-60 символов в одной строке. Другие варианты вносят дисбаланс.

Иконки

Необходимый размер для иконок – 48dp с краями 1dp:

  • 48px x 48px – mdpi
  • 72px x 72px – hdpi
  • 96px x 96px – xhdpi
  • 144px x 144px – xxhdpi
  • 192px x 192px – xxxhdpi

Дополнительная иконка 512px x 512px должна быть для Google Play. Значки материалов должны содержать следующие важные элементы:

  • 1dp тонированный край наверху
  • 1dp затененный край внизу
  • мягкая тень вокруг всех краев поднятых элементов
  • мягкий оттенок для обеспечения поверхностного свечения

Подробнее.

Ripple

Для Ripple эффекта вместо ?android:attr используется ?attr/selectableItemBackground.

Для кнопки реализация должна включать:

android:background="?attr/selectableItemBackground"

Выходящий за края Ripple реализуется с помощью:

?attr/selectableItemBackgroundBorderless

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

обучение специальности с нуля до трудоустройства

CheckROI
  • Профессии
    • Профессии в аналитике Профессии в дизайне Профессии в маркетинге Профессии в менеджменте Профессии в программировании Все Профессии

      10 самых высокооплачиваемых IT профессий 2020 года

      Профессии

      Всё о профессии 3D-художник: подробное описание

      Профессии

      До 15 октября: скидка -50% на курсы Skillbox

      Профессии

      Профессия «специалист по Data Mining»: подробное описание и…

  • Онлайн-курсы
    • Курсы для бизнеса Курсы по аналитике Курсы по дизайну Курсы по маркетингу Курсы по программированию Все Онлайн-курсы

      8 лучших курсов для дизайнеров одежды / фэшн-дизайнеров

      Онлайн-курсы

      Топ-7 курсов по управлению командами

      Онлайн-курсы

      Топ-6 курсов для менеджеров по продажам

      Онлайн-курсы

      Курсы по запуску стартапа: 8 лучших программ обучения

  • Агрегатор всех курсов
  • Рубрики
    • Интернет-маркетинг
      • Контекстная реклама (PPC)
      • Таргетированная реклама
      • SMM
      • SEO
      • Email-маркетинг
      • Контент-маркетинг
      • Копирайтинг
      • Мобильный маркетинг
      • PR
      • Видеомаркетинг
      • Веб аналитика
    • Дизайн
      • Веб-дизайн
      • UX/UI
      • Дизайн мобильных приложений
      • Графический дизайн
      • Бренд дизайн
      • 3D-графика
      • 3D-анимация
      • Motion-дизайн
      • Дизайн интерьеров
      • Sound-дизайн
      • Фотография
    • Программирование
      • Веб-разработка
      • Разработка игр
      • Разработка мобильных приложений
      • Java-разработка
      • Разработка на C
      • Разработка на PHP
      • Python-разработка
      • Разработка на GO
      • Разработка VR&AR
      • Кибербезопасность
    • Аналитика
      • Data Science
      • Веб аналитика
    • Бизнес и управление
      • Управление продуктом
      • Менеджмент проектов
      • Управления командами
      • Управление персоналом
      • Бизнес-аналитика
      • Продажи
    • Фриланс
    • Финансы
    • Soft Skills
    • Базовые понятия
    • 500 полезных инструментов
  • Распродажи курсов
    • -50% на всё в Skillbox
    • -35% на курсы Нетологии
    • -55% от Skillfactory
Темы дня До 15 октября: скидка -50% на курсы Skillbox Фантастика: скидка -50% в Skillfactory на всё курсы в октябре У Нетологии сентябрь горит: скидки до 50% на все курсы Обучение JAVA-программированию: обзор топовых курсов Обучение графическому дизайну: полный обзор проверенных курсов Топовые курсы по дизайну интерьера: программы обучения для начинающих Лучшие курсы iOS-разработки: подробный обзор программ обучения Онлайн-курсы по Python: подборка лучших программ обучения Обзор самых топовых курсов по веб-дизайну для новичков и профессионалов Детальная подборка востребованных профессий для девушек Хештеги для Инстаграма в 2020 году: подробное руководство + самые популярные Отписки в Инстаграм в 2020: автоматически отписываемся от невзаимных подписчиков Как сделать красивый шрифт в Инстаграме CheckROI Иван БуявецОснователь блога
  • Профессии
    • Профессии в аналитике Профессии в дизайне Профессии в маркетинге Профессии в менеджменте Профессии в программировании Все Профессии

      10 самых высокооплачиваемых IT профессий 2020 года

      Профессии

Учимся программировать под Андроид / Хабр

Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «How To Learn Android Development» от Amit Shekhar.

Как изучить разработку приложений под Андроид?

Я видел много вопросов о том, как начать изучать программирование под Андроид и стать успешным разработчиком. Здесь я попытался охватить большинство важных аспектов в Android Development.

Изучение андроид-разработки — процесс, который должен проходить шаг за шагом. И данное руководство — не исключение. Никто не может стать полноценным Андроид-разработчиком за 30 дней. В этой статье также будут представлены лучшие учебники и статьи по разработке Андроид.

Итак, как разработать приложение под Андроид?

Ниже представлены темы, которые, по моему мнению, являются самыми важными для разработки приложений под Андроид:

  • Прежде всего, вы должны обладать базовыми знаниями языка Java. В этом мне помогла книга Head-First Java
  • Установите Android Studio IDE на свой ПК или ноутбук.
    Ссылка автора
  • Когда вы уже подтянули знания по Java, найдите курс или книгу по разработке под Андроид. Обязательно подкрепляйте пройденное практикой
  • Ознакомьтесь с жизненным циклом Андроид-приложения.
    Ссылка автора
    Ссылка переводчика
  • Узнайте о том, как отлаживать приложение.
    Ссылка автора
    Ссылка переводчика
  • Изучите про навигацию между экранами, tasks и back stack.
    Ссылка автора
    Ссылка переводчика
  • Разберитесь с тем, что такое контекст в Андроид.
    Ссылка автора
    Ссылка переводчика
  • Прочитайте про SharedPreferences.
    Ссылка автора
    Ссылка переводчика
  • RecyclerView в Андроид.
    Ссылка автора
    Ссылка переводчика
  • Фрагменты.
    Ссылка автора
  • ViewPager в Андроид.
    Ссылка автора
    Ссылка переводчика
  • DialogFragments. Ссылка автора
  • Основные потоки.
    Ссылка автора
    Ссылка переводчика
  • Сторонние библиотеки.
    Ссылка автора
    Ссылка переводчика
  • Работа с сетью в приложении.
    Ссылка автора
    Ссылка переводчика
  • БД и ORM(объектно-реляционное отображение).
    Ссылка автора
    Ссылка переводчика
  • Службы, сервисы.
    Ссылка автора
  • Датчики, GPS, Acceleration.
    Ссылка автора
    Ссылка переводчика
  • Разберитесь, как создать пользовательское представление(view-элемент).
    Ссылка автора
    Ссылка переводчика
  • Handler in Android.
    Ссылка автора
    Ссылка переводчика
  • ThreadPool Executor.
    Ссылка автора
    Ссылка переводчика
  • Уведомления.
    Ссылка автора
  • Загрузчики.
    Ссылка автора
  • Поставщик контента.
    Ссылка автора
  • Обработка изменений в режиме выполнения.
    Ссылка автора
  • RxJava. В настоящее время также используется при разработке под Андроид.
    Ссылка автора
    Ссылка переводчика
  • Kotlin.
    Ссылка автора
    Ссылка переводчика
  • Dagger.
    Ссылка автора
    Ссылка переводчика
  • Архитектура MVP.
    Ссылка автора
    Ссылка переводчика
  • Архитектура MVVM.
    Ссылка автора
    Ссылка переводчика
  • Показатели производительности.
    Ссылка автора
  • Стиль и правила написания кода.
    Ссылка автора
    Ссылка переводчика
  • Аннотации.
    Ссылка автора
    Ссылка переводчика
  • Советы по разработке:
    Ссылка автора
    Ссылка переводчика
  • Статья про то, как улучшить код аннотациями
  • Как уменьшить размер APK-файла.
    Ссылка автора
    Ссылка переводчика
  • Оптимизация приложений под Android с помощью ArrayMap и SparseArray.
    Ссылка автора
    Ссылка переводчика
  • Git.
    Ссылка автора

Хорошего кода 🙂

Начало работы с разработкой под Android

Здравствуйте, добро пожаловать в мой блог «Программирование для Android с нуля». Я Мааз Ахмед, у меня степень магистра компьютерных наук, последние несколько лет я занимаюсь разработкой приложений для Android. Я начинаю этот блог, чтобы сделать информацию / руководство / учебные пособия легко доступными для новых разработчиков Android.

Давайте начнем это путешествие с самого простого руководства «Как установить Android Studio».


Руководство по установке на Ubuntu:

Я использую Ubuntu 16.04 LTS, но в целом это должно работать в Ubuntu 14.04 и новее, а также в любом другом дистрибутиве на основе Debian.

Первое и самое главное, что вам нужно, это JDK (Java Development Kit). Когда дело доходит до JDK в Ubuntu, у вас есть два варианта: вы можете использовать OpenJDK, который предустановлен вместе с Ubuntu, или вы можете установить Oracle JDK, выполнив следующие шаги. Лично я рекомендую вам установить Oracle JDK и сделать это:


1- Откройте терминал, нажав CTRL + ALT + T, и выполните следующую строку одну за другой.В зависимости от скорости вашего интернет-соединения это может занять некоторое время.

sudo add-apt-repository ppa: webupd8team / java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

2- После установки JDK Загрузите Android Studio, это снова может занять некоторое время в зависимости от скорости вашего интернет-соединения.




3- После загрузки Android Studio извлеките файл.zip-файл и переместите его в каталог / opt, для этого просто выполните следующую строку в терминале. (Замените «145.3360264» любой загруженной версией.

sudo unzip android-studio-ide-145.3360264-linux.zip -d / opt




4- Перейдите в каталог исполняемых файлов Android Studio, набрав следующую строку в терминале (при условии, что вы извлекли его в / opt)

cd / opt / android-studio / bin



5- Запустите Android Studio.

./studio.sh

Android Studio запустится, и мастер настройки проведет вас через процесс начальной настройки. Он автоматически загрузит необходимые компоненты (Android SDK, системные образы Android AVD). Это опять же может занять некоторое время, в зависимости от скорости вашего интернета.

После его завершения вы увидите экран приветствия.




Создайте запись на рабочем столе, нажав «Настроить» и выбрав «Создать запись на рабочем столе», чтобы она стала доступной в панели приложений Ubuntu.

6-
Если вы используете 64-битную версию Ubuntu, вам необходимо выполнить один дополнительный шаг. Android Studio требует 32-битных библиотек, которые вы можете установить, выполнив следующую строку в терминале.

 sudo apt-get install libc6: i386 libncurses5: i386 
 libstdc ++ 6: i386 lib32z1 libbz2-1.0: i386 
 
Вот и все, ваша среда разработки Android готова, и вы можете приступить к созданию приложений для Android.Присоединяйтесь ко мне в следующем посте, где я создам приложение «Hello World» и запустю его на устройстве Android.

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

Спасибо за прочтение.
.

Бесплатная загрузка электронных книг для поиска!

Все … Категории и теги электронных книг


Автор / ВремяНедавно просмотренных электронных книг:

  1. , неизвестный / 13:10 [share_ebook] Gramatica esencial Aleman (Pons- Gramatica Esencial)
  2. 13: 10Введение в машинное обучение — часть первая
  3. , автор неизвестен / 13:10 [share_ebook] Gramatica esencial Aleman (Pons- Gramatica Esencial) )
  4. 13: 10Карандаш из комиксов с Дэвидом Финчем 2CD (DVDRip)
  5. 13:10 Музыкальная терапия: искусство, не имеющее слов Эд 2
  6. автор: Unknown / 13:10 [share_ebook] Gramatica esencial Aleman (Pons- Gramatica Esencial)
  7. 13: 1001225- [Загрузить 2017] -Биологическая ЯМР-спектроскопия — J.Маркли, С. Опелла (Оксфорд, 1997)
  8. неизвестно / 13:10 [share_ebook] Gramatica esencial Aleman (Pons- Gramatica Esencial)
  9. неизвестно / 13:10 [share_ebook] Gramatica esencial Aleman (Pons- Gramatica Esencial)
  10. , автор: Unknown / 13:10 [share_ebook] Gramatica esencial Aleman (Pons- Gramatica Esencial)

Читателей10 лучших электронных книг:

  1. 4712150GB электронные книги, mp3, видео и игры скачать бесплатно!
  2. 3668Бесплатно скачать электронные книги, MP3, видео и игры!
  3. 3500 [share_ebook] PLEX, Руководство: Ваши медиа, в стиле
  4. 3479Global Finance Бесплатная подписка
  5. 3058A Руководство по продуктивности Computer Geek, Free Makeuseof.com eBook
  6. 3055Oracle Magazine, бесплатная подписка на Oracle Magazine
  7. 2287 [share_ebook] Политики и процедуры информационной безопасности: Справочник для практиков, второе издание
  8. 1977 Серия тренингов Apple Pro: Aperture 1.5
  9. 1839 Контрактная переписка с архитекторами и менеджерами проектов
  10. Искусство любви
  11. 2047 БЕСПЛАТНОЕ освоение и повышение безопасности Linux в течение ограниченного времени

СообщенийЛучшие пользователи:

  1. 444262luongquocchinh 261313nokia241186
  2. 176868manhneovn 171658everest555
  3. 88267voska89 63835BaDshaH786
  4. 50236pherick 48109LoriYagami89
  5. 44253books_lover 40686perica123

Последние PostsActive пользователей:

  1. 401nokia241186
  2. 153Germany2020
  3. 106Specijalac
  4. 91mitsumi
  5. 740nelovee
  6. 49MeGusta
  7. 46BaDshaH78629
  8. 42EdShaH78629
  9. 42Er
    1. 2020-10-10БАТЭксперт 1.14.1.22
    2. 2020-10-10 WhatsApp для Windows 2.2039.9 Многоязычный
    3. 2020-10-104Media iPad Max Platinum 5.7.32 Сборка 20200917 Многоязычный
    4. 2020-10-10Tarma InstallMate 9.96.0.7568
    5. 2020-10-10dslrBooth Professional Edition 6.36.1006.1 Multilingual
    6. 2020-10-10JixiPix Premium Pack 1.2.0 (x64) Portable
    7. 2020-10-10JRiver Media Center 27.0.13 (x64) Multilingual
    8. 2020-10-101CLICK DVD Copy Pro 5.2. 1.9 Многоязычный
    9. 2020-10-10MaxLauncher 1.23.0 Многоязычный
    10. 2020-10-10HTML Compiler 2021.9
    11. 2020-10-10TablePlus 3.9.4 Build 140
    12. 2020-10-10TuneMobie M4V Converter Plus 1.5.3 Многоязычный
    13. 2020-10-10City Hall 2020 1080p WEBRip AAC2 0 x264-PTP
    14. 2020-10-10Audials One 2021.0.84.0 Multilingual
    15. 2020-10-10YouTube By Click 2.2.140 Multilingual
    16. 2020-10-10Blender 2.90.1 (x64)
    17. 2020-10-10The Haunting at Узел Долины Смерти 2020 1080p AMZN WEBRip DDP2 0 x264-BobDobbs
    18. 2020-10-10NCH Prism Plus 6.62
    19. 2020-10-10UltraCopier 2.2.4.7 Multilingual
    20. 2020-10-10ArchiCAD 24 Build 3008
    21. 2020-10-10Comfy Partition Recovery 3.2 Multilingual
    22. 2020-10-10QTranslate 6.8.0.1 Portable
    23. 2020-10- 10TunePat Tidal Media Downloader 1.0.1 Multilingual
    24. 2020-10-10 Advanced System Repair 1.9.3.5 Pro
    25. 2020-10-10Abelssoft AntiRansomware 2021 v21.3.103
    26. 2020-10-10MAAT Plugins Bundle 2020.9
    27. 2020-10-10Aiseesoft Запись экрана 2.2.26 Многоязычный
    28. 2020-10-102BrightSparks SyncBackPro 9.4.2.10 Многоязычный
    29. 2020-10-10 Любой загрузчик видео 7.19.16
    30. 2020-10-10Nevercenter CameraBag Pro / Standard 2020.40

    Другие электронные книги …

    44818 страниц, всего 4481796 электронных книг, список всех страниц->

    Рекомендовать Ebookee

    Другие категории

    Электронная почта Подписаться

    Лента и закладка

    Рекламные ссылки

    Мы рекомендуем

    .

    [СКАЧАТЬ] Изучите программирование Android с нуля — Основы | Курс бесплатно

    Что вы узнаете

    • К концу курса вы сможете создавать приложения для Android на основе ваших идей
    • Возможность выбора лучший макет для ваших приложений
    • Изучите концепцию, лежащую в основе конструкций Android
    • Правильно спроектируйте свое приложение для Android

    Требования

    • Компьютер или компьютер MAC с минимум 2 ГБ оперативной памяти.SDK полностью бесплатен
    Описание

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

    Он научит вас парадигме программирования Android и научит думать при создании программы для Android. Мы рассмотрим такие темы, как установка, действия, макеты, представления списков, SQLite, мультимедийные службы и Google Play.

    Курс разделен на 6 частей, охватывающих каждую из вышеперечисленных тем. Вы начнете с основного процесса установки и перейдете к первому примеру Android, в котором будет описана структура программ Android.

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

    Затем вы узнаете о макетах для разработки пользовательского интерфейса и изучите их, создавая вместе с ними примеры приложений.Затем вы узнаете о ListViews и SQLite для сохранения данных.

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

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

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

    Для кого предназначен этот курс:

    • Любой, кто имеет базовые знания Java или любого другого языка программирования

    Создано Eduonix Learning Solutions, Eduonix-Tech., Eduonix Support
    Последнее обновление 12/2018
    Английский
    Английский [Создан автоматически]

    Размер: 737,64 МБ

    СОДЕРЖАНИЕ ИЗ: https: // www.udemy.com/course/learn-android-programming-from-scratch-beta/.

    Сегодняшняя скидка 100% на Udemy Coupon

    Получайте ежедневные уведомления о купонах и курсах.Присоединяйтесь к

    друзья.

    .

Post A Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *