Возобновляю разработку, теперь уже кроссплатформенного приложения
Ввиду того, что дела с мобильным приложением у комьюнити обстоят, мягко говоря, не очень, я решил вернуться к разработке и общими усилиями, добиться более-менее приемлемого результата.
Сразу оговорюсь — это будет полностью бесплатный проект с открытым исходным кодом, в рамках которого мною будут предприняты попытки по реализации приложения-конструктора для CMS.
На начало разработки (31.01.2020 г.) реализовано очень мало:
— Формирование sideMenu на стороне CMS (в админ-панели добавляется новое меню с зарезервированным названием, пункты парсятся в моб. приложение)
— Вывод списка записей любого типа контента. Шаблоны вывода списка ограничены двумя прессетами на стороне приложения, а так же уже реализован функционал, по самостоятельному созданию и выбору шаблона для каждого имеющегося типа контента в админ-панели в настройках компонента API.
Для создания шаблона списка используется HTML подобный синтаксис, который называется JSX и разработан специально для фреймворка React js/React Native.
В дальнейшем обязательно запишу подробную инструкцию, по созданию шаблонов.
— Реализован функционал, по выбору цветовой схемы для приложения (пока только основной цвет текста и интерфейса)
Очень скоро:
— Ленивая загрузка (реализована на 90%, мелкие корректировки)
— PullToRefresh (потянуть список => перезагрузить) — аналогично;
— Вывод объекта любого типа контента (реализовано на 90%);
— Добавление/удаление/редактирование объекта типа контента;
— Авторизация/Регистрация/Восстановление по email (жду, когда в коробку CMS добавят функционал, который позволит авторизоваться по любому из полей — после этого будет реализована авторизация/регистрация/восстановление по СМС.
Предлагайте, обсуждайте — давайте вместе расставим приоритеты в необходимом функционале.
06.02.2020 г.
Вся информация здесь:
github.com/VunderkindMedia/Instantcms-2-mobile-app/blob/master/README.md
22.02.2020 г.
07.05.2020 г.
Дароботана авторизация, грид сетка в списках.
play.google.com/store/apps/details?id=com.vunderkind.media
Круто, конструктор правится в админке на компьютере или как то иначе? У меня пока предложений нет, походу дела появятся)) Вы главное не исчезайте вот первая рекомендация)))
под конструктором подразумевается приложение, максимально настраиваемое с админки CMS.
Настройка визуальной составляющей;
Полное взаимодействие с системой типов контента (уже реализован вывод списка записей любых типов контента);
Это база, которую необходимо реализовать.
Нужны хотелки и приоритеты, без них нет четкого понятия, что люди хотят видеть в приложении.
Вы главное не исчезайте вот первая рекомендация)))
На самом деле мотивация большая, так как сам заинтересован в мобильном приложении для своего проекта.
Реализация прошлой версии моб. приложения (было приложение под Android) не была остановлена — я доделал его под свои нужды и свернул разработку, ввиду отсутствия свободного времени и появления серьезных семейных обстоятельств.
Обещать ничего не хочу, но одно могу сказать точно — буду стараться, есть огромная мотивация в этом. Мне очень нравится эта CMS, за что я активно ее хвалю среди всех мобильных разработчиков, которых встречаю, как хороший бэкенд для проектов.
P.S. Разработать приложение индивидуально под конкретный сайт на instantcms 2 гораздо проще, нежели делать клиент, максимально адаптированный под архитектуру CMS.
Регистрацию и авторизацию.
Добавление контента обязательно
Комментарии
Vunderkind, молодец! Думаю надо реализовать только вывод всех типов контента с удобной навигацией. Обязательно фото галерею. Ну и конечно виджеты основные.
Регистрацию и авторизацию.
Добавление контента обязательно
Комментарии
Большое спасибо.
Единственное — с виджетами немного не понятно, куда и как их применять в мобильном приложении. Разве что если использовать систему для интернет магазина. В остальном, полагаю, виджеты будут занимать полезное пространство на мобильных устройствах.
Не понятно почему стоит такой вопрос — где выводить?
А вёрстка для виджетов и в целом для выводимого контента как формируются? Так же в файлах шаблонах?
Толку не много будет от моб приложения если не учитывать эти моменты, или просто стыдно за свой сайт если будет выглядеть как на снимках выше. Я бы мог помочь с этим, если можно и нужно )
надо реализовать только вывод всех типов контента
Нет, это будет что-то очень странное )) хотя, если код будет в свободной доступе, то можно по примеру и с другими разделами поработать )
Виджеты можно в сайд меню выводить. И не только в главное но и по нажатие на некую плавающую кнопку. А виджеты в основной колонке можно прятать под спойлер или даже меню используя соответствующие обёртки виджетов.
Не понятно почему стоит такой вопрос — где выводить?
А вёрстка для виджетов и в целом для выводимого контента как формируются? Так же в файлах шаблонах?
Вопрос возник по той причине, что концепция дизайна мобильного приложения в целом кординально отличается от адаптации web версии под моюильные устройства.
Как раз material design и cupertino style (стандарты android и ios) все это описывают для повышения юзабилити. Рекомендуют отступы, размеры шрифта, размеры элементов. И при минимальном соблюдении этих норм, виджеты будут занимать полезное пространство.
Я вижу лишь один виджет, который может существовать в моб. приложении — это карусель обектов типа контента.
Что касается прицнипа создания шаблонов — могу показать и обьяснить в лс, как я это вижу и как реализовал это для списка.
Любой помощи буду только рад.
Нет, это будет что-то очень странное )) хотя, если код будет в свободной доступе, то можно по примеру и с другими разделами поработать )
Как правило, почти все дополнения имеют вывод на основе типов контента — с этим проблем не будет.
Что касается контроллеров, которые имеют свои шаблоны вывод — необходимо будет дописывать api, но проблем я с этим не вижу, главное чтоб был доступен исходный код этих контроллеров или описание модели.
Как в лс, не надо в лс. Просьба выкладывайте всё сюда, если это конечно возможно и вы этого хотите.прицнипа создания шаблонов — могу показать и обьяснить в лс
Очень интересная и нужная тема.
Можно и в ЛС но лучше в теме форума обсудить )
Упустил ) Обычный php html шаблон? А для виджетов?уже реализован функционал, по самостоятельному созданию и выбору шаблона для каждого
Упустил ) Обычный php html шаблон? А для виджетов?уже реализован функционал, по самостоятельному созданию и выбору шаблона для каждого
Нет. Шаблон строится на JSX разметке, свойственной для React Native.
К примеру, вот так выглядит шаблон объявлений, который отражен на скрина:
<TouchableOpacity onPress={myHandler}> <View style={{ borderRadius: 6, marginTop: 2, marginBottom: 2, marginLeft: 4, marginRight: 4, }} > <View style={{ flexDirection: "row", backgroundColor: '#fff' }} > <Image imageStyle={{ borderRadius: 4 }} source={{ uri: photo.big }} style={{ width: 80, height: 80, borderTopLeftRadius: 6, borderBottomLeftRadius: 6 }} /> <View style={{ flexDirection: "column", flex: 1 }} > <Text style={{ color: main_color, flex: 1, margin: 7 }} > {title} </Text> <View style={{ margin: 10, flexDirection: "row" }} > <Ionicons style={{ color: main_color, fontSize: 14 }} name={Platform.OS === "ios" ? "ios-calendar" : "md-calendar"} /> <Text style={{ fontSize: 12, color: main_color, marginRight: 7, marginLeft: 3 }} > {date_pub} </Text> <Ionicons style={{ color: main_color, fontSize: 14 }} name={Platform.OS === "ios" ? "ios-eye" : "md-eye"} /> <Text style={{ fontSize: 12, color: main_color, marginRight: 7, marginLeft: 3 }} > {hits_count} </Text> <Ionicons style={{ color: main_color, fontSize: 14 }} name={Platform.OS === "ios" ? "ios-text" : "md-text"} /> <Text style={{ fontSize: 12, color: main_color, marginRight: 7, marginLeft: 3 }} > {rating} </Text> <Ionicons style={{ color: main_color, fontSize: 14 }} name={Platform.OS === "ios" ? "ios-heart" : "md-heart"} /> <Text style={{ fontSize: 12, color: main_color, marginRight: 7, marginLeft: 3 }} > {comments} </Text> </View> </View> </View> </View> </TouchableOpacity>
Разметка очень напоминает HTML. Тег View — аналог тега div, стили так же CSS подобные — практически все те же свойства, но в кэмелКейс стиле.
На стороне приложения этот код парится и переводится в реальные объекты.
TouchableOpacity — это тег, который вешает слушатель нажатия на элемент списка, поэтому если речь о шаблоне для списка, то в данной реализации он обязателен. myHandler — это функция на стороне приложения, которая вызывается по нажатию на элемент (она статично прописана в приложении) и позволяет перейти на страницу объекта.
Vunderkind, а почему например не карусель виджетов?
Можно и в ЛС но лучше в теме форума обсудить )
Сделать на самом деле можно, только нужно видеть, что мы хотим получить в конечном результате. Я пока не могу представить карусель виджетов
Покажите на примере — может где-то такая карусель в моб. версии реализована?