dotnetru / app Goto Github PK
View Code? Open in Web Editor NEWOfficial mobile app for DotNetRu
License: MIT License
Official mobile app for DotNetRu
License: MIT License
Сейчас для выяснения Даты Встречи (Meetup\Date
) и списка Докладов (Meetup\TalkIds
) используются устаревшие поля. Они скоро будут удалены из Аудита.
Необходимо перейти на использование их новых аналогов.
Для большей гибкости в описание Встречи было добавлено такое поняние как «Сессии». Каждая сессия описывает один Доклад и время его проведения. Сессии не только добавили новую информацию ко Встречи, но также и заменили существующую (Дату и список Докладов).
Как таковой Даты Встречи больше нет в явном виде. Но у каждой Сессии есть дата и время её проведения. В качестве Даты Встречи рекомендуется использовать дату начала первой Сессии в списке Сессий (Meetup\Sessions\Session[0]\StartTime
).
Для выявления списка докладов необходимо выбрать все Сессии Встречи и у каждой получить идентификатор Доклада (Meetup\Sessions\Session\TalkId
).
Все даты хранятся в UTC. Для отображения времени Встречи в пользовательском интерфейсе необходимо показывать его в локальном времени Сообщества в рамках которого произошла встреча. За подробностями смотрите описание работы с временами для Аудита.
После установки приложения Xamarin Evolve у меня в системе создался отдельный календарь. В нём сохранялись встречи. После удаления приложения, календарь остался в системе.
Необходимо удалять календарь приложения вместе с самим приложением.
Воспроизвёл на Windows Mobile 10
Сейчас приложение не локализовано.
Хочется поддерживать возможность перевода интерфейса приложения на несколько языков.
Изначально необходимо иметь Английский и Русский переводы.
Приложения должно использовать словарь в зависимости от локали устройства на котором запущено приложение. Если соответствующая локаль не найдена в приложении, то необходимо использоваться Английскую версию.
Сейчас текущие сервисы (получение митапов, друзей, докладов) являются static классами.
Нужно встроить DI, e.g. https://xamarinhelp.com/xamarin-forms-dependency-injection/
У пользователя должна быть возможность осуществлять полнотекстовый поиск по всему тексту энциклопедии ( #3 ). С возможностью перейти к соответствующей статье. Поиск должен быть по всему тексту Аудита т.е.: Митапы (дата, место), Спикеры (имена, биография, ссылки), доклады (название, описание) и т.д.
Строка поиска должна располагаться вверху на вкладке Meetups. Желательно по мере ввода текста, выдавать пользователю релевантные подсказки.
Так как у нас текст идёт обычно на двух языках, было бы хорошо иметь возможность искать с учётом этого факта. А именно:
дотнет == .NET
System.InvalidCastException
Список Докладчиков (Speakers) довольно велик. Искать по нему конкретного человека не удобно.
Необходимо добавить быструю навигацию по Докладчикам. Я знаю несколько возможностей:
В Windows Mobile была гениальная система: люди группируются по первой букве, при клике на которую открывается алфавит доступных букв с возможностью перехода на конкретную группу.
В iOS (например приложение VK, вкладка Friends) есть справа от большого списка вертикальная полоска с буквами. Поглаживание по ней приводит к быстрой прокрутке основного списка.
Необходимо найти компоненты реализующие это поведение или любое другое.
Необходимо дать пользователю возможность добавлять информацию о будущих Встречах в системный календарь устройства. Для прошедших встреч такая возможность по прежнему должна отсутствовать.
Также можно разрешить добавлять напоминание не о всей встрече, а о конкретных Докладах.
При добавлении всей Встречи в календарь, временем начала события должно быть время первого Доклада, а конец - окончание последнего. При добавлении одного Доклада, время начала и конца события должно совпадать со временем доклада.
System.NullReferenceException
Предстоящие события должны отображаться на странице Встреч (Meetups) вместе со всем списком. Для их выделения можно использовать цвет кружка с числом и сменить его на #cf18fd.
Необходимо поддержать Universal Windows Platform, тем самым увеличив количество устройств, которое поддерживается приложением.
Добавить секцию со списком всех Встреч, которые помог провести этот Friend (с возможностью перехода на страницу Meetup). Список должен быть отсортирован по дате проведения встречи (старые вверху).
Первое закрытое тестирование выявило необходимость мелких доработок.
В данный момент на каждую сущность существуют две модели, описывающие её. Например для Meetup - MeetupModel и MeetupEntity. Это обусловлено тем, что приложение для работы использует MeetupModel, а данные хранятся в формате MeetupEntity.
В связи с этим при запуске необходимо вначале распарсить xml-ки в Entity, и затем, с помощью Extension методов (например MeetupExtension), преобразовать их в Models.
Считаю, что целесообразно задуматься об объедининии этих моделей
Основным offline источником данных для приложения должна стать копия репозитория Audit. Пока нет литературного описания его контента, но он не сложный и должен быть понятен интуитивно. Есть модель в PowerShell. Основная структура:
DotNetRu состоит из Сообществ. Каждое сообщество регулярно (примерно раз в месяц) собирает Встречи. Встречи проходят на какой-то Площадке при поддержке наших Друзей. На встречах Докладчики читают Доклады.
Перед каждым релизом необходимо добавлять последнюю версию Audit'а в статические ресурсы приложения (в том числе и фотографии). Таким образом оно должно быть способно полноценно работать даже без доступа в Интернет.
В DotNetRu App должна войти первая публичная версия Audit'а с полной историей Spb и Msk встреч.
Сейчас пользователь может открыть прошедшее событие (Event) и добавить напоминание о нём в системный календарь.
Необходимо запретить ему добавлять прошедшие события в календарь. У пользователя не должно создаваться ложных ожиданий, если он случайно не обратил внимание на дату.
Приложение должно распространяться со статической версией Audit'а согласно #2.
Эту базу необходимо периодически обновлять. Приложение должно загружать базу Audit'а c GitHub'а (с использованием всех его CDN'ов и возможностей определять только изменившиеся файлы). Если Репозиторий не доступен, то приложение должно работать с последней известной версией базы.
Загрузка обновлений не должна замедлять время старта приложения и проходить в фоне.
На вкладке Speaker Info необходимо добавить секцию со всеми докладами Спикера (с возможностью перехода на страницу доклада).
На вкладке Speakers слишком много пустого места.
Необходимо увеличить фотографию Докладчика и у уменьшить неиспользуемое пространство. Прекрасным примером является VK клиент, вкладка Friends. Необходимо максимально скопировать его стиль списка.
Сейчас основное меню приложения появляется только по нажатию кнопки в левом-верхнем углу.
Необходимо отображать меню также при проведении пальцем в горизонтальном направлении от левой кромки экрана вправо (Swipe). При обратном движении меню должно закрываться.
Необходимо добавить отдельную страницу с описанием нашего сообщества.
Текст страницы можно взять из описания DotNetRu в wiki.
Сделать банер из логотипа
Забить ссылки на все сообщества из DotNetRu в wiki
Сейчас лента новостей по внешнему виду сильно расходится с версией на сайте Твитера. Необходимо привести их в максимально похожий вид.
Например:
Span<T>
)DotNetRu
вверху и @DotNetRu
внизу. Это избыточно. Достаточно одной.RT...
). Не надо префикса.System.Collections.Generic.KeyNotFoundException
Открываю приложение, захожу в любой раздел. Переключаюсь на другое приложение, возвращаюсь и снова вижу начальный экран.
В одной из следующих версий.
Надо поизучать api mailchimp, спрашивать о результатах у меня
System.Collections.Generic.KeyNotFoundException
Хотелось делиться не только главным экраном, но и митапами или спикерами. И в тексте должно быть не только "#DotNetRu"
Currently, Xamarin Live Player doesn't work on both Android & iOS. Same situation for Forms Previewer.
It significantly impacts development, as the only way to view XAML is to run the app on a device.
Need to fix current issues with Xamarin Live Player & Forms Previewer.
Xamarin Live Player Android
Xamarin Live Run Current View Android
Xamarin Live Player iOS
Forms Previewer
Сейчас название ярлыка приложения на рабочем столе и в панеле задач отображается, как "DotNetRu App" .
Название приложения везде должно быть просто "DotNetRu".
java.lang.IllegalArgumentException
Необходимо соблюсти условия MIT лицензий и включить файлы с лицензиями в репозиторий
Наше приложение должно отличаться от исходного Xamarin Evolve. Его внешний вид должен быть стилизирован под бренд DotNetRu. А поведение адаптированно под формат ежемесячных митапов.
На вкладке Meetups необходимо добавить секцию Friends (Друзья) и сделать ссылки от туда на страницу Sponsor Details.
System.NullReferenceException
Добавить на страницу Meetups (Встречи, бывшая Events) вход в энциклопедию DotNetRu. Энциклопедия должна предоставлять основную информацию о Сообществе, всех его Встречах, Докладах, Спикерах.
На первой странице пользователь должен получить список всех сообществ, входящих в DotNetRu в виде ссылок. А дальше навигироваться по ссылкам. Пример такой энциклопедии сейчас есть для SpbDotNet.
По возможности, приложение должно переживать незначительную смену формата (удаление не критичных полей, изменение формата не критичных полей).
Было бы круто подписаться на уведомления о новых митапах в конкретном городе.
В перспективе регистрироваться прям через приложение, тут надо разбираться с таймпадом
Приложение должно оповещать пользователя о появлении новых встреч. События должны фильтроваться согласно списку выбранных Сообществ (#6). При появлении нового события пользователю должно приходить Push-уведомление. А так же на иконке приложения должны появиться цифры с количеством предстоящих событий. Также необходимо рассмотреть дополнительные платформо-специфичные возможности информирования (имена, фото спикеров на Тайле).
Уведомление должно приходить только после того, как новая Встреча сохранилась в Приложении. Т.е. не должно быть ситуации, когда пользователь переходит по Уведомлению, а в приложении новый митап не отображается ввиду устаревшей версии Аудита.
Технически, список всех Встреч хранится в Audit → Meetups.
У пользователя должна быть возможность в любое время включить и отключить Push-уведомления в Настройках приложения.
Отображать места встреч на встроенной карте на странице Meetup
Необходимо добавить в приложение сбор статистики использования.
Необходимо выбрать подходящего провайдера. Например:
Главное требование — это наличие бесплатного плана с подходящими для наших потребностей условиями.
Сейчас лента новостей (News) формируется из нескольких аккаунтов Twitter'а. Эта социальная сеть не является самой активной в наших сообществах. Гораздо больше новостей публикуется и обсуждается в ВКонтакте. К ленте Твиттера необходимо добавить аккаунты в VK.
Новости из этих источников часто дублируются. Как в виде репостов внутри одной соц. сети, так и дубли новости в другую соц. сеть. Например анонсы наших митапов есть в VK (с репостом в несколько групп), так и в Твиттере (с ретвитоми в нескольких аккаунтах). Необходимо убирать эти дубли, оставлять наиболее полный (VK оригинал). Так как тексты в разных сетях отличаются (из-за ограничений по длине), то поиск дубликатов может оказать не тривиальным занятием. Самым простым сейчас видится стратегия вычленения ссылок из анонса и сравнение их в пределах определённого временного окна (например в течении недели). В рамках одной соц. сети есть информация о репосте, там легче.
Новости из групп DotNetRu (VK, Twitter) должны отображаться всегда. В зависимости от подписок на сообщества (#6), пользователю должны показываться новости из тех групп на которые он подписан. Адреса соц. сетей этих групп есть в Аудите.
Сообщество DotNetRu является виртуальным объединением пользовательских групп из конкретных городов, например таких как «SpbDotNet Community» и «MskDotNet Community». Жители каждого города хотят видеть только мероприятия проходящие в их регионе.
Необходимо дать пользователю настройку, позволяющую выбрать сообщества, мероприятия которого его интересуют. При первом запуске приложения диалог выбора должен попросить пользователя определиться с интересами. Пользователь должен иметь возможность указать от одного и более сообществ. Его выбор должен сохраниться в локальных настройках устройства и больше не появляться при запуске.
Необходимо добавить возможность изменить подписки на Сообщества в будущем через настройки приложения.
Технически, список всех сообществ и информация о них хранится в Audit → Communities. Сейчас там 4 сообщества. Появление новых сообществ должно отражаться в настройке по выбору интересных мероприятий.
На вкладке Session Details (Talk) есть возможность Add to Calendar.
После её нажатия система попросила у меня разрешение и, после получения привилегий, событие в календаре не появилось.
Необходимо чтобы событие добавлялось календарь и удалялось от туда.
Будет удобно если пользователь сможет регистрироваться на предстоящую TimePad встречу прямо из приложения.
System.NullReferenceException
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.