Разработка моб. приложения - конструктора

InstantCMS 2.X

Возобновляю разработку, теперь уже кроссплатформенного приложения

#1 31 января 2020 в 05:59
Доброго времени суток, дорогие друзья!

Ввиду того, что дела с мобильным приложением у комьюнити обстоят, мягко говоря, не очень, я решил вернуться к разработке и общими усилиями, добиться более-менее приемлемого результата.

Сразу оговорюсь — это будет полностью бесплатный проект с открытым исходным кодом, в рамках которого мною будут предприняты попытки по реализации приложения-конструктора для 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
#2 31 января 2020 в 07:53
Круто, конструктор правится в админке на компьютере или как то иначе? У меня пока предложений нет, походу дела появятся)) Вы главное не исчезайте вот первая рекомендация)))
#3 31 января 2020 в 08:00

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

Заралик

под конструктором подразумевается приложение, максимально настраиваемое с админки CMS.

Настройка визуальной составляющей;
Полное взаимодействие с системой типов контента (уже реализован вывод списка записей любых типов контента);

Это база, которую необходимо реализовать.

Нужны хотелки и приоритеты, без них нет четкого понятия, что люди хотят видеть в приложении.

Вы главное не исчезайте вот первая рекомендация)))

Заралик

На самом деле мотивация большая, так как сам заинтересован в мобильном приложении для своего проекта.
Реализация прошлой версии моб. приложения (было приложение под Android) не была остановлена — я доделал его под свои нужды и свернул разработку, ввиду отсутствия свободного времени и появления серьезных семейных обстоятельств.

Обещать ничего не хочу, но одно могу сказать точно — буду стараться, есть огромная мотивация в этом. Мне очень нравится эта CMS, за что я активно ее хвалю среди всех мобильных разработчиков, которых встречаю, как хороший бэкенд для проектов.

P.S. Разработать приложение индивидуально под конкретный сайт на instantcms 2 гораздо проще, нежели делать клиент, максимально адаптированный под архитектуру CMS.
#4 31 января 2020 в 08:40
Vunderkind, молодец! Думаю надо реализовать только вывод всех типов контента с удобной навигацией. Обязательно фото галерею. Ну и конечно виджеты основные.
Регистрацию и авторизацию.
Добавление контента обязательно
Комментарии
#5 31 января 2020 в 08:52

Vunderkind, молодец! Думаю надо реализовать только вывод всех типов контента с удобной навигацией. Обязательно фото галерею. Ну и конечно виджеты основные.
Регистрацию и авторизацию.
Добавление контента обязательно
Комментарии

Алексей Тимофеев

Большое спасибо.
Единственное — с виджетами немного не понятно, куда и как их применять в мобильном приложении. Разве что если использовать систему для интернет магазина. В остальном, полагаю, виджеты будут занимать полезное пространство на мобильных устройствах.
#6 31 января 2020 в 09:06
Виджеты можно в сайд меню выводить. И не только в главное но и по нажатие на некую плавающую кнопку. А виджеты в основной колонке можно прятать под спойлер или даже меню используя соответствующие обёртки виджетов.
Не понятно почему стоит такой вопрос — где выводить?
А вёрстка для виджетов и в целом для выводимого контента как формируются? Так же в файлах шаблонах?
#7 31 января 2020 в 09:14
Тут нужно обязательно учитывать юзабилити и возможность вёрстки шаблонов под виджеты и контент.
Толку не много будет от моб приложения если не учитывать эти моменты, или просто стыдно за свой сайт если будет выглядеть как на снимках выше. Я бы мог помочь с этим, если можно и нужно )
#8 31 января 2020 в 09:21


надо реализовать только вывод всех типов контента

Алексей Тимофеев

Нет, это будет что-то очень странное )) хотя, если код будет в свободной доступе, то можно по примеру и с другими разделами поработать )
#9 31 января 2020 в 09:28


Виджеты можно в сайд меню выводить. И не только в главное но и по нажатие на некую плавающую кнопку. А виджеты в основной колонке можно прятать под спойлер или даже меню используя соответствующие обёртки виджетов.
Не понятно почему стоит такой вопрос — где выводить?
А вёрстка для виджетов и в целом для выводимого контента как формируются? Так же в файлах шаблонах?

GoodMade

Вопрос возник по той причине, что концепция дизайна мобильного приложения в целом кординально отличается от адаптации web версии под моюильные устройства.
Как раз material design и cupertino style (стандарты android и ios) все это описывают для повышения юзабилити. Рекомендуют отступы, размеры шрифта, размеры элементов. И при минимальном соблюдении этих норм, виджеты будут занимать полезное пространство.
Я вижу лишь один виджет, который может существовать в моб. приложении — это карусель обектов типа контента.

Что касается прицнипа создания шаблонов — могу показать и обьяснить в лс, как я это вижу и как реализовал это для списка.

Любой помощи буду только рад.
#10 31 января 2020 в 09:34

Нет, это будет что-то очень странное )) хотя, если код будет в свободной доступе, то можно по примеру и с другими разделами поработать )

Vunderkind

Как правило, почти все дополнения имеют вывод на основе типов контента — с этим проблем не будет.

