Закрыто

[Повтор][JavaBegin] Учет финансов на Android 6

Тема в разделе "Курсы по программированию", создана пользователем nedorazumenie, 17 окт 2016.

Цена: 3900р.-87%
Взнос: 476р.
100%

Основной список: 20 участников

Резервный список: 3 участников

Статус обсуждения:
Комментирование ограничено.
  1. 17 окт 2016
    #1
    nedorazumenie
    nedorazumenie ЧКЧлен клуба

    Складчина: [Повтор][JavaBegin] Учет финансов на Android 6

    Шаги создания приложения:

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

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

    3. Создание ядра
    Основной функционал всего приложения – реализация основных бизнес-процессов и целей. Здесь уже начиначется код, но этот код не должен быть связан с Android, только стандартные библиотеки JavaSE. Обязательно нужно будет разбить ядро на уровни. Каждый из уровней можно будет заменять другой реализацией. Ядро можно будет использовать не только в Android приложении, но и, например, в онлайн-версии.

    4. Создание прототипа
    Прототип будет содержать 80-90% реализации всего приложения, но без реальных данных. С помощью него можно увидеть, как будет работать приложения, его возможности и пр. Если вы работает с заказчиками – вы сначала полностью согласовываете рабочий прототип, исправляете что нужно, и только потом переходите к созданию проекта в Android Studio. Это сильно сэкономит вам время, т.к. вы уже будете основываться на утвержденном прототипе.

    5. Реализация Android UI
    На этом шаге у вас есть рабочее ядро приложения, готовый прототип, поэтому создать Android UI в XML файлах – это уже дело техники. Вы берете прототип и постепенно переносите его в приложение. По сути – здесь вам уже не нужно будет думать, как и что должно работать, потому что вы правильно выполнили все предыдущие шаги. Многие новички начинают сразу с этого шага, минуя предыдущие. Теперь вы понимаете, что это неверный подход.

    6. Связывание UI с ядром
    Последний шаг - соединить все части между собой, как конструктор. Вам нужно будет просто «наложить» на рабочее ядро готовый UI, добавить нужные контроллеры (обработчики действий пользователя) , адаптеры, чтобы строить списки и другие элементы кода. Все бизнес процессы уже находятся в ядре, поэтому ваша задача - просто правильно использовать его с помощью готового API.


    Список тем:

    1 часть "Проектирование и создание ядра"
    Описание Android
    Общее описание операционной системы, среда выполнения, какие IDE можно использовать. Все, что нужно знать новичку для начала работы с Android, без лишней информации, которая поначалу может перегрузить голову.
    Работа в Android Studio
    Импорт и создание проектов, оптимизация работы в IDE, как ускорить разработку – вы научитесь быстро и правильно использовать Android Studio, узнаете различные настройки, которые в несколько раз ускорят вашу работу с кодом.
    Сбор требований
    Начальный этап проектирования - описание главных целей и функционала. Проектирование объектов и связей между ними, выделение основных групп объектов. Пока без создания самого кода – только проектирование.
    Этап проектирования
    Разбор требований и построение плана. Использование мозгового штурма для принятия решений. Для этого я буду использовать маркерную доску, вы можете выполнять на листочке или в текстовом документе
    Свойства объектов
    Проектирование основных и справочных объектов. Добавление возможностей деревьев, т.е. вложения объектов друг в друга. Этот этап опишет все ваши объекты с точки зрения характеристик, здесь же будет видно, как объекты связаны между собой.
    Действия объектов
    Проработка основных действий как самих объектов, так и специальных менеджеров для этих объектов. Здесь будут храниться фундаментальные операции для ядра. Отсюда и начинается основной функционал приложения, все бизнес процессы, обработка данных.

    Добавление исключений
    Это удобный механизм, который позволит вам обрабатывать сообщения ядра на уровне UI за счет правильного распределения объектов исключений в коде. Ядро должно уметь информировать любую внешнюю систему.
    Сценарии
    Сценарии нужны, чтобы понимать, какие действия можно совершать над каждым объектом или группами объектов. Таким образом будет видна полная картины работы приложения и сопоставления с объектами. Сценарии очень важны, многие новички пропускают этот шаг, вы узнаете, почему этого делать нельзя.
    Создание ядра
    Начало создания функционала по всем нужным бизнес процессам без добавления UI. Это ядро также можно будет использовать для веб версии или любой другой. Вы начнете создавать ядро на Java SE, поэтому его можно будет подключать как библиотеку в любой проект.
    Объекты ядра
    С каждым спроектированным объектом нужно будет работать в ядре отдельно. Вы будете переносить объекты по одному и проверять по очереди их работу. Очень важно разрабатывать последовательно, от простого к сложному.
    Проект ядра в Android Studio
    Вы создадите модуль, который потом будете подключать к основному приложению. Узнаете, как делить приложение на модули и работать с каждым по отдельности.
    Работа с валютой
    Откуда брать готовые значения валют для своего приложения и какие стандарты для этого использовать. Вам не нужно будет изобретать колесо, потому что можно использовать готовые решения для вашего приложения.
    Уровни ядра
    Чтобы ядро работало правильно и его можно было дорабатывать – его нужно разбить на уровни или слои. Это профессиональный подход, который позволит вам заменять любой из уровней без ущерба для работы ядра. Количество уровней будет определяться исходя из целей.
    Абстрактный уровень

    На этом шаге вам нужно будет применить главные принципы ООП при создании любого Java проекта. Вы создадите нужные интерфейсы, абстрактные классы и многое другое. Это очень важный этап, который позволит написать ваше ядро профессионально.
    Структура деревьев
    Для справочных значений нужно будет использовать структуру деревьев, чтобы можно было вкладывать объекты друг в друга. Причем количество уровней – неограниченно. Это позволит гибко использовать категории внутри самого приложения.
    Применение паттернов проектирования
    По ходу создания ядра вы также будете использовать многие паттерны (шаблоны) проектирования Java. Вы научитесь применять паттерны для вашего ядра, использовать готовые типовые решения, чтобы улучшить структуру кода
    Оптимизация коллекций
    Чтобы не создавать избыточное количество объектов и коллекций – в проекте будет использоваться подход, который позволит создавать объект только один раз и везде использовать его экземпляр. Это один из разновидностей паттернов.

    2 часть "Подключение БД к ядру"
    Создание структуры БД
    После того, как ваше ядро будет готово – нужно подключать базу данных со всеми таблицами. Помимо создания таблиц, вы также узнаете многие полезные настройки на уровне БД, которые помогут в работе приложения
    Формат данных в SQLite
    Небольшой блок, который будет посвящен работе с типами данных в SQLite. Подход в этой БД отличается от многих других решений, вы должны понимать, какой тип данных использовать для полей ваших объектов.
    Создание DAO интерфейсов
    Применение паттерна для разделения абстрактного уровня доступа к данным от реализаций. Популярное решение, которое используется во многих проектах. Вы создадите нужные интерфейсы и их реализации.
    Работа с таблицами объектов
    Каждый спроектированный объект будет представлять отдельную таблицу в БД. Вы пропишете поля, проставите нужные связи между ними, настроите ограничение и многое другое. Часть функционала будет реализована на уровне БД.
    Ограничения на уровне БД
    Для того, чтобы не создавать дополнительный код – можно установить нужные ограничения внутри БД и просто отлавливать возвращаемые ошибки в коде. Таким образом, БД не только хранит данные, но добавляет функционал.
    Добавление тестовых данных
    Для проверки работы ядра вы добавите тестовые данные по своему усмотрению, чтобы проверить операции добавления, удаления, изменения. Одновременно с этим проверите работу всех ограничений, связей между таблицами, справочниками.
    Сборщик проекта Gradle
    Удобный инструмент, который можно использовать как для ядра, так и для модуля Android. В последнее время я использую в своих проектах именно Gradle. Вы научитесь работать с этим сборщиком и скорее всего также будете использовать его в дальнейшем.
    Добавление зависимостей через Gradle
    В первую очередь вы будете использовать Gradle для подключения нужных библиотек ядра. По ходу разработки приложения количество библиотек будет увеличиваться, в начале нужно будет подключить драйвер для работы с БД.
    Проверка работы ядра
    Перед подключением ядра в основное приложение нужно как минимум проверить его работу по всем основным действиям. Можно последовательно создавать и удалять нужные объекты и проверять все изменения в коде.
    Разделение ядра на уровни
    Один из главных принципов, который сделает ядро более гибким в использовании. На этом шаге вы также оптимизируете код, чтобы каждый слой работал независимо друг от друга и предоставлял только нужный API.
    Рефакторинг
    В любом проекте наступает этап, когда нужно оптимизировать код без изменения его функционала. То же самое будем делать и для ядра, чтобы улучшить структуру кода, применить паттерны и многое другое.
    Синхронизация данных
    Очень важная часть работы ядра и БД, в которой вы оптимизируете работу приложения. Смысл в том, чтобы лишний раз не обращаться к БД, а синхронизировать каждую операцию. Таким образом все объекты будут иметь актуальное состояние, как в таблицах.
    Инициализация данных
    Один из главных принципов ядра – это работа с любым количеством данных. Самое главное – в начале инициализировать данные, а потом уже точечно синхронизировать каждый объект. Тем самым скорость работы приложения не будет зависеть от количества данных.

    3 часть "Cоздание прототипа Android UI"
    Зачем нужны прототипы
    Основные причины, по которым вы обязательно должны создавать прототипы для приложения Android. Этого не делают многие новички, но делают профессионалы.
    Usability
    Основные требования к внешнему виду и работе приложения, чтобы пользователю было удобно работать с вашей программой. Многие принципы best practices будем брать с официального сайта для разработчиков android.
    Планирование UI
    Разработка макетов приложения, разделение на окна и компоненты, создание черновиков. За основу можно брать сценарии, которые вы разрабатывали ранее. Это самый первый шаг, где вы определяетесь со структурой UI, без дизайна.
    Концептуальная модель UI
    На основе черновиков можно уже строить модель UI. Здесь вы уже на 80-90% понимаете, как схематично будет работать UI, как окна будут связаны между собой. Похоже на первые шаги в проектировании кода ООП.
    Навигационная модель
    Обязательный шаг, на котором вы создаете окончательную схему взаимодействия внутри вашего приложения. По этим же шагам будет идти пользователь вашей программы. Поэтому вам нужно будет реализовать оптимальную модель доступа ко всем нужным окнам и компонентам.
    Чтение документации
    При создании Android UI нужно будет знакомиться со многими ресурсами, в основном на английском языке. Если у вас есть проблемы с чтением технических статей – вы начнете отрабатывать этот навык с нужными инструментами.
    Сервис для создания прототипа
    Разбор основных инструментов, чем отличаются, какой лучше использовать. Инструмент нужно выбирать исходя из целей и типа создаваемого приложения, поэтому нужно знать основные критерии выбора.
    Понятия при создании UI
    Важно, чтобы вы понимали разницу между понятиями, которые используют проектировщики и дизайнеры. Это поможет вам правильно разработать прототип и также взаимодействовать с другими дизайнерами.
    Настройка Justinmind (JIM)
    Этот инструмент вы будете использовать для создания прототипа вашего приложения и для начала нужно правильно его настроить: рабочая область, бэкапы, поля и многое другое.
    Создание прототипа
    Последовательное создания всех окон и переходов между ними, которые вы спроектировали в предыдущих шагах. Пока без навигации, самое главное, чтобы были доступны все нужные компоненты и окна.
    Имитация окна загрузки
    При запуске приложения вы должны показать пользователю окно загрузки с индикатором. Основная часть данных будет загружена именно в этот момент. При дальнейшей работе с приложением данные уже будут точечно синхронизироваться.
    Переход между окнами
    Реализация навигационной модели для прототипа, использование events и других возможностей JIM. Здесь вы уже будете уметь создавать практически любую ситуацию с помощью прототипа.
    Добавление бокового меню

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

    Пользователь будет иметь возможность создавать любой уровень вложенности справочных значений и использовать их при добавлении операции. В прототипе нужно учесть древовидную структуру данных.
    Реализация удаления
    Удаление с помощью «свайпа» - это уже привычная операция для большинства пользователей. При удалении также нужно предусмотреть отмену действия. Вы должны будете показать в прототипе различные способы удаления.
    Добавление анимации
    JIM позволяет использовать различные типы анимации при работе с окнами и переходами. В качестве шаблона можно будет использовать последние возможности Android 6.
    Добавление popup меню
    Более удобный способ работать со справочными значениями, чтобы добавлять новые дочерние элементы, редактировать и удалять. Popup меню сделает ваше приложение более интерактивным.
    Добавление настроек приложения
    Пользователю нужно дать возможность настроить некоторые элементы при работе с приложением. Выбор валют, цветов, количество записей и пр. В прототипе можно указать алгоритм работы с настройками.
    Принципы Material Design
    В любом Android приложении желательно придерживаться принципов Material Design, и в прототипе нужно хотя бы минимально использовать эти принципы.
    Реализация отчетов
    Ваный функционал для всего приложения, где можно посмотреть статистику в нужном разрезе и периоду. Вы добавите в прототип возможность добавления пользователем любых шаблонов отчетов, градация по периодам и многое другое.
    Доработка уровней (слоев)
    Чтобы собрать полную картину вы должны правильно наложить на ваше ядро Android UI. Все уровни должны работать друг с другом без избыточности, предоставлять только нужное API.
    Рекомендации от Google
    Best practices по каждому компоненту. Вы проверите каждый компонент на соответствие рекомендациям Google, исправите недочеты в прототипе. Это также важный шаг по оптимизации UI.
    Паттерны UI
    Помимо паттернов в коде, существуют также паттерны для UI – это типовые решения из области графического интерфейса, который вы также будете применять в своих приложениях.
    Доработка всего прототипа
    Окончательный вариант с учетом всех пройденных тем и рекомендаций. Вам нужно будет реализовать хотя бы 80-90% всех требований, чтобы было понятно, как должно будет работать приложение.

    4 часть "Реализация приложения"

    Добавление виртуальной машины
    Чтобы проверять работу приложения - нужно запускать его в виртуальной машине. Можно использовать стандартное решение, а можно подключить сторонние инструменты.
    Создание проекта в Android Studio
    Для начала нужно будет создать модуль в проекте Android Studio, в который уже будем подключать ядро и добавлять UI. Также вы подключите все необходимые библиотеки, настроите среду разработки.
    Поддержка Java 8 в Android
    Несколько слов о том, как можно использовать Java 8 в текущей версии Android, который пока поддерживает версию Java 7. Это касается лямбда выражений и других синтаксических решений.
    Работа с БД в Android
    На этом шаге вам нужно будет настроить работу с БД всего приложения, а не только ядра. Здесь есть несколько решений, который мы с вами рассмотрим и выберем одно из них.
    Подключение сторонних библиотек
    Для того, чтобы использовать дополнительный функционал - нужно будет научиться правильно подключать все библиотеки через Gradle и настраивать приложение.
    Подключение ядра
    Один из основных шагов, где вы будете связывать созданное ядро с новым UI. Вы увидите, что разработка самого приложения становится делом несложным, нужно просто правильно соединить части между собой.
    Локализация приложения
    Любое Android приложение должно поддерживать несколько языков, особенно, если вы планируете выходить на рынок. Ваше приложение будет использовать 2 языка: русский и английский.
    Инициализация данных
    Вся основная загрузка будет выполняться в начале приложения, чтобы затем во время работы скорость была оптимальной. Это будет реализовано за счет синхронизации данных, которая была добавлена в самом ядре.
    Создание интерфейсов в коде
    Для правильного создания UI - нужно будет использовать принципы ООП и интерфейсы. Помимо интерфейсов, которые мы создавали в ядре, также понадобятся интерфейсы для списка справочников, операций и других элементов.
    Создание экрана загрузки
    Для инициализации данных нужно выполнить в параллельном процессе всю загрузку, при этом у пользователя будет отображаться окно загрузки. Этот прием используют многие приложения, у которых большой объем данных.
    Редактирование справочников
    Чтобы пользователь мог использовать свои значения при создании операции - мы дадим возможность редактировать древовидную структуру справочников. Вложенность может быть любой.
    Добавление бокового меню
    Для навигации по всему приложению нужно использовать боковое меню или Navigation Drawer. Как мы описывали в прототипе - можно будет быстро переходить между всеми окнами за 2 шага.
    Добавление списка операций
    Одно из основных окон приложения, где показываются все операции по определенному периоду. Пользователь сможет выбирать сколько операций показывать, задавать фильтр и т.д.
    Редактирование операций
    Пользователь сможет не только создавать новые операции, но и редактировать старые. При этом нужно будет учитывать баланс, откатывать данные, т.е. держать данные в актуальном состоянии.
    Реализация удаления и отмены
    Одна из возможностей при удалении - это возможность отменить действие. Нужно будет обязательно реализовать это в приложении при работе с операциями или справочными значениями.
    Опимизация взаимодействия
    После того, как вы свяжете ядро и готовый UI - нужно будет провести оптимизацию взаимодействия между пользователем и UI, между UI и ядром.
    Добавление изображений
    В этом пункте вы научитесь правильно работать с изображениями в Android. Сюда относятся как иконки запуска, так и другие ресурсы, которые используются в приложении. Вы также узнаете, как правильно хранить изображения для проекта.
    Отладка приложения
    Во время разработки приложения мы постоянно будем пользоваться отладкой, чтобы проверять каждый шаг. Помимо обычной отладки кода, вы также будете использовать специальные инструменты Android Studio для проверки файловой системы, работы активити и пр.
    Добавление анимации
    В Android 5 и 6 добавились многие типы анимации, которые сделают ваше приложение более удобным и интерактивным. В первую очередь за счет анимации из темы Material Design. Нужно будет добавить анимацию на открытие, закрытие всех пунктов, переходов между ними.
    Использование стилей Material Design
    После создания всего UI нужно будет применить некоторые принципы Material Design, чтобы ваше приложение выглядело современно. Большинство современных приложений также соблюдают эти принципы.
    Настройки приложения
    Для того, чтобы дать пользователю удобно пользоваться приложением - вы добавите определенные настройки. Такие как - цвета для типов операций, сколько данных выводить, какие валюты использовать. Также можете добавить любые другие настройки по своему усмотрению.
    Проверка работы приложения
    После того, как вы выполните все пункты - у вас будет рабочий проект, который нужно будет проверить на мелкие недоработки. В этой части вы исправите мелкие недочеты и протестируете все функции.
    Идеи для доработок
    В курсе вы реализуете основной функционал, который можно будет дорабатывать по вашему усмотрению. Я например добавляю в свою версию нужные мне функции и пользуюсь приложением для учета своих финансов.

     
  2. Последние события

    1. skladchik.com
      Складчина закрыта.
      25 май 2018
    2. YODDHA_75
      YODDHA_75 оставил отзыв "Отлично".
      17 сен 2017
    3. skladchik.com
      Persaidotron не участвует.
      6 июл 2017
    4. skladchik.com
      Складчина доступна.
      21 май 2017

    Последние важные события

    1. skladchik.com
      Складчина закрыта.
      25 май 2018
    2. skladchik.com
      Складчина доступна.
      21 май 2017
    3. skladchik.com
      Взнос составляет 238р.
      19 май 2017
    4. skladchik.com
      Складчина активна.
      19 май 2017
  3. Отзывы участников

    5/5,
    • 5/5,
      Работой организатора доволен
      Материал скачал, автор разместил материал на двух сайтах, разных, один мне и не понравился, при повторном скачивании обнаружил ссылки на майл.
      17 сен 2017
  4. Обсуждение
  5. 20 окт 2016
    #2
    nedorazumenie
    nedorazumenie ЧКЧлен клуба
    нет
     
  6. 31 окт 2016
    #3
    nedorazumenie
    nedorazumenie ЧКЧлен клуба
    @arm51, есть ли у вас желание организовать?
    иначе ждать будет до следущего года
     
  7. 13 май 2017
    #4
    Kosh
    Kosh БанЗабанен
    До скольки планируем сбить цену?
     
  8. 15 май 2017
    #5
    Kosh
    Kosh БанЗабанен
    Ребят, если Вас не устраивает текущая сумма взноса, очень прошу не выписываться до дня начала сборов. Если вы боитесь не успеть выйти, напишите мне в личку, указав желаемую сумму, выше которой участвовать не согласны. Если на момент начала сборов взнос не опуститься до нужной суммы, я исключу вас.
     
Статус обсуждения:
Комментирование ограничено.