Дорожная карта создания современного приложения для Android на 2018–2019 годы

1656678617 dorozhnaya karta sozdaniya sovremennogo prilozheniya dlya android na 2018–2019 gody

Серия приложений Kriptofolio — Введение

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

Если вы будете следить за этой серией, вы узнаете, как разработать приложение с нуля. Каждое сообщение в блоге этой серии будет охватывать конкретную тему разработки, о которой я хочу поговорить. Я постараюсь сделать все возможное, чтобы создать качественную программу и разъяснить процесс разработки. Эта первая публикация в блоге из серии – это дорожная карта проекта по поводу того, что мы собираемся делать.

Содержимое серии

Приложение: идея «Kriptofolio» (ранее «My Crypto Coins»)

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

Важным для пользователя является то, что это приложение обеспечит 100% доверие. Это не требует процесса входа/регистрации. Он не собирает данные пользователей, отправляя их на сервер. Думаю, никому не будет комфортно делиться информацией в Интернете о собственных деньгах.

Предоставленные пользователями данные об инвестициях в криптовалюту будут храниться только в локальной базе данных, хранящейся на устройстве Android. Однако, чтобы узнать стоимость портфеля, конвертируемую в фиатные деньги, программа будет использовать Интернет, чтобы получить последние курсы конвертации.

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

Что мы будем использовать?

Во-первых, чтобы создать это приложение, нам нужно знать о ценах на различные криптовалюты на текущий момент. Эти данные будут предоставлены из Интернета, поскольку они постоянно изменяются.

API данных:

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

Далее я составил список самых значимых трендов в мире Android, которые подходят для этого проекта и должны использоваться в нем.

Язык программирования:

Kotlin – официальный язык на Android. Он выразителен, лаконичен и мощен. Лучшее то, что он совместим с существующими языками и средой исполнения Android.

Этот новый язык был одной из самых горячих тем в 2017 году для Android. В нем нужно написать наше приложение. Я также рассказываю о Kotlin и его функциях в моей предыдущей публикации в блоге «Давайте изучать Kotlin, создавая приложение-калькулятор Android».

Интегрированная среда разработки (IDE):

Android Studio – официальная IDE для Android. Он предоставляет самые быстрые инструменты для создания приложений на всех типах устройств Android. Нет лучших альтернатив для разработки нативных программ. Без сомнения, это наш главный выбор для IDE.

Система управления построением проекта:

Gradle – это усовершенствованная система управления сборками общего назначения на основе Groovy и Kotlin. Он поддерживает автоматическую загрузку и настройку зависимостей или других библиотек. Это система сборки, рекомендованная Google. Он хорошо встроен в Android Studio, поэтому мы будем использовать его.

Архитектура:

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

Model–View–ViewModel (MVVM) – архитектурный шаблон. Концепция состоит в том, чтобы отделить логику представления данных от бизнес-логики, переместив ее в отдельный класс для четкого различия. Команда Android выдвигает этот шаблон как выбор по умолчанию. Кроме того, это альтернатива MVC и популярным шаблонам MVP.

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

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

Устойчивость данных:

База данных SQLite – это база данных SQL с открытым кодом, которая постоянно хранит данные в текстовом файле на устройстве. Android поставляется со встроенной реализацией баз данных SQLite. SQLite поддерживает все функции реляционной базы данных.

Shared Preferences — API от Android SDK для хранения и получения настроек программы. SharedPreferences — это просто наборы постоянно хранящихся значений данных. Это позволяет хранить и получать данные в форме пар ключ-значения.

Библиотеки:

Android Jetpack компоненты:

AppCompat — это набор вспомогательных библиотек, которые можно использовать, чтобы приложения, разработанные с новыми версиями, работали со старыми версиями.

Android KTX – набор расширений Kotlin для разработки приложений Android. Цель Android KTX – сделать разработку Android с помощью Kotlin более сжатой, приятной и идиоматической, используя особенности языка, такие как функции/свойства расширения, лямбда-выражения, именуемые параметры и параметры по умолчанию.

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

Жизненные циклы – для управления деятельностью и жизненными циклами фрагментов.

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

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

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

Другой:

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

CardView – элемент, представляющий информацию в форме карты с тенью (высотой) и угловым радиусом, который выглядит согласованно на всей платформе.

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

Посторонние:

Dagger 2 – это полностью статическая платформа для применения зависимостей при компиляции как для Java, так и для Android.

Retrofit 2 – HTTP-клиент с открытым исходным кодом для Android и Java. С помощью Retrofit можно легко создать HTTP-соединение через простой, выразительный интерфейс, как документ API.

OkHttp – современный, быстрый и эффективный HTTP-клиент с открытым кодом, поддерживающий HTTP/2 и SPDY.

Gson — библиотека Java с открытым исходным кодом для сериализации и десериализации объектов Java и JSON.

Glide — быстрая и эффективная библиотека для загрузки изображений для Android, ориентированная на плавную прокрутку. Glide предлагает простой в использовании API, эффективный и расширяемый конвейер для декодирования ресурсов и автоматическое объединение ресурсов.

Настройка нового проекта

Мы создадим этот проект с нуля. Поэтому я запусту Android Studio, создаю новый проект, назову его «Мои криптовалюты» и выберу «Основная деятельность». Сейчас обсуждать особо нечего. Наша цель состоит в том, чтобы начать все заново и избежать любых сложностей, добавив дополнительные функции (например, поддержку мгновенных программ). Мы можем добавить что-нибудь позже, если захотим, во время процесса разработки.

Для начала давайте включим поддержку языка Kotlin и целевой API 23: Android 6.0 (Marshmallow).

Почему я не нацелюсь на более низкий или более высокий API? Давайте смотреть в глаза. Приятно прекратить поддержку некоторых более старых устройств и не волноваться о проблемах совместимости при разработке. Кроме того, я счастлив владелец старого планшета Nexus 7 (2013) под управлением Android 6.0.1. Я надеюсь протестировать свою программу на нем. ? Так что для этого отдельного проекта, который повлиял на мой минимальный выбор SDK.

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

TVPZwad45enjSKAkTnJPRK4ld-BV1toGKXs-
В Android Studio от версии 3.0 плагин Kotlin уже встроен, просто установите флажок, чтобы добавить поддержку.
vp5Rm1gsBRER1UbDrkcMv5LjQihJsI6cqXFT
Выберите минимальный таргетинг SDK на основе бизнес-потребностей.
xNcIHSD6HRUnVbKI5u42o520HMfDLu9NeM9o
Для начала выберите базовое действие, которое создаст нужный код.
Bl0EpPhu8JPnNuDkYveUdbwqGWJurodIuhX8
Установите флажок, чтобы содержимое было размещено во фрагменте.

GitHub – один из самых популярных веб-сервисов для контроля версий. Это проект с открытым исходным кодом и, конечно, я буду им пользоваться.

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

Просмотреть исходный код на GitHub

Вот и все для начала. Если у вас есть вопросы, предложения, замечания, пожалуйста, не стесняйтесь делать это в комментариях. А теперь давайте учиться вместе! Следующая часть 2…?

Ačiū! Спасибо за чтение! Я сначала опубликовал эту публикацию для своего блога www.baruckis.com 12 февраля 2018 года.

Добавить комментарий

Ваш адрес email не будет опубликован.