Что касается контроллеров, которые имеют свои шаблоны вывод — необходимо будет дописывать api, но проблем я с этим не вижу, главное чтоб был доступен исходный код этих контроллеров или описание модели.
#11 31 января 2020 в 09:51

прицнипа создания шаблонов — могу показать и обьяснить в лс

Vunderkind
Как в лс, не надо в лс. Просьба выкладывайте всё сюда, если это конечно возможно и вы этого хотите.
Очень интересная и нужная тема.
#12 31 января 2020 в 10:13
Vunderkind, а почему например не карусель виджетов?
Можно и в ЛС но лучше в теме форума обсудить )
#13 31 января 2020 в 10:20

 уже реализован функционал, по самостоятельному созданию и выбору шаблона для каждого

Упустил ) Обычный php html шаблон? А для виджетов?
#14 1 февраля 2020 в 06:46


 уже реализован функционал, по самостоятельному созданию и выбору шаблона для каждого

Упустил ) Обычный php html шаблон? А для виджетов?

GoodMade


Нет. Шаблон строится на JSX разметке, свойственной для React Native.

К примеру, вот так выглядит шаблон объявлений, который отражен на скрина:

  1. <TouchableOpacity onPress={myHandler}>
  2. <View
  3. style={{
  4. borderRadius: 6,
  5. marginTop: 2,
  6. marginBottom: 2,
  7. marginLeft: 4,
  8. marginRight: 4,
  9.  
  10. }}
  11. >
  12. <View
  13. style={{
  14. flexDirection: "row",
  15. backgroundColor: '#fff'
  16. }}
  17. >
  18. <Image
  19. imageStyle={{ borderRadius: 4 }}
  20. source={{
  21. uri: photo.big
  22. }}
  23. style={{
  24. width: 80,
  25. height: 80,
  26. borderTopLeftRadius: 6,
  27. borderBottomLeftRadius: 6
  28. }}
  29. />
  30. <View
  31. style={{
  32. flexDirection: "column",
  33. flex: 1
  34. }}
  35. >
  36. <Text
  37. style={{
  38. color: main_color,
  39. flex: 1,
  40. margin: 7
  41. }}
  42. >
  43. {title}
  44. </Text>
  45. <View
  46. style={{
  47. margin: 10,
  48. flexDirection: "row"
  49. }}
  50. >
  51. <Ionicons
  52. style={{
  53. color: main_color,
  54. fontSize: 14
  55. }}
  56. name={Platform.OS === "ios" ? "ios-calendar" : "md-calendar"}
  57. />
  58. <Text
  59. style={{
  60. fontSize: 12,
  61. color: main_color,
  62. marginRight: 7,
  63. marginLeft: 3
  64. }}
  65. >
  66. {date_pub}
  67. </Text>
  68. <Ionicons
  69. style={{
  70. color: main_color,
  71. fontSize: 14
  72. }}
  73. name={Platform.OS === "ios" ? "ios-eye" : "md-eye"}
  74. />
  75. <Text
  76. style={{
  77. fontSize: 12,
  78. color: main_color,
  79. marginRight: 7,
  80. marginLeft: 3
  81. }}
  82. >
  83. {hits_count}
  84. </Text>
  85. <Ionicons
  86. style={{
  87. color: main_color,
  88. fontSize: 14
  89. }}
  90. name={Platform.OS === "ios" ? "ios-text" : "md-text"}
  91. />
  92. <Text
  93. style={{
  94. fontSize: 12,
  95. color: main_color,
  96. marginRight: 7,
  97. marginLeft: 3
  98. }}
  99. >
  100. {rating}
  101. </Text>
  102. <Ionicons
  103. style={{
  104. color: main_color,
  105. fontSize: 14
  106. }}
  107. name={Platform.OS === "ios" ? "ios-heart" : "md-heart"}
  108. />
  109. <Text
  110. style={{
  111. fontSize: 12,
  112. color: main_color,
  113. marginRight: 7,
  114. marginLeft: 3
  115. }}
  116. >
  117. {comments}
  118. </Text>
  119. </View>
  120. </View>
  121. </View>
  122. </View>
  123. </TouchableOpacity>
Вот таким образом задан шаблон для элемента списка объявлений.
Разметка очень напоминает HTML. Тег View — аналог тега div, стили так же CSS подобные — практически все те же свойства, но в кэмелКейс стиле.
На стороне приложения этот код парится и переводится в реальные объекты.

TouchableOpacity — это тег, который вешает слушатель нажатия на элемент списка, поэтому если речь о шаблоне для списка, то в данной реализации он обязателен. myHandler — это функция на стороне приложения, которая вызывается по нажатию на элемент (она статично прописана в приложении) и позволяет перейти на страницу объекта.
#15 1 февраля 2020 в 07:01

Vunderkind, а почему например не карусель виджетов?
Можно и в ЛС но лучше в теме форума обсудить )

GoodMade

Сделать на самом деле можно, только нужно видеть, что мы хотим получить в конечном результате. Я пока не могу представить карусель виджетов scratch
Покажите на примере — может где-то такая карусель в моб. версии реализована?
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.