Join money app. Постановка задачи, возможности и ui приложения Структура приложения и решения презентация

Содержание

СОДЕРЖАНИЕ Постановка задачи, возможности и ui приложения Структура приложения и решения

Слайд 1JOIN MONEY APP
СЮКОВ СЕРГЕЙ
12.06.2017


Слайд 2СОДЕРЖАНИЕ
Постановка задачи, возможности и ui приложения
Структура приложения и решения


Слайд 3ПОСТАНОВКА ЗАДАЧИ, ВОЗМОЖНОСТИ И UI ПРИЛОЖЕНИЯ


Слайд 4ПОСТАНОВКА ЗАДАЧИ
В маленькой компании работают 5 человек. Два учредителя и трое

наемных работников. Компания на енвд схеме налогообложения, поэтому нет необходимости в налоговой отчетности за каждую денежную операцию. В денежном обороте принимают участие все сотрудники (прием предоплаты, закупка материалов, оплата накладных расходов, прием пост оплаты и т.д.).
Учет движения денежных средств осуществляется через одним из учредителей, остальные присылают ему все свои расходы и доходы по смс, а он вносит их в используемую им программу для учета расходов.
Проблемы:
Второй учредитель имеет не постоянный доступ к данным программы.
Каждый из наемных сотрудников не знает о своем текущем балансе.
Трудоемкий и неудобный процесс для занимающегося внесением информации в систему учета.

Слайд 5ПОСТАНОВКА ЗАДАЧИ
Внесение данных
Вносить основные операции (доход, расход, перевод), с указанием счетов,

категорий, тегов.
Просмотр остатка денег на счетах.
Просмотр детализации по счетам, категориям, тегам.
Синхронизация данных между устройствами.
Многопользовательский режим
Подключение к одному аккаунту нескольких пользователей.
Закрепление за пользователем счета.
Выставление уровня доступа пользователя. Выявлено три роли:
Администратор – может видеть и редактировать все записи.
Пользователь – может просматривать все записи, но не редактировать. Может добавлять заметки (текст и фото) для последующей обработки их администратором.
Ограниченный пользователь – может просматривать операции только по своему счету (без редактирования). Может видеть баланс своего счета. Может добавлять заметки.

Слайд 6АНАЛИЗ СУЩЕСТВУЮЩИХ ПРЕДЛОЖЕНИЙ



























Слайд 7UI
Вход в приложение через Google аккаунт
Регистрация. Возможность присоединиться к существующему аккаунту
Ожидание

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

Слайд 8UI
Список операций
Меню (при входе под администратором)
Список счетов с балансом по каждому


Слайд 9UI
Редактирование операции
Окно ввода суммы операции
Окно установок фильтра по датам


Слайд 10UI
Редактирование пользователя
Список заметок
Редактирование заметки


Слайд 11РЕШЕНИЯ


Слайд 12Android client

Background
СХЕМА СЕТЕВЫХ ЗАПРОСОВ
Apache server

PHP
Retrofit
Request handler





UI Thread
EventBus
Activity
or Fragments




Слайд 13Background
СХЕМА ЗАПРОСОВ К БАЗЕ ДАННЫХ
UI Thread
EventBus.AsyncExecutor
StartPreparingData(){
AsyncExecutor.create.execute(…);
}

DataProvider.getData(){
// take

data

EventBus.postStyky(… data);
}





onDataPrepared(data){
// update UI
}

onException(Exception e){
// handle exception
}




softRef

EventBus.StyckyEvent



Слайд 14РЕШЕНИЯ
Apache + PHP + MySQL
Рассматриваемые альтернативы:
Firebase real-time database
+ обновления в реальном

времени
+ меньше кода
- NoSQL база данных. В приложении используется запросы с JOIN, который отсутствует в Firebase.


Слайд 15РЕШЕНИЯ
EventBus + Retrofit
Рассматриваемые альтернативы:
Retrofit (асинхронные запросы)
- не следит за состоянием

фрагмента/активити
Loaders + Retrofit
- более сложная реализация
AsyncTask + Retrofit
- не следит за состоянием фрагмента/активити


Слайд 16РЕШЕНИЯ
Retrofit
Рассматриваемые альтернативы:
Volley
- нет синхронных запросов, а асинхронные не отслеживают жизненный

цикл фрагментов.
HttpURLConnection
- Нужно вручную парсить json.


Слайд 17РЕШЕНИЯ
Для кеширования запросов к sqlite базе данных, был создан класс DataProvider.

Это singleton, через который все фрагменты запрашивают данные из базы.
В этом классе результаты всех используемых запросов к базе сохраняются в soft reference.
Если данные и условия запроса не были изменены, то в следующий DataProvider сразу возвращает данные из соответствующей soft reference (или если система их удалили, то снова идет в sqlite)
При изменении/добавлении данных, вызываем у DataProvider метод обнуляющий соответствующую soft reference.

Слайд 18

Client

БЕЗОПАСНОСТЬ
Server


параметр 1,
параметр 2,
параметр 3,

google account token,
account id,
request sign (sha1

от всех
параметров запроса и appKey,
сложенных в одну строку)



Вычисляется своя версия request sign и сравнивается с пришедшей
Проверяется соответствие token и account id
Если access status данного аккаунта позволяет вносить изменения в базу, то вносятся изменения

запрос


Слайд 19
Спасибо за внимание!


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика