LINUX.ORG.RU

git submodules?

 , , ,


0

2

Есть необходимость написать кросс-платформенное приложение (а конкретно, оно должно работать на виндовсе и андроиде). Javascript/Typescript - я в него плохо умею. Остается Xamarin/Unity. Наверное?

Если остается Xamarin/Unity (Unity есть в ТЗ как возможная необходимость, потому что под него есть какой-то код, который, возможно, необходимо использовать, но я подозреваю, что этот код не Unity-specific, а просто .NET/Mono). Я не хочу Unity.

Кроме того, меня всегда смешили эти MVC от iPhone/Objective-C. Там же всегда один View, для каждого Controller, он никогда не меняется.

А тут вроде можно сделать правильный MVC/MVVM/как_звал_так_звал. C#/.NET/Mono код это Model/Controller или Model/ModelView, а Unity/Xamarin - это View.

Писать это все мне одному, как хочу, так и сделаю. Как я думаю:

  1. Сделать отдельный проект C# dll с MV/MVM
  2. Сделать отдельный проект Unity/Xamarin и туда руками кидать dll

Или

  1. Сделать отдельную репо с C# кодом
  2. Подключить ее как submodule в еще одной репе с Unity/Xamarin

Я помню, что в git submodules есть такое неудобство, что каждый раз, когда изменяешь код в submodule и коммитишь его - необходимо делать отдельный коммит к Unity/Xamarin репе, типо «bump submodule reference commit»

Можно еще проще:

  1. Сделать отдельное репо с C# кодом
  2. Сделать отдельное репо с Unity/Xamarin кодом и просто знать, что необходимо коммитить туда/cюда.

Я делал решения 1, 2 и 3. Ну т.е. я участвовал в проектах где делалось и так и так.

Может можно еще как-то по четвертому? Perforce у меня нету и он кажется за деньги. Писать это все мне - т.е. как сделать так, чтобы было удобно мне? Я не хочу, на этой стадии выбирать между Unity и Xamarin. C# похоже мне навязан из-за гипотетической необходимости использовать код от китайской железки, в которой есть примеры для Unity (подозреваю, что они не Unity-specific, а C#/.NET/Mono).

Как бы вы сделали?

PS И да, интересно услышать альтернативы на случай, если код от китайской железки окажется не нужен. Typescipt/AngularJS/Vue.js/Electron/вот это все? Или там Corona/Lua какая?

★★

Последнее исправление: dissident (всего исправлений: 2)

Ответ на: комментарий от ya-betmen

Qt

Да, но есть шанс, что китайский C# код будет нужен.

dissident ★★
() автор топика
Ответ на: комментарий от RazrFalcon

Никогда не используй git submodules.

Да! Так а как тогда? dll? Или просто 2 репы и convention в какой директории какая? Писать все равно мне - я могу любые convention себе придумать.

dissident ★★
() автор топика
Ответ на: комментарий от RazrFalcon

Я не хочу сейчас View (Unity/Xamarin), я хочу command line для начала с C#/Mono кодом, а выбрать потом. Просто в monorepo так и делать, а потом туда напхать View который надо? А как легко проверять, что это все работает и там и там? В monorepo не знаю, флаги компиляции какие-то придумать? Для начала UI очень просто сойдет - одна сцена одна кнопка (ну это если Unity), один XAML одна кнопка (ну это если Xamarin). Хочется, чтобы это легко можно было переключать и работало и там и там.

Это такое архитектонический вопрос похоже.

EDIT: Просто для Unity мне для сборки придется его ссаный Editor запускать. Хотя там вроде были какие-то опции собирать это все в command line. А про Xamarin я вообще пока не знаю. Как бы мне сделать так, чтобы переключение Unity/Xamarin происходило безболезненно?

dissident ★★
() автор топика
Последнее исправление: dissident (всего исправлений: 2)
Ответ на: комментарий от RazrFalcon

В общем я понял, что monorepo для C#/Unity/Xamarin. Спасибо.

dissident ★★
() автор топика

Нахрена тебе два репозитория, история умалчивает, видимо. Если смысл в этом и есть, ты забыл его донести.

В чём суть приложения ты тоже не сказал, а без этого последний вопрос в пустоту.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Если имеем активно развивающийся проект - то монорепа идеально подходит. Иначе получим 100500 коммитов уровня «обновил зависимости».

RazrFalcon ★★★★★
()
Ответ на: комментарий от dissident

Не, ну почти всегда можно что-то размыто или вскользь сказать. Кому надо тот поймёт, а не поймёт, ну и ладно.

Но это я так, по графическим приложениям я всё равно не советчик.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Да приложение - одна кнопка + WiFi + bluetooth. Я не знаю как это в JS/TS делать.

EDIT: Да и сойдет C#/Mono. Я просто думал вы..нуться с сабмодулями или dll. Теперь понял, что не надо.

dissident ★★
() автор топика
Последнее исправление: dissident (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.