linkasu / linkatype-android

program, which helps people to communicate with speech disorders
42 stars 7 forks source link

todo #1

Open ibakaidov opened 7 years ago

ibakaidov commented 7 years ago
zartdinov commented 7 years ago

Привет, к сожалению, с явой не особо приходилось работать, но хочется верить, не последний человек среди тех кто связывается с кодом )

Сразу напишу по тем же пунктам, чтобы было более структурировано.

A standard Trie is very memory intensive, for larger sets you wanna use a Compacted Trie which greatly reduces the memory footprint. Additional optimisations encompass lazy initialisation of node values and the right data structures for the children/value sets. A while ago I created a autocomplete library capable of handling very large data sets (10,000,000+) and efficiently answers exact and approximate searches.

  • Больше склоняюсь в сторону популярных файловых хранилищ, наподобие Dropbox или GoogleDrive. Нужно чтобы даже те кто не сильно разбирается смогли потом извлечь свои данные или , например, легко начать не настраивая никаких серверов. В моем представлении, информация должна храниться в двух файлах. В одном большой словарь, который может быть у всех одинаковый, чтобы не искать в интернете, лучше даже в формате .txt, а втором уже то что связывает этого человека со словарем. Если на примере того же префиксного дерева, то там как раз и должно лежать это дерево. С синхронизацией, конечно, всегда бывает не всегда все просто, тут надо еще додумать.
  • По этому пункту пока нечего сказать.
  • Ну код выглядит точно не хуже, чем у знакомых)) поэтому оставляю это тем, кому доводилось встречаться с явой одного раза. Глянул основные классы мельком. Возможно, можно будет потом добавить больше интерфейсов, чтоб легко менять реализации, например онлайн спикера на оффлайн и тд.

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

e13mort commented 7 years ago

@zartdinov Зачем усложнять? Реализации со стандартной sqlite бд и like* запросами тут, по моему убеждению, за глаза и за уши хватит.

dmitvitalii commented 7 years ago
  1. База данных, поиск по базе данных SQLite, как сказал @e13mort с LIKE-запросами, динамически показывать результат выдачи;
  2. Можно использовать FireBase, самый простой и удобный для этого случая вариант от Google;

Вообще, можно создать несколько Issue на выполнение (рефакторинг кода, добавление firebase, добавление базы данных, добавление поиска и т.д.), это упростит сообществу разработку.

zartdinov commented 7 years ago
  1. Да, здесь не надо переусложнять. Подумал может пригодится. Деревья популярная структура для таких задач, экономят память и тд. Это можно легко представить на длинных предложениях с разной концовкой.
  2. Вообще, автор знаком с nodejs, лучше наверно nodejs restfull сервер. В качестве бд любую, или если ближе к firebase, то можно более реалтайм rethinkdb.

Если опять все усложнять, тут подойдут некоторые key-value хранилища, в которых есть поиск по префиксу. Особенно легко было бы с distributed key-value storage, такими как etcd, consul и тд.

agent10 commented 7 years ago

Надо бы ещё создать dev ветку, а не мешать c master'ом из которого строится для продакшена.

zartdinov commented 7 years ago

В последнее время многие ведут разработку именно в мастере, а рабочий вариант в любой момент скачивается по последнему релизу. Например, docker, angular и еще много.

swapii commented 7 years ago

По Git Flow разработку ведут в ветке develop, а master используют для стабильных версий. Подход красивый, удобный, позволяет четко разграничить назначение разных веток. http://nvie.com/posts/a-successful-git-branching-model/

Но также есть понятие GitHub Flow, где основная ветка master и все изменения сливаются в нее. https://guides.github.com/introduction/flow/

Я сторонник именно Git Flow, но команда сама решает чему следовать.

agent10 commented 7 years ago

Я тоже за две ветки, это вносит некий порядок.

ibakaidov commented 7 years ago

https://github.com/aacidov/DisTypePro-android/tree/dev

naivekook commented 7 years ago

добавить сохранение фраз в облако (придумать в какое) и синхронизацию на всех гаджетах юзера

Я тоже голосую за Firebase, более того в нем есть функция офлайн доступа, которая включается вызовом одного метода, таким образом отпадает необходимость SQLite БД на телефоне. Ну и плюс - не надо будет реализовывать механизм синхронизации фраз, потому что Firebase это будет делать сам.

ibakaidov commented 7 years ago

Всем привет. простите что молчал. со временем был пипец. обновил эппу и загрузил в гугл плей. Еще добавил кнопку bell, она издает громкий звук и привлекает внимание

ibakaidov commented 7 years ago

чтобы такого еще придумать... Виджет с быстрыми фразами?